电源门控里的 retention 和 isolation 分别是什么?
更新时间:2026-09-21。问题驱动短答页。电源域见 保持与隔离,低功耗方法见 低功耗设计方法,功耗分析见 功耗分析,UPF 见 低功耗 UPF。
一句话回答
电源门控是直接把某个电源域彻底断电,连漏电都省掉,但断电会带来两个问题:一是该域寄存器/存储器里的状态全没了,二是该域连到其他域的输出会变成悬空不定态、可能在下游造成穿通电流或错误。Retention(保持)用少量专用低漏电保持触发器或一条常开「保持电源」在断电期间只保住关键状态;Isolation(隔离)在关断瞬间把对外输出钳位到一个固定安全电平。两者一个管「状态不丢」、一个管「接口不乱」,缺一不可。
为什么不能只断电
时钟门控只停时钟、模块还通电,状态保留但漏电照耗,见 门控时钟。电源门控把供电切掉,漏电近乎为零,代价是:
- 状态丢失:普通触发器和 SRAM 掉电即失忆。
- 输出悬空:掉电域的输出驱动管全关,信号线浮空,下游门输入可能停在中间电平,导致 PMOS/NMOS 同时导通产生大穿通电流,或传播 X。
Retention(保持)
- 保持触发器(retention flip-flop):主触发器正常工作,另有一个由常开「保持电源(always-on rail)」供电的低漏电影子锁存器。掉电前把状态存进去、上电后恢复,只给关键状态用以省面积和漏电。
- retention SRAM / 保持电源域:让 RAM 或小部分逻辑挂在常开低压轨,整体主电关掉、保持轨只供维持数据。
- 权衡:全部保持成本高,通常只保存「醒来必须立刻用」的上下文。
Isolation(隔离)
- **隔离单元(isolation cell)**插在关断域与常开域的边界,由电源管理控制器控制:域通电时等于一根导线,断电时把输出钳到 0、1 或「上一次值」,保证下游不悬空。
- 还要配 level shifter(不同电压域电平转换)、power switch(开关电源的 header/footer MOS)和 always-on 电源控制器/复位时序。
- 上/下电有严格顺序:先隔离输出 → 存 retention → 断电;上电时先稳定供电和时钟 → 恢复 retention → 解除隔离,错误顺序会产生穿通或死锁,见 低功耗模式进出。
怎么描述与验证
这些电源域、开关、retention、isolation、level shifter 不靠 RTL 文字说明,而用 UPF/CPF(IEEE 1801) 独立描述意图,由综合/P&R 插入相应单元,并用 power-aware 仿真验证关断-保持-隔离-恢复全过程,见 UPF、低功耗 UVM。
常见坑
- 只断电不做隔离:边界浮空,下游穿通大电流或 X 传播。
- 该保持的状态没 retention:唤醒后读到随机值,功能异常。
- 上电/断电顺序错:retention 未存好就断电,或未隔离就切电。
- 跨电压域漏插 level shifter。
- 用普通功能仿真验证电源门控:看不到掉电行为,必须 power-aware 仿真 + 静态检查。
总结
电源门控靠切掉电源域同时省掉动态和漏电功耗,但必须处理掉电的两个副作用:retention 用常开保持轨上的低漏电影子寄存器/保持 SRAM 只存关键状态、解决状态丢失,isolation 用边界隔离单元在关断时把对外信号钳到安全电平、防止下游悬空穿通和 X 传播;再配合 level shifter、power switch 和 always-on 控制器按「隔离→保持→断电、上电→恢复→解隔离」的顺序动作,全部电源意图用 UPF 描述并经低功耗仿真验证——这正是它比只停时钟的时钟门控更彻底但也复杂得多的原因。