Skip to content
Snippets Groups Projects
Commit 7572df1d authored by Pieter Donker's avatar Pieter Donker
Browse files

Task #893: backup

parent 9a1b61ba
No related branches found
No related tags found
No related merge requests found
...@@ -287,7 +287,8 @@ class Peripheral(BaseObject): ...@@ -287,7 +287,8 @@ class Peripheral(BaseObject):
if isinstance(result, float): if isinstance(result, float):
result = int(result) result = int(result)
except NameError: except NameError:
result = _val q
q result = _val
logger.debug(" _eval(%s) returns eval(%s) = %s", str(val), _val, str(result)) logger.debug(" _eval(%s) returns eval(%s) = %s", str(val), _val, str(result))
return result return result
...@@ -324,6 +325,7 @@ class Peripheral(BaseObject): ...@@ -324,6 +325,7 @@ class Peripheral(BaseObject):
# 'address_offset', 'reset_value', 'software_value', 'radix', 'field_description'] # 'address_offset', 'reset_value', 'software_value', 'radix', 'field_description']
for field in fields.values(): for field in fields.values():
logger.debug("eval field %s", field.name())
field.width(val=self._eval(field.width())) field.width(val=self._eval(field.width()))
field.bit_offset(val=self._eval(field.bit_offset())) field.bit_offset(val=self._eval(field.bit_offset()))
field.access_mode(val=self._eval(field.access_mode())) field.access_mode(val=self._eval(field.access_mode()))
......
...@@ -69,9 +69,9 @@ class RAM(BaseObject): ...@@ -69,9 +69,9 @@ class RAM(BaseObject):
return return
n_words = 0 n_words = 0
for field in self.fields.values(): for field in self.fields.values():
n_words += int(ceil(float(field.width()) / c_word_w)) * field.number_of_fields() n_words += ceil_pow2(int(ceil(float(field.width()) / c_word_w)) * field.number_of_fields())
logger.debug("n_words=%d", n_words) #logger.debug("n_words=%d", n_words)
n_words = 2**ceil_log2(n_words) n_words = ceil_pow2(n_words)
self.set_kv('address_length', n_words) self.set_kv('address_length', n_words)
def address_length(self, val=None): def address_length(self, val=None):
......
...@@ -77,7 +77,7 @@ class Register(BaseObject): ...@@ -77,7 +77,7 @@ class Register(BaseObject):
n_words = 0 n_words = 0
for field in self.fields.values(): for field in self.fields.values():
n_words += ceil_pow2(int(ceil(float(field.width()) / c_word_w)) * field.number_of_fields()) n_words += ceil_pow2(int(ceil(float(field.width()) / c_word_w)) * field.number_of_fields())
logger.debug("n_words=%d", n_words) #logger.debug("n_words=%d", n_words)
n_words = ceil_pow2(n_words) # round up to power of 2 n_words = ceil_pow2(n_words) # round up to power of 2
self.set_kv('address_length', n_words) self.set_kv('address_length', n_words)
......
...@@ -189,7 +189,7 @@ class RomSystem(object): ...@@ -189,7 +189,7 @@ class RomSystem(object):
for rkey, rval in peripheral.registers.items(): for rkey, rval in peripheral.registers.items():
n_addresses = rval.get_kv('address_length') n_addresses = rval.get_kv('address_length')
nof_inst = rval.number_of_slaves() * peripheral.number_of_peripherals() * len(rval.fields) nof_inst = rval.number_of_slaves() * peripheral.number_of_peripherals()
if rval.user_defined_name() is not None: if rval.user_defined_name() is not None:
_name = rval.user_defined_name() _name = rval.user_defined_name()
else: else:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment