sep

Integrate the SEP security processor CPU, crypto, IO, SMN, and lifecycle boundaries.

Exposes JTAG, DMI, memory-macro, SMN AXI, crypto SRAM, eFuse, SPI, lifecycle, mailbox, and Key Manager error interfaces to the integrator. sep_global_base_addr_o and sep_region_size_o publish the SEP aperture from sep_cpu_ctrl CSRs for the SMU AXI crossbar SEP-target rule. External-aperture requests inside the eFuse shim CSR window are diverted to the eFuse wrapper; the rest leave on sep_external_axi_req_o through an axi_cut. PIC source i+1 is internal interrupt i for the NUM_INTERNAL_IRQS internal sources (mailbox, DMA, WDT, SPI, crypto, eFuse and bridge faults), followed by extintsrc_req_i. The WDT bark drives the CPU NMI, which jumps to SEP_NMI_VEC. When unused, tie test_en_i to 1'b0 and scan_rst_ni to 1'b1.

Parameters

Table 1. Parameters
NameTypeDefaultDescription
KM_LATCHED_MEM_RDATAbit1'b11 if Key Manager ROM/SRAM latch read data for look-ahead.
ABR_MASKING_ENbit1'b1Enable Adams Bridge 2-share DOM masking.
ABR_SRAM_LATENCYint unsigned1Adams Bridge SRAM read latency in cycles.
EXT_TRNG_NUM_AXISint unsigned3Number of external TRNG AXI-Stream ports; must be 3, one per entropy mux leg.
EFUSE_SHIM_SIZEint unsigned'h4Size in bytes of the eFuse shim CSR window diverted from the external aperture to the eFuse wrapper.
SEP_SEC_DISABLE_TOKENbit [255:0]256'b0Netlist-embedded secure-disable token digest; replace at synthesis.

Ports

Table 2. Ports
NameDirectionTypeDescription
clk_iinputlogicSystem clock.
clk_ref_iinputlogicFree-running reference clock for REFERENCE_COUNTER.
clk_wdt_iinputlogic200 kHz watchdog counter clock, asynchronous to clk_i.
rst_niinputlogicActive-low reset. Unless the JTAG override forces it, the SEP reset derived from it is released only after fuse sensing and ext_boot_seq_done_i.
dbg_rstb_iinputlogicEL2 debug-module reset, active-low.
wdt_rst_niinputlogicAggregated WDT resets from SMC and SEP, active-low; resets only the CPU.
wdt_timer_rst_req_ooutputlogicSEP WDT bite reset request, active-high, to the SMC reset unit.
jtag_tck_iinputlogicJTAG clock.
jtag_tms_iinputlogicJTAG test mode select, sampled on jtag_tck_i.
jtag_tdi_iinputlogicJTAG test data input, sampled on jtag_tck_i.
jtag_trst_niinputlogicJTAG reset, active-low.
jtag_tdo_ooutputlogicJTAG test data output; valid while jtag_tdoEn_o is high.
jtag_tdoEn_ooutputlogicJTAG TDO output enable.
jtag_sep_reset_ctrl_iinputsep_pkg::jtag_sep_reset_ctrl_tJTAG IC_RESET override and value bits for the SEP reset and the per-engine crypto resets, in the TCK domain.
axil_sep_otp_jtag_req_iinputsep_efuse_pkg::efuse_axil_req_tOTP debug AXI-Lite manager request to the eFuse wrapper; answered with DECERR in restricted lifecycle states.
axil_sep_otp_jtag_resp_ooutputsep_efuse_pkg::efuse_axil_resp_tOTP debug AXI-Lite manager response.
mpc_debug_halt_req_iinputlogicAsync MPC debug halt request.
mpc_debug_run_req_iinputlogicAsync MPC debug run request.
mpc_reset_run_req_iinputlogic1 to run and 0 to halt in debug mode after reset.
cpu_halt_req_iinputlogicAsync halt request to the CPU.
cpu_run_req_iinputlogicAsync restart request to the CPU.
test_en_iinputlogicDFT test-enable / scan-enable; tie 1'b0 when unused.
scan_rst_niinputlogicDFT scan reset, active-low, for reset synchronizer bypass; tie 1'b1 when unused.
ext_boot_seq_done_iinputlogicIntegration boot-sequence completion (memory repair and SMC straps); gates release of the SEP reset.
dmi_core_enable_iinputlogicEnables DMI accesses to the core debug module registers.
dmi_uncore_enable_iinputlogicEnables DMI accesses to the uncore aperture of the DMI address space.
dmi_uncore_en_ooutputlogicDMI access strobe to the uncore aperture, gated by dmi_uncore_enable_i.
dmi_uncore_wr_en_ooutputlogicWrite qualifier for the uncore DMI access; low for reads.
dmi_uncore_addr_ooutputlogic [6:0]DMI register address of the uncore access.
dmi_uncore_wdata_ooutputlogic [31:0]Write data of the uncore DMI access.
dmi_uncore_rdata_iinputlogic [31:0]Read data returned by the uncore for the addressed DMI register.
dmi_active_ooutputlogicHigh while the debug transport drives a DMI access to the core or uncore.
sep_cpu_trace_ooutputsep_pkg::sep_cpu_trace_tCore instruction trace: retired instruction, address, valid, exception, cause, interrupt, and tval.
lockstep_ctrl_iinputsep_pkg::sep_lockstep_ctrl_tCPU lockstep control; inert unless built with RV_LOCKSTEP_ENABLE.
lockstep_status_ooutputsep_pkg::sep_lockstep_status_tCPU lockstep status; inert unless built with RV_LOCKSTEP_ENABLE.
jtag_id_iinputlogic [31:1]JTAG IDCODE bits [31:1] reported by the core debug TAP; bit 0 is fixed at 1.
timer_int_iinputlogicMachine timer interrupt to the core.
soft_int_iinputlogicMachine software interrupt to the core.
extintsrc_req_iinputlogic [sep_pkg::NUM_EXTERNAL_IRQS-1:0]External interrupt requests; bit i is PIC source NUM_INTERNAL_IRQS + i + 1.
sep_cpu_tcm_req_ooutputsep_pkg::sep_cpu_tcm_req_tPer-bank ICCM and DCCM macro requests, with the macro clock, to sep_tcm_wrapper.
sep_cpu_tcm_rsp_iinputsep_pkg::sep_cpu_tcm_rsp_tPer-bank ICCM and DCCM read data and ECC from sep_tcm_wrapper.
sep_sram_req_ooutputsep_pkg::sep_sram_req_tRequest from the SEP SRAM memory interface to the SRAM macro.
sep_sram_rsp_iinputsep_pkg::sep_sram_rsp_tRead data from the SEP SRAM macro.
sep_boot_rom_req_ooutputsep_pkg::sep_sram_req_tRequest from the boot ROM memory interface to the ROM macro.
sep_boot_rom_rsp_iinputsep_pkg::sep_sram_rsp_tRead data from the boot ROM macro.
smn_outbound_axi_req_ooutputsep_pkg::sep_system_peripherals_outbound_axi_req_tOutbound request to the SMN after the outbound filter.
smn_outbound_axi_resp_iinputsep_pkg::sep_system_peripherals_outbound_axi_resp_tOutbound response from the SMN.
smn_inbound_axi_req_iinputsep_pkg::sep_system_peripherals_internal_axi_req_tSMN inbound request with a 56-bit global address, before the inbound filter.
smn_inbound_axi_resp_ooutputsep_pkg::sep_system_peripherals_internal_axi_resp_tSMN inbound response.
sep_ext_to_smc_axi_req_ooutputsep_pkg::sep_system_peripherals_internal_axi_req_tSEP request in the SMC aperture, after the alias remap; not filtered.
sep_ext_to_smc_axi_resp_iinputsep_pkg::sep_system_peripherals_internal_axi_resp_tResponse from the SMC to sep_ext_to_smc_axi_req_o.
entropy_rosc_sample_clk_iinputlogicRing-oscillator sample clock for entropy_source; async vs clk_i, ~100-400 MHz typical.
sep_crypto_pka_imem_sram_req_ooutputsep_crypto_pkg::sep_crypto_pka_imem_sram_req_tOTBN IMEM SRAM request from prim_ram_1p_scr_ext.
sep_crypto_pka_imem_sram_rsp_iinputsep_crypto_pkg::sep_crypto_pka_imem_sram_rsp_tOTBN IMEM SRAM response.
sep_crypto_pka_dmem_sram_req_ooutputsep_crypto_pkg::sep_crypto_pka_dmem_sram_req_tOTBN DMEM SRAM request from prim_ram_1p_scr_ext.
sep_crypto_pka_dmem_sram_rsp_iinputsep_crypto_pkg::sep_crypto_pka_dmem_sram_rsp_tOTBN DMEM SRAM response.
abr_mem_req_ooutputsep_crypto_pkg::abr_mem_req_tAdams Bridge external SRAM request; tech macros in sep_ip_integration.
abr_mem_rsp_iinputsep_crypto_pkg::abr_mem_rsp_tAdams Bridge external SRAM response.
ext_trng_axil_req_ooutputsep_pkg::sep_32_32_axil_req_tExternal TRNG register request for 0x1091_7000-0x1091_7FFF, passed through to sep_ip_integration.
ext_trng_axil_resp_iinputsep_pkg::sep_32_32_axil_resp_tExternal TRNG AXI-Lite passthrough response.
ext_trng_axis_req_iinputsep_crypto_pkg::ext_trng_axis_req_tExternal TRNG streams from sep_ip_integration; stream i feeds entropy mux leg i (0 Key Manager, 1 AES/KMAC/OTBN, 2 entropy pool).
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.
ext_trng_irq_iinputlogicExternal TRNG interrupt; PIC source 17.
km_rom_mem_req_ooutputkm_intf_pkg::km_rom_mem_req_tKey Manager request to its 16 KiB ROM hard macro.
km_rom_mem_rsp_iinputkm_intf_pkg::km_rom_mem_rsp_tRead data from the Key Manager ROM hard macro.
km_sram_mem_req_ooutputkm_intf_pkg::km_sram_mem_req_tKey Manager request to its 32 KiB SRAM hard macro.
km_sram_mem_rsp_iinputkm_intf_pkg::km_sram_mem_rsp_tRead data from the Key Manager SRAM hard macro.
efuse_bank_ctrl_req_ooutputsep_efuse_pkg::efuse_axil_req_teFuse bank control AXI-Lite request to the shim CSR.
efuse_bank_ctrl_resp_iinputsep_efuse_pkg::efuse_axil_resp_teFuse bank control AXI-Lite response.
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.
lcc_demote_state_1_ooutputlogic [1:0]Differentially encoded DEMOTE_1.demote bit, which re-opens debug feature bits [23:0] in TEST_DEV and PROD; to the SMC.
lcc_demote_state_2_ooutputlogic [1:0]Differentially encoded DEMOTE_2.demote bit, which re-opens debug feature bits [47:24] in TEST_DEV and PROD; to the SMC.
sep_io_spi_req_ooutputsep_io_pkg::sep_io_spi_req_tSPI pad outputs (clock, chip select, 4 data lanes and their output enables), plus the SPI interrupt and DMA trigger.
sep_io_spi_rsp_iinputsep_io_pkg::sep_io_spi_rsp_tSPI data-lane inputs from the pads.
lc_state_ooutputlogic [2*sep_pkg::LcStateBitWidth-1:0]Differentially encoded lifecycle state from the eFuse shadow registers.
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.
security_disable_ooutputlogicSecurity-disable status from eFuse token processing, active-high.
secure_tm_ooutputlogicLatched secure test mode, active-high; captured on the second clock edge after rst_ni release when security is disabled, otherwise when fuse sensing finishes.
smc_mailbox_interrupt_ooutputlogic [sep_pkg::NumMailboxes-1:0]Per-mailbox outbound-data interrupts to the SMC.
smc_fuse_sense_done_iinputlogicSMC fuse sense completion, reflected in SMC_FUSE_SENSE_STATUS; requests to the SMC hang while it is low.
sep_fuse_sense_done_ooutputlogicHigh once the SEP eFuse shadow registers have been loaded from the fuses.
secure_tm_req_iinputlogicSecure test mode request strap, latched into secure_tm_o.
sep_external_axi_req_ooutputsep_pkg::sep_32_64_6_12_axi_req_tRequest for the external aperture 0x2000_0000-0x3FFF_FFFF outside the eFuse shim window.
sep_external_axi_resp_iinputsep_pkg::sep_32_64_6_12_axi_resp_tResponse to sep_external_axi_req_o.
smc_global_base_addr_iinputlogic [sep_pkg::SEP_SYSTEM_PERIPHERALS_56_ADDR_WIDTH-1:0]Base of the SMC aperture in the global address map; SEP requests inside it leave on sep_ext_to_smc_axi_req_o.
smc_region_size_iinputlogic [sep_pkg::SEP_SYSTEM_PERIPHERALS_56_ADDR_WIDTH-1:0]Size in bytes of the SMC aperture at smc_global_base_addr_i.
sep_global_base_addr_ooutputlogic [sep_pkg::SEP_SYSTEM_PERIPHERALS_56_ADDR_WIDTH-1:0]SEP global base address from sep_cpu_ctrl; SMU crossbar SEP-target rule.
sep_region_size_ooutputlogic [sep_pkg::SEP_SYSTEM_PERIPHERALS_56_ADDR_WIDTH-1:0]SEP region size from sep_cpu_ctrl; SMU crossbar SEP-target rule.
km_unrecoverable_err_ooutputlogicKey Manager unrecoverable fault, active-high: its CPU is in the trap state and no longer executing; also PIC source 31.
km_recoverable_err_ooutputlogicKey Manager recoverable-fault indication; also PIC source 32.
ext_debug_bus_ooutputlogic [383:0]24 lanes of 16 bits: CPU trace and control status, interrupts, reset and security status, eFuse, remap and filter debug; bits [159:0] are 0.