cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Explorer
Explorer
5,064 Views
Registered: ‎08-26-2014

What is the fastest way to transfer data between the PS and the PL?

Jump to solution

Hi,

 

I am building an IP generated using Vivado HLS which runs at 100ns. It needs 6 input variables every new cycle and returns 6 results. The values are all 32-bits wide.

 

I have tried AXI-Lite but as you might guess, it takes too long to send the data using a single bus with this approach. I am not sure if using different busses will be much faster.

 

Regarding other possible options, I do not know if the AXI-stream will be appropriate and fast enough, or even transfering the data using BRAMs. Another way I can think of is using DMA, but in order to not test all of them myself, I would like someone suggest me which could be the fastest way.

 

The idea is to take the less possible time so I can run this IP, considering writing and reading the data, as fast as possible.

 

Thanks,

 

Cerilet

0 Kudos
1 Solution

Accepted Solutions
Highlighted
Teacher
Teacher
9,322 Views
Registered: ‎03-31-2012

Re: What is the fastest way to transfer data between the PS and the PL?

Jump to solution

@cerilet in HLS the fastest way is to have an m_axi interface on your IP and have the IP read the data from memory. Because of your data size, using ACP would also be acceptable so you don't have to deal with cache coherence (or lack thereof) issues.

 

But frankly a 100ns long accelerator is too fine grained/short. At that level you need to optimize how long it will take for PS to tell the IP to start and how PS will know the IP has finished (interrupts take too long too). At 100ns you are designing new instructions, not accelerators. 

- Please mark the Answer as "Accept as solution" if information provided is helpful.
Give Kudos to a post which you think is helpful and reply oriented.

View solution in original post

3 Replies
Highlighted
Teacher
Teacher
9,323 Views
Registered: ‎03-31-2012

Re: What is the fastest way to transfer data between the PS and the PL?

Jump to solution

@cerilet in HLS the fastest way is to have an m_axi interface on your IP and have the IP read the data from memory. Because of your data size, using ACP would also be acceptable so you don't have to deal with cache coherence (or lack thereof) issues.

 

But frankly a 100ns long accelerator is too fine grained/short. At that level you need to optimize how long it will take for PS to tell the IP to start and how PS will know the IP has finished (interrupts take too long too). At 100ns you are designing new instructions, not accelerators. 

- Please mark the Answer as "Accept as solution" if information provided is helpful.
Give Kudos to a post which you think is helpful and reply oriented.

View solution in original post

Highlighted
Advisor
Advisor
5,029 Views
Registered: ‎04-26-2015

Re: What is the fastest way to transfer data between the PS and the PL?

Jump to solution

If you're happy with reading/writing data sequentially from/to RAM, a DMA and an AXI Stream interface will work nicely. If these can't give you the bandwidth you require, nothing will - there's no faster way of getting data to and from the PL. The bandwidth of your block is 6 (data elements) * 4 (bytes per element) * 10 (MHz at 100ns) = 240MB/s. The HP AXI ports will manage up to 2GB/s with careful setup (for this you need a 250MHz 64-bit bus going into them).

 

If you need semi-random access, an AXI Master interface on the block will be fine. However, this requires care - AXI Masters are only fast if you can organise burst reads. True random access is very slow.

Highlighted
Moderator
Moderator
5,002 Views
Registered: ‎09-12-2007

Re: What is the fastest way to transfer data between the PS and the PL?

Jump to solution
As the other guys said, depends on how you want to send the data.

You could use the SDSoC, this will set up the data mover for you automatically. This will determine based on the function arg how to set up the data mover. You can also use pragmas to guide this too.