On the RQ interface, the user application delivers each TLP as an AXI4-Stream packet. The packet starts with a 128-bit descriptor, followed by data in the case of TLPs with a payload. The following figure shows the signals associated with the requester request interface.
The RQ interface supports two distinct data alignment modes for
transferring payloads. In the Dword-aligned mode, the user logic must provide the first Dword
of the payload immediately after the last Dword of the descriptor. It must also set the bits
in first_be[3:0]
to indicate the valid bytes in the first Dword and the bits
in last_be[3:0]
(both part of the bus s_axis_rq_tuser
) to
indicate the valid bytes in the last Dword of the payload. In the address-aligned mode, the
user application must start the payload transfer in the beat following the last Dword of the
descriptor, and its first Dword can be in any of the possible Dword positions on the datapath.
The user application communicates the offset of the first Dword on the datapath using the
addr_offset[2:0]
signals in s_axis_rq_tuser
. As in the
case of the Dword-aligned mode, the user application must also set the bits in
first_be[3:0]
to indicate the valid bytes in the first Dword and the bits
in last_be[3:0]
to indicate the valid bytes in the last Dword of the
payload.
When the Transaction Processing Hint Capability is enabled in
the integrated block, the user application can provide an optional Hint with any memory
transaction using the tph_* signals included in the s_axis_rq_tuser
bus. To
supply a Hint with a request, the user logic must assert tph_present
in the
first beat of the packet, and provide the TPH Steering Tag and Steering Tag Type on
tph_st_tag[7:0]
and tph_st_type[1:0]
, respectively.
Instead of supplying the value of the Steering Tag to be used, the user application also has
the option of providing an indirect Steering Tag. This is done by setting the
tph_indirect_tag_en
signal to 1 when tph_present
is
asserted, and placing an index on tph_st_tag[7:0]
, instead of the tag value.
The integrated block then reads the tag stored in its Steering Tag Table associated with the
requester Function at the offset specified in the index and inserts it in the request TLP.