Name | I/O | Width | Description |
---|---|---|---|
s_axis_cc_tdata | I | 512 | Completion data from the user application to the PCIe core. |
s_axis_cc_tuser | I | 81 | This is a set of signals containing sideband
information for the TLP being transferred. These signals are valid
when s_axis_cc_tvalid is High. The individual signals in this set are described in the following table. |
s_axis_cc_tlast | I | 1 | The user application must assert this signal in
the last cycle of a packet to indicate the end of the packet. When
the TLP is transferred in a single beat, the user application must
set this bit in the first cycle of the transfer. This input is used by the core only when the straddle option is disabled. When the straddle option is enabled, the core ignores the setting of this input, using instead the is_sop/is_eop signals in the s_axis_cc_tuser bus to determine the start and end of TLPs. |
s_axis_cc_tkeep | I | 16 | The assertion of bit i of this bus during a transfer indicates to the
core that Dword i of the
s_axis_cc_tdata bus contains valid data. The user logic must set
this bit to 1 contiguously for all Dwords starting from the first
Dword of the descriptor to the last Dword of the payload. Thus,
s_axis_cc_tdata must be set to all 1s in all beats of a packet,
except in the final beat when the total size of the packet is not a
multiple of the width of the data bus (both in Dwords). This is true
for both Dword-aligned and 128b address-aligned modes of payload
transfer. The tkeep bits are valid only when straddle is not enabled on the CC interface. When straddle is enabled, the core ignores the setting of these bits when receiving data across the interface. The user logic must set the is_sop/is_eop signals in the s_axis_cc_tuser bus in that case to signal the start and end of TLPs transferred over the interface. |
s_axis_cc_tvalid | I | 1 | The user application must assert this output whenever it is driving valid data on the s_axis_cc_tdata bus. The user application must keep the valid signal asserted during the transfer of a packet. The core paces the data transfer using the s_axis_cc_tready signal. |
s_axis_cc_tready | O | 4 | Activation of this signal by the PCIe core
indicates that it is ready to accept data. Data is transferred
across the interface when both s_axis_cc_tvalid and s_axis_cc_tready
are asserted in the same cycle. If the core deasserts the ready signal when the valid signal is High, the user logic must maintain the data on the bus and keep the valid signal asserted until the core has asserted the ready signal. With this output port, each bit indicates the same value, so the user logic can use any of the bit. |
Bit Index | Name | Width | Description |
---|---|---|---|
1:0 | is_sop[1:0] | 2 | Signals the start of a new TLP in this beat. These outputs are set in
the first beat of a TLP. When straddle is disabled, only is_sop[0]
is valid. When straddle is enabled, the settings are as follows:
This field is used by the core only when the straddle option is enabled. When straddle is disabled, the core uses tlast to determine the first beat of an incoming TLP. |
3:2 | is_sop0_ptr[1:0] | 2 | Indicates the position of the first byte of the first TLP starting in
this beat:
This field is used by the core only when the straddle option is enabled. When straddle is disabled, the user logic must always start a TLP in byte lane 0. |
5:4 | is_sop1_ptr[1:0] | 2 | Indicates the position of the first byte of the second TLP starting in
this beat:
This input is used only when the straddle option is enabled on the CC interface. You can straddles two TLPs in the same beat. |
7:6 | is_eop[1:0] | 2 | Signals that a TLP is ending in this beat. These
outputs are set in the final beat of a TLP. When straddle is
disabled, only is_eop[0] is valid. When straddle is enabled, the
settings are as follows:
This field is used by the core only when the straddle option is enabled. When straddle is disabled, the core uses tlast and tkeep to determine the ending beat and position of EOP. |
11:8 | is_eop0_ptr[3:0] | 4 | Offset of the last Dword of the first TLP ending in this beat. This
output is valid when is_eop[0] is asserted. This field is used by the core only when the straddle option is enabled. |
15:12 | is_eop1_ptr[3:0] | 4 | Offset of the last Dword of the second TLP ending in this beat. This
output is valid when is_eop[1] is asserted. This field is used by the core only when the straddle option is enabled. |
16 | discontinue | 1 | This signal can be asserted by the user application during a transfer
if it has detected an error (such as an uncorrectable ECC error
while reading the payload from memory) in the data being transferred
and needs to abort the packet. The core nullifies the corresponding
TLP on the link to avoid data corruption. The user logic can assert this signal in any beat during the transfer except the first beat of the TLP. It can either choose to terminate the packet prematurely in the cycle where the error was signaled, or continue until all bytes of the payload are delivered to the core. In the latter case, the core treats the error as sticky for the following beats of the packet, even if the user logic deasserts the discontinue signal before the end of the packet. The discontinue signal can be asserted only when s_axis_cc_tvalid is High. The core samples this signal only when s_axis_cc_tready is High. Thus, once asserted, it should not be deasserted until s_axis_cc_tready is High. When the straddle option is enabled on the CC interface, the user should not start a new TLP in the same beat when a TLP is ending with discontinue asserted. When the core is configured as an Endpoint, this error is also reported by the core to the Root Complex it is attached to, using Advanced Error Reporting (AER). |
80:17 | parity | 64 | Odd parity for the 256-bit data. When parity checking is enabled in
the core, user logic must set bit i of this bus to the odd parity computed for byte
i of s_axis_cc_tdata. On detection of a parity error, the core nullifies the corresponding TLP on the link and reports it as an Uncorrectable Internal Error. The parity bits can be permanently tied to 0 if parity check is not enabled in the core. |