# 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],
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