HDL Coder Mult + Add uses DSP48E1 + fabric

11 ビュー (過去 30 日間)
Jerome Davie
Jerome Davie 2024 年 6 月 19 日
回答済み: Jerome Davie 2024 年 6 月 21 日
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.
Help on this would be much appreciated...
  5 件のコメント
R
R 2024 年 6 月 21 日
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:
  1. Right-click the 'DSP_subsys1' block.
  2. Select HDL Code > HDL Block Properties.
  3. 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
Jerome Davie 2024 年 6 月 21 日
編集済み: Jerome Davie 2024 年 6 月 21 日
Hi @RS,
I missed your comment ( it was collapsed ), but I put the original clock value back in the *.xdc, and then turned on the flag you pointed out and YES(!!) that works ! Your answer is much better ( don't have to mess with the clock constraint ), and that unset flag was the missing piece. I'm going to reach out to support ( for all the good it proabably won't do ) since Mathworks article of Coder generating just the DSP slice is a poor example of selling a product's capability. All they had to do was mention setting of the DSP style flag......
Thanks again,
Jerome

サインインしてコメントする。

回答 (1 件)

Jerome Davie
Jerome Davie 2024 年 6 月 21 日
Tonight, I removed Vivado 2022.2 and installed 2022.1 and used the defaults. 1 DSP used and the fabric resource are 25 LUTs and 116 registers ( adaptive pipelining ON/Off makes no diff )... My Hail Mary was to try again changing the clock constraint value ( was 3.33 ), to 4 nS per: https://support.xilinx.com/s/question/0D54U00006xEQyMSAW/dsp48-not-being-setup-correctly?language=en_US
and... BAM !!
I had tried using 4nS with Vivado 2022.2, but it didn't work. Why would changing the clock constraint make it behave ?!
RS, thank you for confirming HDL Coder's synthesis !

カテゴリ

Help Center および File ExchangeHDL Code Generation についてさらに検索

製品


リリース

R2023a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by