The transfer of an Atomic Op request on the completer request interface is
similar to that of a memory write request. The payload for an Atomic Op can range from
one to eight Dwords, and its starting address is always aligned on a Dword boundary. The
transfer starts with the 128-bit descriptor, followed by the payload. When the
Dword-aligned mode is in use, the first payload Dword immediately follows the
descriptor. When the 128-bit address aligned mode is in use, the payload starts on bits
255:128, and its alignment is based on the address in the descriptor. The keep outputs
m_axis_cq_tkeep
m_axis_cq_tuser
also indicate the valid bytes in the payload. The First
Byte Enable and Last Byte Enable bits indicate the end of the payload. The
byte_en
signals in m_axis_cq_tuser
should not be used.
Because an Atomic Operation is a Non-Posted transaction, the user logic must respond to it with a Completion containing the result of the operation. Errors associated with the operation can be signaled to the requester by setting the Completion Status field in the completion descriptor to CA (Completer Abort) or UR (Unsupported Request), as is appropriate. The operation of the completer completion interface is described in 64/128/256-bit Completer Interface and 512-bit Completer Interface.