From: Luke Kenneth Casson Leighton Date: Fri, 17 Apr 2020 10:30:57 +0000 (+0100) Subject: create distinct "done_o" signal X-Git-Tag: div_pipeline~1432^2~11 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=59d050456afb99758e1cb46c21eaad303ff7ae3e;p=soc.git create distinct "done_o" signal --- diff --git a/src/soc/experiment/compalu_multi.py b/src/soc/experiment/compalu_multi.py index a03b52ba..f2eda4ed 100644 --- a/src/soc/experiment/compalu_multi.py +++ b/src/soc/experiment/compalu_multi.py @@ -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)