From: Sebastien Bourdeauducq Date: Tue, 20 Oct 2015 09:18:33 +0000 (+0800) Subject: sim: fix case break X-Git-Tag: 24jan2021_ls180~2099^2~3^2~7 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=2bbcc218f36afe5d598b6e24158557183ac016fa;p=litex.git sim: fix case break --- diff --git a/migen/sim/core.py b/migen/sim/core.py index fc750833..f89cd02c 100644 --- a/migen/sim/core.py +++ b/migen/sim/core.py @@ -196,11 +196,13 @@ class Evaluator: elif isinstance(s, Case): nbits, signed = value_bits_sign(s.test) test = _truncate(self.eval(s.test), nbits, signed) + found = False for k, v in s.cases.items(): if isinstance(k, Constant) and k.value == test: self.execute(v) - return - if "default" in s.cases: + found = True + break + if not found and "default" in s.cases: self.execute(s.cases["default"]) elif isinstance(s, collections.Iterable): self.execute(s)