Name | I/O | Width | Description |
---|---|---|---|
pcie0_s_axis_cc_tdata pcie1_s_axis_cc_tdata | I | 1024 | Completion data from the user application to the PCIe core. |
pcie0_s_axis_cc_tuser pcie1_s_axis_cc_tuser | I | 165 | This is a set of signals containing sideband information for the TLP
being transferred. These signals are valid when
pcie(n)_s_axis_cc_tvalid is High. The individual signals in this set are described in the following table. |
pcie0_s_axis_cc_tlast pcie1_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 pcie(n)_s_axis_cc_tuser bus to determine the start and end of TLPs. |
pcie0_s_axis_cc_tkeep pcie1_s_axis_cc_tkeep | I | 32 | The assertion of bit i of this
bus during a transfer indicates to the core that Dword i of the pcie(n)_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,
pcie(n)_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 pcie(n)_s_axis_cc_tuser bus in that case to signal the start and end of TLPs transferred over the interface. |
pcie0_s_axis_cc_tvalid pcie1_s_axis_cc_tvalid | I | 1 | The user application must assert this output whenever it is driving valid data on the pcie(n)_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 pcie(n)_s_axis_cc_tready signal. |
pcie0_s_axis_cc_tready pcie1_s_axis_cc_tready | O | 1 | Activation of this signal by the PCIe core indicates that it is ready
to accept data. Data is transferred across the interface when both
pcie(n)_s_axis_cc_tvalid and pcie(n)_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. |
Bit Index | Name | Width | Description |
---|---|---|---|
3:0 | is_sop[3:0] | 4 | 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. |
5:4 | is_sop0_ptr[1:0] | 2 | Location of first SOP in the beat:
|
7:6 | is_sop1_ptr[1:0] | 2 | Location of second SOP in the beat:
|
9:8 | is_sop2_ptr[1:0] | 2 | Location of third SOP in the beat:
|
11:10 | is_sop3_ptr[1:0] | 2 | Location of fourth SOP in the beat:
|
15:12 | is_eop[3:0] | 4 | Indicates that a TLP is ending in this beat.
These outputs are set in the final beat of a TLP. When straddle is
enabled, the settings are as follows:
The use of this signal is optional for the user logic when the straddle option is not enabled, because tlast Is asserted in the final beat of a TLP. |
20:16 | is_eop0_ptr[4:0] | 5 | 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. |
25:21 | is_eop1_ptr[4:0] | 5 | 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. |
30:26 | is_eop2_ptr[4:0] | 5 | Offset of the last Dword of the second TLP ending in this beat. This
output is valid when is_eop[2] is asserted. This field is used by the core only when the straddle option is enabled. |
35:31 | is_eop3_ptr[4:0] | 5 | Offset of the last Dword of the fourth TLP ending in this beat. This
output is valid when is_eop[3] is asserted. This field is used by the core only when the straddle option is enabled. |
36 | 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 pcie(n)_s_axis_cc_tvalid is High. The core samples this signal only when pcie(n)_s_axis_cc_tready is High. Thus, once asserted, it should not be deasserted until pcie(n)_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). |
164:37 | parity | 128 | Odd parity for the 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
pcie(n)_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. |