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: 
Highlighted
Observer pint1223
Observer
4,516 Views
Registered: ‎11-23-2016

Status of driver from HLS

Jump to solution

I tried to use my own ip that was generated by HLS. Everything worked well on HLS. It has 24 bits stream axi type data for one input and one output. I connected this block to PS with VDMA.

However, I'm new at here and have no clue how to use sdk.

Firstly, I initial both of VDMA and my IP. The result form config is fine.

However, when I get status form my IP as isIdle, isReady, and IsDone. I don't know what it means for Idle and Ready.

I got the data that my IP isn't idle but it is ready. What does it mean?

 

Another question is about VDMA. I connect my VDMA and my IP as figure. Is it valid? I want to send data from my PS to my IP block and then get the processed data back to PS. I confuse about write and read channel on VMDA.

Does write channel means send data from PS to IP? and vice versa for read channel?

 

The order of starting process is still confuse too.

Which order is appropriate one?

Start write channel -> start IP block -> wait until it done -> Start read channel   or

Start read channel -> start IP block -> wait until it done -> Start write channel

or we don't have to mind about order

 

Thank you for your help

Untitled.png
0 Kudos
1 Solution

Accepted Solutions
Scholar u4223374
Scholar
8,011 Views
Registered: ‎04-26-2015

Re: Status of driver from HLS

Jump to solution

The write channel is the one that writes data to RAM (ie reading from IP, aka S2MM). The read channel is the one that reads from RAM (ie writing to IP, MM2S). For a normal IP block, you'd start both VDMA channels and the HLS IP (in any order; the AXIS flow control keeps it all happy), wait until they all finish, and then retrieve the output data from RAM. The only time you'd only start one VDMA channel is if the HLS IP has enough internal buffering for the entire image - which is pretty rare.

 

From UG902:

 

Idle means that the design is waiting to be started.

 

Ready means that the IP core has finished reading inputs, but may still have processing to do before the outputs are produced. Once Ready is asserted, you can change the inputs and that won't have any effect on the block output.

 

Done means that the IP has finished processing and all outputs are valid. Done is a clear-on-read bit; if you read it once and it reports "true", it'll then report "false" for all subsequent reads until the design is restarted and finishes again.

 

For image processing IP (where the pipeline depth is insignificant compared to the total number of cycles) you can probably just use the Idle bit to control the IP. If it's reporting Idle, go ahead and restart it.

View solution in original post

0 Kudos
3 Replies
Scholar u4223374
Scholar
8,012 Views
Registered: ‎04-26-2015

Re: Status of driver from HLS

Jump to solution

The write channel is the one that writes data to RAM (ie reading from IP, aka S2MM). The read channel is the one that reads from RAM (ie writing to IP, MM2S). For a normal IP block, you'd start both VDMA channels and the HLS IP (in any order; the AXIS flow control keeps it all happy), wait until they all finish, and then retrieve the output data from RAM. The only time you'd only start one VDMA channel is if the HLS IP has enough internal buffering for the entire image - which is pretty rare.

 

From UG902:

 

Idle means that the design is waiting to be started.

 

Ready means that the IP core has finished reading inputs, but may still have processing to do before the outputs are produced. Once Ready is asserted, you can change the inputs and that won't have any effect on the block output.

 

Done means that the IP has finished processing and all outputs are valid. Done is a clear-on-read bit; if you read it once and it reports "true", it'll then report "false" for all subsequent reads until the design is restarted and finishes again.

 

For image processing IP (where the pipeline depth is insignificant compared to the total number of cycles) you can probably just use the Idle bit to control the IP. If it's reporting Idle, go ahead and restart it.

View solution in original post

0 Kudos
Moderator
Moderator
4,464 Views
Registered: ‎04-17-2011

Re: Status of driver from HLS

Jump to solution
Moving to HLS Board.
Regards,
Debraj
----------------------------------------------------------------------------------------------
Kindly note- 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.
----------------------------------------------------------------------------------------------
0 Kudos
Observer pint1223
Observer
4,421 Views
Registered: ‎11-23-2016

Re: Status of driver from HLS

Jump to solution

Thank you for your help. However, it seems like my IP never be idle state. It is 0 all the time.

I initialize IP then start IP unless it isn't idle. Did I do anything wrong? 

1.png
2.png
0 Kudos