Programmable Devices
CPLDs, FPGAs, SoC FPGAs, Configuration, and Transceivers
20710 Discussions

How to fit 2 multipliers in one DSP block - Arria V?

eran_el
Novice
768 Views

In a project done using Arria V FPGA (5AGXFB1HF35I3), I'm using an IP (LPM_MULT) with the following properties:

  1. dataa and datab input width - 16bit
  2. result output width - 32bit
  3. Signed
  4. Two clock pipelines
  5. With clken and aclr

I have a component with 2 multipliers and 2 adders (implementing a FIR), and since this component is instantiated many times across my design (along with other, different components that use DSP blocks), I want to save up as many DSP blocks as possible.

According to the Arria V handbook, 2 multipliers can fit in 1 DSP block:

eran_el_2-1661686775885.png

 

According to the Quartus 18.1 compilation report I see that each multiplier uses 1 DSP block, instead of 2 multipliers using 1 DSP block. This causes Quartus to use all the available 920 DSP blocks.

 

Note: something strange that I see is that while for some instantiations of the FIR component there are 2 DSP blocks (instead of 1), for others no DSP blocks are implemented at all. Could be some kind of weird merge?

 

This is an issue for me since:

  1. According to calculations I made, Quartus should have used far less DSP blocks. This was assuming 2 multipliers fit into 1 DSP block.
  2. I need to see if my design converges (resource-wise), since my design will be implemented inside another design (that uses some DSP blocks). Therefore I need to know if there are spare DSP blocks in my design (as in my calculations).

Thank you.

 

0 Kudos
7 Replies
Kshitij_Intel
Employee
729 Views

Hi,


Have you used the suggested IP cores for Arria® V variable precision DSP blocks implementation?


https://www.intel.com/content/www/us/en/docs/programmable/683213/current/operational-modes.html



Thank you

Kshitij Goel


0 Kudos
eran_el
Novice
709 Views

Hi,

If you're talking about what they're saying here:

The following Intel® Quartus® Prime IP cores are supported for the Arria® V variable precision DSP blocks implementation:

  • LPM_MULT
  • ALTERA_MULT_ADD
  • ALTMULT_COMPLEX
  • ALTMEMMULT

Then yes, I've used the LPM_MULT IP.

0 Kudos
eran_el
Novice
686 Views

Hello,

Does no one know?

0 Kudos
Kshitij_Intel
Employee
678 Views

Hi,


Please share your project to reproduce and analyze the issue.


Thank you

Kshitij Goel


0 Kudos
Kshitij_Intel
Employee
657 Views

Hi,


Please share your project to reproduce and analyze the issue.


Thank you

Kshitij Goel


0 Kudos
Kshitij_Intel
Employee
626 Views

Hi,


As we do not receive any response from you to the previous question that I have provided. This thread will be transitioned to community support. If you have a new question, feel free to open a new thread to get the support from Intel experts. Otherwise, the community users will continue to help you on this thread.


Thank you

Kshitij Goel


0 Kudos
eran_el
Novice
617 Views

Hi,

Sorry for not replying.

Unfortunately I am unable to share the project since it is work related and I am not allowed to do that.

 

Are there some requirements for merging multipliers into DSP blocks? Perhaps I am missing something.

0 Kudos
Reply