Module axi_atop_filter
AXI Atomic Operation Filter
This module filters atomic operations (ATOPs), i.e., write transactions that
have a non-zero aw_atop
value, from its slv
to its mst
port. This module guarantees that:
-
aw_atop
is always zero on themst
port; -
write transactions with non-zero
aw_atop
on theslv
port are handled in conformance with the AXI standard by replying to such write transactions with the proper B and R responses. The response code on atomic operations that reach this module is always SLVERR (implementation-specific, not defined in the AXI standard).
This module is intended to be placed between masters that may issue ATOPs and slaves that do not support ATOPs. That way, this module ensures that the AXI protocol remains in a defined state on systems with mixed ATOP capabilities.
Interface Note
The AXI standard specifies that there may be no ordering requirements between different atomic bursts (i.e., a burst started by an AW with ATOP other than 0) and none between atomic bursts and non-atomic bursts [E2.1.4]. That is, an atomic burst may never have the same ID as any other write or read burst that is ongoing at the same time.
Parameters
AxiIdWidth
AxiMaxWriteTxns
req_t
resp_t
COUNTER_WIDTH
Ports
clk_i
rst_ni
slv_req_i
slv_resp_o
mst_req_o
mst_resp_i
Types
cnt_t | |
w_state_e | |
r_state_e | |
id_t | |
len_t | |
r_resp_cmd_t |