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.