The user application can abort the transfer of a completion transaction on the
completer completion interface at any time during the transfer of the payload by
asserting the discontinue signal in the s_axis_cc_tuser bus. The integrated block nullifies the corresponding TLP
on the link to avoid data corruption.
The user application can assert this signal in any cycle during the transfer, when the
Completion being transferred has an associated payload. The user application can either
choose to terminate the packet prematurely in the cycle where the error was signaled (by
asserting s_axis_cc_tlast), or can continue until all bytes of the
payload are delivered to the integrated block. In the latter case, the integrated block
treats the error as sticky for the following beats of the packet, even if the user
application deasserts the discontinue signal before reaching the end of the packet.
The discontinue signal can be asserted only when s_axis_cc_tvalid is
active-High. The integrated block samples this signal when
s_axis_cc_tvalid and s_axis_cc_tready are both
asserted. Thus, after assertion, the discontinue signal should not be deasserted until
s_axis_cc_tready is asserted.
When the integrated block is configured as an Endpoint, this error is reported by the integrated block to the Root Complex to which it is attached, as an Uncorrectable Internal Error using the Advanced Error Reporting (AER) mechanisms.