use internal latch qlq value instead of creating a separate sync register
[soc.git] / src / scoreboard / shadow_fn.py
index b7edf8e9929c90dae85f0c27f2071eadbb8f7aa0..bb91e312e1ddb3509a091ea82441e9e305f1834c 100644 (file)
@@ -23,13 +23,10 @@ class ShadowFn(Elaboratable):
         m = Module()
         m.submodules.sl = sl = SRLatch(sync=False)
 
-        cq = Signal() # resets to 0
-        m.d.sync += cq.eq(sl.q)
-
         m.d.comb += sl.s.eq(self.shadow_i & self.issue_i & ~self.s_good_i)
         m.d.comb += sl.r.eq(self.s_good_i | (self.issue_i & ~self.shadow_i))
-        m.d.comb += self.recover_o.eq((cq | sl.q) & self.s_fail_i)
-        m.d.comb += self.shadow_o.eq((cq | sl.q))
+        m.d.comb += self.recover_o.eq(sl.qlq & self.s_fail_i)
+        m.d.comb += self.shadow_o.eq(sl.qlq)
 
         return m