pass through out_do_z into FPPack
authorLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Sat, 23 Mar 2019 10:36:53 +0000 (10:36 +0000)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Sat, 23 Mar 2019 10:36:53 +0000 (10:36 +0000)
src/add/nmigen_add_experiment.py

index 15f39d80f481908fba8d0d903771274e965f4e3f..6baa0a4530f64cbf774619b6c5dc8321fdc580b5 100644 (file)
@@ -1485,22 +1485,16 @@ class FPPackMod:
         m = Module()
         m.submodules.pack_in_z = self.i.z
         m.d.comb += self.o.mid.eq(self.i.mid)
-        with m.If(self.i.z.is_overflowed):
-            m.d.comb += self.o.z.inf(self.i.z.s)
+        with m.If(~self.i.out_do_z):
+            with m.If(self.i.z.is_overflowed):
+                m.d.comb += self.o.z.inf(self.i.z.s)
+            with m.Else():
+                m.d.comb += self.o.z.create(self.i.z.s, self.i.z.e, self.i.z.m)
         with m.Else():
-            m.d.comb += self.o.z.create(self.i.z.s, self.i.z.e, self.i.z.m)
+            m.d.comb += self.o.z.eq(self.i.z)
         return m
 
 
-class FPPackData:
-    def __init__(self, width, id_wid):
-        self.z = FPNumOut(width, False)
-        self.mid = Signal(id_wid, reset_less=True)
-
-    def eq(self, i):
-        return [self.z.eq(i.z), self.mid.eq(i.mid)]
-
-
 class FPPack(FPState):
 
     def __init__(self, width, id_wid):