电源门控设计:彻底断电省下漏电,也要扛住断电的全部代价
更新时间:2026-09-15。本文是「集成电路大类 · 低功耗设计与验证」进阶层第 07 篇(进阶层新写第 5 篇),也是本批收官。入门篇电源门控直觉讲了「不用就断电、连漏电一起省」,这一篇把它做成可签核的设计:用什么单元断电、断电前后那套保存/隔离/恢复的顺序为什么不能乱、成百上千个开关一起闭合的涌流怎么扛,以及这些结构在 UPF 里怎么描述。系统地图见低功耗导读,配合保持与隔离、电平转换阅读。
一、开关单元:header 与 footer
电源门控通过在电源通路里插一个高阈值(为减小关断漏电)的大晶体管作为开关:
- header switch(高边开关):串在 VDD 与可关域之间,断开后可关域的实际电源轨变成「虚轨 VDDV/VDS」,被拉向地;
- footer switch(低边开关):串在 VSS/GND 上,断开后虚地被拉向 VDD。
数字设计中 header 更常见(地保持为干净的公共参考利于衬底偏置和信号处理),具体由工艺库与流程决定。
开关的关键参数是导通电阻 Ron:
- Ron 太大 → 开关闭合工作时,电流在开关上产生额外压降(开关本身就是一段 IR-drop),域内逻辑看到的电压不足,时序和功能都受威胁;
- Ron 太小(管子做得很大)→ 面积大、栅电容大、开关动作的涌流和控制功耗大;
- 所以开关尺寸要按域内工作电流和允许的「开关压降预算」来定,通常用很多个开关单元分布式地摆进电源网格(switched-cell tap),而不是一个大开关。
粒度:细粒度门控(每个小簇甚至单元一个开关)省得精但开关面积和控制复杂;粗粒度/簇式(整个模块/域共用一组开关)实现简单、面积效率高,是主流。设计要点是让「可一起断电」的逻辑在物理上也聚成可关域,见电源域。
二、断电与上电序列:顺序为什么严格
一个需要保持关键状态的可关域,标准序列如下,顺序错误会导致 X 外泄或状态丢失:

为什么先隔离再保存、再断电?
- 先隔离:断电过程中域内电平会塌陷成中间态/X,若输出还连着活域,X 会灌进去导致误动作;先钳住边界,保证塌陷不泄漏。
- 再保存:retention 保存动作本身需要时钟和稳定电源,必须在断电前完成。
- 上电则反过来:先合开关、等电压稳定,再 restore(retention 恢复也需要稳定电源和时钟),最后才撤隔离——避免恢复未完成就把无效值放出去。
不需要保持状态的可关域(纯缓存、可重建数据)可省略 save/restore,但隔离和开关时序仍要遵守;这类域唤醒后由软件/硬件重新初始化。
三、retention:怎么在断电时留住状态
retention 寄存器在普通触发器外增加一个由常开电源供电的影子锁存器(balloon/影子 latch):
- 正常运行时用开关轨 VDDV 工作;进 save 时把状态搬进常开影子锁存;域断电后主触发器掉电,影子锁存靠常开低漏电电源维持;上电 restore 时搬回。
- 全保持 vs 部分/选择性保持:把整个域所有寄存器都 retention,影子锁存器面积和常开漏电很大;更省的做法是只保持「恢复所必需」的最小上下文(如状态机、指针、关键配置),其余上电重初始化。存储类的大块上下文用 retention SRAM(降到 V_ret)或外迁,见存储器低功耗。
- save/restore 有严格时序窗:save 信号、save 时钟、restore 的先后由库和电源控制器规定,要在 UPF 和验证里精确约束(见 UPF)。
直觉对照:retention 解决「域自己断电后状态留不留」(时间/域内),isolation 解决「断电域给别人的信号变不变 X」(空间/边界),两者职责不同但在电源门控里几乎总是同时出现。
四、isolation 与电平转换的搭配
- isolation 单元在断电域输出侧把信号钳到安全常量(clamp 0 或 1,或锁存最后值)。clamp 值要逐个信号定:低有效使能/请求往往要钳到无效的 1,钳 0 会被活域误认成有效请求,这是设计 vs 验证里点名的高频 bug。
- 位置:隔离通常放在断电域边界(发送端),便于由该域电源控制器统一使能;要保证隔离单元自己由常开电源供电,否则域一断它也失效。
- 与电平转换组合:若断电域与活域电压还不同,需要带使能的电平转换单元(ELS)一次完成隔离+电平转换,见电平转换。
- 使能时序:ISO_EN 必须在电源开始塌陷前生效,并维持到上电恢复完成之后(俗称「先于断电、后于复电」),中间不能有缺口。
五、涌流 in-rush 与 di/dt:上电瞬间的暗礁
电源门控最容易在硅上翻车的不是断电而是上电:
- 断电域里有大量去耦/寄生电容,开关闭合瞬间它们从 0V 充到 VDD,产生很大的涌流(in-rush current);若成百上千个开关同时闭合,瞬时电流和 di/dt 极大,会在电源网络上拉出深 droop、可能触发 BOR 复位或干扰相邻活域(见 IR-drop、电源网格)。
- 分段开关 / 开关链(daisy chain / staged enable):把开关分组,用一条使能链依次、渐进地闭合,第一组小电流建立偏置、后续组逐段注入,把涌流摊平在时间上;代价是上电变慢。
- decap 协同:常开侧去耦电容提供瞬态电荷、缓冲 droop,但 decap 也增加要充的电容量,需和涌流一起权衡。
- 涌流分析要在门级带开关和电容模型上做,并和封装/板级电源能力对齐——这正是低功耗岗位地图里签核与板级扯皮的那个接口。
六、电源控制器与 UPF 描述
硬件上通常由一个常开的**电源控制器(PCU/PGC)**按固定序列发出 ISO_EN、SAVE/RESTORE、开关使能链等控制信号,并等待「电源稳定」应答;它本身必须在常开岛(AON)供电和复位。UPF(IEEE 1801)把这些结构显式描述出来,供综合、P&R、验证共用(格式见低功耗格式):
create_power_domain定义可关域与边界;create_power_switch定义 header/footer、开关管、使能链与供电网络;set_isolation+set_isolation_value/control定义隔离点、clamp 值、使能;set_retention+ retention supply/control 定义保持电源和 save/restore 控制;set_level_shifter定义跨电压域转换;- PST(电源状态表)定义各电源网络合法状态与迁移,供低功耗验证做状态覆盖和电源序检查。
设计侧维护 UPF、验证侧检查一致性,这一分工在设计 vs 验证里讲过;电源门控是 UPF 要素最全、最能体现其价值的场景。
七、什么时候值得门控:盈亏判据
电源门控不是越用越好,要同时满足几本账:
- 省漏电:断电时间足够长,省下的漏电能量(
I_leak × V × T_off,先进工艺、高温下更大)显著大于一次完整断电/上电的开销(save/restore、开关链充电、隔离、控制器、重新预热); - 唤醒延迟可接受:开关链分段上电+稳压+restore 可能是几十到几千周期,对实时/频繁事件的模块不可行;
- 状态成本可承担:要么可重建(免 retention),要么保持上下文的面积/常开漏电可接受。
粗略地说:几十/几百周期级的短空闲用时钟门控设计,毫秒级以上、可容忍唤醒延迟的长空闲才上电源门控;中间地带配合 DVFS。三者的选择地图见三种省电模式对比。
七补二、开关尺寸与涌流:两个可算的数
1)开关要做多宽——按允许压降反推。 开关导通时它就是电源路径上一个电阻 Rsw,工作电流 I_dom 在其上产生压降 Vsw = I_dom × Rsw。设计先给开关分配一个压降预算,例如域标称 0.8V,允许开关+电源网络共吃掉 8%,其中开关占 3%,即 Vsw≤24mV;若该域峰值工作电流 200mA,则要求 Rsw ≤ 24mV/200mA = 0.12Ω。单个开关单元的导通电阻由库给定(例如数 Ω 量级),所需并联个数 ≈ Rsw_cell / Rsw_target,再留工艺角和老化裕量。开关总宽度直接决定面积和栅电容——这就是「Ron、面积、涌流」三角:想压降低就得加宽,加宽又增大充电电容和涌流,必须取平衡。
2)涌流要摊多久——给电容充电的时间尺度。 上电时开关给域内总电容 C_dom(单元电容加 decap)充电,瞬时电流近似 i = C_dom × dV/dt。若 C_dom=20nF,希望把涌流峰值限制在 100mA,则允许的平均压摆率 dV/dt ≤ 0.1A/20nF = 5V/ms,从 0 充到 0.8V 至少要约 0.16ms;开关链正是通过「只合一部分→电压抬一段→再合下一部分」把 dV/dt 控制住。分段越细、涌流越小、对相邻活域 droop 影响越弱,但上电越慢、唤醒延迟越大。这个数必须和系统允许的唤醒时间、BOR 阈值、稳压器瞬态电流能力放在一起定,而不是后端单方面决定。
3)用电源状态表(PST)锁定合法状态。 一个含常开岛 VDD_A、可关核 VDD_C、可降频核 VDD_D 的系统,合法组合是有限且有序的,例如:
| 状态 | VDD_A | VDD_C | VDD_D | 典型场景 |
|---|---|---|---|---|
| RUN_ALL | ON | ON(标称) | ON(标称/各档) | 全速 |
| LIGHT_IDLE | ON | ON | 低压/DVFS | 轻载 |
| DEEP_SLEEP | ON | RET(保持) | OFF | 深睡,核 C 只留 retention |
| OFF | ON | OFF | OFF | 核全关,仅 AON 唤醒 |
PST 不只给人看,它是验证枚举状态和迁移的状态空间:每两个状态间的迁移都对应一条固定电源序(先谁后谁、ISO/retention 何时动),验证要证明可达迁移全部合法、非法迁移(如 VDD_C 未稳就撤隔离)在控制器上不可能发生。结合低功耗验证的 X 与覆盖检查,PST 才从「文档里的表」变成「被证明可实现的契约」。这也回应了本系列反复强调的协作:架构定 PST、UPF 描述结构、物理定开关和涌流、验证穷举迁移,四者任一处不一致,电源门控都会在最不该出问题的时候出问题。
最后补一个常被忽视的物理实现细节:电源开关不能随意摆放。开关单元、常开电源轨与开关虚轨要在 floorplan 阶段就规划好「开关环/开关行」的分布,让电流从常开轨经开关到标准单元行的路径短而均匀,否则即使总开关宽度够,局部某段虚轨阻抗过大仍会形成局部 IR-drop 热点。后端还会把开关使能链按物理位置串成 daisy chain,使能顺序往往从电源入口附近向远端推进,以控制充电波前。隔离单元、retention 单元的供电(常开轨)必须在布线时明确连对,错把隔离单元接到开关轨上,断电瞬间隔离自己也失效,是 UPF 与网表不一致时的典型事故。因此电源门控不是单纯的 RTL/UPF 设计题,而是从架构到 floorplan、签核、验证必须共享同一套电源网络意图的系统工程,这也是它在低功耗手段里收益与门槛都最高的根本原因。
八、完整走查与检查点
以一个可关加速器为例:①运行完成、握手空闲、排空在途事务;②PCU 拉 ISO_EN 钳住边界(验证:所有跨域信号为安全常量);③发 save 时钟/控制,关键 FSM 与指针进 retention(验证:save 时序窗合法);④使能链断开,虚轨放电(验证:域内电源标记为 OFF,活域无 X);⑤长空闲保持断电(漏电近零,常开岛只供影子锁存和控制器);⑥唤醒请求到 AON,开关链分段闭合、限涌流,等待电源稳定(验证:in-rush/droop 在预算内、不误触发 BOR);⑦restore 关键状态、序列器重新初始化其余上下文;⑧撤 ISO_EN,重新接受事务(验证:第一笔事务数据正确、无丢包)。这套序列的每一步都对应低功耗评审清单里的一个 P0 检查点。
九、常见误区
- 开关只按面积不按 Ron 定:工作态开关压降吃时序。
- 不隔离就断电 / 不复电完成就撤隔离:X 外泄、错误事务。
- clamp 值一刀切 0:低有效信号被误触发。
- 全部开关同时合:涌流 droop 触发复位/干扰活域。
- 全量 retention:影子锁存面积和常开漏电可能吃掉省电。
- 对频繁短空闲也门控:唤醒能量大于省下的漏电,净亏。
- UPF 与实现各写各的:网表漏插隔离/开关,硅上才暴露。
结语
电源门控是省电杠杆阶梯上最狠的一级:它能把先进工艺最头疼的漏电连同动态功耗一起压到接近零,但代价是一整套严格的保存—隔离—断电—复电—恢复机制、一个常驻的电源控制器、涌流与压降的物理约束,以及显著的唤醒延迟和最重的验证负担。把它做对,需要架构(值不值得关)、RTL/UPF(结构对不对)、物理(开关与涌流)、验证(电源序与 X)协同。
一句话收口:电源门控用「断电的时间」换「漏电的能量」,用「序列的复杂度」换「接近零的静态功耗」——只有长空闲、可保持、扛得住唤醒和涌流的域,才付得起这笔交易。 至此本批 10 篇完成:入门池 50/50 满池,进阶层新开 5 篇单项实战,后续可从保持单元、隔离单元、UPF 编写继续深入。
总结
电源门控是用高阈值大晶体管做 header/footer 彻底断电、连漏电一起省,但开关本身有 Ron 压降,尺寸要按域电流和压降预算分布式反推并联个数,且「加宽降 Ron、面积、涌流」构成必须平衡的三角;可保持域要严格按隔离→save→断电、上电→等稳→restore→撤隔离的顺序执行(ISO 先于断电、后于复电),retention 用常开影子锁存只保最小必要上下文,isolation 逐信号定 clamp 值防低有效误触发。涌流靠开关 daisy chain 分段闭合限制 C·dV/dt,所有结构用 UPF/PST 描述并验证迁移合法;只有毫秒级长空闲、唤醒延迟可接受、状态可保或可重建的域才值得门控。