zeroer

Write zeros over a programmed AXI address range from a ctrl port.

zeroer_ctrl_axi_* programs DEST_ADDR and SIZE in bytes, and a write to CTRL_STATUS starts the clear unless SIZE is 0; mst_axi_* performs the clears. The clears are INCR write bursts of zeros at full data width, with ID 0, at most 256 beats, never crossing a 4 KiB boundary, and strobes limited to the range. The master never reads and ignores write response codes. An illegal FSM state locks the zeroer busy until reset. With cg_enable_i high, the clear FSM clock runs only while busy and the register clock is gated after ctrl-bus inactivity; zeroer_intp_o signals completion.

Parameters

Table 1. Parameters
NameTypeDefaultDescription
CTRL_ADDR_WIDTHint unsigned5Ctrl AXI address width.
CTRL_DATA_WIDTHint unsigned64Ctrl AXI data width.
CTRL_ID_WIDTHint unsigned8Ctrl AXI ID width.
CTRL_USER_WIDTHint unsigned12Ctrl AXI user width.
AXI_ADDR_WIDTHint unsigned56Master AXI address width; DEST_ADDR is truncated to it.
AXI_DATA_WIDTHint unsigned64Master AXI data width.
AXI_USER_WIDTHint unsigned12Master AXI user width.
MST_ID_WIDTHint unsigned3Master AXI ID width.
CG_HYSTERESIS_Wint unsigned6Clock-gater hysteresis width.

Ports

Table 2. Ports
NameDirectionTypeDescription
clk_iinputlogicSystem clock; source of both gated clocks.
rst_niinputlogicAsync reset, active-low.
test_en_iinputlogicDFT test enable; forces both clock gates open.
cg_enable_iinputlogicEnable gating of the clear FSM and register clocks.
cg_hysteresis_iinputlogic [CG_HYSTERESIS_W-1:0]Idle cycles before gating the register clock.
zeroer_busy_ooutputlogicZeroer has work in flight: a start, an active clear, or writes awaiting a response. Also high in the error state.
zeroer_intp_ooutputlogicCompletion interrupt: a one-cycle pulse when busy falls, if CTRL_STATUS.INT_EN is set.
zeroer_ctrl_axi_req_iinputzeroer_ctrl_req_tCtrl AXI slave request.
zeroer_ctrl_axi_resp_ooutputzeroer_ctrl_resp_tCtrl AXI slave response.
mst_axi_req_ooutputmst_req_tClearing AXI master request.
mst_axi_resp_iinputmst_resp_tClearing AXI master response.
zeroer_clk_active_ooutputlogicRegister clock is running.
zeroer_bus_active_ooutputlogicCtrl bus has a transaction in progress.