From: Luke Kenneth Casson Leighton Date: Thu, 9 Jul 2020 19:44:34 +0000 (+0100) Subject: whoops test gets copied 4 times on the If. X-Git-Tag: div_pipeline~125 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=705cbd9d1a435281e3a239f20027deda47421b6b;p=soc.git whoops test gets copied 4 times on the If. create intermediate signal --- diff --git a/src/soc/fu/alu/output_stage.py b/src/soc/fu/alu/output_stage.py index 3ea71b56..0080ca54 100644 --- a/src/soc/fu/alu/output_stage.py +++ b/src/soc/fu/alu/output_stage.py @@ -28,7 +28,9 @@ class ALUOutputStage(CommonOutputStage): # copy overflow and sticky-overflow. indicate to CompALU if they # are actually required (oe enabled/set) otherwise the CompALU # can (will) ignore them. - with m.If(op.oe.oe & op.oe.oe_ok): + oe = Signal(reset_less=True) + comb += oe.eq(op.oe.oe & op.oe.oe_ok) + with m.If(oe): comb += self.o.xer_so.data.eq(self.so) comb += self.o.xer_so.ok.eq(1) comb += self.o.xer_ov.data.eq(xer_ov_i)