Hello everybody,
In a design I'm working on I want to multiply two 16 bit 2's complement (signed) numbers using the mult18x18 multipliers. According to the Sparten 3 userguide, it is enough to use the lower bits and take the result from the output. However, when I do this, the result is not correct when negative numbers are multiplied, positive numbers are no problem.
If I use the highest (MSB) bits of the multiplier, the results are correct. But... using the highest bits of the multiplier causes my design to fail timing constraints because the multipliers get slower when more bits are being used.
What am I doing wrong here?