efuse_program_interface

Program one fuse bit through the fuse-command interface with optional read-back and timeouts.

program_go_i starts a program to program_addr_i with program_data_in_i; program_read_back_enable_i requests post-program read-back. program_addr_oob_i is computed upstream against the full-width CSR field because casting to efuse_addr_t truncates upper bits. Honors secure_tm_blocked_i, efuse_req_err_i, and optional program_req_timeout_* ; sticky address errors clear with program_addr_error_clear_i. is_programing_o and program_target_addr_o feed the guard while a program is active.

Parameters

Table 1. Parameters
NameTypeDefaultDescription
EFUSE_WORD_WIDTHunsigned32Program/read data word width; declared but not used in this module.

Ports

Table 2. Ports
NameDirectionTypeDescription
clk_iinputlogicSystem clock.
rst_niinputlogicActive-low asynchronous reset.
test_en_iinputlogicDFT test enable; not used in this module.
program_enable_iinputlogicProgram operations allowed; a start while low completes immediately with an error.
is_programing_ooutputlogicHigh while a program command is outstanding, for the guard.
program_target_addr_ooutputefuse_addr_tFuse bit address of the outstanding program command; zero when idle.
program_addr_iinputefuse_addr_tFuse bit address to program, sampled on a start.
program_data_in_iinputlogicBit value to program; a start with zero is rejected with an error.
program_go_iinputlogicStarts a program operation when high in the idle state.
program_read_back_enable_iinputlogicSelects the program-with-read-back command, which returns the programmed word.
program_busy_ooutputlogicHigh while a program operation waits for its response.
program_done_ooutputlogicSet when the last program operation completed; cleared by the next start.
program_error_ooutputlogicSet when the last program operation failed: rejected, blocked, errored by the bank, or timed out.
program_read_back_data_ooutputefuse_data_tData word returned with the last successful program response.
program_addr_oob_iinputlogicHigh when the full-width CSR program address is beyond the fuse array; a start is then rejected.
program_addr_error_ooutputlogicSticky out-of-bounds program address error.
program_addr_error_clear_iinputlogicClears the sticky address error; a same-cycle new error takes priority.
efuse_req_err_iinputlogicGuard lock error; ends an outstanding program with an error.
secure_tm_blocked_iinputlogicGuard secure-test-mode block; ends an outstanding program with an error.
program_req_timeout_en_iinputlogicEnables the response timeout for program operations.
program_req_timeout_cycles_iinputlogic [27:0]Response timeout in clock cycles.
fuse_command_req_ooutputfuse_command_req_tProgram command to the guard; valid only while waiting for the response.
fuse_command_resp_iinputfuse_command_resp_tFiltered response to the program command.
is_program_timeout_debug_ooutputlogicOne-cycle pulse when a program operation times out.