prim_axi_snoop

Snoop AXI handshakes and report bus activity plus outstanding counts.

Count a request when AW or AR valid rises, or stays high in the cycle after a handshake, and retire it on the B handshake or the R handshake carrying last. Drive bus_active_o high while AW, W or AR valid is asserted or any counted request is open. Pulse complete_aw_o on each B handshake and complete_ar_o on each last-beat R handshake. Export req_count_q_o for downstream hang detectors such as axi_hang_detector.

Parameters

Table 1. Parameters
NameTypeDefaultDescription
OUTSTANDING_TXint unsigned1Max outstanding transactions tracked; sizes the counter.
OutstandingTxWint unsignedOUTSTANDING_TX > 1 ? $clog2(OUTSTANDING_TX) + 1 : 1Derived from OUTSTANDING_TX; the counter is one bit wider.

Ports

Table 2. Ports
NameDirectionTypeDescription
clk_iinputlogicAXI clock.
rst_niinputlogicAsync reset, active-low.
snoop_aw_valid_iinputlogicSnooped AW valid.
snoop_aw_ready_iinputlogicSnooped AW ready.
snoop_w_valid_iinputlogicSnooped W valid; only keeps bus_active_o high.
snoop_b_valid_iinputlogicSnooped B valid.
snoop_b_ready_iinputlogicSnooped B ready.
snoop_ar_valid_iinputlogicSnooped AR valid.
snoop_ar_ready_iinputlogicSnooped AR ready.
snoop_r_valid_iinputlogicSnooped R valid.
snoop_r_ready_iinputlogicSnooped R ready.
snoop_r_last_iinputlogicSnooped R last.
bus_active_ooutputlogicHigh while AW, W or AR valid is high or the count is nonzero.
complete_aw_ooutputlogicCombinational pulse on each B handshake.
complete_ar_ooutputlogicCombinational pulse on each R handshake with last set.
req_count_q_ooutputlogic [OutstandingTxW:0]Registered count of open write and read requests.