Non-Posted transactions with no payload (memory read requests, I/O read
requests, Configuration read requests) are transferred across the requester request
interface in the same manner as a memory write request, except that the AXI4-Stream packet contains only the 16-byte descriptor. The following
figure illustrates the transfer of a memory read request across the requester request
interface. The signal s_axis_rq_tvalid
must remain
asserted over the duration of the packet. The core are pull down s_axis_rq_tready
to prolong the beat. The signal s_axis_rq_tlast
must be set in the last beat of the packet, and the bits
in s_axis_rq_tkeep
must be set in all Dword positions
where a descriptor is present.
The user application must indicate the valid bytes in the first and last Dwords
of the data block using the fields first_be[15:0]
and
last_be[15:0]
, respectively, in the s_axis_rq_tuser
bus. For the special case of a zero-length
memory read, the length of the request must be set to one Dword, with both first_be[15:0]
and last_be[15:0]
set to all 0s. The user application must also communicate
the offset of the first Dword of the payload of the resulting Completion, when delivered
over the requester completion interface, in the addr_offset[15:0]
field of the s_axis_rq_tuser
bus. In Straddled case, addr_offset[3:2]
, first_be[7:4]
, and
last_be[7:4]
are used to indicate second TLP
information while addr_offset[1:0]
, first_be[3:0]
, and last_be[3:0]
are used to indicate the first TLP information on that data
beat.