use ispec and ospec in FPNormaliseModSingle
[ieee754fpu.git] / src / add / nmigen_add_experiment.py
index e3e904bc05c61156775973b33c677fed9ae14313..5d5a9933250434778592112bfa7bed17c5ed96f1 100644 (file)
@@ -711,9 +711,7 @@ class FPAddAlignSingleAdd(FPState, FPID):
         self.o = self.mod.ospec()
 
         self.a0mod = FPAddStage0Mod(width)
-        self.a0_out_z = FPNumBase(width, False)
-        self.out_tot = Signal(self.a0_out_z.m_width + 4, reset_less=True)
-        self.a0_out_z = FPNumBase(width, False)
+        self.a0o = self.a0mod.ospec()
 
         self.a1mod = FPAddStage1Mod(width)
         self.a1o = self.a1mod.ospec()
@@ -725,10 +723,9 @@ class FPAddAlignSingleAdd(FPState, FPID):
         m.d.comb += self.o.eq(self.mod.o)
 
         self.a0mod.setup(m, self.o.a, self.o.b)
-        m.d.comb += self.a0_out_z.eq(self.a0mod.o.z)
-        m.d.comb += self.out_tot.eq(self.a0mod.o.tot)
+        m.d.comb += self.a0o.eq(self.a0mod.o)
 
-        self.a1mod.setup(m, self.out_tot, self.a0_out_z)
+        self.a1mod.setup(m, self.a0o.tot, self.a0o.z)
 
         if self.in_mid is not None:
             m.d.comb += self.in_mid.eq(in_mid)
@@ -931,8 +928,14 @@ class FPNormaliseModSingle:
 
     def __init__(self, width):
         self.width = width
-        self.in_z = FPNumBase(width, False)
-        self.out_z = FPNumBase(width, False)
+        self.in_z = self.ispec()
+        self.out_z = self.ospec()
+
+    def ispec(self):
+        return FPNumBase(self.width, False)
+
+    def ospec(self):
+        return FPNumBase(self.width, False)
 
     def setup(self, m, in_z, out_z, modname):
         """ links module to inputs and outputs
@@ -966,7 +969,7 @@ class FPNormaliseModSingle:
         # initialise out from in (overridden below)
         m.d.comb += self.out_z.eq(in_z)
         m.d.comb += self.out_of.eq(in_of)
-        # normalisation increase/decrease conditions
+        # normalisation decrease condition
         decrease = Signal(reset_less=True)
         m.d.comb += decrease.eq(in_z.m_msbzero)
         # decrease exponent