Reset src_l latch on issue_i
authorCesar Strauss <cestrauss@gmail.com>
Sun, 16 Oct 2022 13:01:37 +0000 (10:01 -0300)
committerCesar Strauss <cestrauss@gmail.com>
Wed, 26 Oct 2022 22:03:07 +0000 (19:03 -0300)
When the input operand is masked, there will be no go_i pulse to
reset the src_l latch, so we force it to reset on issue_i, as well.

src/soc/experiment/compalu_multi.py

index 3d1f7249af461fea77452dce19cdc57267330d13..7eef2047bdab661879f67dba538e3f35afd02f3d 100644 (file)
@@ -241,7 +241,7 @@ class MultiCompUnit(RegSpecALUAPI, Elaboratable):
         m.d.comb += reset.eq(req_done | self.go_die_i)
         m.d.comb += rst_r.eq(self.issue_i | self.go_die_i)
         m.d.comb += reset_w.eq(self.wr.go_i | Repl(self.go_die_i, self.n_dst))
-        m.d.comb += reset_r.eq(self.rd.go_i | Repl(self.go_die_i, self.n_src))
+        m.d.comb += reset_r.eq(self.rd.go_i | Repl(rst_r, self.n_src))
 
         # read-done,wr-proceed latch
         rw_domain += rok_l.s.eq(self.issue_i)  # set up when issue starts