一、低功耗设计概述:为什么需要低功耗?功耗的组成,以及DFT中的挑战
各位工程师朋友,咱们今天聊聊低功耗。说实话,我刚入行那会儿,功耗问题还没这么要命。那时候大家拼的是面积、拼的是性能。但现在不一样了——你想想看,手机、物联网、AI芯片,哪个不是对功耗敏感得要命?
我有个项目印象特别深。一颗可穿戴芯片,功能都跑通了,结果功耗超标30%。改版?来不及了。最后只能降频、关模块,性能砍了一大截。从那以后,我再也不敢小看功耗问题了。
1.1 为什么需要低功耗?
说白了,低功耗不是“锦上添花”,而是“生死存亡”。原因有三:
- 电池续航:便携设备就靠那块电池。功耗高,用户一天充三次电,谁受得了?
- 散热问题:功耗就是热量。芯片太热,性能会降、寿命会短。我见过一个服务器芯片,因为散热没做好,跑着跑着就自动关机了。
- 成本控制:封装、散热器、电源管理,这些都要钱。功耗越低,系统成本越低。
核心观点:低功耗设计不是“可选项”,而是现代芯片设计的“必选项”。尤其在先进工艺节点下,功耗甚至比面积和性能更重要。
1.2 功耗的组成:动态、静态、短路功耗
功耗不是铁板一块。它分三部分,咱们一个一个说。
1.2.1 动态功耗
动态功耗,就是电路在“干活”时消耗的能量。每次信号翻转,都要给电容充放电。公式很简单:
P_dynamic = α × C × V² × f
其中:
- α:翻转活动因子(0到1之间)
- C:负载电容
- V:供电电压
- f:工作频率
你看,电压是平方项。所以降电压,效果最明显。这也是为什么现在大家都在推近阈值计算。
个人经验:我在一个AI加速器项目中,发现某些模块的活动因子特别高。后来加了门控时钟,动态功耗直接降了40%。嗯,这招很实用。
1.2.2 静态功耗
静态功耗,就是电路“闲着”也在耗电。主要来自漏电流。先进工艺下,这问题越来越严重。
漏电流主要有两种:
- 亚阈值漏电:晶体管关不彻底,电流偷偷流过
- 栅极漏电:栅氧化层太薄,电子直接“穿墙”
静态功耗的公式:
P_static = I_leak × V
你想想看,一个芯片几亿个晶体管,每个都漏一点点,加起来就是几瓦甚至几十瓦。我做过一个7nm的项目,静态功耗占了总功耗的60%以上。吓人不?
1.2.3 短路功耗
短路功耗,也叫“直通功耗”。发生在信号翻转的瞬间——PMOS和NMOS同时导通,形成从电源到地的短路电流。
这个功耗占比不大,一般10%左右。但也不能忽视。尤其是在高速电路中,翻转频率高,短路功耗也会跟着涨。
| 功耗类型 | 主要来源 | 占比(典型) | 降低方法 |
|---|---|---|---|
| 动态功耗 | 信号翻转、充放电 | 50%-70% | 降电压、门控时钟、降低活动因子 |
| 静态功耗 | 漏电流 | 20%-40% | 电源门控、多阈值单元、衬底偏置 |
| 短路功耗 | 直通电流 | 5%-15% | 优化信号斜率、控制翻转时间 |
1.3 低功耗设计在DFT中的挑战
好了,功耗问题说清楚了。那跟DFT有什么关系?关系大了去了。
DFT(可测试性设计)要往芯片里插测试电路。这些电路在正常工作时是“多余”的,但它们也在耗电。更麻烦的是,低功耗技术和DFT经常“打架”。
1.3.1 电源门控与测试的矛盾
电源门控(Power Gating)是低功耗的利器——不用的时候把电源关掉。但测试时呢?你想想看,如果某个模块电源关了,测试向量怎么打进去?怎么观察输出?
我遇到过这种情况:一个模块在功能模式下可以正常关电,但ATPG(自动测试向量生成)时,工具报了一大堆“不可测”的故障。后来发现,就是因为电源门控把测试路径切断了。
避坑指南:我曾经在一个项目中,为了省功耗,把测试模式下的电源门控也打开了。结果测试覆盖率从98%掉到了75%。后来我学乖了——测试模式下,必须保证所有被测模块的电源是通的。
1.3.2 多电压域与测试的冲突
现在的芯片,动不动就三四个电压域。核心1.0V,IO 1.8V,内存0.9V。测试时,这些电压域怎么协调?
问题在于:
- 电平转换:跨电压域的信号需要电平转换器。测试时这些转换器可能不工作
- 测试时序:不同电压域的速度不同,测试时钟怎么对齐?
- 功耗约束:测试时所有模块同时翻转,功耗可能比正常工作时高好几倍
1.3.3 时钟门控与测试的博弈
时钟门控(Clock Gating)也是低功耗的常用手段。但测试时,我们需要精确控制时钟。门控时钟会让测试变得复杂。
举个例子:
// 功能模式下的时钟门控
assign clk_gated = clk & enable;
// 测试模式下,需要绕过门控
assign clk_test = scan_mode ? clk : clk_gated;
你看,测试模式下必须把门控旁路掉,否则时钟可能被意外关掉,测试向量就推不进去了。
1.3.4 测试功耗过高的问题
这个我深有体会。正常工作时,芯片不会所有模块同时翻转。但测试时,为了覆盖率,我们恨不得让所有触发器同时翻转。结果呢?
- 动态功耗飙升到正常工作时的2-3倍
- 芯片温度急剧上升
- 严重时直接烧毁芯片
我的建议:做ATPG时,一定要加功耗约束。比如限制同时翻转的触发器数量,或者把测试向量拆分成多个小段。虽然测试时间会长一点,但至少芯片不会烧掉。
1.4 本章小结
咱们这一章聊了不少。核心就三点:
- 低功耗是刚需:电池、散热、成本,哪个都绕不开
- 功耗分三种:动态、静态、短路。每种都有对应的优化方法
- DFT和低功耗有冲突:电源门控、多电压域、时钟门控、测试功耗,都是需要小心处理的地方
下一章,咱们会深入讲讲“电源门控与DFT的协同设计”。到时候我会分享一些实际项目中的经验教训。嗯,那都是血泪史啊。
一句话记住:低功耗设计是DFT工程师的“必修课”。不懂功耗,你做的DFT方案可能就是“纸上谈兵”。