Hi @John,
I forgot to add one more important piece in my earlier response — specifically addressing your question:“ Does anyone know to properly adjust the settings? ”
Here are concrete HDL Coder settings worth trying:
1. HDL Workflow Advisor Settings: Enable Resource Sharing for multipliers and adders to reduce DSP duplication. Enable Pipelining to reduce register duplication that often inflates DSP count. Under Multiplier Mapping, allow HDL Coder to automatically select between DSP blocks and logic.
2. Block-Level Settings: Instead of forcing `DSPStyle = off`, leave DSPStyle as auto (or inherit). This allows HDL Coder to decide when to map to DSP vs. logic for best efficiency. For multipliers: Use shift-add only for constant multipliers.
For variable inputs, set architecture back to auto so HDL Coder can use DSP slices more effectively.
3. Word Length Alignment : Ensure multiplier inputs align with Cyclone V DSP block widths (up to 25×18). Even with reduced word lengths (≤16 bits), mismatches can spill across multiple DSPs
4. Constraints: Avoid using `DSP_BLOCK_BALANCING "LOGIC ELEMENTS"` globally, as it pushes everything into LABs. Instead, rely on HDL Coder’s Resource Utilization Report to guide balancing between DSP and logic.
By adjusting these HDL Coder settings systematically, you should be able to better balance DSP vs. logic usage and fit within the Cyclone V resources.
