Jump to content
  • 0

What is the best way for data carry from HLS application to SDK application.


mftasdemir

Question

Hi everyone, I want to send some sobel edge data I get from Vivado HLS application to Vivado SDK application. What is the best way for to carry with uartĀ protocol or ethernet protocol.

Edited by mftasdemir
Link to comment
Share on other sites

1 answer to this question

Recommended Posts

  • 0
Trying to answer what the best way to do anything involving programmable logic is fraught with errors because the answer depends on so many details.

Usually, a better answer deals with what is easier but still works. Again, the details drive the answer.

A UART generally works up to 12 Mbaud which works out to about a peak of 1.2 MB/s. 1 G Ethernet has a peak 125 MB/s data rate. Of course peak data rates aren't generally very helpful. What one needs to know is what the average or sustainable data rates are. This is tricky and depends on a lot of factors. For a ZYNQ based platform the PS UART
has very shallow FIFOs so this limits sustainable data rates for transferring larger blocks of data. Etherent is packet based which means that the actual data payload can be a fraction of the data being transferred. For ZYNQ, the only PS connection to the MAC is through DMA, making software a bit more challenging. Also, your application might not really care about sustained data rate. For instance, you might want to capture some data and leisurely processes it post acquisition one session at a time.

It turns out that using an unused PS UART as a pipe through which you can transfer data between the PS and PL is pretty straight-forward for both HW and SW. Have you seen this post? https://forum.digilent.com/topic/22512-manipulate-pl-logic-using-ps-registers/

You can actually use a similar approach with an unused PS MAC. In this case, because you have to go through a MAC, the HW is more work as you must adhere to using specific standard packet types and protocols. This isn't a huge problem, but not trivial, especially if you use Vivado HLS as a design flow. Ethernet is not generally a path to PS and PL data connectivity.

The normal, and optimal, way to pass data between the PS and PL is via the PS/PL AXI ports. I don't use HLS so I can't comment on how easy this could be to implement.
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...