add ospec/ispec to FPAddSpecialCasesDeNorm, also comment out out_do_z
authorLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Thu, 28 Mar 2019 00:13:42 +0000 (00:13 +0000)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Thu, 28 Mar 2019 00:13:42 +0000 (00:13 +0000)
src/add/nmigen_add_experiment.py

index 8bcccf4cbad108b9cd4a74a604b88af1e87c4948..4fbd6c61dc1f8d08f449fa09a71724b13e52943c 100644 (file)
@@ -440,22 +440,29 @@ class FPAddSpecialCasesDeNorm(FPState):
     def __init__(self, width, id_wid):
         FPState.__init__(self, "special_cases")
         self.smod = FPAddSpecialCasesMod(width, id_wid)
-        self.out_z = self.smod.ospec()
-        self.out_do_z = Signal(reset_less=True)
-
         self.dmod = FPAddDeNormMod(width, id_wid)
-        self.o = self.dmod.ospec()
+        self.o = self.ospec()
+
+    def ispec(self):
+        return self.smod.ispec()
+
+    def ospec(self):
+        return self.dmod.ospec()
 
     def setup(self, m, i):
         """ links module to inputs and outputs
         """
+        # these only needed for break-out (early-out)
+        # out_z = self.smod.ospec()
+        # out_do_z = Signal(reset_less=True)
         self.smod.setup(m, i)
         self.dmod.setup(m, self.smod.o)
-        m.d.comb += self.out_do_z.eq(self.smod.o.out_do_z)
+        #m.d.comb += out_do_z.eq(self.smod.o.out_do_z)
+
+        # out_do_z=True, only needed for early-out (split pipeline)
+        #m.d.sync += out_z.z.v.eq(self.smod.o.z.v) # only take output
+        #m.d.sync += out_z.mid.eq(self.smod.o.mid)  # (and mid)
 
-        # out_do_z=True
-        m.d.sync += self.out_z.z.v.eq(self.smod.o.z.v) # only take output
-        m.d.sync += self.out_z.mid.eq(self.smod.o.mid)  # (and mid)
         # out_do_z=False
         m.d.sync += self.o.eq(self.dmod.o)