Altera_Forum
Honored Contributor
13 years agoHow to avoid register "optimisation" in DSP
Hello everyone,
I can't seem to solve this by my own: I'm using multipliers in my code, as you might know, on Stratix4 getting out of a DSP block has a timing cost of ~0.350ns So, I'm willing to spend 1 clock cycle to go out of a DSP block, BUT the synthesis aggressively wants to locate any register that I place after inside the DSP. Instanciating explicitely the alt_multadd module or lpm_mult does not change anything. The only way I found to avoid that is to place 2 "wasted" registers after, thus exhausting the register resources of any DSP slice, but that is ugly and only show that I don't know how to properly constrain my synthesis. Setting the following attributes does not change anything: preserve keep So, do you know of any assignment, or directive to "protect" my general register from this effect ? BTW what is this effect? (register merging, dsp balancing?)