move pack to separate class
authorLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Thu, 21 Feb 2019 10:11:53 +0000 (10:11 +0000)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Thu, 21 Feb 2019 10:11:53 +0000 (10:11 +0000)
src/add/nmigen_add_experiment.py

index dab957c46050e49fe6915b9286d4e857b541bb90..1ff99af1ea937062adaccde77eff549401edd0a5 100644 (file)
@@ -238,12 +238,19 @@ class FPRound(FPState):
     def action(self, m):
         self.roundz(m, self.z, self.of, "corrections")
 
+
 class FPCorrections(FPState):
 
     def action(self, m):
         self.corrections(m, self.z, "pack")
 
 
+class FPPack(FPState):
+
+    def action(self, m):
+        self.pack(m, self.z, "put_z")
+
+
 class FPADD(FPBase):
 
     def __init__(self, width, single_cycle=False):
@@ -324,6 +331,10 @@ class FPADD(FPBase):
         cor.set_inputs({"z": z})  # XXX Z as output
         cor.set_outputs({"z": z})  # XXX Z as output
 
+        pa = FPPack("pack")
+        pa.set_inputs({"z": z})  # XXX Z as output
+        pa.set_outputs({"z": z})  # XXX Z as output
+
         with m.FSM() as fsm:
 
             # ******
@@ -402,7 +413,7 @@ class FPADD(FPBase):
             # pack stage
 
             with m.State("pack"):
-                self.pack(m, z, "put_z")
+                pa.action(m)
 
             # ******
             # put_z stage