make overflow roundz a property (Overflow no longer a module)
authorLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Sun, 16 Jun 2019 11:51:48 +0000 (12:51 +0100)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Sun, 16 Jun 2019 11:51:48 +0000 (12:51 +0100)
src/ieee754/fpadd/add1.py
src/ieee754/fpcommon/fpbase.py
src/ieee754/fpcommon/postnormalise.py

index 1205431272f76e74b21bf4a440924abcac8fb05d..408b607577d936f55cc145571ebd5c1c86d5f343 100644 (file)
@@ -35,7 +35,7 @@ class FPAddStage1Mod(FPState, Elaboratable):
         """ links module to inputs and outputs
         """
         m.submodules.add1 = self
-        m.submodules.add1_out_overflow = self.o.of
+        #m.submodules.add1_out_overflow = self.o.of
 
         m.d.comb += self.i.eq(i)
 
index b62a115390de4fd7d1e1099cd6a4ea112f77ceca..6f14f5b14290c4c228be522d6919d735517813eb 100644 (file)
@@ -569,7 +569,7 @@ class Overflow: #(Elaboratable):
         self.sticky = Signal(reset_less=True)    # tot[0]
         self.m0 = Signal(reset_less=True)        # mantissa zero bit
 
-        self.roundz = Signal(reset_less=True)
+        #self.roundz = Signal(reset_less=True)
 
     def __iter__(self):
         yield self.guard
@@ -583,11 +583,9 @@ class Overflow: #(Elaboratable):
                 self.sticky.eq(inp.sticky),
                 self.m0.eq(inp.m0)]
 
-    def elaborate(self, platform):
-        m = Module()
-        m.d.comb += self.roundz.eq(self.guard & \
-                                   (self.round_bit | self.sticky | self.m0))
-        return m
+    @property
+    def roundz(self):
+        return self.guard & (self.round_bit | self.sticky | self.m0)
 
 
 class FPBase:
index c45bf1e9488912a117947e58bf3dc92da1fc25c9..1d9ee94f04d1b7b3e4d35f94cd7819c3208fc4b2 100644 (file)
@@ -61,13 +61,13 @@ class FPNorm1ModSingle(Elaboratable):
         m.d.comb += self.o.roundz.eq(of.roundz)
 
         #m.submodules.norm1_out_z = self.o.z
-        m.submodules.norm1_out_overflow = of
+        #m.submodules.norm1_out_overflow = of
         #m.submodules.norm1_in_z = self.i.z
-        m.submodules.norm1_in_overflow = self.i.of
+        #m.submodules.norm1_in_overflow = self.i.of
 
         i = self.ispec()
         m.submodules.norm1_insel_z = insel_z = FPNumBase(i.z)
-        m.submodules.norm1_insel_overflow = i.of
+        #m.submodules.norm1_insel_overflow = i.of
 
         espec = (len(insel_z.e), True)
         ediff_n126 = Signal(espec, reset_less=True)