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
| Name | Type | Default | Description |
|---|---|---|---|
OUTSTANDING_TX | int unsigned | 1 | Max outstanding transactions tracked; sizes the counter. |
OutstandingTxW | int unsigned | OUTSTANDING_TX > 1 ? $clog2(OUTSTANDING_TX) + 1 : 1 | Derived from OUTSTANDING_TX; the counter is one bit wider. |
Ports
| Name | Direction | Type | Description |
|---|---|---|---|
clk_i | input | logic | AXI clock. |
rst_ni | input | logic | Async reset, active-low. |
snoop_aw_valid_i | input | logic | Snooped AW valid. |
snoop_aw_ready_i | input | logic | Snooped AW ready. |
snoop_w_valid_i | input | logic | Snooped W valid; only keeps bus_active_o high. |
snoop_b_valid_i | input | logic | Snooped B valid. |
snoop_b_ready_i | input | logic | Snooped B ready. |
snoop_ar_valid_i | input | logic | Snooped AR valid. |
snoop_ar_ready_i | input | logic | Snooped AR ready. |
snoop_r_valid_i | input | logic | Snooped R valid. |
snoop_r_ready_i | input | logic | Snooped R ready. |
snoop_r_last_i | input | logic | Snooped R last. |
bus_active_o | output | logic | High while AW, W or AR valid is high or the count is nonzero. |
complete_aw_o | output | logic | Combinational pulse on each B handshake. |
complete_ar_o | output | logic | Combinational pulse on each R handshake with last set. |
req_count_q_o | output | logic [OutstandingTxW:0] | Registered count of open write and read requests. |