sep_crypto

Integrate SEP cryptographic accelerators, Key Manager, eFuse, lifecycle, and entropy paths.

Hosts OTBN, AES, HMAC, KMAC, Adams Bridge (only when SEP_ABR_EN is defined; otherwise its apertures answer DECERR), Key Manager, eFuse, lifecycle, and the internal TRNG behind the local-crossbar slave and isolation handshake with sep_reset_ctrl. Three 2:1 muxes, one per ext_trng_src_sel_i bit, choose between external TRNG stream i and internal DRBG stream i: leg 0 feeds the Key Manager, leg 1 the AES, KMAC and OTBN EDN clients, and leg 2 the entropy pool. The unselected DRBG stream is held (tready low) and the unselected external stream is drained (tready high). The native EDN client for sep_entropy_fifo is served by u_axis_edn_pool_s3c_scan from the muxed pool AXI-Stream leg so the pool draws from either the internal DRBG or the external TRNG. trng_entropy_clear_o clears the fabric entropy pool while the internal TRNG reset is active. Each *_bus_err_o is set by a TL-UL error response on that block's register bridge; in sep they are ORed onto one PIC source (see sep_pkg::periph_bus_err_e). SEP_SEC_DISABLE_TOKEN is replaced at synthesis with the netlist-embedded token digest. External TRNG AXI-Lite/Stream and eFuse shim interfaces leave for sep_ip_integration.

Parameters

Table 1. Parameters
NameTypeDefaultDescription
LATCHED_MEM_RDATAbit1'b11 if the Key Manager ROM and SRAM macros latch read data for look-ahead.
MASKING_ENbit1'b1Enables 2-share DOM masking in the Adams Bridge engine.
SRAM_LATENCYint unsigned1Adams Bridge SRAM read latency in cycles.
EXT_TRNG_NUM_AXISint unsigned3Number of external TRNG AXI-Stream ports and entropy muxes; must equal SepCryptoEdnEndpointCount (3).
SEP_SEC_DISABLE_TOKENbit [255:0]256'b0Netlist-embedded secure-disable token digest; replace at synthesis.

Ports

Table 2. Ports
NameDirectionTypeDescription
clk_iinputlogicSystem clock.
rst_niinputlogicActive-low power-on reset for the interconnect, eFuse, lifecycle, alert receivers and post-mux EDN adapters.
entropy_rosc_sample_clk_iinputlogicRing-oscillator sample clock for entropy_source; asynchronous to clk_i.
axil_sep_otp_jtag_req_iinputsep_efuse_pkg::efuse_axil_req_tOTP debug AXI-Lite manager interface.
axil_sep_otp_jtag_resp_ooutputsep_efuse_pkg::efuse_axil_resp_tResponse from the eFuse wrapper to the OTP debug manager.
sep_crypto_axi_req_iinputsep_pkg::sep_32_64_6_12_axi_req_tFull AXI4 slave from local crossbar.
sep_crypto_axi_resp_ooutputsep_pkg::sep_32_64_6_12_axi_resp_tResponse from the crypto interconnect to the local crossbar.
efuse_shim_axi_req_iinputsep_pkg::sep_32_64_6_12_axi_req_teFuse shim CSR leg, split out of the sep_external crossbar window.
efuse_shim_axi_resp_ooutputsep_pkg::sep_32_64_6_12_axi_resp_tResponse to the eFuse shim CSR leg, from the eFuse wrapper through the shim merge mux.
entropy_source_irq_ooutputlogicEntropy source interrupt.
ext_trng_axil_req_ooutputsep_pkg::sep_32_32_axil_req_tExternal TRNG AXI-Lite passthrough (to sep_ip_integration).
ext_trng_axil_resp_iinputsep_pkg::sep_32_32_axil_resp_tResponse from the external TRNG register interface.
ext_trng_axis_req_iinputsep_crypto_pkg::ext_trng_axis_req_tExternal TRNG AXI-Stream inputs (from sep_ip_integration).
ext_trng_axis_rsp_ooutputsep_crypto_pkg::ext_trng_axis_rsp_ttready to each external TRNG stream: the consumer's tready when selected, held high to drain the stream when not.
entropy_pool_edn_req_iinputedn_pkg::edn_req_tNative EDN client of the SEP entropy-pool FIFO (sep_entropy_fifo) that refills the pool. Served by u_axis_edn_pool_s3c_scan from the muxed pool AXI-Stream leg, so the pool draws from either the internal DRBG or the external TRNG.
entropy_pool_edn_rsp_ooutputedn_pkg::edn_rsp_tEntropy response to the pool's native EDN client, carrying the FIPS bit from the selected leg-2 stream.
trng_entropy_clear_ooutputlogicClears the fabric entropy pool while the internal TRNG reset is active; synchronized to clk_i and high during power-on reset.
efuse_bank_ctrl_req_ooutputsep_efuse_pkg::efuse_axil_req_teFuse wrapper AXI-Lite requests to the eFuse shim CSRs.
efuse_bank_ctrl_resp_iinputsep_efuse_pkg::efuse_axil_resp_tResponse from the eFuse shim CSRs.
efuse_shim_command_req_ooutputsep_efuse_pkg::fuse_command_req_teFuse read and program commands on the custom shim command interface.
efuse_shim_command_resp_iinputsep_efuse_pkg::fuse_command_resp_tShim response to the eFuse commands.
test_en_iinputlogicDFT test-enable (scan-enable).
scan_rst_niinputlogicDFT scan reset, active-low; bypasses the reset synchronizer.
sep_reset_niinputlogicActive-low SEP reset after the JTAG override, from sep_reset_ctrl; cold reset for the Key Manager.
sep_intermediate_reset_nooutputlogicActive-low SEP reset, synchronized to clk_i and released once fuse sense and the external boot sequence are done; to sep_reset_ctrl before the JTAG override.
secure_tm_req_iinputlogicSecure test mode request strap, latched into secure_tm_o.
ext_boot_seq_done_iinputlogicIntegration boot-sequence completion (memory repair and SMC straps); gates release of sep_intermediate_reset_no.
security_disable_ooutputlogicSecurity-disable status from eFuse token processing, active-high; exported to the SMC.
lc_state_ooutputlogic [2*sep_pkg::LcStateBitWidth-1:0]Differentially encoded lifecycle state from the eFuse shadow registers; exported to the SMC.
feat_ctrl_ooutputsep_efuse_pkg::sep_efuse_map_lc_disable_reg_tPer-feature enable vector (1 = enabled) derived from the LC state, the SiP and system disable fuses, and the DEMOTE registers; all ones while security is disabled, otherwise all zeros on an LC-state integrity error.
dbg_disable_ooutputsep_lifecycle_ctrl_pkg::dbg_disable_tPer-interface debug disables for the DTP, active-high (1 = disabled).
sep_fuse_dft_disable_ooutputlogicDisables the SEP fuse DFT access path, active-high; no functional consumer, provided for DFT insertion.
smc_fuse_dft_disable_ooutputlogicDisables the SMC fuse DFT access path, active-high; no functional consumer, provided for DFT insertion.
lc_sigint_err_ooutputlogicIntegrity error on the differentially encoded LC state; forces every feature enable off unless security is disabled.
shadow_regs_ooutputsep_efuse_pkg::efuse_map_teFuse shadow register contents; secret fields read as zero in secure test mode.
fuse_sense_done_ooutputlogicHigh once the shadow registers have been loaded from the fuses.
secure_tm_ooutputlogicLatched secure test mode, active-high; captured on the second clock edge after rst_ni release when security is disabled, otherwise on the rising edge of fuse sense done.
km_rom_mem_req_ooutputkm_intf_pkg::km_rom_mem_req_tKey Manager request to its 16 KiB ROM hard macro, instantiated at integration level.
km_rom_mem_rsp_iinputkm_intf_pkg::km_rom_mem_rsp_tRead data from the Key Manager ROM hard macro to the Key Manager.
km_sram_mem_req_ooutputkm_intf_pkg::km_sram_mem_req_tKey Manager request to its 32 KiB SRAM hard macro, instantiated at integration level.
km_sram_mem_rsp_iinputkm_intf_pkg::km_sram_mem_rsp_tRead data from the Key Manager SRAM hard macro to the Key Manager.
km_mbox_irq_to_sep_ooutputlogicKey Manager mailbox interrupt to the SEP host.
km_unrecoverable_err_ooutputlogicKey Manager unrecoverable fault, active-high: its CPU is in the trap state and no longer executing.
km_recoverable_err_ooutputlogicKey Manager recoverable-fault indication, from its KMCSR register bit.
isolate_req_iinputsep_pkg::sep_crypto_isolate_tPer-path isolation requests from sep_reset_ctrl, active-high.
isolated_ooutputsep_pkg::sep_crypto_isolate_tPer-path isolation acknowledge to sep_reset_ctrl, same layout as isolate_req_i; a bit is high once that path is isolated and its outstanding transactions have drained.
gated_rst_niinputsep_pkg::sep_sw_rst_tIsolation-sequenced software resets from sep_reset_ctrl (active-low).
lcc_demote_state_1_ooutputlogic [1:0]Differentially encoded DEMOTE_1.demote register bit, which re-opens debug feature bits [23:0] in TEST_DEV and PROD. Exported to the SMC.
lcc_demote_state_2_ooutputlogic [1:0]Differentially encoded DEMOTE_2.demote register bit, which re-opens debug feature bits [47:24] in TEST_DEV and PROD. Exported to the SMC.
ext_trng_src_sel_iinputlogic [EXT_TRNG_NUM_AXIS-1:0]Per-leg entropy source select: 1 selects external TRNG stream i, 0 the internal DRBG stream i (from sep_cpu_ctrl via sep_system_csr).
km_wipe_state_iinputlogicKey Manager emergency wipe control; a rising edge zeroes the Key Manager key state (from sep_cpu_ctrl via sep_system_csr).
intr_hmac_done_ooutputlogicHMAC done interrupt, to the SEP PIC.
intr_hmac_fifo_empty_ooutputlogicHMAC message FIFO empty interrupt.
intr_hmac_err_ooutputlogicHMAC error interrupt.
intr_kmac_done_ooutputlogicKMAC done interrupt, to the SEP PIC.
intr_kmac_fifo_empty_ooutputlogicKMAC message FIFO empty interrupt.
intr_kmac_err_ooutputlogicKMAC error interrupt.
intr_cs_cmd_req_done_ooutputlogicCSRNG command-request-done interrupt.
intr_cs_entropy_req_ooutputlogicCSRNG entropy-request interrupt.
intr_cs_hw_inst_exc_ooutputlogicCSRNG hardware-instance exception interrupt.
intr_cs_fatal_err_ooutputlogicCSRNG fatal-error interrupt.
intr_edn_cmd_req_done_ooutputlogicEDN command-request-done interrupt.
intr_edn_fatal_err_ooutputlogicEDN fatal-error interrupt.
intr_otbn_done_ooutputlogicOTBN done interrupt.
intr_abr_error_ooutputlogicAdams Bridge (PQC) error interrupt; held low when the engine is compiled out.
intr_abr_notif_ooutputlogicAdams Bridge notification interrupt, set on command completion; held low when the engine is compiled out.
sep_crypto_pka_imem_sram_req_ooutputsep_crypto_pkg::sep_crypto_pka_imem_sram_req_tOTBN instruction-memory request to the external IMEM SRAM.
sep_crypto_pka_imem_sram_rsp_iinputsep_crypto_pkg::sep_crypto_pka_imem_sram_rsp_tRead data from the external OTBN IMEM SRAM.
sep_crypto_pka_dmem_sram_req_ooutputsep_crypto_pkg::sep_crypto_pka_dmem_sram_req_tOTBN data-memory request to the external DMEM SRAM.
sep_crypto_pka_dmem_sram_rsp_iinputsep_crypto_pkg::sep_crypto_pka_dmem_sram_rsp_tRead data from the external OTBN DMEM SRAM.
abr_mem_req_ooutputsep_crypto_pkg::abr_mem_req_tAdams Bridge (PQC) requests to its external SRAMs, whose macros live in sep_ip_integration; tied to zero when the engine is compiled out.
abr_mem_rsp_iinputsep_crypto_pkg::abr_mem_rsp_tRead data from the Adams Bridge external SRAMs.
crypto_alert_ooutputlogicAggregated crypto alert: OR of the alert pulses and integrity failures of the 11 OpenTitan alert receivers (HMAC, OTBN, AES, KMAC, CSRNG, EDN).
sep_efuse_debug_ooutputlogic [9:0]eFuse controller debug flags: [0] shadow write locked, [1] shadow read locked, [2] program locked, [3] read locked, [4] write set-only, [5] LC-state access, [6] read timeout, [7] program timeout, [8] request error, [9] secure TM blocked.
sep_efuse_token_match_sip_debug_ooutputlogic [5:0]RMA SiP token match status code; 6'b010101 indicates a match.
sep_efuse_token_match_chiplet_debug_ooutputlogic [5:0]RMA chiplet token match status code; 6'b010101 indicates a match.
locked_field_access_interrupt_ooutputlogicInterrupt raised when an access targets a locked eFuse field.
token_match_fault_ooutputlogicToken Comparator Redundancy Fault Interrupt.
aes_bus_err_ooutputlogicSticky AES register-bridge fault; held until aes_bus_err_clr_i.
hmac_bus_err_ooutputlogicSticky HMAC register-bridge fault; held until hmac_bus_err_clr_i.
kmac_bus_err_ooutputlogicSticky KMAC register-bridge fault; held until kmac_bus_err_clr_i.
otbn_bus_err_ooutputlogicSticky OTBN register-bridge fault; held until otbn_bus_err_clr_i.
csrng_bus_err_ooutputlogicSticky CSRNG register-bridge fault; held until csrng_bus_err_clr_i.
edn_bus_err_ooutputlogicSticky EDN register-bridge fault; held until edn_bus_err_clr_i.
aes_bus_err_clr_iinputlogicSingle-cycle clear for aes_bus_err_o, pulsed by PERIPH_BUS_ERR_CLEAR.aes.
hmac_bus_err_clr_iinputlogicSingle-cycle clear for hmac_bus_err_o, pulsed by PERIPH_BUS_ERR_CLEAR.hmac.
kmac_bus_err_clr_iinputlogicSingle-cycle clear for kmac_bus_err_o, pulsed by PERIPH_BUS_ERR_CLEAR.kmac.
otbn_bus_err_clr_iinputlogicSingle-cycle clear for otbn_bus_err_o, pulsed by PERIPH_BUS_ERR_CLEAR.otbn.
csrng_bus_err_clr_iinputlogicSingle-cycle clear for csrng_bus_err_o, pulsed by PERIPH_BUS_ERR_CLEAR.csrng.
edn_bus_err_clr_iinputlogicSingle-cycle clear for edn_bus_err_o, pulsed by PERIPH_BUS_ERR_CLEAR.edn.