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.