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: 
Visitor rmastor
Registered: ‎03-26-2013

HLS : How to configure an array to be a register ?



I'm stuck in a problem in my algortithm i have to access to 7 values of an array at the same time.

I saw in the documentation that the PARTITION directive can do that.

I put this directive on an array declared in my fonction, but when i'm trying to synthesize the operation never end.


Is that a bug ? or is there any other way to configure an array as registers ?



0 Kudos
1 Reply
Observer jsmonson
Registered: ‎06-12-2009

Re: HLS : How to configure an array to be a register ?

How big is your array?  There are several kinds of partitions. A complete partition makes every array entry its own register.  If your array is large C synthesis can take a long time.  You may want to read up on block or cyclic partition which break up the array into smaller arrays organized in different ways. However, if these arrays are broken into two many pieces synthesis still might take a while. 


Another option is the reshape directive.  The reshape directive packs smaller array entries into larger ones allowing you to read more array entries at the same time.  For example, consider an array char a[16].  A block reshape by 4 would create an array with 32-bit entries and 4 elements.  The nice this here is that Vivado HLS will handle all the packing details.  


Hope this helps.



0 Kudos