stash intermediaries for output into temp signals
authorLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Sat, 17 Aug 2019 08:24:20 +0000 (09:24 +0100)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Sat, 17 Aug 2019 08:24:20 +0000 (09:24 +0100)
src/ieee754/part_mul_add/multiply.py

index ee28d4038508799b10f31274bb8254e7a0acce98..31fe9d973f346d9ab95e169c2344f6af366f734e 100644 (file)
@@ -626,34 +626,41 @@ class Mul8_16_32_64(Elaboratable):
         # create _output_32
         ol = []
         for i in range(2):
-            ol.append(
+            op = Signal(32, reset_less=True, name="op32_%d" % i)
+            m.d.comb += op.eq(
                 Mux(self._delayed_part_ops[-1][4 * i] == OP_MUL_LOW,
                     self._intermediate_output.part(i * 64, 32),
                     self._intermediate_output.part(i * 64 + 32, 32)))
+            ol.append(op)
         m.d.comb += self._output_32.eq(Cat(*ol))
 
         # create _output_16
         ol = []
         for i in range(4):
-            ol.append(
+            op = Signal(16, reset_less=True, name="op16_%d" % i)
+            m.d.comb += op.eq(
                 Mux(self._delayed_part_ops[-1][2 * i] == OP_MUL_LOW,
                     self._intermediate_output.part(i * 32, 16),
                     self._intermediate_output.part(i * 32 + 16, 16)))
+            ol.append(op)
         m.d.comb += self._output_16.eq(Cat(*ol))
 
         # create _output_8
         ol = []
         for i in range(8):
-            ol.append(
+            op = Signal(8, reset_less=True, name="op8_%d" % i)
+            m.d.comb += op.eq(
                 Mux(self._delayed_part_ops[-1][i] == OP_MUL_LOW,
                     self._intermediate_output.part(i * 16, 8),
                     self._intermediate_output.part(i * 16 + 8, 8)))
+            ol.append(op)
         m.d.comb += self._output_8.eq(Cat(*ol))
 
         # final output
         ol = []
         for i in range(8):
-            ol.append(
+            op = Signal(8, reset_less=True, name="op%d" % i)
+            m.d.comb += op.eq(
                 Mux(self._delayed_part_8[-1][i]
                     | self._delayed_part_16[-1][i // 2],
                     Mux(self._delayed_part_8[-1][i],
@@ -662,6 +669,7 @@ class Mul8_16_32_64(Elaboratable):
                     Mux(self._delayed_part_32[-1][i // 4],
                         self._output_32.part(i * 8, 8),
                         self._output_64.part(i * 8, 8))))
+            ol.append(op)
         m.d.comb += self.output.eq(Cat(*ol))
         return m