电源门控为什么要隔离单元和保持寄存器?
更新时间:2026-09-21。问题驱动短答页。低功耗基础见 低功耗入门、RTL 低功耗入门,时钟门控对比见 clock gating,验证见 低功耗验证。
一句话回答
电源门控(power gating)用电源开关彻底切断某个电源域的供电,把该域的漏电功耗降到接近零,是比时钟门控更彻底的省电手段——但断电后域内寄存器和组合逻辑的值会全部丢失,输出引脚还会浮空成不确定值,若直接连到仍在运行的电源域会造成 X 传播、直通电流甚至误动作;重新上电也得重新复位。所以需要三样配套单元:隔离单元(isolation)在关断期间把跨电源域的输出钳到安全常量(0/1);保持寄存器(retention flip-flop)用一个独立的“always-on 备用电源”只维持锁存器保存关键状态,使唤醒时快速恢复而不必整体重初始化;电平转换器(level shifter)处理不同电源域电压不等。整个上电/下电顺序由电源控制状态机按规定时序(先使能隔离→断开关;上电稳定→撤销保持→解除隔离)控制,用 UPF 描述意图并做低功耗验证。
为什么时钟门控不够
- clock gating 停的是翻转,省动态功耗,电源还在 → 漏电仍在,状态保留,见 clock gating。
- power gating 直接断电,省漏电(先进节点漏电占比很高),但状态丢失、需配套。
三件套与控制
| 单元/机制 | 作用 |
|---|---|
| isolation cell | 关断域输出在断电时钳为安全常量,防 X/直通灌入运行域 |
| retention FF | 用 always-on 备用电源保存关键上下文,唤醒快速恢复 |
| level shifter | 跨不同电压域转换电平,防欠驱/过压 |
| power switch + 控制器 | 按状态机控制开关并满足 ramp、隔离/保持时序 |
| always-on 逻辑 | 唤醒检测、保持供电、电源控制 FSM 自己不能被关 |
典型上下电时序
下电:保存到 retention → 置 ISO_EN 隔离输出 → 拉 retention 供电保持 → 断开主电源。 上电:合开关、等电源稳定 → 恢复 retention 值 → 撤隔离 → 域重新参与工作。 顺序错(如先断电后隔离、未稳定就撤隔离)会产生毛刺/X。
设计与验证要点
- 用 UPF/CPF 描述电源域、隔离/保持策略和电源状态表,使 RTL 与门级一致,见 低功耗验证。
- 跨域信号在所有电源状态下都要合法(和复位域问题类似,可参考 RDC 的隔离思想)。
- 验证断电态 X 传播、隔离钳位、保持值恢复、唤醒中断和多电源状态组合。
- 评估开关阵列的压降/rush current、保留单元面积和 always-on 功耗。
常见坑
- 漏加隔离,断电域输出浮空,运行域收到 X 死锁或产生直通大电流。
- 该保持的状态没进 retention,唤醒后行为错乱。
- 跨电压域直连没加 level shifter。
- 上下电时序竞争、隔离与开关顺序错误,仿真偶发失败。
总结
电源门控靠切断电源域供电把漏电降到接近零,但代价是状态丢失、输出浮空且需重新初始化;因此必须用隔离单元在关断时把跨域输出钳到安全值防 X 和直通电流,用独立 always-on 电源供电的 retention 寄存器保存关键上下文以快速唤醒,用 level shifter 跨电压域,并由电源控制 FSM 按“先隔离后断电、稳定后再恢复撤隔离”的顺序操作,整套意图用 UPF 表达并通过专门的低功耗验证覆盖所有电源状态。