execute1: Add a pipelined 33-bit signed multiplier
authorPaul Mackerras <paulus@ozlabs.org>
Sat, 16 Jul 2022 01:49:28 +0000 (11:49 +1000)
committerPaul Mackerras <paulus@ozlabs.org>
Tue, 9 Aug 2022 10:16:28 +0000 (20:16 +1000)
commit595a7584008057a5be3b9a4a9bb1035ecccb23f9
tree25d5f3538dc14a8fb5c2cfbffb5ba66b5f82f06d
parent58e799b3504090451d5ffb32352d665ec187a0b8
execute1: Add a pipelined 33-bit signed multiplier

This adds a pipelined 33-bit by 33-bit signed multiplier with one
cycle latency to the execute pipeline, and uses it for the mullw,
mulhw and mulhwu instructions.  Because it has one cycle of latency we
can assume that its result is available in the second execute stage
without needing to add busy logic to the second stage.

This adds both a generic version of the multiplier and a
Xilinx-specific version using four DSP slices of the Artix-7.

Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
Makefile
execute1.vhdl
microwatt.core
multiply-32s.vhdl [new file with mode: 0644]
xilinx-mult-32s.vhdl [new file with mode: 0644]