From 6d6f91a02b6ff4b5459fe91fcae5b97ce915f7dd Mon Sep 17 00:00:00 2001 From: Sebastien Bourdeauducq Date: Mon, 19 Oct 2015 16:07:45 +0800 Subject: [PATCH] sim/core: fix Cat bitshift --- migen/sim/core.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/migen/sim/core.py b/migen/sim/core.py index af3f3734f..157d63ff7 100644 --- a/migen/sim/core.py +++ b/migen/sim/core.py @@ -156,10 +156,11 @@ class Evaluator: value -= 2**node.nbits self.modifications[node] = value elif isinstance(node, Cat): + nbits = 0 for element in node.l: + value >>= nbits nbits = len(element) self.assign(element, value & (2**nbits-1)) - value >>= nbits elif isinstance(node, _Slice): full_value = self.eval(node.value, True) # clear bits assigned to by the slice