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: 
Contributor
Contributor
347 Views
Registered: ‎12-12-2018

QDMA C2H changing QID

Jump to solution

For the QDMA C2H interface, are we allowed to change QID in the middle of a single packet?

 

That is, have two transfers, each 8 beats long.

 

1. Send 2 beats on QID 0

2. Send 2 beats on QID 1

3. Send 2 beats on QID 0

4. Send 2 beats on QID 1

....

 

This seems to be typically allowed by streaming interfaces using TDEST, but it is unclear if this is OK wit QDMA. Our initial tests show that it is not.

 

CC: @deepeshm 

0 Kudos
1 Solution

Accepted Solutions
Xilinx Employee
Xilinx Employee
243 Views
Registered: ‎08-06-2008

Re: QDMA C2H changing QID

Jump to solution

We have discussed and concluded that this use case is not supported in the IP and there is no current plan to add the support in near future.

Thanks.

View solution in original post

3 Replies
Xilinx Employee
Xilinx Employee
308 Views
Registered: ‎08-06-2008

Re: QDMA C2H changing QID

Jump to solution

Basically you want to send a part of a packet using one queue and the remaining using another queue?

Could you let us know the use case for this type of transfer in your application?

This is not something we have tested but before making a conclusion, we would like to look into it first. We will get back to you.

In the meantime, it would be good to understand the use case.

Thanks.

0 Kudos
Contributor
Contributor
295 Views
Registered: ‎12-12-2018

Re: QDMA C2H changing QID

Jump to solution

@deepeshmI think the usecase is better described as: we would like to send 2 packets, 4096 bytes long, one on queue 1, the other on queue 2.

That said, the packets are not always available contiguously, and as such, we would like to send out the different portions of the packets as they are comming in. For ease of explanation, let us assume in this case that the packets are available in contiguous chunks of 1024 bytes.

I would like 1024 bytes of each packet to the QDMA engine at the same time. For each queue, TLAST is not asserted until the last of the 4096 bytes is sent out. The The C2H Streaming has the following traffic:

  1. Send 1024 bytes of Queue 0 (QID = 0), Total sent for Queue: 1024 bytes
  2. Send 1024 bytes of Queue 1 (QID = 1), Total sent for Queue: 1024 bytes
  3. Send 1024 bytes of Queue 0 (QID = 0), Total sent for Queue: 2048 bytes
  4. Send 1024 bytes of Queue 1 (QID = 1), Total sent for Queue: 2048 bytes
  5. Send 1024 bytes of Queue 0 (QID = 0), Total sent for Queue: 3072 bytes
  6. Send 1024 bytes of Queue 1 (QID = 1), Total sent for Queue: 3072 bytes
  7. Send 1024 bytes of Queue 0 (QID = 0), Total sent for Queue: 4096 bytes, TLAST asserted on last beat
  8. Send 1024 bytes of Queue 1 (QID = 1), Total sent for Queue: 4096 bytes, TLAST asserted on last beat

The application is that we have multiple realt time data sources all begin funnled through the PCIe interface. We identify their original via QID (TDEST on a standard AXI Stream interface).

 

From our testing, it seems that we have to send out the packets in the following order:

 

  1. Send 1024 bytes of Queue 0 (QID = 0), Total sent for Queue: 1024 bytes
  2. Send 1024 bytes of Queue 0 (QID = 0), Total sent for Queue: 2048 bytes
  3. Send 1024 bytes of Queue 0 (QID = 0), Total sent for Queue: 3072 bytes
  4. Send 1024 bytes of Queue 0 (QID = 0), Total sent for Queue: 4096 bytes, TLAST asserted on last beat
  5. Send 1024 bytes of Queue 1 (QID = 1), Total sent for Queue: 1024 bytes
  6. Send 1024 bytes of Queue 1 (QID = 1), Total sent for Queue: 2048 bytes
  7. Send 1024 bytes of Queue 1 (QID = 1), Total sent for Queue: 3072 bytes
  8. Send 1024 bytes of Queue 1 (QID = 1), Total sent for Queue: 4096 bytes, TLAST asserted on last beat

This less than ideal since now we have to spend resources buffering the packets into contiguous chunks, but dooable.

0 Kudos
Xilinx Employee
Xilinx Employee
244 Views
Registered: ‎08-06-2008

Re: QDMA C2H changing QID

Jump to solution

We have discussed and concluded that this use case is not supported in the IP and there is no current plan to add the support in near future.

Thanks.

View solution in original post