add operand down pipeline chain
[ieee754fpu.git] / src / ieee754 / fpcommon / postcalc.py
index 61e2f5288273db4b46f113e9d9e9d058d41503d8..ddb7fb3d83c7acf70b60198503f0a8b3de22a82a 100644 (file)
@@ -4,23 +4,26 @@
 
 from nmigen import Signal
 from ieee754.fpcommon.fpbase import Overflow, FPNumBaseRecord
+from ieee754.fpcommon.getop import FPBaseData
 
-class FPAddStage1Data:
+class FPAddStage1Data(FPBaseData):
 
-    def __init__(self, width, id_wid):
+    def __init__(self, width, id_wid, op_wid=None):
+        FPBaseData.__init__(self, 0, width, id_wid, op_wid)
         self.z = FPNumBaseRecord(width, False)
         self.out_do_z = Signal(reset_less=True)
         self.oz = Signal(width, reset_less=True)
         self.of = Overflow()
-        self.mid = Signal(id_wid, reset_less=True)
 
     def __iter__(self):
         yield from self.z
         yield self.out_do_z
         yield self.oz
         yield from self.of
-        yield self.mid
+        yield from FPBaseData.__iter__(self)
 
     def eq(self, i):
-        return [self.z.eq(i.z), self.out_do_z.eq(i.out_do_z), self.oz.eq(i.oz),
-                self.of.eq(i.of), self.mid.eq(i.mid)]
+        ret = [self.z.eq(i.z), self.out_do_z.eq(i.out_do_z), self.oz.eq(i.oz),
+              self.of.eq(i.of),] + FPBaseData.eq(self, i)
+
+        return ret