
Figure 42: Transfer of a Completion with No Data on the Requester Completion
Interface
The entire transfer of the Completion TLP takes only a single beat on the interface. The core
keeps the signal
m_axis_rc_tvalid
asserted over the duration of the packet. The user logic
can prolong a beat at any time by pulling down
m_axis_rc_tready
. The AXI4-Stream
interface signals
m_axis_rc_tkeep
(one per Dword position) indicate the valid descriptor
Dwords in the packet. That is, the
m_axis_rc_tkeep
bits are set to 1 contiguously from the
first Dword of the descriptor until its last Dword. The signal
m_axis_rc_tlast
is always
asserted, indicating that the packet ends in its current beat.
The
m_axi_rc_tuser
bus also includes a signal
is_sop[0]
, which is asserted in the first beat
of every packet. The user logic are optionally use this signal to qualify the start of the descriptor
on the interface. When the straddle option is not in use, none of the other sop and eop
indications within
m_axi_rc_tuser
are relevant to the transfer of Completions.
Transfer of Completions with Data
In the Dword-aligned mode, the transfer starts with the three descriptor Dwords, followed
immediately by the payload Dwords. The entire TLP, consisting of the descriptor and payload, is
transferred as a single AXI4-Stream packet. Data within the payload is always a contiguous
stream of bytes when the length of the payload exceeds two Dwords. The positions of the first
valid byte within the first Dword of the payload and the last valid byte in the last Dword can then
be determined from the Lower Address and Byte Count fields of the Request Completion
Descriptor. When the payload size is 2 Dwords or less, the valid bytes in the payload are not be
contiguous. In these cases, the user logic must store the First Byte Enable and the Last Byte
Enable fields associated with each request sent out on the requester request interface and use
them to determine the valid bytes in the completion payload. The user logic are optionally use
the byte enable outputs
byte_en[63:0]
within the
m_axi_rc_tuser
bus to determine the
valid bytes in the payload, in the cases of both contiguous and non-contiguous payloads.
Chapter 4: Designing with the Core
PG346 (v3.3) November 16, 2022
CPM Mode for PCI Express
177