
Fuse-backed provisioning store for keys, lifecycle state… It is delivered as a licensable soft-IP block engineered as an ASIL-B Safety Element out of Context — not just RTL, but the complete functional-safety work package needed to carry it into an ISO 26262 program:
A One-Time-Programmable (OTP) / eFuse controller delivered as synthesizable SystemVerilog soft-IP: the fuse-backed provisioning store for keys, lifecycle state, and trim, with write-once enforcement and SECDED (Single-Error Correct / Double-Error Detect) read integrity so a marginal or aged fuse bit is corrected automatically or flagged uncorrectable rather than silently wrong.
programmed flag, region lock, and lifecycle state before every PROGRAM; a refused attempt sets STATUS.lock\_violationecc\_pkg — the same codec as ecc\_sram — written together with the data in one shotSTATUS.ecc\_corrected) and flags double-bit errors uncorrectable (STATUS.ecc\_uncorrectable, err\_code 1) instead of returning silently-wrong dataNLOCK independent per-region write-lock bits, irreversible once set — a locked region refuses all further PROGRAM operationsLIFECYCLE\_ADV only advances, never regresses, and LOCKED blocks all further programmingerr\_code 9) catch a fault that would otherwise unlock a region or roll back the lifecycle within one clock cyclerot‘s measured-boot reference digest and lc\_ctrl‘s device lifecycleAMBA APB4 (ARM IHI 0024); feeds the catalog’s rot, lc\_ctrl, aes, hmac, trng; ISO 26262 ASIL-B SEooC (SPFM 97.14%, LFM 100.00%, PMHF 3.94×10⁻⁹/h)
ASIL-B (SEooC) · SPFM 97.14% · LFM 100.00% · PASS
ISO 26262:2018 · FMEDA available · Safety Manual included
| Offset | Register | Description |
|---|---|---|
0x00 | ADDR | word address |
0x04 | WDATA | data to program |
0x08 | CTRL | [0]=PROGRAM [1]=READ [2]=LOCK(region of ADDR) [3]=LIFECYCLE_ADV (pulses) |
0x0C | RDATA | last read result (ECC-corrected) |
0x10 | STATUS | [0]done [1]lock_violation [2]ecc_corrected [3]ecc_uncorrectable [5:4]lifecycle |
…1 more registers — see datasheet for the full table.
// Minimal instantiation
otp #(
.ADDR_W(6)
) u_otp (
.clk (clk),
.rst_n (rst_n),
// APB4
.p_paddr (paddr),
.p_psel (psel),
.p_penable (penable),
.p_pwrite (pwrite),
.p_pwdata (pwdata),
.p_prdata (prdata),
.p_pready (pready),
// Safety
.err_clear (1'b0),
.err_valid (err_valid),
.err_code (err_code)
);Configure via the CTRL register after reset to enable the IP and set operating parameters. Monitor err_valid / err_code for any safety faults reported by the built-in safety monitor.
Typically deployed in the safety backbone of an ASIL SoC — error detection, redundancy, and the fault-reaction path that takes the system to a safe state.
Pricing, the per-IP FMEDA, safety manual, and RTL data room are shared under a mutual NDA.
Figures are pre-silicon engineering-grade estimates for a Safety Element out of Context (SEooC); final ASIL sign-off is the integrator’s, supported under NDA. FMEDA and Safety Manual available under NDA.
circuit-design.space · +1-971-357-1400 · anovickis@circuit-design.space