07-19-2018 03:50 PM
I would like to restrict the number of DSPs of a given HLS-generated module (because the DSP budget is taken by other modules in my design).
Consequently I'd like to restrict the instantiation of DSPs in my entire function, using the following pragma:
#pragma HLS ALLOCATION instances = mul limit = 0 operation
However, setting the limit to 0 does not seem to be accepted. Are there other ways to get around this?
I've also tried the
#pragma HLS RESOURCE variable = <var> core = <core_noDSP>
but it doesn't work for some of the DSPs that get instantiated since those are not explicitly tied to a C variable in my source code...
07-23-2018 02:55 AM - edited 07-23-2018 02:55 AM
You could try the ALLOCATION directive with Mul_LUT or the *_nodsp cores.
Refer page 183 for the various functional cores available in Vivado HLS:
07-23-2018 03:09 PM
Thank you @nupurs for your reply. I have tried the RESOURCE pragma, but it can be limiting if the DSP resource instantiated is not directly associated with a given variable.
The ALLOCATION pragma works, but only if the limit is set to N > 0. However the case where N = 0 is very useful if let's say a module is using all DSPs in your FPGA so you want to restrict your other modules to use 0 DSPs.
Do you know of any other alternatives, since the RESOURCE pragma is not satisfactory?