UPGRADE YOUR BROWSER

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!

cancel
Showing results for 
Search instead for 
Did you mean: 
Newbie mostafakora
Newbie
626 Views
Registered: ‎10-26-2017

How to implement an array in different BRAMs (partitioning completely)to improve throughput

Hi,

 

I have defined an static array of double with 100 elements in my top function.

Because I want to have maximum throughput I defined directive for partitioning

completely. Also I defined the resource as BRAM.

 

 

The problem is that finally vivado HLS uses only 2 or 4 BRAM and because of

that my reads and writes from and to BRAMs are going sequentially and the

iterative interval of the design increases. I try to keep it as low as possible up 

to 8 or 10. but it goes to 60 or more.

 

 

please help me to find the problem.

0 Kudos
2 Replies
613 Views
Registered: ‎03-27-2014

Re: How to implement an array in different BRAMs (partitioning completely)to improve throughput

I am not an HLS expert, I read somewhere that reading & assigning a value in the same "run" could cause II to dramatically increase.

you may want to check whether HLS is creating this situation from your code. Sometimes the best way to describe something for HLS is not the way we would naturally describe it
G.W.,
NIST - Time Frequency metrology
0 Kudos
Newbie mostafakora
Newbie
590 Views
Registered: ‎10-26-2017

Re: How to implement an array in different BRAMs (partitioning completely)to improve throughput

Hi G.W;

 

Thanks for your comment,

I use directives for partitioning to tell Vivado_HLs to make the array by 100 BRAMs.

But it still does what it wants and use only 2 BRAMs.

I tried to use 8 BRAMs manually ( by using 8 arrays) and it works,

the II comes down very well.

 

0 Kudos