I would like to use ALLOCATIOn directive inside my code to reduce the number of DSP48E block utilization. I have a function in which I am calling another function for like 23 times. I believe, in default condition the binder will use up all the available resources.
Inside the function I use
#pragma HLS ALLOCATION instances=powFunc limit=5 function
to restrict the number of instances of 'powFunc'
*powFunc is my function which is being used 23 times. But this doesn't improve resource utilization.
I've found that HLS is generally pretty good at not making multiple copies of functions when it doesn't need to.
If you have a look through the synthesis report, you'll be able to see exactly where all the DSP48 slices are being used. If there are actually 23 instances of the function being created then that's definitely a problem; but check whether that's actually what is happening before spending a lot of time trying to fix it.