电源门控、隔离与保持:power switch、isolation、retention 与上下电时序
更新时间:2026-09-14。本文是「集成电路大类 · 低功耗设计与验证」进阶层正文。时钟门控 ICG 停掉时钟只省动态功耗,芯片仍上电、漏电照漏。这一篇讲最彻底的手段:电源门控(power gating),以及断电后必须配套的隔离、电平转换、保持单元。电源意图的语言与仿真见 低功耗设计与 UPF,掉电域灌 X 的网表验证见 门级仿真 X 传播。
本文要回答的问题
- 时钟门控已经很省电,为什么待机还耗电、必须断电?
- 断电域的信号接到还在工作的域,会发生什么?隔离单元怎么救?
- 断电后寄存器内容没了,怎么保住关键状态?
- 上下电的正确顺序是什么,顺序错了会怎样?
一、为什么非断电不可:漏电
动态功耗 α·C·V²·f 可以靠门控、降频降到接近 0,但先进工艺(尤其 40nm 以下)晶体管关断时仍有亚阈值漏电和栅极隧穿电流,只要上电就存在,待机时甚至占主导。时钟门控对此无能为力。唯一能把漏电压到接近零的办法是物理切断该区域的电源,这就是电源门控。
- 常开区(always-on / AON):电源管理、唤醒检测、保持寄存器供电逻辑,永远通电;
- 可关断域(switchable domain / power island):如待机时不用的 GPU、ISP、外设,空闲时整块断电,动态与漏电功耗都趋近零。
二、电源开关:header / footer 与代价
在可关断域的电源轨上插一排大尺寸 MOS 开关:
- header switch:用 PMOS 切断 VDD(高边);
- footer switch:用 NMOS 切断 VSS(低边);
- 由电源状态机控制通断,常按组/链(daisy-chain)分级导通。
代价必须清楚:
| 代价 | 说明 |
|---|---|
| 面积/IR | 开关导通有电阻,尺寸不足会在域内造成 IR-drop,要在面积和压降间取舍 |
| rush current | 上电瞬间大量去耦电容/内部节点同时充电,产生巨大浪涌电流,可能把 VDD 拉塌;靠分级、斜坡导通控制 |
| 唤醒延迟 | 重新上电→稳定→撤隔离→恢复状态要成百上千周期,不能频繁开关 |
| 状态丢失 | 普通寄存器断电即失忆,需要 retention 或重初始化 |
因此电源门控适合「长时间整块空闲」(待机、休眠),不适合每拍都用的小逻辑——这也是它和细粒度时钟门控的分工。
三、断电边界的三个特殊单元
一个域断电、相邻域还在跑,交界处直接连线会出三类事故,分别由三种单元解决:

1. 隔离单元(isolation cell)
域断电后,其输出既不是 0 也不是 1,而是浮空/X。若直接喂给还在工作的域:
- X 会在常开区扩散,让状态机、控制逻辑乱跳(X 传播 能抓到);
- 高阻/中间电平可能使对端 PMOS/NMOS 同时导通,产生直通电流,甚至损坏。
隔离单元在断电期间把输出钳位(clamp)到固定安全值:clamp 0、clamp 1,或 clamp 在断电前最后值(latch 型)。选哪种由协议决定(如 valid 类信号通常 clamp 成「无效」,避免下游误以为有请求)。隔离由 always-on 侧的隔离使能控制,且 ISO 单元本身要接常开电源。
2. 电平转换器(level shifter)
当两个同时上电但电压不同的域相连(如 0.7V 核心驱动 1.8V 模块,或反向),直接连会出现电平识别错误、或高电压驱动低压器件的过压可靠性问题。电平转换器把信号从一个电压域翻译到另一个,需要同时接两侧电源。注意分工:电平转换解决「电压不同」,隔离解决「对方断电」,二者常一起出现在边界。
3. 保持寄存器(retention register)
普通触发器断电失忆。若唤醒后希望「从哪跌倒从哪爬起」而不是全量重初始化,用保持寄存器:它由主触发器加一个接 always-on 备用电源(backup rail)的影子锁存器构成。
- save:断电前把关键状态存入影子锁存(高阈值、漏电极低);
- restore:重新上电后把状态装回主触发器;
- 只对「必须保留且重建昂贵」的少量状态用(如安全上下文、关键配置),全芯片都做保持会显著增加面积和备用域功耗。
四、上下电时序:顺序错了就是事故
电源门控不是「拉个开关」那么简单,电源状态机(PSM,跑在常开区)必须按严格顺序控制 enable、隔离、保持:
关电序列(power down):
1. 通知/等待可关断域进入空闲(无 outstanding 事务、总线可安全停)
2. save:把 retention 状态存入影子锁存
3. assert isolation:先拉隔离,把输出钳到安全值
4. 断开电源开关(可 daisy-chain 缓降,控 rush current)
→ 域内断电、漏电趋零,但边界被隔离、AON 安全上电序列(power up):
1. 闭合电源开关(分级/斜坡导通,限制 inrush current、防 VDD 塌陷)
2. 等待电源稳定(power good / 电压到位)
3. restore:从影子锁存恢复状态(或走正常复位重初始化)
4. deassert isolation:确认输出有效后再撤隔离
5. 重新使能时钟/握手,域恢复工作两条致命顺序:
- 先断电后隔离(或先撤隔离后等电源稳定):X/中间电平短暂灌入常开区,引发直通电流和逻辑紊乱——上电时必须「电源稳 + 状态恢复好」最后才撤隔离;
- 电源开关瞬间全开:rush current 拉垮共享电源,连常开区都被拖复位。这正是 功耗分析与电源完整性 要验证 in-rush 与 IR-Drop 的原因。
五、为什么用 UPF 而不是写进 RTL
电源域、开关、隔离、保持、电平转换是物理实现和供电策略,与功能逻辑正交:同一份 RTL 可能在不同工艺/产品里采用不同电源划分。若写进 RTL,会污染功能代码、无法在不改逻辑的情况下调整供电。
工业界用 UPF(IEEE 1801,Unified Power Format) 单独描述电源意图:create_power_domain、supply net/set、set_isolation、set_retention、set_level_shifter、电源状态表(PST)等。综合、CPF/UPF 插入、物理实现、power-aware 仿真共用这份意图,自动在边界插入 ISO/LS/RET 并生成电源开关控制。语法实战见后续 UPF 专题,概念与插入效果见 低功耗设计与 UPF。
power-aware 仿真用 UPF 模拟真实掉电:断电域输出按 UPF 规则变 X 或被 clamp,可在 RTL 阶段就发现「漏插隔离导致 X 灌进 AON」「restore 顺序错」等问题,而不必等到 门级 X-prop。
六、检查清单
- [ ] 只对「长时间整块空闲」的域断电,小逻辑用时钟门控;
- [ ] 每个断电域边界都有隔离,clamp 值符合协议(请求/有效信号钳成无效);
- [ ] ISO、PSM、唤醒逻辑接 always-on 电源;
- [ ] 不同电压域间有 level shifter,断电与电压问题分别处理;
- [ ] 仅关键状态用 retention,save/restore 接备用轨;
- [ ] 关电:空闲→save→隔离→断电;上电:缓启→power good→restore→撤隔离;
- [ ] 电源开关分级/斜坡导通,inrush current 经 IR-Drop/EM 验证不拖垮 AON;
- [ ] 电源意图用 UPF 描述并做 power-aware 仿真,边界 ISO/LS/RET 自动插入可核查。
相关与延伸
前置的动态功耗手段见 时钟门控 ICG,两类功耗公式见 低功耗设计与 UPF;掉电灌 X 的网表验证见 门级仿真/SDF/X 传播;inrush/IR-Drop/EM 见 功耗分析与电源完整性;用真实激励算功耗见 DPA 动态功耗分析 与其 VCD/SAIF 格式。
总结
电源门控用 header/footer 电源开关物理切断可关断域,把先进工艺待机时主导的漏电连同动态功耗一起压到接近零,但要付面积/IR、rush current、唤醒延迟和状态丢失的代价,因此只适合长时间整块空闲;断电域与常开区交界必须用三种 always-on 供电的特殊单元——隔离单元在掉电期间把输出 clamp 成协议安全值防止 X 扩散和直通电流、电平转换器处理两域电压不同、保持寄存器用备用电源影子锁存在断电前 save、上电后 restore 关键状态;上下电必须严格按「空闲→save→先隔离→再断电」和「斜坡缓启→power good→restore→最后撤隔离」的顺序,否则 X/中间电平灌入常开区或浪涌电流拖垮共享电源;这些供电策略与功能正交,应用 UPF 单独描述、自动插入边界单元并做 power-aware 仿真,在流片前抓住漏隔离和错误恢复顺序。