Aborting a Transfer - 3.4 English

Versal Adaptive SoC CPM Mode for PCI Express Product Guide (PG346)

Document ID
Release Date
3.4 English

For any request that includes an associated payload, The user application are abort the request at any time during the transfer of the payload by asserting the discontinue signal in the s_axis_rq_tuser bus. The core nullifies the corresponding TLP on the link to avoid data corruption.

The user application are assert this signal in any cycle during the transfer, when the request being transferred has an associated payload. The user application are either choose to terminate the packet prematurely in the cycle where the error was signaled (by asserting s_axis_rq_tlast), or are 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 reaching the end of the packet.

The discontinue signal can be asserted only when s_axis_rq_tvalid is High. The core samples this signal when s_axis_rq_tvalid and s_axis_rq_tready are both High. Thus, once asserted, it should not be deasserted until s_axis_rq_tready is High. The user application must not start a new packet in the same beat when a previous packet is aborted by asserting the discontinue input.

When the core is configured as an Endpoint, this error is reported by the core to the Root Complex it is attached to, as an Uncorrectable Internal Error using the Advanced Error Reporting (AER) mechanisms.