efuse_read_interface

Read fuse words through the fuse-command interface with timeouts and sticky errors.

read_go_i starts a read from read_addr_i; read_back_data_o captures the response. read_addr_oob_i is computed upstream against the full-width CSR field because casting to efuse_addr_t truncates upper bits. A start that secure_tm_blocked_i or read_locked_i refuses completes with an error without issuing a command; a lock refusal also pulses read_blocked_o. An outstanding read ends with an error on efuse_req_err_i, a bad bank response or the optional read_req_timeout_*. Sticky address errors clear with read_addr_error_clear_i.

Ports

Table 1. Ports
NameDirectionTypeDescription
clk_iinputlogicSystem clock.
rst_niinputlogicActive-low asynchronous reset.
test_en_iinputlogicDFT test enable; not used in this module.
read_enable_iinputlogicRead operations allowed; a start while low completes immediately with an error.
read_locked_iinputlogicread_addr_i is read locked; a start then completes with an error.
read_blocked_ooutputlogicOne-cycle pulse when read_locked_i refuses a start.
read_addr_iinputefuse_addr_tFuse bit address to read, sampled on a start.
read_go_iinputlogicStarts a read operation when high in the idle state.
read_busy_ooutputlogicHigh while a read operation waits for its response.
read_done_ooutputlogicSet when the last read operation completed; cleared by the next start.
read_error_ooutputlogicSet when the last read operation failed: rejected, blocked, errored by the bank, or timed out.
read_back_data_ooutputefuse_data_tData word from the last read; zero after an out-of-bounds, refused, errored or timed-out read, and unchanged when a start is rejected because read_enable_i is low.
read_addr_oob_iinputlogicHigh when the full-width CSR read address is beyond the fuse array; a start is then rejected.
read_addr_error_ooutputlogicSticky out-of-bounds read address error.
read_addr_error_clear_iinputlogicClears the sticky address error; a same-cycle new error takes priority.
efuse_req_err_iinputlogicGuard lock error; ends an outstanding read with an error.
secure_tm_blocked_iinputlogicGuard secure-test-mode block; refuses a start with an error but does not end a read already issued.
read_req_timeout_en_iinputlogicEnables the response timeout for read operations.
read_req_timeout_cycles_iinputlogic [27:0]Response timeout in clock cycles.
fuse_command_req_ooutputfuse_command_req_tRead command to the guard; valid only while waiting for the response.
fuse_command_resp_iinputfuse_command_resp_tFiltered response to the read command.
is_read_timeout_debug_ooutputlogicOne-cycle pulse when a read operation times out.