低功耗设计全流程:从架构划分到 UPF、实现、验证、签核的一条线
更新时间:2026-09-15。本文是「集成电路大类 · 低功耗设计与验证」入门层系统篇第 18 篇。第 17 篇给了一张按抽象层摊开的省电手段地图,这一篇换个视角:把这些手段按时间顺序串到芯片设计的 V 流程里,看每一步输入什么、产出什么、要回答哪个功耗问题。你会发现低功耗是一条和功能、时序并行的线索,缺了任何一环都会在最后以「功耗超标」或「醒来不工作」爆发。系统地图见低功耗导读。
本文要回答的问题
- 低功耗在项目里到底从哪一步开始、到哪一步结束?
- UPF 在流程里处于什么位置,为什么不直接写进 RTL?
- 隔离、保持、电平转换、电源开关是在哪个阶段被插进去的?
- 为什么普通功能仿真发现不了电源门控 bug,非要 power-aware 仿真?
- 功耗、IR-Drop、漏电分别在什么时候签收?
一、一条主线:低功耗贯穿整个 V 流程
功能设计是「需求→架构→RTL→综合→物理→流片→硅后」一条线,低功耗在每一段都有对应动作,且越早定预算越主动:

二、架构阶段:先定预算和电源域(决定 80%)
在写 RTL 之前,低功耗要回答的是「产品给的能量/散热预算怎么分到模块」,依据是电池能量预算和热预算:
- 列典型工作场景(活跃、空闲、深睡)及占空比,把整机平均功耗/电流预算拆到 CPU、存储、接口 PHY 等模块,形成带余量的功耗预算表(实战见后续功耗预算实战示例)。
- 划电源域:哪些必须常开(RTC、唤醒逻辑、保持泡——always-on),哪些可长睡(待机模式里整个关掉的模块),哪些需要不同电压(性能核 vs 节能域)。域划得好不好,直接决定后面电源门控能省多少(见电源域是什么)。
- 定状态与唤醒策略:断电后哪些状态必须保住、用什么唤醒源、可接受多长唤醒延迟。
这一步的产出是「电源架构规格」,它和功能规格同样重要,后期改域划分代价极大。
三、前端:用 UPF 写意图,RTL 写时钟门控
低功耗有个特殊点:电源意图不直接写进 RTL。RTL 只描述功能,对「这个块能不能断电、断了输出钳成什么」一无所知;如果把断电控制散落在 always 块里,综合、验证、形式检查都无法统一理解。于是用独立的 UPF(IEEE 1801,旧称 Unified Power Format)/ CPF 描述:
create_power_domain划域、create_power_switch定义开关;set_isolation规定断电域输出钳到 0 还是 1(保持与隔离);set_retention规定哪些寄存器断电时把状态存进常开泡;set_level_shifter规定跨电压域插电平转换;- 电源状态表 PST 描述合法的上下电/电压组合与切换序列。
UPF 的价值是一份意图、多个工具共用:综合照它插单元、物理照它摆、仿真照它建模断电(UPF 直觉见第 08 篇,总览见 低功耗设计与 UPF)。与此同时 RTL 工程师在代码里写好可被综合推断的时钟门控使能(时钟门控)。
四、综合阶段:低功耗综合与单元插入
普通逻辑综合只关心时序/面积/功耗的一般权衡;带电源意图后,综合还要做电源结构综合:
- 按 UPF 在网表中自动插入隔离单元、保持寄存器、电平转换器、电源开关,并保证它们连在正确的电源轨上;
- 多阈值优化:先用 HVT 综合,只给违例路径升级 LVT/SVT(多 Vth);
- 时钟门控插入与使能聚合、门级功耗优化(尺寸/Vt 重分配);
- 检查跨域连接是否都有合法的隔离/电平转换(没有就是漏网的隐患)。
产出是一张带电源管理单元的门级网表,它比纯功能网表多了一批「为省电而存在」的单元。
五、物理阶段:按域布规划、建供电网络
P&R在低功耗下要围绕电源域组织:
- Floorplan 按电源域切块,规划电源开关的分布(要保证关断时域内真能断电、导通时涌流 in-rush 不至于砸塌电源);
- 摆放保持/隔离单元(隔离单元通常由常开轨供电,断电域信号经它再输出)和电平转换器;
- 构建多轨电源网络:常开轨、可关断轨、不同电压轨各自成网(电源网络与 IR-Drop 见后续《电源网络》《IR-Drop》篇);
- 分析 IR-Drop(供电线上电阻导致管端电压偏低)和电迁移 EM,尤其开关闭合瞬间的动态压降;做热分析找热点。
物理阶段第一次能基于真实连线寄生(SPEF)给出可信功耗(为什么早期数不能签收,见功耗模型)。
六、验证:为什么必须 power-aware,且贯穿始终
这是低功耗流程里最容易翻车、也最能体现「为什么要单独一套意图」的环节。普通功能仿真假设所有电源永远有效:被电源门控关掉的域,在仿真器里照样在跑、输出照样有值,于是以下 bug 一个都测不出来:
- 断电域输出没隔离:真实硅上该域掉电后输出浮空/乱飘,可能把常开域的输入拉成非法电平、甚至灌穿电流损坏器件;普通仿真里信号却还「正常」。
- 状态没保住/恢复错:深睡前寄存器值没存进保持寄存器,醒来从 X 或旧值起跑,系统挂死。
- 上下电序列死锁:上电时隔离还没解除、电平转换没就绪、或等待一个在断电域里的信号,造成永远醒不来(电源序依赖)。
- X 传播:断电域应输出受控钳位值,若隔离策略错,未知态 X 传播进常开逻辑。
power-aware 仿真读 UPF,让仿真器知道某个域在某时刻掉电:掉电时域内节点按断电建模(不是凭空保持),输出走隔离单元被钳位,保持寄存器按 save/restore 控制工作,再配合电源状态表验证每一次上下电、保持恢复、域间通信。常见检查还包括:所有跨断电边界的信号都有隔离、所有跨电压边界都有电平转换、PST 中每个状态可达且切换序列合法。低功耗验证为什么难、还能怎么查,后续低功耗验证直觉篇展开(系统侧见 低功耗设计与 UPF)。
七、签核:多模多角下同时盖几个章
物理和验证收敛后,签核不是只看一个功耗数,而是一组并列的「盖章」:
- 功耗签核:在典型/高温/低压等多个 PVT 角、用门级网表+真实 SPEF+代表性 SAIF,给出动态(internal+switching)与漏电功耗,核对是否在预算(后续功耗预算实战示例篇)内;深睡态单独核漏电(见功耗模型、报告判读)。
- IR-Drop / 电迁移签核:最坏向量下管端电压不能跌出时序假设(静态平均 + 动态瞬态),金属线电流密度不超电迁移寿命限值。
- 热签核:结温和热点不超 Tj_max(热)。
- 时序在低功耗角仍收敛:低压档、刚上电等角也要过 setup/hold。
这些彼此耦合:IR-Drop 让局部 V 变低→延迟变大→可能时序违例,温度高→漏电涨→IR 更差,所以要在 MMMC 下联合看。
八、硅后:实测回校预算,闭环
流片回来,用电流探头/电源分析仪做板级实测(后续《功耗怎么测》篇)、在 FPGA/仿真器或硅上做 DPA 动态功耗分析,拿到真实场景的功耗曲线,与签核预测和最初的预算逐级对账(方法学见 DPA 技术报告、四级对账)。偏差大就回头修模型/翻转率/场景权重,形成下一颗芯片的经验库。没有硅后回校的预算,下次还是拍脑袋。
九、每个阶段一页账:输入/产物/要回答的问题
| 阶段 | 主要输入 | 关键产物 | 要回答的功耗问题 |
|---|---|---|---|
| 架构 | 产品续航/热指标、场景占空比 | 功耗预算表、电源域划分、状态/唤醒策略 | 总能量地板多高?谁常开/可睡/可关? |
| 前端 | 电源架构、RTL | UPF 意图、带门控使能的 RTL | 意图是否完整、可被工具理解? |
| 综合 | RTL+UPF+库 | 带隔离/保持/转换/开关、多 Vth 的网表 | 跨域单元是否补齐?漏电是否最小? |
| 物理 | 网表+UPF | 域 floorplan、电源网络、SPEF | IR-Drop/EM/热点过不过? |
| 验证 | RTL/网表+UPF+激励 | power-aware 用例与回归 | 断电隔离/保持恢复/上下电对不对? |
| 签核 | 网表+SPEF+SAIF+.lib | MMMC 功耗/IR/热/时序报告 | 各角是否都在预算内? |
| 硅后 | 真实芯片、仪器 | 实测曲线、对账结论 | 预测准不准?下颗怎么改? |
十、低功耗不是一个团队的事:角色与交接
流程能跑通,靠的是不同角色在固定节点交接同一份「电源契约」(主要载体就是预算表和 UPF):
- 架构/系统:定场景占空比、功耗预算、电源域树和唤醒/状态策略,对「总能量地板」负责;
- RTL 设计:写可门控的 RTL(使能清晰、数据通路可隔离)、配合电源管理控制器和时钟/复位方案;
- 低功耗/UPF 工程师:维护 UPF 意图、定义电源状态表 PST、评审域划分和保持/隔离/转换策略的完整性;
- 综合/P&R:照意图插入并摆放电源管理单元、构建多轨电源网络、控制 IR-Drop/EM、做多 Vth;
- 验证:在普通功能回归之外建 power-aware 用例(上下电、保持恢复、隔离钳位、域间通信),并做 LP 规则检查(跨域缺单元、供电缺失);
- 签核/PI:多模多角功耗、IR-Drop/EM、热联合签收;
- 软件/固件:实现 governor、睡眠策略、唤醒处理,让硬件省电状态真正被用起来;
- 硅后/DPA:实测回校预算、沉淀场景权重和模型偏差。
每个交接点都有可检查的产物(预算表、UPF 版本、带电源单元网表、power-aware 回归报告、MMMC 签收报告、实测对账)。实践中大量低功耗事故不是技术不会,而是契约在交接中失真:架构定的可关域在 RTL 里没有干净的时钟/复位边界、UPF 与最终网表版本错位、固件不知道某状态需要 retention 就提前断电。所以严肃项目会把 UPF 和预算表像 RTL 一样纳入版本管理和评审,并要求任何域/策略变更同步更新所有下游——这与低功耗设计 vs 验证的分工和后续《低功耗评审清单》篇一脉相承。
这一篇在知识体系里的位置
- 各阶段用的省电手段地图 → 上一篇《低功耗手段全景》;
- 意图语言与电源域概念 → UPF 是什么、电源域是什么、低功耗设计与 UPF;
- 断电三件套 → 保持与隔离、电平转换、电源门控;
- 签核数据从哪来/怎么读 → 功耗模型、翻转率、功耗报告;
- 硅后两条线 → DPA 专题、后续《功耗怎么测》篇。
总结
一句话总结:低功耗不是后端某个工具的按钮,而是一条与功能/时序并行、贯穿架构到硅后的设计线索——架构阶段先用电池与热预算按场景占空比拆出分模块功耗预算并完成电源域划分(谁常开成 always-on 泡、谁可长睡、谁需要不同电压、断电后哪些状态要保、用什么唤醒),这一步因决定能量地板而锁定了约 80% 的功耗;前端把电源意图从 RTL 中独立出来用 UPF(IEEE 1801)描述电源域、开关、隔离钳位、保持、电平转换和电源状态表 PST,使一份意图能被综合/物理/验证共用,同时在 RTL 里写好可推断的时钟门控;综合阶段做低功耗综合,自动插入隔离/保持/电平转换/电源开关并做多阈值 HVT/LVT 优化;物理阶段按电源域做 floorplan、布置开关与保持隔离单元、构建多轨电源网络,用真实 SPEF 分析 IR-Drop、电迁移与热点;最关键也最易翻车的是必须做 power-aware 仿真,因为普通功能仿真假设所有电源永远有效,断电域照样跑、照样输出,根本测不出未隔离导致信号乱飘/灌穿、保持失败醒来从 X 起跑、上下电序列死锁和 X 传播这几类典型低功耗 bug,只有读 UPF 建模掉电/钳位/保持恢复才能暴露;签核要在多模多角下同时盖功耗(典型/高温/低压角动态加漏电、深睡单独核漏电)、IR-Drop/EM、热和低压角时序这几个彼此耦合的章(压降→局部低压→时序变差、温升→漏电涨→压降更差),最后硅后用板级实测和 DPA 动态功耗分析逐级回校最初预算、沉淀到下一颗芯片,形成「预算—设计—验证—签核—实测对账」的完整闭环。