The UNIVERSAL MULTIPLIER consists of the following generic component :
universal_multiplier
The UNIVERSAL MULTIPLIER can be verified with this testbench :
test_universal_multiplier

This component implements an universal multiplier according to the data
represenation that is used for the multiplication. More specifically
the two variable-length operands , i.e. the N-bit multiplicand and the
M-bit multiplier , are multiplied and the N+M-bit result is returned.
The produced results depends on a 2-bit "mode" selector which may have
four values : "00" means unsigned multiplication, "01" sign magnitude
multiplication, "10" 1's complement multiplication and finally "11"
means 2's complement multiplication.