create distinct "done_o" signal
authorLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Fri, 17 Apr 2020 10:30:57 +0000 (11:30 +0100)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Fri, 17 Apr 2020 10:31:15 +0000 (11:31 +0100)
src/soc/experiment/compalu_multi.py

index a03b52ba79ee32e07f037ea1e4b06cfc05d19bd4..f2eda4ed219bcc8187b461586835f91b1e33e52c 100644 (file)
@@ -77,7 +77,7 @@ class ComputationUnitNoDelay(Elaboratable):
         self.data_o = dst[0] # Dest out
         self.rd_rel_o = Signal(n_src, reset_less=True) # release src1/src2 
         self.req_rel_o = Signal(n_dst, reset_less=True) # release out (valid_o)
-        self.done_o = self.req_rel_o # 'normalise' API
+        self.done_o = Signal(reset_less=True)
 
     def elaborate(self, platform):
         m = Module()
@@ -97,8 +97,9 @@ class ComputationUnitNoDelay(Elaboratable):
         # write_requests all done
         wr_any = Signal(reset_less=True)
         req_done = Signal(reset_less=True)
+        m.d.comb += self.done_o.eq(~(self.req_rel_o.bool())
         m.d.comb += wr_any.eq(self.go_wr_i.bool())
-        m.d.comb += req_done.eq(~(self.req_rel_o.bool()) & rst_l.q & wr_any)
+        m.d.comb += req_done.eq(self.done_o & rst_l.q & wr_any)
 
         # shadow/go_die
         reset = Signal(reset_less=True)