cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
KevinYoung2
Newbie
Newbie
440 Views
Registered: ‎10-06-2020

srio_gen2 valid size: size field vs actual data payload size

Jump to solution

Hello,

I have a question about the srio_gen2 IP core.

I am designing hardware that is trying to send data to the srio_gen2 IP core via the "s_axis_ireq_tdata" bus.
An issue I found is: I am trying to send an sRIO packet in the HELLO format to the IP core on the "s_axis_ireq_tdata" bus. I have the size field set to a valid size as indicated in the srio_gen2 product guide. However, my data payload size does not necessarily reflect the size field and the reason is if I want to send a data payload size of 92 bytes (by NWRITE), I cannot write the size field in the header as 92 bytes. I have to write the size field as 95 (true size of 96 bytes - 1 gives the valid size of 95 bytes).

The product guide says "SRIO Gen2 core does not validate the size field against the actual packet size". I understood this as: as long as the size field is of some valid size as described in the product guide, then your payload size can be anything because the size field and payload size are not validated. And I thought if I just rounded the size field up to a valid size even if my actual payload size was smaller, the SRIO IP core would handle it.

My understanding to this may be wrong because I am experiencing issues with this in my testing. Is there a solution to this? If I wanted to send 92 bytes of data by NWRITE, do I have to break it into multiple valid size packets (64, 16, 8, and 4)? Or maybe if I wanted to send 92 bytes of data by NWRITE, I could specify the packet size field as 95 and just pad the remainder of the data I want with extra data?

I don't like either of these options because they may make my design a) more complex to build or b) Adding unnecessary data. Is there another solution to this or are these the options I am stuck with?

Thank you.

Untitled.png
0 Kudos
1 Solution

Accepted Solutions
KevinYoung2
Newbie
Newbie
371 Views
Registered: ‎10-06-2020

Resolved: According to the product guide, when performing NWRITEs, the size field must be a valid size. I happened to also send NWRITE requests of sizes that were only valid for reads, NREADs. By limiting myself to the specific valid size fields as specified, I was able to resolve this issue.

View solution in original post

0 Kudos
1 Reply
KevinYoung2
Newbie
Newbie
372 Views
Registered: ‎10-06-2020

Resolved: According to the product guide, when performing NWRITEs, the size field must be a valid size. I happened to also send NWRITE requests of sizes that were only valid for reads, NREADs. By limiting myself to the specific valid size fields as specified, I was able to resolve this issue.

View solution in original post

0 Kudos