We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

Showing results for 
Search instead for 
Did you mean: 
Registered: ‎07-18-2016

Optimization problem with DATAFLOW directive


     I am using OPENCV DUPLICATE function to get copies of image data in an algorithm. I had inserted PIPELINE directive and INLINE directive with region off. I got output in C simulation but not on hardware even though my VIVADO design is correct. Then I checked only DUPLICATE function with DATAFLOW directive, got output. I came to know that DUPLICATE function will work when we insert DATAFLOW directive but resource utilization is very high. How can i solve this? Do i need to insert any other directive to reduce utilization along with DATAFLOW?


I have attached synthesis report with this post.

0 Kudos
1 Reply
Scholar u4223374
Registered: ‎04-26-2015

Re: Optimization problem with DATAFLOW directive

Did you try cosimulation?


Normally not having DATAFLOW will fail because no DATAFLOW means you need massive internal buffers (big enough to store the whole image). You can insert these with the STREAM pragma, but they tend to use more block RAM than is available on-chip.


I'd check the PIPELINE directive first. If you put it at the top-level of the function, it'll try to run the whole function in one cycle (rather than one pixel per cycle) and that will obviously do bad things to your resource usage.

0 Kudos