multiplier: Generalize interface to the multiplier
authorPaul Mackerras <paulus@ozlabs.org>
Sat, 25 Jul 2020 08:23:11 +0000 (18:23 +1000)
committerPaul Mackerras <paulus@ozlabs.org>
Wed, 5 Aug 2020 05:46:09 +0000 (15:46 +1000)
commit535341961d1d4d5b6df98f4bf9c01ae0daf5d9bf
treee2840b448d5fc631f9d52b98a4a010295f5e997a
parent178d7680af456158c7743c06c15c314270fbdcff
multiplier: Generalize interface to the multiplier

This makes the interface to the multiplier more general so an instance
of it can be used in the FPU.  It now has a 128-bit addend that is
added on to the product.  Instead of an input to negate the output,
it now has a "not_result" input to complement the output.  Execute1
uses not_result=1 and addend=-1 to get the effect of negating the
output.  The interface is defined this way because this is what can
be done easily with the Xilinx DSP slices in xilinx-mult.vhdl.

This also adds clock enable signals to the DSP slices, mostly for the
sake of reducing power consumption.

Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
common.vhdl
execute1.vhdl
multiply.vhdl
multiply_tb.vhdl
xilinx-mult.vhdl