HDL Coder Mult + Add uses DSP48E1 + fabric
Show older comments
Hi, I tried to use Coder on dsp_subsys1 from: https://www.mathworks.com/help/hdlcoder/ug/modeling-efficient-multiplication-and-division-operations-for-fpga-targeting.html So, I'm expecting that Coder can use just a DSP48E slice, but the Workflow Advisor always generates adder logic in the fabric, in addition to using a DSP slice.
Matlab 2023a, HDL Coder ver4.1, Vivado 2022.2 and VC707 board.
The resets are configured as synchronous. I'm basing my last sentence on this: https://www.mathworks.com/matlabcentral/answers/1727185-multiply-and-add-not-correctly-mapping-to-a-single-dsp-slice?s_tid=srchtitle
Help on this would be much appreciated...
5 Comments
R
on 20 Jun 2024
I successfully tested this using MATLAB R2023a and the Vivado 2022.1 release, and everything functioned as anticipated.

Could you please verify if you've made any modifications to the model, such as altering the bit width of the input data, or adjusted any configuration settings? I recommend resetting the model's configuration preferences to their default settings and trying once more.
Jerome Davie
on 20 Jun 2024
Edited: Jerome Davie
on 21 Jun 2024
Jerome Davie
on 20 Jun 2024
Edited: Jerome Davie
on 20 Jun 2024
R
on 21 Jun 2024
This appears quite peculiar; something seems to be missing. The 'Generic ASIC/FPGA' workflow is the only correct one. I've also tested this on Vivado 2023.1 with MATLAB R2024a and achieved the same expected results.
Can you try this:
- Right-click the 'DSP_subsys1' block.
- Select HDL Code > HDL Block Properties.
- For DSPStyle, select on.
Save & update the model and run the HDL Workflow Advisor again to see any changes.
If this doesn't work, I suggest reaching out to MathWorks Technical Support at: https://www.mathworks.com/support/contact_us.html
Jerome Davie
on 21 Jun 2024
Edited: Jerome Davie
on 21 Jun 2024
Answers (1)
Jerome Davie
on 21 Jun 2024
0 votes
Categories
Find more on Speed and Area Optimization in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
