efuse_guard

Filter fuse commands against field locks, lifecycle-state rules, and RMA token checks.

HAS_LC_STATE distinguishes SEP (lifecycle field present) from SMC. LC_STATE_BIT_POSITION and TOKEN_MATCH_CODE locate and encode token checks; the SIP and chiplet token bit addresses are LC_STATE_BIT_POSITION+1 and +2.

Block program or read when shadow locks or failed RMA token matches apply; secure_tm_i can force a secure-TM block.

The outputs report the filtering result:

  • Filtered command req/resp pass allowed traffic.
  • efuse_err_o sticks until error_clear_i.
  • Lock and secure-TM status are exported.

Parameters

Table 1. Parameters
NameTypeDefaultDescription
EFUSE_FIELDSint unsigned1eFuse field-map entry count.
EFUSE_ADDR_WIDTHint unsigned12eFuse byte-address width.
HAS_LC_STATEbit1'b0Set for SEP: exempts field index 0 from locks and gates the RMA token bits on token matches; clear for SMC.
LC_STATE_BIT_POSITIONint unsigned0Bit address of the lifecycle-state field.
TOKEN_MATCH_CODElogic [5:0]6'b010101Token-match status code that permits programming the corresponding RMA token bit.
SipTokenBitAddrefuse_addr_tefuse_addr_t'(LC_STATE_BIT_POSITION + 1)Bit address of the RMA SiP token bit.
ChipletTokenBitAddrefuse_addr_tefuse_addr_t'(LC_STATE_BIT_POSITION + 2)Bit address of the RMA chiplet token bit.

Ports

Table 2. Ports
NameDirectionTypeDescription
clk_iinputlogicSystem clock.
rst_niinputlogicActive-low synchronous reset; clears efuse_err_o.
secure_tm_iinputlogicSecure test mode, active-high; blocks all fuse traffic without raising the error.
efuse_field_map_iinputefuse_pkg::rule_t [EFUSE_FIELDS-1:0]Per-field byte ranges and lock indices used to find the lock bits for a target address.
rma_sip_token_match_iinputlogic [5:0]RMA SiP token-match status code from token processing.
rma_chiplet_token_match_iinputlogic [5:0]RMA chiplet token-match status code from token processing.
efuse_err_ooutputlogicSticky error set when a program or read is blocked by a lock or, for a program, by a missing RMA token match; not set by secure test mode.
error_clear_iinputlogicClears the sticky error; a same-cycle new error takes priority.
fuse_command_req_iinputfuse_command_req_tFuse command selected by the controller, before filtering.
fuse_command_req_filtered_ooutputfuse_command_req_tFuse command to the SHIM; zero when blocked.
fuse_command_resp_iinputfuse_command_resp_tFuse command response from the SHIM.
fuse_command_resp_filtered_ooutputfuse_command_resp_tFuse command response to the controller; zero when blocked.
shadow_regs_iinputefuse_map_tShadow eFuse map supplying the per-field read and write lock bits.
is_programing_iinputlogicHigh while the program interface has a command outstanding.
program_target_addr_iinputefuse_addr_tFuse bit address of the outstanding program command.
is_reading_iinputlogicHigh while the read interface has a command outstanding.
read_target_addr_iinputefuse_addr_tFuse bit address of the outstanding read command.
is_read_locked_ooutputlogicHigh when the read target address falls in a read-locked field.
is_program_locked_ooutputlogicHigh when the program target address is write locked or is an RMA token bit without a token match.
secure_tm_blocked_ooutputlogicHigh while secure test mode blocks fuse traffic.