From: Luke Kenneth Casson Leighton Date: Mon, 29 Nov 2021 10:26:35 +0000 (+0000) Subject: disallow overlap in core on LDST, Branch, and Trap. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=a320531e88165ae7f5074d583854c5907b6f4429;p=soc.git disallow overlap in core on LDST, Branch, and Trap. these are all the ones that could cause exceptions or mess with ordering --- diff --git a/src/soc/simple/core.py b/src/soc/simple/core.py index c6c35b66..f8c3c245 100644 --- a/src/soc/simple/core.py +++ b/src/soc/simple/core.py @@ -427,6 +427,14 @@ class NonProductionCore(ControlBase): # and resolved with m.If(self.issue_conflict): comb += busy_o.eq(1) + # make sure that LDST, Branch and Trap all say "busy" + # and do not allow overlap + for funame, fu in fus.items(): + if (funame.lower().startswith('ldst') or + funame.lower().startswith('branch') or + funame.lower().startswith('trap')): + with m.If(fu.busy_o): + comb += busy_o.eq(1) # return both the function unit "enable" dict as well as the "busy". # the "busy-or-issued" can be passed in to the Read/Write port