RTL 中的一个毛刺就可能导致 eFuse 控制器意外编程,从而永久砖掉昂贵的硅芯片。本文深入探讨防御纵深(Defense-in-Depth)的 FSM 设计、冗余看门狗以及形式化 SVA 验证策略。
在 SoC 设计领域,我们习惯了软件的可修改性和寄存器的可复位性——发现 Bug 就能打补丁。然而,电子熔丝(eFuse)却遵循完全不同的原则:永久性。
eFuse 是一次性可编程(OTP)元件,用于存储关键且不可更改的数据,例如唯一设备 ID、密码学根密钥,或后硅制造微调值。编程 eFuse 是一个物理破坏性事件,如图 1 所示。
图 1:eFuse 熔断前(左)与熔断后实物示意,图片基于知识共享协议 CC4.0 授权,取自 Rahman 等人文献
如果你的 RTL 控制器出现毛刺,意外触发烧录或使编程电压施加时间过长,你可能会在芯片还没出厂前,就永久砖掉一块价值 500 美元的处理器。
本文将深入讲解如何为 eFuse 控制器设计防砖机(bricking-proof) 的稳健 RTL,包括必要的安全机制、有限状态机(FSM)构建,以及使用 SystemVerilog Assertions(SVA)进行的关键前硅验证策略。
挑战:连接数字逻辑与物理永久性
eFuse 本质上是一个高风险的模数接口。数字控制器必须精确管理涉及高压(VDDQ)和特定时序窗口( T p r o g T_{prog}Tprog)的事件序列。
eFuse 通过施加高电流脉冲实现编程,该过程称为电迁移(electromigration)——电流导致导电材料发生迁移,从而将熔丝从低阻态(未烧断)永久变为高阻态(已烧断)。
图 2.用于 eFuse 编程的 RTL 控制器系统视图 稳健 RTL 设计:防御纵深
为防止意外编程,我们在 RTL 中采用多层保护逻辑。只有当有意下达命令、经过正确时序且经过数学验证后,才允许“烧录”操作。
第 1 层:双敲门(Double-Knock)解锁序列最关键的保护机制是要求写入特定的多比特“魔术密钥”(Magic Key)。由于噪声或宇宙射线导致的单个比特翻转,绝不能让控制器进入编程状态。系统必须向安全寄存器写入唯一且确定的模式后,才能使能编程。
第 2 层:FSM 状态采用 Hamming / Gray 编码如果 FSM 使用顺序编码(00、01、10、11),单个比特翻转就可能导致状态错误跳转(如从 IDLE 直接跳到 BURN)。我们采用具有更高汉明距离(Hamming distance)的编码或 Gray 码,并设置默认的“Error”安全状态来捕获所有非法跳转。
第 3 层:冗余硬件定时器(Watchdog)编程脉冲宽度( T p r o g T_{prog}Tprog)极其关键。若时间过长,熔丝宏可能过热并损坏周边电路。因此,主定时计数器必须辅以一个独立的冗余硬件看门狗,无论 FSM 处于何种状态,一旦超过最大阈值就强制将编程信号拉低。
用 SystemVerilog 实现 FSM
以下是一个 6 状态 FSM 的实现示例,涵盖了“双敲门”解锁(需同时满足 EFUSE_UNLOCK_KEY 和 prog_cmd)、Gray 相邻编码,以及 watchdog_kill 强制跳转到 ERROR_SAFE 状态。
endmodule验证策略:验证“不可测试”的部分由于熔丝一旦烧断就无法复位,前硅验证必须极其严谨。
熔丝宏的行为模型验证环境中的关键部分是一个 Verilog 行为级熔丝阵列模型。该模型需在多次仿真之间保持状态(已烧/未烧),并记录每个比特的累积编程时间。若检测到同一比特被重复编程,或累积 T p r o g T_{prog}Tprog 超过规格,应立即报错。
动态验证(UVM Sequences)在 UVM 环境中,测试序列需超越常规寄存器访问,必须注入错误情况:
- 毛刺注入
- 烧录中复位
在 burn_en 为高期间强制系统复位。行为模型需验证熔丝状态变为“不确定”,但控制器逻辑能安全复位。
形式验证(Formal Verification)特别适合 eFuse 控制器这类安全关键逻辑。SVA 可以数学证明在设计约束下,危险情况不可能发生。
关键 SVA 示例:
burn_en 必须经过解锁
必须保证编程使能信号(burn_en)只有在 FSM 经过特定解锁状态后才能置高。
else $error("CRITICAL SAFETY VIOLATION: burn_en asserted without prior valid unlock sequence!");T_ prog 最大时序限制
必须保证burn_en 信号高电平持续时间绝不超过物理规格允许的最大值。
else $error("MAX TIMING VIOLATION: burn_en exceeded T_PROG_MAX_CYCLES! The fuse is bricked.");总结eFuse 设计是数字 SoC 中集成模拟功能时复杂度与风险并存的典型代表。我们必须在 RTL 中应用防御纵深原则,包括严格的解锁序列、安全的 FSM 编码以及冗余看门狗。
遵循这些指南,我们能将一个本质上高风险的过程转化为确定性、安全的操作。结合行为级宏模型和形式化验证,我们可以自信地交付强大、安全、且真正防砖机 的最终硅芯片。
原文:
https://www.allaboutcircuits.com/technical-articles/bricking-proof-designing-safety-critical-rtl-for-efuse-controllers/
半导体/AI 技术大会
(报名通过 可享免费午餐)
热门跟贴