assign tests to signals
authorLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Wed, 27 Feb 2019 17:14:17 +0000 (17:14 +0000)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Wed, 27 Feb 2019 17:14:17 +0000 (17:14 +0000)
src/add/nmigen_add_experiment.py

index e80c149e338560547a653344846cae3e09fe57ca..1c5c1ea439fd5815131605367b8d0aedc7c212ff 100644 (file)
@@ -214,10 +214,14 @@ class FPAddAlignMultiMod(FPState):
         m.d.comb += self.exp_eq.eq(0)
         m.d.comb += self.out_a.copy(self.in_a)
         m.d.comb += self.out_b.copy(self.in_b)
-        with m.If(self.in_a.e > self.in_b.e):
+        agtb = Signal(reset_less=True)
+        altb = Signal(reset_less=True)
+        m.d.comb += agtb.eq(self.in_a.e > self.in_b.e)
+        m.d.comb += altb.eq(self.in_a.e < self.in_b.e)
+        with m.If(agtb):
             m.d.comb += self.out_b.shift_down(self.in_b)
         # exponent of b greater than a: shift a down
-        with m.Elif(self.in_a.e < self.in_b.e):
+        with m.Elif(altb):
             m.d.comb += self.out_a.shift_down(self.in_a)
         # exponents equal: move to next stage.
         with m.Else():