EDA 功耗分析入门教程

面向 EDA power 方向入门工程师的科普系列,共七篇,层层递进:从术语与直觉出发,经原理推导、库建模、活动率来源,到分析方法学与低功耗技术。

  • 语言:中文(专业术语保留英文原词 + 中文解释)

  • 公式:LaTeX;图示:Mermaid

  • 定位:普适的领域知识,不绑定任何具体工具实现

目录

篇目

主题

回答的问题

01 · 功耗世界导览

功耗分类与术语地图

功耗为什么重要?总功耗由哪几部分组成?

02 · 动态功耗原理

switching / internal power 推导

动态功耗怎么算?\(P=\alpha CV^2f\) 从哪来?

03 · 静态功耗原理

三种漏电机制与电压温度依赖

不动为什么也耗电?漏电对工艺/温度多敏感?

04 · 功耗建模

Liberty 功耗数据、查找表、PVT

工具怎么知道每个单元耗多少电?

05 · Activity 与翻转率

toggle rate / duty / SAIF / VCD / 概率传播

翻转率从哪来?不同来源精度差多少?

06 · 功耗分析方法学

平均/峰值/时间窗功耗、各阶段分析流程、报告解读

一次完整的功耗分析长什么样?

07 · 低功耗设计入门

clock gating / multi-Vt / power gating / DVFS / UPF

知道功耗之后怎么降?

建议读法

按 01→07 顺序阅读;每篇末尾有"术语回顾"和"延伸阅读"。已有电路基础的读者可从 04 或 05 切入。

01 · 功耗世界导览

本系列是面向 EDA 功耗(power)方向入门工程师的技术教程,共七篇,层层递进。本篇是第一篇:在深入任何公式之前,先建立对功耗的整体认知框架和核心词汇表。

为什么功耗如此重要

在芯片设计的各项约束指标中,功耗(power)已从早期的次要考量上升为首要设计约束。打开任何一份先进工艺的功耗报告,都能看到功耗数值逼近甚至突破设计规格线的警告。这一转变源于以下工程现实:

  • 续航:手机、手表、耳机等移动设备的电池容量有限,功耗直接决定设备的工作时长。

  • 散热:功耗最终几乎全部转化为热量。一颗 100 W 的 CPU 若缺乏有效散热,数分钟内即可因过热而损坏;在数据中心中,散热与供电基础设施的成本已超过芯片本身的成本。

  • 可靠性:电流密度过高会引发电迁移(electromigration),局部过热会加速器件老化,芯片寿命随温度呈指数级下降。

  • 成本与供电上限:封装、电源网络、散热器的成本均随功耗增长而显著增加;单个芯片能够安全承受的功率存在硬性上限。

历史上,晶体管每次缩小,电压也同步降低(Dennard 缩放定律),功耗密度大致保持不变。但 2005 年前后,电压降至 1 V 附近后难以下降(再低则晶体管无法有效关断),于是"每代性能免费提升"的时代终结,业界遭遇了著名的功耗墙(power wall)。此后,功耗分析与低功耗设计成为每个芯片工程师的必备技能——这正是本教程的主题。

功耗从哪里来:一张分类图

CMOS 芯片的总功耗可拆解为三大类。下图展示了完整的分类层次,后续各篇将逐一展开每个分支:

graph TD
    A["总功耗<br/>Total Power"]
    A --> B["动态功耗<br/>Dynamic Power"]
    A --> C["静态功耗<br/>Static Power"]
    subgraph SG_DYN ["动态功耗"]
        B --> D["开关功耗<br/>Switching Power"]
        B --> E["内部功耗<br/>Internal Power"]
    end
    subgraph SG_STA ["静态功耗"]
        C --> F["漏电功耗<br/>Leakage Power"]
    end
动态功耗(Dynamic Power):信号翻转引起的消耗

仅在信号发生翻转(0→1 或 1→0)时产生的功耗。它包含两个组成部分:

  • 开关功耗(switching power):信号翻转时,对该信号线上的负载电容充放电所消耗的能量。翻转频率越高、负载电容越大、供电电压越高,消耗的能量越多。

  • 内部功耗(internal power):发生在单元内部、不体现在输出电容充放电上的功耗,主要来源为翻转瞬间 PMOS 与 NMOS 同时导通形成的从电源到地的短路电流(short-circuit current),以及单元内部节点的充放电。

静态功耗(Static Power):信号静止时的持续消耗

即使所有信号保持不变,晶体管也非理想开关,总有微小的漏电流从电源流向地,持续消耗能量,即漏电功耗(leakage power)。在先进工艺节点下,漏电可占总功耗的 30%~50%,是待机功耗的主要来源。

动态功耗与信号翻转频率成正比,仅在电路活动时产生;静态功耗与信号状态无关,只要电路处于上电状态即持续存在。

一个直觉例子:反相器翻转一次花多少能量

考虑一个最简单的反相器(inverter),输出端带着负载电容 \(C\),电源电压为 \(V\):

graph LR
    IN["IN"] --> INV["反相器<br/>Inverter"]
    INV --> OUT["OUT"]
    OUT --> CL["负载电容<br/>C"]
  • 输出从 0 翻到 1:PMOS 导通,电流从电源流入电容,电容充上能量 \(\frac{1}{2}CV^2\),同时在 PMOS 上以热量形式耗散 \(\frac{1}{2}CV^2\)。电源一共付出 \(CV^2\)

  • 输出从 1 翻到 0:电容中存储的 \(\frac{1}{2}CV^2\) 通过 NMOS 放电至地,全部转化为热能。

因此一次完整的充-放循环消耗 \(CV^2\),平均每次翻转消耗 \(\frac{1}{2}CV^2\) 量级。若每秒翻转 \(\alpha f\) 次(\(f\) 为时钟频率,\(\alpha\) 为翻转速率系数),平均功耗为:

\[ P_{switching} = \frac{1}{2} \alpha C V^2 f \]

这是整个功耗分析领域最核心的公式。注意电压为平方项——这正是降低电压成为降功耗最有效手段的原因,也是低电压设计(以及第 7 篇所讨论的 DVFS)的根本动机。第 2 篇将给出完整推导。

关键术语速览

下表列出本教程涉及的核心术语。各术语将在对应篇章中正式定义和使用:

术语

一句话解释

详见

功耗(power)/ 能量(energy)

功耗是单位时间消耗的能量,单位瓦特(W);能量单位焦耳(J)。电池容量对应能量,发热对应功耗

第 2 篇

翻转率(toggle rate)/ 活动率(activity, \(\alpha\))

信号在单位时间(或每个时钟周期)内翻转的次数/概率

第 5 篇

占空比(duty)/ 静态概率(static probability)

信号处于高电平的时间比例 / 信号为 1 的概率

第 5 篇

负载电容(load capacitance)

一个输出端需要充放电的总电容,来自连线 + 扇出栅电容

第 2 篇

短路电流(short-circuit current)

翻转瞬间 PMOS/NMOS 同时导通形成的直通电流

第 2 篇

漏电(leakage)

晶体管关断时仍存在的微小电流

第 3 篇

PVT / corner

工艺(Process)、电压(Voltage)、温度(Temperature)的组合工况点

第 4 篇

Liberty 库(.lib)

描述标准单元时序、功耗、面积等特性的库文件

第 4 篇

查找表(lookup table, LUT)

库中用"索引值+表格"离散表示功耗/延迟数据的方式

第 4 篇

SAIF / VCD

记录信号翻转活动的文件格式,功耗分析的主要活动数据来源

第 5 篇

平均功耗 / 峰值功耗

长时间平均功率 vs 短时间窗口内的最大功率

第 6 篇

时钟门控(clock gating)

不工作时关掉寄存器时钟以省动态功耗的技术

第 7 篇

电源门控(power gating)

整块电路不用时直接断电以省漏电的技术

第 7 篇

DVFS

动态电压频率调节:按需升降电压和频率

第 7 篇

UPF

描述低功耗设计意图(电源域、隔离、保持等)的标准格式

第 7 篇

本教程路线图

graph LR
    subgraph SG_BASE ["基础原理"]
        P1["01<br/>功耗世界导览"] --> P2["02<br/>动态功耗原理"]
        P2 --> P3["03<br/>静态功耗原理"]
    end
    subgraph SG_DATA ["数据与建模"]
        P4["04<br/>功耗建模与 Liberty"] --> P5["05<br/>Activity 与翻转率"]
    end
    subgraph SG_APPLY ["分析与设计"]
        P6["06<br/>功耗分析方法学"] --> P7["07<br/>低功耗设计入门"]
    end
    SG_BASE --> SG_DATA --> SG_APPLY
  • 第 2 篇回答"动态功耗怎么算":推导 \(P = \alpha C V^2 f\),讲清短路功耗。

  • 第 3 篇回答"漏电从哪里来":三种漏电机制及其对电压、温度的敏感依赖。

  • 第 4 篇回答"工具怎么知道每个单元耗多少电":Liberty 库中的功耗建模方式。

  • 第 5 篇回答"翻转率从哪来":仿真波形(VCD/SAIF)、概率传播、无向量估计。

  • 第 6 篇回答"一次完整的功耗分析长什么样":平均/峰值功耗、各设计阶段的分析流程、报告解读。

  • 第 7 篇回答"知道了功耗之后怎么降":主流低功耗技术入门。

本篇小结

  • 功耗的重要性源于续航、散热、可靠性与成本约束;Dennard 缩放失效后,业界遭遇功耗墙。

  • 总功耗 = 动态功耗(开关功耗 + 内部功耗)+ 静态功耗(漏电功耗)。

  • 开关功耗正比于 \(\alpha C V^2 f\),电压为平方项,是降功耗最有效的调节手段。

  • 动态功耗仅在信号翻转时产生,静态功耗在上电状态下持续存在。

术语回顾

功耗(power)、能量(energy)、动态功耗(dynamic power)、开关功耗(switching power)、内部功耗(internal power)、静态功耗(static power)、漏电功耗(leakage power)、负载电容(load capacitance)、活动率(activity)、功耗墙(power wall)

延伸阅读

  • Rabaey, Digital Integrated Circuits: A Design Perspective, 第 5 章(CMOS 反相器的功耗经典推导)

  • 维基百科词条:Dynamic power、Leakage (semiconductors)、Dennard scaling

  • Synopsys 白皮书 Low Power Methodology Manual(第 7 篇读完后回看效果更佳)


下一篇:02 · 动态功耗原理

02 · 动态功耗原理

本篇是 EDA 功耗方向入门教程第二篇,承接第 01 篇的分类图,展开"动态功耗"分支。读完本篇,你将能够完整推导开关功耗公式,理解内部功耗的两大来源,并掌握典型数值的量级范围。

开篇:为什么动态功耗值得单独一篇

在第 01 篇中我们看到,总功耗被拆解为动态功耗与静态功耗两大块,而动态功耗又细分为开关功耗(switching power)内部功耗(internal power)。动态功耗仅在信号发生逻辑翻转时产生;然而在高频处理器中,信号几乎每个时钟周期都在翻转,每秒数十亿次的充放电累积起来,常常占据总功耗的 60% 以上。因此,动态功耗是高性能数字设计功耗预算中的主要组成部分。

本篇从最基本的反相器出发,逐步推导开关功耗的解析公式,再讨论单元内部的功耗来源。

开关功耗的完整推导

一次充电:电源供给的能量

考虑一个反相器驱动负载电容 \(C\),电源电压为 \(V\)。当输出从 0 跳变到 1 时,PMOS 导通,电源通过 PMOS 对电容充电,直到电容两端电压达到 \(V\)

graph LR
    VDD["VDD"] --> PMOS["PMOS<br/>导通"]
    PMOS --> OUT["输出节点"]
    OUT --> C["负载电容<br/>C"]
    C --> GND["GND"]

充电完成后,电容储存的能量为:

\[ E_C = \frac{1}{2} C V^2 \]

然而,电源在整个充电过程中提供的能量并非 \(\frac{1}{2}CV^2\),而是 \(CV^2\)。这是因为电源始终以恒定电压 \(V\) 输出电流,而流过的总电荷量为 \(Q = CV\),故电源做功 \(W = V \cdot Q = CV^2\)

差额的去向:另一半 \(\frac{1}{2}CV^2\) 在充电过程中以热的形式耗散在 PMOS 的导通电阻上。

一次放电:电容储能去向

当输出从 1 跳变到 0 时,PMOS 关断,NMOS 导通,电容通过 NMOS 对地放电。电容原先储存的 \(\frac{1}{2}CV^2\) 全部转化为 NMOS 上的热量。

graph LR
    OUT["输出节点"] --> C["负载电容<br/>C"]
    C --> GND["GND"]
    OUT --> NMOS["NMOS<br/>导通"]
    NMOS --> GND
一个完整周期

将一次充电与一次放电合并分析:

阶段

电源供给

电容储能变化

PMOS 耗散

NMOS 耗散

0→1 充电

\(CV^2\)

\(+\frac{1}{2}CV^2\)

\(\frac{1}{2}CV^2\)

0

1→0 放电

0

\(-\frac{1}{2}CV^2\)

0

\(\frac{1}{2}CV^2\)

合计

\(CV^2\)

0

\(\frac{1}{2}CV^2\)

\(\frac{1}{2}CV^2\)

一个完整的充-放周期中,电源共提供 \(CV^2\) 的能量,全部最终转化为热。平均到每次 0→1 翻转,消耗的能量为 \(\frac{1}{2}CV^2\)

引入活动率:从单次翻转到平均功耗

现实中,信号并非每个时钟周期都翻转。我们用活动率(activity factor, \(\alpha\)) 来描述信号在一个时钟周期内发生 0→1 翻转的概率。

例如时钟信号本身,每个周期有一次上升沿和一次下降沿,等效为每周期一次 0→1 翻转,故 \(\alpha_{clk} = 1\);而普通数据信号通常在 0.1~0.3 之间,意味着平均 10 个周期才翻转 1~3 次。

若时钟频率为 \(f\),则每秒发生 \(\alpha f\) 次 0→1 翻转,每次消耗 \(\frac{1}{2}CV^2\),于是平均开关功耗为:

\[ \boxed{P_{switching} = \frac{1}{2} \alpha C V^2 f} \]

这就是功耗分析领域最核心的公式。请注意三个关键特征:

  • 电压 \(V\) 是平方项——降低 10% 电压可减少约 19% 开关功耗,这是低压设计的根本动力。

  • 电容 \(C\) 和频率 \(f\) 是线性项——减小负载或降低频率均可等比例降低功耗。

  • 活动率 \(\alpha\) 是线性项——减少不必要的翻转(如时钟门控)可直接降低功耗。

负载电容的组成

公式中的 \(C\) 并不是一个抽象符号,它由两部分构成:

\[ C_{load} = C_{wire} + C_{fanout} \]
  • 连线电容(wire capacitance, \(C_{wire}\)):输出端到扇出门输入端之间的金属互连线对地电容。线越长、线距越近、层间介质越薄,电容越大。

  • 扇出栅电容(gate capacitance, \(C_{fanout}\)):被该输出驱动的所有下级单元的输入栅电容之和。扇出越多,需要充放电的栅极总面积越大。

在先进工艺中,连线电容往往占负载电容的一半以上,因此布局布线(placement & routing)对功耗影响显著。

内部功耗:单元内部的能量耗散

开关功耗发生在输出端对外部负载电容的充放电,而内部功耗(internal power) 则发生在单元内部,不体现在输出节点的充放电上。它主要有两大来源。

来源一:短路电流(short-circuit current)

当输入信号翻转时,在一段极短的过渡时间内,PMOS 和 NMOS 同时导通,形成一条从 VDD 直通 GND 的低阻路径,产生短路电流(short-circuit current,又称 crowbar current)。

graph TD
    VDD["VDD"] --> PMOS["PMOS"]
    PMOS --> MID["中间<br/>节点"]
    MID --> NMOS["NMOS"]
    NMOS --> GND["GND"]
    MID --> OUT["输出"]
    subgraph "输入翻转<br/>过渡期"
        PMOS
        NMOS
    end

短路电流的大小与两个因素密切相关:

  • 输入转换时间(input slew):输入信号从 0 变到 1(或反之)越慢,PMOS 和 NMOS 同时导通的窗口就越长,短路电流越大。若输入近似理想阶跃,同时导通时间趋近于零,短路功耗可忽略;若输入爬升缓慢,则两管同时导通的持续时间显著延长,短路电流积分值随之增大。

  • 输出负载:输出负载越大,输出节点电压变化越慢,在输入已越过阈值而输出尚未完成跳变的时段内,短路电流持续存在。因此,短路功耗与输入转换时间相对于输出转换时间的比值正相关。

经验上,在设计良好的标准单元库中,短路功耗约占开关功耗的 10%~20%;但若输入 slew 劣化(过长),该比例可上升至 50% 以上。

来源二:内部节点电容充放电

复杂单元(如 NAND、NOR、AOI 等)内部存在不直接对外暴露的中间节点,这些节点也带有寄生电容,翻转时同样需要充放电。

以 2 输入 NAND 为例,两个串联 NMOS 之间有一个内部节点。当输入组合变化导致该节点电压改变时,对其寄生电容的充放电就属于内部功耗。这部分通常较小,但在深亚微米工艺下不可忽略。

数值实例:典型量级

代入一组典型参数进行计算:

参数

取值

负载电容 \(C\)

2 pF

电源电压 \(V\)

0.9 V

时钟频率 \(f\)

1 GHz

活动率 \(\alpha\)

0.15

代入公式:

\[ P_{switching} = \frac{1}{2} \times 0.15 \times 2 \times 10^{-12} \times (0.9)^2 \times 10^9 \]
\[ = \frac{1}{2} \times 0.15 \times 2 \times 10^{-12} \times 0.81 \times 10^9 \]
\[ = 0.1215 \times 10^{-3} \text{ W} \approx 122 \text{ µW} \]

单条信号线约 122 µW,量级较小。但现代处理器中数千万条信号线同时翻转,累加后可达数十瓦量级,这是动态功耗成为主要功耗来源的根本原因。

降功耗杠杆预告

从公式 \(P = \frac{1}{2}\alpha C V^2 f\) 和内部功耗的特性,我们可以列出降功耗的四大杠杆(第 7 篇将逐一展开):

  1. 降电压 \(V\):平方项,效果最显著。DVFS(动态电压频率调节)的核心思想。

  2. 减电容 \(C\):优化布局布线缩短连线、减小扇出、使用低电容互连层。

  3. 降活动率 \(\alpha\):时钟门控(clock gating)关闭空闲模块的时钟,数据通路使能控制等。

  4. 改善 slew 降低内部功耗:避免过长或过短的输入转换时间,在时序与功耗之间取平衡。

本篇小结

  • 开关功耗源于对负载电容的充放电:一次完整充-放周期消耗 \(CV^2\),平均每次 0→1 翻转消耗 \(\frac{1}{2}CV^2\)

  • 引入活动率 \(\alpha\) 后,平均开关功耗为 \(P_{switching} = \frac{1}{2}\alpha C V^2 f\),电压是平方项,是最有效的降功耗杠杆。

  • 负载电容由连线电容与扇出栅电容两部分组成。

  • 内部功耗两大来源:短路电流(输入翻转过渡期 PMOS/NMOS 同时导通)和单元内部节点电容充放电。

  • 短路电流随输入 slew 增大而增大,设计良好的单元库中约占开关功耗的 10%~20%。

术语回顾

开关功耗(switching power)、内部功耗(internal power)、活动率(activity factor, \(\alpha\))、负载电容(load capacitance)、连线电容(wire capacitance)、扇出栅电容(gate capacitance)、短路电流(short-circuit current / crowbar current)、输入转换时间(input slew)

延伸阅读

  • Rabaey, Chandrakasan, Nikolic, Digital Integrated Circuits: A Design Perspective, 第 5 章——CMOS 反相器功耗的经典推导,短路电流的定量分析。

  • Chandrakasan, Low Power Digital CMOS Design——活动率与功耗关系的系统论述。

  • Weste, Harris, CMOS VLSI Design: A Circuits and Systems Perspective, 第 5 章——内部节点功耗与短路电流的直观解释。


上一篇:01 · 功耗世界导览 | 下一篇:03 · 静态功耗原理

03 · 静态功耗原理

在完成动态功耗的分析后,我们转向一个同样关键但常被低估的功耗分量。在实际芯片的待机模式(standby/idle mode)功耗实测中,即使所有信号保持恒定、逻辑不发生任何翻转,功耗报告中的 leakage 项仍然不为零。这一功耗来源于静态功耗(static power),也称漏电功耗(leakage power)。本篇将拆解漏电的物理来源,以及它对电压、温度的敏感依赖。

信号不动,电流仍在

理想的 MOS 晶体管是一个完美的开关:栅极施加电压即导通,撤除电压即彻底关断,关断时电流为零。然而,实际晶体管并非理想开关——即使在关断状态下,仍然存在微小电流从电源(VDD)经由多种物理路径流向地(GND)。这些电流统称为漏电流(leakage current),其持续流动并消耗功率,构成静态功耗。

动态功耗与信号翻转率成正比,而静态功耗与翻转无关——即使电路完全静止,漏电电流仍持续流过。当芯片集成数十亿个晶体管时,每个器件的微小漏电汇聚后成为不可忽视的功耗分量。

三种主要漏电机制

漏电并非单一物理现象,而是多条并联导电路径的总和。在 CMOS 工艺中,最主要的三条路径如下:

graph TD
    A["漏电流<br/>Leakage Current"] --> B["亚阈值漏电<br/>Subthreshold Leakage"]
    A --> C["栅氧漏电<br/>Gate Oxide Leakage"]
    A --> D["结漏电<br/>Junction / BTBT Leakage"]
    B -.- E["占比最大<br/>(通常 60%~80%)"]
    C -.- F["工艺相关<br/>(high-k 后大幅缓解)"]
    D -.- G["通常最小"]

下面逐一拆解。

① 亚阈值漏电(Subthreshold Leakage)

这是漏电的最主要来源,理解它就掌握了静态功耗的核心机制。

回顾 NMOS 的工作原理:栅源电压 \(V_{gs}\) 高于阈值电压(threshold voltage, \(V_{th}\)) 时,沟道形成,晶体管导通;低于 \(V_{th}\) 时,晶体管处于关断状态。但关断并不意味着电流为零——当 \(V_{gs} < V_{th}\) 时,沟道并未完全消失,而是处于弱反型(weak inversion) 状态,仍有少量载流子通过扩散(diffusion) 从源极迁移至漏极,形成亚阈值电流。

亚阈值电流的简化表达式为:

\[ I_{sub} \approx I_0 \cdot 10^{\frac{V_{gs} - V_{th}}{S}} \]

其中 \(S\)亚阈值摆幅(subthreshold swing),室温下理论极限约为 60 mV/decade,实际器件通常在 70~100 mV/decade。\(I_0\) 是与工艺和器件尺寸相关的常数。

这个公式有两个关键信息:

  • 指数关系: \(I_{sub}\)\((V_{gs} - V_{th})\) 呈指数变化。\(V_{gs}\) 每比 \(V_{th}\) 低一个 \(S\),电流缩小一个数量级(10 倍)。反之,\(V_{th}\) 每降低数十 mV,漏电电流即可增加数倍。

  • 温度敏感: \(S\) 与绝对温度 \(T\) 成正比(\(S \propto kT/q\)),温度升高时 \(S\) 增大,指数衰减速率降低,漏电电流显著增大。

物理机制:\(V_{th}\) 越高,栅极对沟道载流子的控制能力越强,亚阈值区域的载流子浓度越低,扩散电流越小;温度升高时,载流子的热运动能量增大,更多载流子具备越过势垒的能量,导致亚阈值电流呈指数增长。这一温度依赖性由亚阈值摆幅公式 \(S \propto kT/q\) 直接描述。

② 栅氧漏电(Gate Oxide Leakage)

MOS 管的栅极与沟道之间隔着一层极薄的二氧化硅绝缘层(栅氧,gate oxide)。随着工艺节点缩小,这层氧化物越来越薄——到了 65nm 节点,栅氧厚度已经只有 1~2 nm,相当于几个原子的厚度。在这种尺度下,电子可以通过量子隧穿(tunneling) 直接穿过绝缘层,形成从栅极到沟道(或反向)的电流,即栅氧漏电(gate oxide leakage)

隧穿概率与氧化层厚度呈指数关系:

\[ I_{gate} \propto e^{-\beta \cdot t_{ox}} \]

其中 \(t_{ox}\) 是栅氧厚度,\(\beta\) 是与势垒高度相关的常数。氧化层每薄 0.2 nm,隧穿电流可能增加一个数量级。

从 45nm 节点开始,业界引入了 high-k 介质(如 HfO₂)替代传统的 SiO₂。high-k 材料的介电常数更高,可以在保持等效氧化层厚度(EOT)不变的前提下使用更厚的物理层,从而大幅抑制隧穿电流。因此,在 45nm 及以后的工艺中,栅氧漏电已显著缓解,不再是漏电的主要来源。

③ 结漏电(Junction / BTBT Leakage)

在 MOS 管的源/漏区与衬底之间存在反偏的 pn 结(junction)。反偏 pn 结理想情况下没有电流,但实际上存在两种漏电机制:

  • 少数载流子漂移:反偏结两侧的少数载流子(如 p 区的电子、n 区的空穴)被电场扫过结区,形成微小的反向饱和电流。

  • 带间隧穿(band-to-band tunneling, BTBT):在高电场区域(尤其是漏端附近的漏-衬底结),价带电子可以直接隧穿到导带,产生额外的漏电流。

结漏电通常与结面积、掺杂浓度和反偏电压有关。在大多数数字电路中,结漏电是三种漏电机制中最小的一种,但在某些高压 I/O 单元或特殊结构中可能变得显著。

关键依赖关系:工程意义

理解漏电对哪些参数敏感,是后续所有低功耗技术的物理基础。

温度:指数级恶化

亚阈值漏电随温度指数增长。工程上有一个广为流传的经验量级:温度每升高约 10~20 °C,亚阈值漏电大约翻一倍(具体倍数取决于工艺和 \(V_{th}\) 取值)。这意味着:

  • 芯片在高温 corner 下的漏电可能是低温 corner 的数倍甚至数十倍。

  • 散热设计不仅关乎可靠性,也直接影响功耗——温度升高 → 漏电增大 → 发热更多 → 温度进一步升高,形成热失控(thermal runaway) 的正反馈环路。

电压与阈值电压:指数敏感

从亚阈值漏电公式可以直接看出:

  • \(V_{th}\) 每降低几十 mV,漏电就可能增加数倍。这就是为什么工艺厂商会提供多种 \(V_{th}\) 选项(high-Vt、standard-Vt、low-Vt)——high-Vt 单元漏电小但速度慢,low-Vt 单元速度快但漏电大。设计时在关键路径用 low-Vt 保时序,在非关键路径用 high-Vt 省漏电,这就是 multi-Vt 优化的核心思路(详见第 7 篇)。

  • 降低 \(V_{DD}\) 虽然主要影响动态功耗(平方关系),但对漏电也有间接影响:较低的 \(V_{DD}\) 意味着关断状态下 \(V_{gs}\) 更远离 \(V_{th}\),亚阈值漏电减小。

  • 断电(power gating) 是最激进的手段:直接把不工作模块的电源切断,\(V_{DD}\) 降到 0,漏电彻底归零。代价是唤醒延迟和面积开销(详见第 7 篇)。

堆叠效应(Stack Effect)

当多个晶体管串联且都处于关断状态时,总漏电远小于单个晶体管的漏电,这一现象称为堆叠效应(stack effect)。

以一个两输入 NAND 门为例:当两个输入都为 0 时,两个串联的 NMOS 都关断。此时,中间节点会浮到一个略高于地的电压,使得上方 NMOS 的 \(V_{gs}\) 变为负值(反向偏置),从而指数级地压低其亚阈值电流。效果是:两个关断 NMOS 串联的漏电可能比单个关断 NMOS 低 一个数量级 以上。

graph TD
    subgraph "NAND 门 — 两输入均为 0"
        VSS["GND"] --- NM1["NMOS1<br/>关断"]
        NM1 --- MID["中间节点<br/>浮至 ~0.1V"]
        MID --- NM2["NMOS2<br/>关断"]
        NM2 --- OUT["输出"]
    end

堆叠效应意味着:在逻辑综合和布局时,让高漏电风险的单元尽量采用堆叠结构(如用 NAND 替代 NOR),可以在不增加面积的情况下自然降低漏电。

历史趋势:漏电问题的演进

在 130nm 以上的工艺中,漏电几乎可以忽略,占总功耗不到 5%。但从 90nm 节点开始,为了维持性能,阈值电压不断降低,栅氧不断变薄,漏电开始急剧上升:

工艺节点

漏电占总功耗比例(典型)

130nm 及以上

< 5%

90nm

~15%~20%

65nm

~25%~35%

45nm 及以后

~30%~50%

需要注意的是,动态 vs 静态的比例高度依赖工作负载:

  • 活跃模式(active mode):电路频繁翻转,动态功耗占主导,漏电占比可能只有 20%~30%。

  • 待机模式(standby/idle mode):几乎没有翻转,动态功耗趋近于零,漏电成为唯一的功耗来源,占比接近 100%。

这解释了待机模式下漏电的主导地位:电路翻转率趋近于零时,动态功耗消失,而数十亿晶体管的漏电仍持续消耗功率。

量级实例:从皮安到瓦特

单个标准单元的漏电非常微小:

单元类型

单个单元漏电(典型值)

反相器(inverter),high-Vt

~1 pA

反相器,low-Vt

10~100 pA

触发器(flip-flop),high-Vt

5~10 pA

触发器,low-Vt

50~500 pA

看起来微不足道,但现代 SoC 动辄集成 数亿到数十亿 个标准单元:

\[ P_{leakage} = N \times I_{leak,avg} \times V_{DD} \]

假设一颗芯片有 5 亿个单元,平均漏电 50 pA,\(V_{DD} = 0.8\) V:

\[ P_{leakage} = 5 \times 10^8 \times 50 \times 10^{-12} \times 0.8 = 20 \text{ mW} \]

如果换成 low-Vt 单元(平均漏电 500 pA):

\[ P_{leakage} = 5 \times 10^8 \times 500 \times 10^{-12} \times 0.8 = 200 \text{ mW} \]

对于手机 SoC,待机功耗预算可能仅有数百 mW,漏电功耗即可占据显著比例。对于数据中心的高性能处理器,漏电功耗可达数瓦甚至十余瓦,对散热设计和运行成本产生显著影响。

本篇小结

  • 静态功耗(漏电功耗)是晶体管在关断状态下仍然流过的微小电流造成的,信号不翻转时功耗依然存在。

  • 三种主要漏电机制:亚阈值漏电(占比最大,指数依赖 \(V_{th}\) 和温度)、栅氧漏电(隧穿导致,high-k 后缓解)、结漏电(通常最小)。

  • 漏电对温度和 \(V_{th}\) 呈指数敏感:温度每升 10~20 °C 约翻倍,\(V_{th}\) 每降几十 mV 可能翻数倍。

  • multi-Vt 优化、降压、断电(power gating)等低功耗技术的物理动机都源于漏电的指数敏感性。

  • 堆叠效应使串联关断晶体管的漏电远低于单个晶体管,是一种无需额外面积开销的漏电优化手段。

  • 先进工艺下漏电可占总功耗 30%~50%,待机模式下几乎是唯一功耗来源。

术语回顾

漏电流(leakage current)、阈值电压(threshold voltage, \(V_{th}\))、亚阈值(subthreshold)、弱反型(weak inversion)、亚阈值摆幅(subthreshold swing)、隧穿(tunneling)、栅氧漏电(gate oxide leakage)、high-k 介质、结漏电(junction leakage)、带间隧穿(band-to-band tunneling, BTBT)、堆叠效应(stack effect)、热失控(thermal runaway)、multi-Vt、电源门控(power gating)

延伸阅读

  • Rabaey, Digital Integrated Circuits: A Design Perspective, 第 3 章(MOS 晶体管物理)与第 5 章(功耗分析),对亚阈值导电有详尽推导

  • Roy, "Leakage Current Mechanisms and Leakage Reduction Techniques in Deep-Submicrometer CMOS Devices", Proceedings of the IEEE, 2003(漏电机制综述经典论文)

  • Kim, "Leakage Current: Moore's Law Meets Static Power", IEEE Computer, 2003(面向工程实践的漏电综述)

  • 维基百科词条:Subthreshold slope、Gate oxide、Band-to-band tunneling


上一篇:02 · 动态功耗原理 | 下一篇:04 · 功耗建模

04 · 功耗建模与 Liberty 库

本系列第四篇。第 2 篇和第 3 篇分别给出了动态功耗与静态功耗的计算公式,其中涉及负载电容 \(C\)、每次翻转消耗的能量以及静态漏电功率。这些参数的具体数值并非由分析工具自行推导,而是来源于标准单元库文件。本篇将系统介绍功耗数据如何通过特征化流程获取,以及如何在 Liberty 格式中组织和索引。

术语先行

以下为本篇涉及的关键术语,供阅读时参照:

术语

英文

一句话解释

特征化

characterization

用电路级仿真提取单元时序与功耗数据的过程

查找表

lookup table (LUT)

用离散索引+数值表格来近似连续函数的数据组织方式

PVT

Process / Voltage / Temperature

工艺、电压、温度三者组合形成的工作条件

工艺角

corner

PVT 的一组具体取值,如 tt、ss、ff

电源/地引脚

pg_pin

库单元中声明供电网络连接的引脚

状态依赖

state dependent

功耗或延迟随输入逻辑状态不同而变化的现象

库特征化流程

标准单元库(standard cell library)包含反相器、与非门、触发器等基本逻辑单元。每个单元在交付给后端分析工具之前,均需经过**特征化(characterization)**过程以获取其电气特性数据。

特征化的基本步骤如下:

  1. 用电路级仿真器(SPICE 或 Fast-SPICE)对单元晶体管级网表进行仿真。

  2. 系统地扫描(sweep)不同的输入转换时间(input transition / slew)输出负载电容(output load)以及输入逻辑状态组合

  3. 从仿真波形中提取延迟、功耗等指标。

  4. 将结果整理成离散的二维或一维表格,即查找表(lookup table, LUT),写入库文件。

graph LR
    subgraph "① 仿真准备"
        A["晶体管级网表<br/>+ PVT 条件"]
    end
    subgraph "② 电路仿真"
        B["SPICE 仿真"]
        C["扫描 slew, load<br/>及输入状态"]
    end
    subgraph "③ 数据提取"
        D["提取 delay<br/>energy, leakage"]
        E["拟合为查找表<br/>LUT"]
    end
    subgraph "④ 库写入"
        F["写入 Liberty<br/>库文件"]
    end
    A --> B --> C --> D --> E --> F

反相器仅需仿真数十种参数组合,而复杂的 AOI(AND-OR-Invert)单元可能需要上千次仿真。特征化为离线过程,通常由晶圆厂或 IP 供应商在流片前完成。

Liberty 中的三类功耗数据

Liberty(.lib)是业界描述标准单元时序、功耗、面积等信息的事实标准格式。在功耗分析中,主要关注其中三类数据。

① 引脚电容(pin capacitance)

每个输入引脚均具有一个**栅电容(gate capacitance)**值,直接定义在 pin 描述中:

pin(A) {
  capacitance : 0.0012;
  ...
}

该值即为第 2 篇中负载电容 \(C\) 的重要组成部分。当某一单元的输出驱动多个扇出单元时,总负载电容等于各扇出引脚电容之和加上连线寄生电容。

② 内部功耗(internal power)

内部功耗描述的是单元翻转时,在其内部消耗的能量(主要是短路电流和内部节点充放电),这部分能量不会体现在输出引脚对负载电容的充放电上。

Liberty 中,internal_power 按**上升(rise)下降(fall)**分别给出每次翻转消耗的能量,其数值通过一张二维查找表索引:

  • 行索引:输入转换时间(input transition time),即输入信号从 10% 到 90%(或 20%~80%)的上升/下降时间。

  • 列索引:输出负载电容(output net capacitance)。

分析工具根据实际的 input transition 和 output load,在查找表中进行**双线性插值(bilinear interpolation)**得到 energy 值,随后计算:

\[ P_{internal} = E_{per\_toggle} \times \text{toggle\_rate} \]

上述过程即为第 2 篇中内部功耗公式在工具层面的实现方式:库文件提供每次翻转的能量 \(E\),活动率分析(第 5 篇)提供翻转率,二者相乘得到内部功耗。

状态依赖(state dependent)

对于多输入单元,内部功耗往往与另一个输入的逻辑电平有关。例如,一个 XOR 门在 A 翻转时,B=0 和 B=1 两种情况下内部短路电流路径不同,消耗的能量也不同。Liberty 通过 when 条件来表达这种状态依赖:

internal_power() {
  when : "B";
  related_pin : "A";
  rise_power(lookup_table) { ... }
  fall_power(lookup_table) { ... }
}
internal_power() {
  when : "!B";
  related_pin : "A";
  rise_power(lookup_table) { ... }
  fall_power(lookup_table) { ... }
}

分析工具根据信号概率选择对应的查找表,或对各条件下的值进行加权平均以计算最终功耗。

③ 漏电功耗(leakage power)

漏电功耗是单元在静态(不翻转)时持续消耗的功率,对应第 3 篇讨论的各种漏电机制。

Liberty 中 leakage_power 可以有两种形式:

  • 无条件值:给出平均漏电功率值,适用于精度要求不高或输入状态未知的场景。

  • when 条件的值:针对不同输入组合给出不同的漏电功率。例如一个两输入 NAND 门:

    • 当两个输入都为 1 时,两个 NMOS 串联导通,堆叠效应(stack effect)使得漏电较小;

    • 当只有一个输入为 1 时,只有一个 NMOS 承受全部漏电路径,漏电较大。

该现象与第 3 篇中堆叠效应降低漏电的分析一致。

当存在多个条件值时,工具以各输入状态的**占空比(duty,即静态概率)**为权重进行加权平均:

\[ P_{leakage} = \sum_{i} P_{leakage,i} \times \text{duty}_i \]

其中 \(\text{duty}_i\) 是第 \(i\) 种输入组合出现的稳态概率。

PVT 与工艺角(corner)

同一个单元在不同工艺、电压、温度条件下的功耗可以差异显著:

  • 工艺(Process):制造偏差导致晶体管阈值电压、沟道长度等参数波动。

  • 电压(Voltage):供电电压变化直接影响动态功耗(\(\propto V^2\))和漏电。

  • 温度(Temperature):温度升高会加剧亚阈值漏电(第 3 篇),同时降低载流子迁移率。

因此,每个工艺节点通常提供多份库文件,分别对应不同的 PVT 组合。业界常用的命名约定如下:

缩写

含义

特征

tt

typical-typical

工艺典型值,电压温度标称,代表中值条件

ss

slow-slow

工艺偏慢(阈值电压偏高),低压高温,延迟最大

ff

fast-fast

工艺偏快(阈值电压偏低),高压低温,速度最快,漏电最大

sf / fs

混合工艺角

NMOS 与 PMOS 工艺偏差方向相反,覆盖不对称情况

电压和温度信息通常标注在文件名或库头部的 nom_voltagenom_temperature 字段中。

**多 corner 分析(multi-corner analysis)**是指同时在多个 PVT 条件下运行功耗分析,取最差情况(worst-case)或统计结果,以确保设计在所有工况下都能满足功耗预算。

示意 Liberty 片段

以下为简化的 Liberty 单元描述,展示 leakage_powerinternal_power 的基本结构(已省略大量字段):

/* 示意片段,非完整语法 */
cell(INV_X2) {
  area : 0.598;

  leakage_power() {
    value : 0.0000125;  /* 单位: nW  W,取决于库定义 */
  }

  pin(A) {
    direction : input;
    capacitance : 0.0012;
    related_power_pin : "VDD";
  }

  pin(Y) {
    direction : output;
    function : "!A";
  }

  pin(VDD) {
    direction : inout;
    /* pg_pin 声明:见下文 */
  }

  internal_power() {
    related_pin : "A";
    rise_power(lookup_table) {
      index_1 : "0.01, 0.05, 0.1";    /* input_transition */
      index_2 : "0.001, 0.01, 0.05";   /* output_load */
      values : "0.0021, 0.0023, 0.0028, \
                0.0035, 0.0038, 0.0045, \
                0.0052, 0.0056, 0.0065";
    }
    fall_power(lookup_table) {
      index_1 : "0.01, 0.05, 0.1";
      index_2 : "0.001, 0.01, 0.05";
      values : "0.0019, 0.0021, 0.0026, \
                0.0032, 0.0035, 0.0041, \
                0.0048, 0.0052, 0.0060";
    }
  }
}

values 中的 9 个数值对应 index_1(3 个 slew 点)× index_2(3 个 load 点)构成的二维网格。分析时,工具以当前工作点的 (slew, load) 在该网格上进行双线性插值。

pg_pin:功耗归属标识

在多电源域(multi-voltage)设计中,单元可能连接至多个电源网络。Liberty 通过 pg_pin 声明标注每个引脚的供电归属,使分析工具能够将单元功耗正确归入对应的电源域。该机制在第 7 篇讨论多电压设计与 UPF 时将发挥关键作用。

本篇小结

  • 功耗数据通过**特征化(characterization)**流程获取:以 SPICE 仿真系统扫描各种工作条件,提取延迟与功耗指标。

  • Liberty 库以**查找表(LUT)**的形式组织功耗数据,分析时通过插值获取具体数值。

  • 三类核心功耗数据:引脚电容(给 \(C\))、内部功耗(每次翻转的能量)、漏电功耗(静态功率)。

  • 状态依赖通过 when 条件表达,工具根据信号概率进行加权。

  • 同一单元在不同 PVT / corner 下功耗不同,多 corner 分析确保设计鲁棒性。

术语回顾

特征化(characterization)、查找表(lookup table, LUT)、PVT、工艺角(corner)、电源/地引脚(pg_pin)、状态依赖(state dependent)、双线性插值(bilinear interpolation)、占空比加权(duty-weighted)

延伸阅读

  • Liberty 语言参考手册(LLM Reference Manual)——官方语法规范的权威来源

  • Rabaey, Digital Integrated Circuits: A Design Perspective, 第 5 章——特征化方法的经典教材讲解

  • D. Sylvester et al., "Nanometer CMOS Design Challenges: Leakage, Variability, and Reliability"——先进工艺下特征化面临的挑战


上一篇:03 · 静态功耗原理 | 下一篇:05 · Activity 与翻转率

05 · Activity 与翻转率

功耗计算中 \(\alpha\)(翻转率)的数据来源直接决定分析精度。在第 2 篇推导的开关功耗公式 \(P = \frac{1}{2} \alpha C V^2 f\) 中,\(C\) 来自版图寄生参数,\(V\) 来自供电规格,\(f\) 来自时钟约束——这三个量均可从工艺库或设计约束中获取。而 \(\alpha\) 的获取方式及其精度,是功耗分析中最大的不确定项来源,也是本篇要解决的核心问题。

术语精确定义

在讨论 activity 的获取方法之前,需要对几个易混淆的物理量进行精确定义。

Toggle Count(TC):翻转次数

一段时间窗口内,信号发生 0→1 或 1→0 跳变的总次数。它是一个绝对计数,没有时间归一化。

例如:在 1000 个时钟周期的仿真窗口内,某信号翻转了 120 次,则 \(\text{TC} = 120\)

Toggle Rate(TR):翻转率

单位时间内的翻转次数,或相对时钟频率归一化后的翻转概率。两种常见定义:

\[ \text{TR}_{abs} = \frac{\text{TC}}{T_{window}} \quad (\text{单位:翻转/秒}) \]
\[ \text{TR}_{norm} = \frac{\text{TC}}{N_{clk}} \quad (\text{每个时钟周期的平均翻转次数}) \]

归一化翻转率的取值范围是 \([0, 2]\)——每个时钟周期最多发生两次跳变(一个上升沿 + 一个下降沿)。在功耗分析中,通常使用归一化翻转率,记为 \(\alpha\),直接代入 \(P = \frac{1}{2} \alpha C V^2 f\)

Static Probability(SP)/ Duty:静态概率 / 占空比

信号为逻辑 1 的概率,等价于高电平时间占总观测时间的比例:

\[ \text{SP} = \frac{T_1}{T_{window}} \]

SP 影响两类功耗:

  • 状态相关漏电:NMOS 和 PMOS 在不同逻辑值下的漏电流不同,SP 决定了加权平均。

  • 内部功耗加权:某些单元的内部功耗与输入状态相关,SP 用于查找对应的功耗值。

两个正交维度:电平概率 vs 翻转活动

SP 与 TR 描述信号的两个独立维度,需明确区分:

场景

SP

TR

物理含义

时钟信号

0.5

2.0

占空比 50%,每个周期翻转两次

准静态使能信号

0.5

≈0

高电平占比 50%,翻转极少

高频数据总线

0.5

1.0

每位每周期平均翻转一次

常低复位信号

≈0

≈0

稳态为逻辑 0

一个信号可以 SP = 0.5 但几乎不翻转(例如某使能信号,前 50% 时间为逻辑 1,后 50% 时间为逻辑 0,期间仅翻转两次),也可以 SP = 0.5 但每个周期均发生翻转(例如时钟信号)。功耗分析需要同时获取 SP 和 TR,二者缺一不可。

Activity 的三种来源

在明确 SP 和 TR 的定义后,需确定这些参数的获取方法。业界采用三种主流方法,其精度与成本依次递减。

graph LR
    A["仿真波形"] -->|"精度最高<br/>成本最高"| B["概率传播"]
    B -->|"精度中等"| C["默认值 /<br/>无向量"]
    C -->|"精度最低<br/>成本最低"| D["后备方案"]
① 仿真波形:精度最高的活动数据源

执行测试向量(testbench)进行仿真,仿真器记录每个信号在各时刻的逻辑值变化,输出 VCD(Value Change Dump,值变化转储) 文件。从 VCD 中统计每个信号的 TC 和 SP,再转换为 SAIF(Switching Activity Interchange Format,开关活动交换格式) 回标(back-annotate)至功耗分析工具。

SAIF 文件结构说明:SAIF 是一种层级化的活动数据报告,按设计的实例层次(instance hierarchy)组织。每个信号节点包含以下字段:

字段

含义

T0

信号为 0 的总时间

T1

信号为 1 的总时间

TX

信号为 X(不定态)的总时间

TZ

信号为 Z(高阻态)的总时间

TC

翻转次数(toggle count)

IG

是否忽略(被优化掉的节点)

T0T1 可以算出 SP = T1 / (T0 + T1 + TX + TZ),从 TC 可以算出 TR = TC / N_clk。

优点:

  • 精度最高:包含毛刺(glitch)、竞争冒险等实际电路行为。

  • 可信度高:若测试向量能代表典型工作场景,功耗分析结果具有最高可信度。

缺点:

  • 依赖向量质量:若测试向量未覆盖典型工作场景,分析精度将显著下降。

  • 仿真成本高:大规模 SoC 执行完整应用可能耗时数天,生成的 VCD 文件可达数十 GB。

② 概率传播(Propagation):无需仿真的推导

只给设计输入端(primary inputs)指定 SP 和 TR,工具按照每个单元的布尔函数逐级推导内部节点的 SP 和 TR。

组合逻辑传播示例:对于一个两输入 AND 门,输入 A 和 B 相互独立时:

\[ \text{SP}_{out} = \text{SP}_A \times \text{SP}_B \]

如果 \(\text{SP}_A = 0.6\), \(\text{SP}_B = 0.5\),则 \(\text{SP}_{out} = 0.3\)

对于 OR 门:

\[ \text{SP}_{out} = 1 - (1 - \text{SP}_A)(1 - \text{SP}_B) \]

翻转率的传播更复杂,需要用到布尔差分(Boolean Difference)——它是求"输入翻转引起输出翻转的概率"的数学工具。对于输入 \(x_i\) 到输出 \(f\) 的翻转传播:

\[ \text{TR}_{out} = \sum_i \text{TR}_{in,i} \times P\left(\frac{\partial f}{\partial x_i} = 1\right) \]

其中 \(\frac{\partial f}{\partial x_i} = f|_{x_i=0} \oplus f|_{x_i=1}\),表示 \(x_i\) 变化是否能引起 \(f\) 变化。

寄存器传播:寄存器在时钟沿对 D 端信号进行采样,并将结果输出至 Q 端。采样后,Q 的 SP 等于 D 在采样时刻的 SP;Q 的 TR 受时钟频率约束,通常 \(\text{TR}_Q \leq \text{TR}_D\)(寄存器会滤除单个时钟周期内的多次翻转)。

优点:

  • 无需仿真,速度快,适合大规模设计。

  • 不依赖测试向量,适合设计早期。

缺点:

  • 忽略时空相关性(spatial-temporal correlation):假设信号之间相互独立,实际上总线上的相邻位往往高度相关。

  • 通常忽略毛刺:概率传播仅分析布尔函数的逻辑功能,不考虑路径延迟差异引起的非功能翻转。

③ 默认值 / 无向量(Vectorless):精度最低的后备方案

当既无仿真波形,也无手动标注的 SP/TR 时,工具采用默认活动率作为后备方案:

  • 数据信号:默认 TR ≈ 0.1(每 10 个时钟周期翻转一次),SP = 0.5。

  • 时钟信号:特殊处理,TR = 2.0(每个周期翻转两次),SP = 0.5。

  • 复位信号:默认 TR ≈ 0,SP = 0(常低)或 SP = 1(常高)。

优点:无需额外数据准备,计算成本为零。

缺点:精度最低,误差可达数倍。仅适用于设计极早期的粗略估算,或作为缺乏更精确数据时的后备方案。

毛刺(Glitch)专题

毛刺是功耗分析精度的一个关键因素,值得单独讨论。

什么是毛刺

组合逻辑中,由于不同路径的延迟差异,一个输入变化可能在输出端产生多次非功能性的短暂跳变,这就是毛刺。

graph TD
    A["输入变化"] --> B["路径 1:<br/>延迟 2ns"]
    A --> C["路径 2:<br/>延迟 5ns"]
    B --> D["输出端"]
    C --> D
    D --> E["产生毛刺:<br/>输出先变 → 再变回<br/>→ 最终稳定"]

例如:一个 XOR 门的两个输入同时从 00 变为 11,逻辑上输出应保持为 0。但如果一个输入比另一个早到 3ns,输出就会在这 3ns 内短暂跳变为 1,产生一个毛刺脉冲。

毛刺对功耗的影响

毛刺虽然不影响逻辑功能(最终会被寄存器采样时滤除),但它确实消耗动态功耗——每一次毛刺都对负载电容做了一次充放电。在真实芯片中,毛刺功耗可以占到组合逻辑动态功耗的 20%~70%,是一个不可忽视的分量。

为什么仿真能捕获而概率传播不能
  • 仿真波形:仿真器按照门级延迟模型精确计算每个信号的时序,毛刺作为真实的信号跳变被记录在 VCD 中,统计 TC 时自然包含了毛刺贡献。

  • 概率传播:仅分析布尔函数的逻辑功能,假设信号瞬时传播,不考虑路径延迟差异,因此完全无法捕获毛刺

这是仿真波形精度显著高于概率传播的主要原因——概率传播方法的布尔推导本身无误,但该方法无法捕获毛刺现象。

三种来源对比

维度

仿真波形(VCD/SAIF)

概率传播(Propagation)

默认值/无向量

精度

高(含毛刺和时序效应)

中(忽略相关性和毛刺)

低(误差可达数倍)

是否需要向量

是(需要 testbench)

否(只需输入端约束)

是否含毛刺

计算成本

高(仿真耗时 + 大文件)

低(秒级传播)

适用阶段

后端 signoff、详细分析

综合后、布局布线后

设计早期粗估

典型用途

最终功耗签核

迭代优化中的快速评估

初始预算分配

方法选择本质上是精度与成本的权衡。成熟的功耗分析流程通常采用混合策略:关键模块使用仿真波形,非关键模块使用概率传播,未覆盖部分以默认值作为后备。

本篇小结

  • \(\alpha\)(翻转率)是功耗公式中最大的不确定项,需要 SP(静态概率)和 TR(翻转率)两个正交维度来完整描述信号活动。

  • Activity 有三种来源:仿真波形(精度最高、成本最高)、概率传播(精度中等、速度快)、默认值(精度最低、零成本)。

  • SAIF 文件以层级结构记录每个信号的 T0/T1/TC 等字段,是仿真波形回标的标准格式。

  • 概率传播通过布尔函数逐级推导 SP/TR,布尔差分是计算翻转传播概率的数学工具。

  • 毛刺是组合逻辑中因路径延迟差产生的非功能翻转,可占组合逻辑功耗的显著比例;仿真能捕获,概率传播不能——这是两者精度差异的主要来源。

术语回顾

toggle count(TC)、toggle rate(TR)、static probability(SP)、duty(占空比)、VCD(Value Change Dump)、SAIF(Switching Activity Interchange Format)、back-annotation(回标)、propagation(概率传播)、boolean difference(布尔差分)、glitch(毛刺)、vectorless(无向量)、spatial-temporal correlation(时空相关性)

延伸阅读

  • Najm, F. N., "A Survey of Power Estimation Techniques in VLSI Circuits," IEEE Transactions on VLSI Systems, 1994(概率传播方法的经典综述)

  • Rabaey, Digital Integrated Circuits: A Design Perspective, 第 5 章(翻转率与功耗的关系)

  • SAIF 格式规范:SAIF 是业界标准的开关活动 interchange 格式,各 EDA 工具均支持读写


上一篇:04 · 功耗建模 | 下一篇:06 · 功耗分析方法学

06 · 功耗分析方法学

本系列是面向 EDA 功耗(power)方向入门工程师的入门教程。本篇是第六篇,也是"集成篇"——前几篇分别阐述了功耗原理、Liberty 库与活动率,本篇将它们整合为一次完整的功耗分析流程,并说明报告的解读方法。

开篇:分析类型的选择与报告解读

到这一篇为止,我们已经掌握了功耗分析所需的全部基础要素:

  • 第 2、3 篇给出了功耗的物理来源——动态功耗公式 \(P = \frac{1}{2}\alpha CV^2 f\) 与漏电机制;

  • 第 4 篇介绍了 Liberty 库如何用查找表(lookup table, LUT)把这些物理量变成工具可读的数据;

  • 第 5 篇解决了翻转率(activity / toggle rate)的来源问题——仿真波形、概率传播或无向量估计。

然而,掌握各单项要素与将其组织为一次可交付的分析之间,还需要一套方法学(methodology)。本篇要回答的问题很具体:应当选择哪种分析类型?在设计流程的哪个阶段执行?分析完成后报告中的各项数据,应优先关注哪些指标?

术语定义

术语

定义

平均功耗(average power)

在一段足够长的时间窗内统计得到的功率均值,反映芯片的稳态能耗水平

峰值功耗(peak power)

在一个滑动小时间窗内观测到的最大瞬时功率,反映芯片的最坏瞬时工况

时间窗(time window)

计算功耗时所取的时间区间;时间窗越短,分辨率越高,但统计意义越弱

基于时间的功耗波形(time-based power)

将功耗按时间窗逐段计算后绘成的曲线,也称功耗波形(power waveform)

签核(signoff)

设计交付前的最终验收分析,要求数据精度最高、覆盖最全

IR drop

供电网络上因电流流过电阻而产生的压降;峰值功耗越高,IR drop 风险越大(详见延伸阅读)

三种分析类型及用途

① 平均功耗:稳态能耗评估

将整段仿真时间(通常是成千上万个时钟周期)内的总能量除以时间,就得到平均功耗:

\[ P_{avg} = \frac{E_{total}}{T_{window}} \]

它回答的是"芯片在典型工作场景下的平均功率需求"。平均功耗直接决定了:

  • 电池续航:移动设备芯片的平均功耗降低 10%,即可显著延长电池使用时间;

  • 系统散热设计:散热器、风扇的规格均以平均功耗为设计基准。

② 峰值功耗:最坏瞬时工况评估

平均功耗无法揭示一个关键事实:芯片并非每时每刻都以相同功率工作。当大量信号同时翻转(例如一条宽总线全体由 0 变 1),瞬间功耗可以远超平均值。峰值功耗在一个滑动小时间窗(典型值 1~100 ns)内取最大功率:

\[ P_{peak} = \max_{t}\left(\frac{1}{\Delta t}\int_{t}^{t+\Delta t} p(\tau)\,d\tau\right) \]

峰值功耗影响的是:

  • 供电网络设计:电源网络必须能承受峰值电流而不产生过大的 IR drop;

  • 封装与瞬态热:瞬间大电流可能导致封装键合线过热或电压塌陷。

为什么 peak/average 比值重要? 这个比值越大,说明功耗波动越剧烈,供电裕量(power margin)就必须留得越宽。一颗 \(P_{avg}=1\,\text{W}\)\(P_{peak}=10\,\text{W}\) 的芯片,供电网络要按 10 W 来设计;如果比值能压到 3,供电网络只需按 3 W 设计,成本和面积都得以节省。

③ 时间波形:时域分布分析

将功耗按时间窗逐段画出曲线,就得到了基于时间的功耗波形(time-based power waveform)。该波形可用于:

  • 定位峰值发生的时间段,并追溯触发该峰值的代码或场景;

  • 观察不同工作模式(空闲、运算、访存)之间的功耗差异。

graph LR
    A["三种分析类型"] --> B["平均功耗<br/>长时间窗统计<br/>续航 / 散热"]
    A --> C["峰值功耗<br/>滑动小窗最大<br/>供电 / IR drop"]
    A --> D["时间波形<br/>逐窗口曲线<br/>定位峰值场景"]

设计各阶段的功耗分析

芯片设计是一个从抽象到具体的渐进过程,功耗分析也跟随四个典型阶段逐步精细化:

graph TD
    subgraph "设计阶段演进"
        R["RTL 级"] --> S["综合后门级"]
        S --> P["布局布线后"]
        P --> F["Signoff 签核"]
    end
    subgraph "数据来源与精度"
        R1["网表未定型<br/>电容靠估算<br/>activity 靠概率传播<br/>精度: ★☆☆☆"]
        S1["真实单元库数据<br/>电容仍不含布线<br/>activity 可来自仿真<br/>精度: ★★☆☆"]
        P1["含实际连线寄生<br/>电容精度高<br/>activity 可来自后仿<br/>精度: ★★★☆"]
        F1["精确寄生参数<br/>代表性真实向量<br/>多 corner 覆盖<br/>精度: ★★★★"]
    end
    R -.- R1
    S -.- S1
    P -.- P1
    F -.- F1

一条通用规律贯穿始终:越往后精度越高,但修改代价也越大。在 RTL 阶段修改一行代码可能仅需数分钟;到 signoff 阶段修改一个单元则可能需要重新执行整条物理设计流程。因此,功耗分析的核心策略是早期发现、早期优化——在精度尚可接受的最早阶段就识别出主要问题,而非等到 signoff 才发现指标超标。

一次典型门级平均功耗分析的流程

下面将第 2~5 篇的知识整合为一条完整链路。以综合后门级网表 + Liberty 库 + SAIF 活动文件为例,一次平均功耗分析的典型流程如下:

flowchart TD
    subgraph "准备阶段"
        A["读入网表与库<br/>(第 4 篇: Liberty)"] --> B["标注 / 传播 activity<br/>(第 5 篇: SAIF / 概率传播)"]
    end
    subgraph "功耗计算"
        C["逐单元计算功耗"]
        C --> C1["Internal: 查 LUT<br/>(第 2 篇: 短路 + 内部节点)"]
        C --> C2["Switching: ½αCV²f<br/>(第 2 篇: 开关功耗公式)"]
        C --> C3["Leakage: 查 LUT<br/>(第 3 篇: 漏电机制)"]
    end
    subgraph "汇总输出"
        D["汇总: 按分组求和"] --> E["生成报告"]
    end
    B --> C
    C1 --> D
    C2 --> D
    C3 --> D

每一步都对应前面某一篇的核心内容:读库是第 4 篇,activity 是第 5 篇,三类功耗的计算分别来自第 2、3 篇。本篇的价值在于将它们组织为一条可复现的分析流程

功耗报告解读实战

报告的典型结构

一份门级功耗报告通常以矩阵形式呈现:行是单元类型分组,列是功耗类型

分组

Internal (mW)

Switching (mW)

Leakage (mW)

Total (mW)

Sequential(时序单元)

3.2

1.8

0.5

5.5

Combinational(组合逻辑)

4.1

3.6

0.8

8.5

Clock network(时钟网络)

0.4

6.2

0.1

6.7

Macro / Memory(存储宏单元)

1.0

0.5

1.2

2.7

Chip Total

8.7

12.1

2.6

23.4

逐行解读示范
  1. 先看 Total 列找大头:Combinational 占 8.5 mW,Clock network 占 6.7 mW,两者合计超过总功耗的 60%——优化应优先瞄准这两个分组。

  2. 再看哪类功耗主导:Clock network 的 Switching 高达 6.2 mW,几乎贡献了该分组的全部功耗。这很合理——时钟信号每周期翻转两次,且时钟树扇出极大,负载电容高。优化方向自然就是时钟门控(clock gating):在模块不工作时关掉时钟,直接消除这部分 switching 功耗(详见第 7 篇)。

  3. Macro 的 Leakage 偏高:1.2 mW 占其 Total 的 44%,如果芯片有大量空闲时间,应考虑电源门控(power gating) 在空闲时彻底断电。

三条 sanity check 经验

取得报告后,可先用以下合理性检查快速判断结果是否可信:

  • Leakage 占比是否合理? 在 28 nm 及以上工艺,leakage 通常占总功耗的 10%~30%;若报告给出 60% 以上,要么是 corner/温度设置偏高,要么是 activity 文件覆盖了一段几乎不翻转的空闲场景。

  • Clock 占比是否在典型范围? 未经 clock gating 的设计,时钟网络功耗通常占 20%~40%;如果低于 5%,应检查时钟树 activity 是否被正确标注。

  • Internal vs Switching 的量级:对于组合逻辑,两者通常在同一量级;如果 Switching 远大于 Internal,可能是负载电容异常偏大(布线过长或扇出过多)。

本篇小结

  • 功耗分析有三种互补的类型:平均功耗评估稳态能耗,峰值功耗评估最坏瞬时工况,时间波形分析功耗的时域分布。

  • peak/average 比值越大,供电裕量要求越高,设计成本也越高。

  • 设计越往后精度越高但修改代价越大,因此功耗分析应遵循早期发现、早期优化的原则。

  • 一次门级功耗分析的标准流程:读入网表与库 → 标注 activity → 逐单元计算三类功耗 → 汇总 → 生成报告。

  • 报告解读的优先顺序:先按 Total 定位主要功耗来源,再按功耗类型确定优化方向,最后通过 sanity check 验证结果可信度。

术语回顾

平均功耗(average power)、峰值功耗(peak power)、时间窗(time window)、基于时间的功耗波形(time-based power)、签核(signoff)、IR drop、peak/average 比值

延伸阅读

  • Rabaey, Digital Integrated Circuits: A Design Perspective, 第 5 章(功耗分析方法学经典论述)

  • Pedram & Rabaey, Power Aware Design Methodologies, 第 1~2 章(各设计阶段功耗分析的系统性综述)

  • 维基百科词条:IR drop、Power integrity、Clock gating


上一篇:05 · Activity 与翻转率 | 下一篇:07 · 低功耗设计入门

07 · 低功耗设计入门

本系列是面向 EDA 功耗(power)方向入门工程师的科普教程,共七篇,层层递进。本篇是收官篇:在前六篇分别阐述了功耗的分类、计算原理与分析方法之后,本篇系统介绍主流的低功耗设计技术及其工程实现。

功耗优化的技术杠杆与功耗公式各因子的对应关系

第 1 篇给出的总功耗公式为:

\[ P_{total} = \underbrace{\frac{1}{2} \alpha C V^2 f}_{\text{开关功耗}} + \underbrace{P_{internal}}_{\text{内部功耗}} + \underbrace{P_{leakage}}_{\text{漏电功耗}} \]

低功耗设计的核心思路,是针对公式中的各个因子,选取相应的技术手段予以降低:

因子

含义

对应技术

\(\alpha\)(翻转率)

信号翻转的频繁程度

时钟门控(clock gating)、操作数隔离(operand isolation)

\(V^2\)(电压平方)

供电电压

多电压(multi-voltage)、DVFS

\(f\)(频率)

时钟频率

DVFS(与电压联动)

\(C\)(负载电容)

连线与扇出栅电容

工艺缩放、物理优化(本篇不展开)

\(P_{leakage}\)(漏电)

关态漏电流

多阈值电压(multi-Vt)、电源门控(power gating)

以下逐一介绍上述技术。

① 时钟门控(Clock Gating):降低活动率 \(\alpha\)

如第 5 篇所述,时钟网络的翻转率 \(\alpha \approx 1\),即每个时钟周期均发生翻转,是芯片中翻转率最高的信号网络。同时,时钟树驱动大量寄存器负载,其动态功耗通常占总动态功耗的 30%~70%

时钟门控的原理是:当一组寄存器在当前周期无需工作时,将其时钟分支关断,使该组寄存器的翻转率降为零。

graph LR
    CLK["时钟<br/>CLK"] --> AND["AND 门<br/>时钟门控"]
    EN["使能<br/>EN"] --> AND
    AND --> GCLK["门控时钟<br/>GCLK"]
    GCLK --> R0["寄存器 0"]
    GCLK --> R1["寄存器 1"]
    GCLK --> R2["寄存器 2"]

在实际实现中,直接使用 AND 门会产生时钟毛刺(glitch),因此工业界采用集成时钟门控单元(integrated clock gating cell, ICG)——一种内部集成锁存器的专用单元,确保使能信号(en)仅在时钟低电平期间被采样,从而输出无毛刺的门控时钟。

设计注意:使能信号本身的频繁翻转或毛刺会引入额外功耗甚至功能错误;ICG 的插入层级与粒度需在功耗收益与时序代价之间进行权衡。

② 多阈值电压(Multi-Vt):降低漏电 \(P_{leakage}\)

第 3 篇推导了亚阈值漏电(subthreshold leakage)与阈值电压 \(V_{th}\) 之间的指数关系:

\[ I_{sub} \propto 10^{-V_{th} / S} \]

其中 \(S\) 为亚阈值摆幅(subthreshold swing)。\(V_{th}\) 每提高数十毫伏,漏电可降低约一个数量级,但单元延迟随之增加。

多阈值电压技术利用上述权衡关系:

  • 关键路径(critical path) 上的单元采用\(V_t\)(LVT) 标准单元,以满足时序约束。

  • 非关键路径上的单元采用\(V_t\)(HVT) 标准单元,漏电呈指数级降低,时序牺牲在可用 slack 范围内。

该技术在标准单元库与逻辑综合层面实现,无需改变物理设计流程,收益稳定,是现代设计中应用最广泛的漏电优化手段之一。

③ 电源门控(Power Gating):降低漏电 \(P_{leakage}\)

与 multi-Vt 通过提高阈值电压来减小漏电不同,电源门控采用更为彻底的方式:直接在空闲模块的供电路径上插入开关管——位于 VDD 侧的 header(PMOS)或位于 VSS 侧的 footer(NMOS)。当模块不工作时,开关管关断,该模块的供电被切断,漏电降至接近零。

graph TD
    VDD["供电<br/>VDD"] --> HDR["Header<br/>开关管"]
    HDR --> VDDV["虚拟供电<br/>VDDV"]
    VDDV --> LOGIC["逻辑电路<br/>(可断电)"]
    LOGIC --> VSS["地<br/>VSS"]

电源门控的代价包括以下方面:

  • 状态丢失:普通寄存器在断电后无法保持数据。解决方案是采用保持寄存器(retention register),其内部集成一条始终供电的保持锁存器,在断电前保存状态、上电后恢复。

  • 输出漂移:断电域的输出信号会漂移至不确定电平,若直接连接至始终供电的域,可能产生短路电流。因此需在域边界插入隔离单元(isolation cell),在断电时将输出钳位至安全值(通常为 0 或 1)。

  • 上电浪涌(inrush current):重新上电瞬间,大量去耦电容同时充电会产生较大的瞬态电流,需控制开关管分批导通以缓解。

④ 多电压(Multi-Voltage)与电压岛

不同模块的性能需求各异,无需统一运行在同一电压下。高性能模块采用较高的 \(V_{DD}\) 以满足时序约束,对性能要求较低的模块采用较低的 \(V_{DD}\) 以降低功耗——由于开关功耗正比于 \(V^2\),电压降低 20%,动态功耗可降低约 36%。

运行在不同电压下的区域称为电压岛(voltage island)。当信号跨越不同电压域时,高低电平的阈值定义不同,需插入电平转换器(level shifter) 进行电平适配:

  • 低→高:信号从低压域进入高压域,需上拉至高压域的逻辑高电平。

  • 高→低:信号从高压域进入低压域,需确保高压域的逻辑高电平能被低压域正确识别,同时不产生栅氧过压。

⑤ DVFS(动态电压频率调节):降低 \(V^2\)\(f\)

DVFS(Dynamic Voltage and Frequency Scaling)根据当前工作负载,动态地同时调整供电电压与时钟频率,是降低动态功耗最有效的手段之一。

电压与频率需联动调整的原因在于:频率提高意味着时钟周期缩短,需要更高的供电电压以保证单元在更短的周期内完成翻转;反之,当负载较轻时降低频率,即可同步降低电压,从而在 \(V^2\) 项上获得显著的功耗收益。

\[ \text{负载轻} \Rightarrow f \downarrow, \; V \downarrow \Rightarrow P \propto V^2 f \;\text{显著降低} \]

DVFS 的功耗收益显著(理论上可达数量级),但系统复杂度较高:需要电压调节器(voltage regulator)支持快速切换、需要固件或操作系统配合调度决策、需要保证切换过程中的时序正确性(通常遵循先升压后升频、先降频后降压的顺序)。

⑥ 其他微结构级技巧(简述)

  • 操作数隔离(operand isolation):在数据通路中,当某个运算结果不会被后续逻辑使用时,提前将输入操作数冻结(通常置 0),以减少不必要的翻转。

  • 总线编码(bus encoding):通过编码减少总线上相邻周期的汉明距离,降低有效 \(\alpha\)

  • 存储器分 bank 与 light sleep:将大容量存储器拆分为多个 bank,空闲 bank 进入低漏电状态。

上述技术通常由架构师在微架构设计阶段引入,此处不再展开。

UPF:描述电源意图的标准语言

前述低功耗技术均需在 RTL 之外进行显式描述:哪些模块属于哪个电源域、跨域信号采用何种隔离策略、哪些寄存器需要状态保持、断电与上电的时序顺序如何定义等。

传统的 Verilog/VHDL 仅描述逻辑功能,无法表达电源相关的意图。为此,IEEE 制定了 1801 标准,即 UPF(Unified Power Format,统一功耗格式),通过独立的文本文件描述设计的电源意图(power intent),主要包括:

  • 电源域(power domain):一组共享相同供电策略的模块。

  • 供电网络(supply net):VDD、VSS 等电源轨的定义与连接关系。

  • 电源状态表(power state table, PST):定义各供电网络在不同工作模式下的电压值,以及合法的状态组合。

  • 隔离策略(isolation strategy):跨域信号的隔离单元类型与钳位值。

  • 保持策略(retention strategy):断电域中需要保持状态的寄存器及其恢复方式。

  • 电平转换策略(level shifter strategy):跨电压域信号的电平转换规则。

EDA 工具读取 UPF 文件后,可自动插入隔离单元、保持寄存器、电平转换器等低功耗单元,并在各设计阶段验证电源意图的一致性。

以下为包含两个电源域的简单示意:

graph LR
    subgraph PD_A ["电源域 A<br/>始终供电"]
        A_LOGIC["逻辑 A"]
    end
    subgraph PD_B ["电源域 B<br/>可断电"]
        B_LOGIC["逻辑 B"]
        RET["保持寄存器<br/>Retention"]
    end
    A_LOGIC -->|"跨域信号"| ISO["隔离单元<br/>Isolation"]
    ISO --> B_LOGIC
    B_LOGIC -->|"跨域信号"| LS["电平转换器<br/>Level Shifter"]
    LS --> A_LOGIC
    HDR["Header<br/>开关"] --> PD_B
    PST["电源状态表<br/>PST"] -.->|"控制"| HDR
    PST -.->|"控制"| ISO

技术对比表

技术

降低的功耗成分

典型收益量级

主要代价

适用场景

时钟门控(clock gating)

动态(开关 + 内部)

30%~70% 时钟动态

ICG 面积、时序微扰

几乎所有数字设计

多阈值电压(multi-Vt)

漏电

漏电降低 5×~50×

库面积增加、时序收敛变紧

先进工艺通用

电源门控(power gating)

漏电

断电域漏电趋近于零

保持/隔离/浪涌管理

具有明显空闲模式的模块

多电压 / 电压岛

动态(\(V^2\))

低压域动态降低 30%~50%

电平转换器、物理设计复杂度

SoC 中异构模块

DVFS

动态(\(V^2 f\))

可达数量级

电压调节器、固件协同、时序验证

处理器、GPU 等可变负载场景

操作数隔离

动态(\(\alpha\))

数据通路局部 10%~30%

额外逻辑

ALU、DSP 等数据通路

本篇小结

  • 总功耗公式的各因子分别对应不同的低功耗技术:\(\alpha\) → 时钟门控/操作数隔离,\(V^2\) → 多电压/DVFS,\(P_{leakage}\) → multi-Vt/电源门控。

  • 时钟门控针对动态功耗中占比最大的时钟网络进行优化,是最通用的低功耗技术。

  • Multi-Vt 利用阈值电压与漏电的指数关系,在库与综合层面以较低成本优化漏电。

  • 电源门控通过切断供电实现漏电的大幅降低,但需配套保持寄存器、隔离单元与浪涌管理。

  • 多电压与 DVFS 利用 \(V^2\) 的平方效应降低动态功耗,但系统复杂度较高。

  • UPF(IEEE 1801)提供了描述电源意图的标准语言,是低功耗设计流程的基础。

系列回顾与进阶方向

至此,本教程七篇已全部完成。以下用一句话概括每篇的核心内容:

篇目

核心概括

01 · 功耗世界导览

总功耗 = 动态(开关 + 内部)+ 静态(漏电),电压为平方项

02 · 动态功耗原理

\(P = \frac{1}{2}\alpha CV^2f\) 的完整推导与短路功耗

03 · 静态功耗原理

亚阈值漏电、栅极漏电、结漏电的机制与 PVT 敏感性

04 · 功耗建模与 Liberty

Liberty 库通过查找表描述单元在不同条件下的功耗

05 · Activity 与翻转率

翻转率来源于仿真波形、概率传播或无向量估计

06 · 功耗分析方法学

平均/峰值功耗的分析流程与报告解读

07 · 低功耗设计入门(本篇)

各技术降低功耗公式中对应因子的原理,以及 UPF 对电源意图的描述

进阶方向:如需进一步深入,以下领域值得探索——

  • IR drop 分析:供电网络上的压降对时序与功能的影响,以及去耦电容的规划。

  • 热分析(thermal analysis):功耗分布与温度场的耦合仿真,热点(hotspot)管理。

  • 电源意图验证(power intent verification):通过形式化方法验证 UPF 描述与设计实现的一致性。

  • 近阈值计算(near-threshold computing, NTC):将供电电压降至阈值电压附近,以显著的时序代价换取极低的能量消耗,适用于对性能要求不高的物联网场景。

术语回顾

时钟门控(clock gating)、集成时钟门控单元(ICG)、多阈值电压(multi-Vt)、电源门控(power gating)、header/footer 开关、保持寄存器(retention register)、隔离单元(isolation cell)、上电浪涌(inrush current)、多电压(multi-voltage)、电压岛(voltage island)、电平转换器(level shifter)、DVFS(动态电压频率调节)、操作数隔离(operand isolation)、UPF(统一功耗格式 / IEEE 1801)、电源域(power domain)、供电网络(supply net)、电源状态表(PST)

延伸阅读

  • Rabaey, Digital Integrated Circuits: A Design Perspective, 第 6 章(低功耗设计技术综述)

  • IEEE 1801 Standard for Design and Verification of Low-Power, Energy-Aware Electronic Systems(UPF 标准原文)

  • Benini & De Micheli, Dynamic Power Management(DVFS 经典著作)


上一篇:06 · 功耗分析方法学

本篇是本系列的收官篇。