Is there a way to force the use of 9x9 multipliers over 18x18?
Hi there, I'm working with the Cyclone V and have the constraint that im only able to use the 9x9 multipliers in the variable precision DSP blocks.
The design im trying to synthesize is something along the lines of what is shown below (a small section of the datapath of a larger design).
This block has two 8-bit multipliers and two 8-bit adders. As per the cyclone V device handbook, each variable precision DSP block can be configured as 3x 9x9 multipliers
I should therefore be able to synthesize the previous design using one DSP block containing the two 8-bit multiplications. Upon synthesis however, I see:
Looking at the DSP fitter summary we see that it has been synthesized to one independent 9x9 and two independent 18x18 multipliers, not what is intended.
So we now look at the post fitting RTL viewer, one of the multipliers is as expected:
The second is not as expected:
we can see that an additional superfluous multiplier is inferred - which has an output which is not even used! And, its using the 18x18 multiplier to produce an 8-bit output - it makes no sense.
My RTL code used here is nothing but a combinatorial multiplier as follows
```
Interested to hear if there is a solution to this - remember, I'd only like to use the 9x9 blocks, not 18x18.