mirror of
https://github.com/enjoy-digital/litex.git
synced 2025-01-04 09:52:26 -05:00
sim: fix slice assign
This commit is contained in:
parent
88f9d72e74
commit
8534562185
1 changed files with 2 additions and 2 deletions
|
@ -162,13 +162,13 @@ class Evaluator:
|
|||
self.assign(element, value & (2**nbits-1))
|
||||
value >>= nbits
|
||||
elif isinstance(node, _Slice):
|
||||
full_value = self.eval(node, True)
|
||||
full_value = self.eval(node.value, True)
|
||||
# clear bits assigned to by the slice
|
||||
full_value &= ~((2**node.stop-1) - (2**node.start-1))
|
||||
# set them to the new value
|
||||
value &= 2**(node.stop - node.start)-1
|
||||
full_value |= value << node.start
|
||||
self.assign(node, full_value)
|
||||
self.assign(node.value, full_value)
|
||||
elif isinstance(node, _ArrayProxy):
|
||||
self.assign(node.choices[self.eval(node.key)], value)
|
||||
elif isinstance(node, _MemoryLocation):
|
||||
|
|
Loading…
Reference in a new issue