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

Task #893: backup and now round up to power of 2

parent 088ccd50
No related branches found
No related tags found
No related merge requests found
...@@ -38,15 +38,15 @@ class Field(BaseObject): ...@@ -38,15 +38,15 @@ class Field(BaseObject):
def __init__(self, name, settings=None): def __init__(self, name, settings=None):
super().__init__() super().__init__()
self.name(name) self.name(name)
self._valid_keys = ['number_of_fields', 'width', 'bit_offset', 'access_mode', 'side_effect', 'address_offset', self._valid_keys = ['width', 'bit_offset', 'access_mode', 'side_effect', 'address_offset', 'number_of_fields',
'reset_value', 'software_value', 'radix', 'field_description'] 'reset_value', 'software_value', 'radix', 'field_description']
self._args.update({'number_of_fields' : DEFAULT_NUMBER_OF_FIELDS, self._args.update({'width' : DEFAULT_WIDTH,
'width' : DEFAULT_WIDTH,
'bit_offset' : DEFAULT_BIT_OFFSET, 'bit_offset' : DEFAULT_BIT_OFFSET,
'access_mode' : DEFAULT_ACCESS_MODE, 'access_mode' : DEFAULT_ACCESS_MODE,
'side_effect' : DEFAULT_SIDE_EFFECT, 'side_effect' : DEFAULT_SIDE_EFFECT,
'address_offset' : DEFAULT_ADDRESS_OFFSET, 'address_offset' : DEFAULT_ADDRESS_OFFSET,
'number_of_fields' : DEFAULT_NUMBER_OF_FIELDS,
'reset_value' : RESET_VALUE, 'reset_value' : RESET_VALUE,
'software_value' : DEFAULT_SOFTWARE_VALUE, 'software_value' : DEFAULT_SOFTWARE_VALUE,
'radix' : DEFAULT_RADIX, 'radix' : DEFAULT_RADIX,
......
...@@ -76,7 +76,8 @@ class Register(BaseObject): ...@@ -76,7 +76,8 @@ class Register(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)
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,14 +189,7 @@ class RomSystem(object): ...@@ -189,14 +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')
#n_addresses = 0 nof_inst = rval.number_of_slaves() * peripheral.number_of_peripherals() * len(rval.fields)
#n_words = 0
#for fkey, fval in rval.fields.items():
# n_words = max(n_words, int(ceil(float(fval.width()) / float(self.word_size))))
# n_addresses = max(n_addresses, fval.address_offset())
#
#n_addresses += 1
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