efuse_shadow_regs

Mirror sensed fuse bits in a shadow file and serve the MAP APB window under lock controls.

After reset it issues one fuse READ command covering the whole shadow file, stores the streamed response words, then serves APB reads/writes through the access control. CLASS1_SHADOW_RANGES places words in separately named storage for scan exclusion; SECRET_SHADOW_RANGES selects the words that secure_tm_i zeroes on the hardware output. TOKEN_MATCH_CODE and the RMA token match inputs gate lifecycle-state transitions. fuse_sense_done_o marks initial sense complete for token processing; locked_field_access_interrupt_o reports locked-field APB hits.

Parameters

Table 1. Parameters
NameTypeDefaultDescription
FUSE_MAP_REG_MAP_BASE_ADDRint unsigned32'h0Base address of the MAP window; not used in this module, which decodes window offsets.
SHADOW_REG_BITSint unsigned24576Shadow register file size in bits.
SHADOW_REG_BYTESint unsignedSHADOW_REG_BITS / 8Shadow register file size in bytes.
SHADOW_REG_WORD_WIDTHint unsigned32Shadow word width in bits.
EFUSE_FIELDSint unsigned1eFuse field-map entry count.
REG_ADDR_WIDTHint unsigned12Width of the MAP window byte offset on apb_req_paddr_i.
HAS_LC_STATEbit1'b0Set for SEP: keeps the lifecycle state, differentially encoded, in shadow word ShadowIdxLcState and applies token-gated lifecycle transitions; clear for SMC.
CLASS1_SHADOW_RANGESefuse_pkg::shadow_word_range_map_t'0Class-1 shadow word ranges, stored in the separately named *_n0_scan array; the lifecycle-state word is always written there, so it must be covered when HAS_LC_STATE is set.
SECRET_SHADOW_RANGESefuse_pkg::shadow_word_range_map_t'0Secret shadow ranges masked under secure_tm.
TOKEN_MATCH_CODElogic [5:0]6'b010101Token-match code that permits the RMA lifecycle-state transitions.
LcStateWidthint unsignedefuse_pkg::LcStateRawWidthLifecycle-state field width; fixed by the encoding in efuse_pkg.
NumShadowWordsint unsignedSHADOW_REG_BITS / SHADOW_REG_WORD_WIDTHShadow file word count.
ShadowEfuseWidthint unsigned$clog2(NumShadowWords)Shadow word index width.

Ports

Table 2. Ports
NameDirectionTypeDescription
clk_iinputlogicSystem clock.
rst_niinputlogicActive-low asynchronous reset; its release starts fuse sensing.
test_en_iinputlogicDFT test enable; not used in this module.
security_disable_iinputlogicSecurity disable, active-high; stops loading from the fuses and opens APB access to the shadow file before sensing completes.
secure_tm_iinputlogicSecure test mode, active-high; zeroes the secret words on shadow_efuse_o and adds the secure-test-mode lock to write checks.
efuse_field_map_iinputefuse_pkg::rule_t [EFUSE_FIELDS-1:0]Per-field byte ranges, lock indices, and software lock bits for the access control.
apb_req_paddr_iinputlogic [REG_ADDR_WIDTH-1:0]Byte offset within the MAP window.
apb_req_pprot_iinputlogic [2:0]APB protection attributes.
apb_req_psel_iinputlogicAPB select for the MAP window.
apb_req_penable_iinputlogicAPB access phase.
apb_req_pwrite_iinputlogicAPB transfer direction, high for a write.
apb_req_pwdata_iinputlogic [31:0]Write data; set-only fields OR it into the stored bits.
apb_req_pstrb_iinputlogic [3:0]Byte lane enables for the write.
apb_resp_ooutputefuse_apb_resp_tAPB response; errors with 0xBADCAB1E before fuse sensing completes or beyond the shadow file, and returns 0xBADCAB1E without an error for a locked access.
fuse_sense_done_ooutputlogicSet once the sense read has returned a response for every shadow word, errored or not; held until reset.
shadow_efuse_ooutputefuse_map_tShadow eFuse map, with the secret words zeroed while secure test mode is active.
rma_chiplet_token_match_iinputlogic [5:0]RMA chiplet token-match code; a match permits setting lifecycle-state bit 2 once bit 1 is set.
rma_sip_token_match_iinputlogic [5:0]RMA SiP token-match code; a match permits setting lifecycle-state bit 1.
fuse_command_req_ooutputfuse_command_req_tRegistered sense command: one READ from bit address 0 for every shadow word; valid stays high once issued.
fuse_command_resp_iinputfuse_command_resp_tStreamed sense responses; each valid response advances the shadow index, and one without an error status is stored there.
is_write_locked_ooutputlogicHigh while an APB write is blocked by a lock.
is_write_setup_only_ooutputlogicHigh when the APB address falls in a set-only field.
is_lc_state_access_ooutputlogicHigh when the APB address falls in the lifecycle-state field.
is_read_locked_ooutputlogicHigh when the APB address falls in a read-locked field.
locked_field_access_interrupt_ooutputlogicHigh during an APB access to the MAP window that a lock blocks.