第一章:低功耗设计概论

为什么我们需要低功耗?

说实话,我刚入行那会儿,功耗问题还没这么要命。那时候大家拼的是谁家芯片跑得快,谁家面积做得小。但这些年,情况完全变了。

你想想看,手机、手表、物联网设备,哪个不是靠电池活着?用户可不想一天充三次电。我有个朋友做智能手表,电池就那么一丁点大,功耗做不下来,续航直接崩了。这还不是最要命的——散热问题更头疼。芯片温度一高,性能就降,搞不好还会烧坏。

所以现在做芯片,功耗已经和性能、面积平起平坐了。这就是我们常说的PPA(Performance, Power, Area)三角。我个人习惯,项目一开始就得把功耗目标定死,不然后面改起来,那叫一个痛苦。

功耗的组成:三大“吃电”大户

芯片的功耗,说白了就三部分。我一个个给你拆开讲。

1. 动态功耗

这是最直观的功耗。门电路翻转的时候,要给负载电容充放电,这就要耗电。公式很简单:P_dynamic = 0.5 × C_load × Vdd² × f × α

你看,电压是平方项,所以降电压是降功耗最狠的手段。但电压降了,速度就慢了,这是个trade-off。我在项目中遇到过,为了省电把电压压得太低,结果时序跑不过,最后只能妥协。

还有那个α,叫翻转率。不是每个时钟周期门都会翻转,所以实际功耗比理论值小。但高频电路里,动态功耗依然是老大。

2. 静态功耗

这个以前大家不太在意,但工艺越先进,它越头疼。静态功耗主要是漏电流造成的。晶体管关断时,并不是完全绝缘,总有点电流漏过去。

漏电流有好几种:

  • 亚阈值漏电:阈值电压越低,漏电越大。先进工艺为了追求速度,阈值电压做得很低,结果漏电就上来了。
  • 栅极漏电:栅氧化层太薄,电子直接隧穿过去。我记得有几年,大家都在跟高k金属栅较劲,就是为了解决这个。
  • 栅感应漏电:这个相对小一些,但也不能忽视。

静态功耗的公式是:P_static = I_leakage × Vdd。它跟频率没关系,只要芯片上电,它就一直在耗电。待机场景下,静态功耗就是杀手。

3. 短路功耗

这个很多人容易忽略。CMOS门在翻转的瞬间,PMOS和NMOS会同时导通一小会儿,形成从电源到地的直流通路,这就是短路电流。

短路功耗一般占总功耗的10%左右,不算大,但也不能完全不管。尤其是输入信号上升沿很缓的时候,短路时间变长,功耗就会明显增加。我建议,设计时尽量让输入信号陡峭一点,能省一点是一点。

核心要点:动态功耗是“干活”时耗的电,静态功耗是“待机”时漏的电,短路功耗是“切换”时浪费的电。三者都要管,但不同场景侧重点不同。

低功耗设计的挑战

做低功耗,说白了就是在跟物理定律较劲。我总结了几大挑战:

  • 工艺缩放带来的漏电问题:工艺越先进,漏电越严重。28nm以下,静态功耗占比越来越高,甚至超过动态功耗。
  • 多电压域设计的复杂性:不同模块用不同电压,省电是省电了,但电平转换、电源管理、时序收敛都变得极其复杂。我做过一个项目,光电压域就分了八个,最后验证差点没把我搞疯。
  • 功耗与性能的平衡:想省电就得降电压、降频率,但性能就下来了。客户既要马儿跑,又要马儿不吃草,这活儿不好干。
  • 功耗分析工具的精度:仿真出来的功耗和实际流片回来的功耗,经常对不上。我曾经被这个坑过,后来学乖了,一定要留余量。

低功耗设计的趋势

这几年,低功耗技术发展很快。我看到的趋势有这么几个:

  • 近阈值/亚阈值设计:把电压降到接近甚至低于阈值电压,功耗能降一个数量级。但代价是性能大幅下降,只适合超低功耗场景。
  • 自适应电压调节(AVS):芯片自己根据工作负载和工艺角,动态调整电压。这玩意儿做得好,能省20%-30%的功耗。
  • 电源门控(Power Gating):不用的模块直接断电。听起来简单,但实现起来要考虑状态保存、唤醒时间、浪涌电流等问题。
  • 时钟门控(Clock Gating):不用的寄存器不送时钟。这个已经是标配了,但做到极致也不容易。
  • 先进封装与异构集成:把不同工艺的die封装在一起,模拟用老工艺,数字用先进工艺,各取所需,整体功耗最优。

个人建议:刚接触低功耗设计的朋友,别一上来就想搞高大上的技术。先把基础功耗分析做扎实,搞清楚功耗到底花在哪儿了。很多时候,一个简单的时钟门控就能省下20%的功耗,比折腾复杂的电压域划算得多。

知识体系框架

下面这张图,是我自己总结的低功耗设计知识体系。你可以把它当作整个课程的地图。

低功耗设计 为什么需要低功耗 功耗的组成 挑战与趋势 电池续航 散热问题 动态功耗 静态功耗 短路功耗 工艺挑战 技术趋势 翻转率 电压平方 负载电容 亚阈值漏电 栅极漏电 近阈值设计 电源门控 时钟门控 低功耗设计知识体系框架

避坑提醒:我曾经在一个项目中,过于追求低功耗,把电压降得太低,结果芯片在高温下时序全崩了。记住,低功耗设计不是一味地省电,而是在满足性能的前提下,把功耗做到最低。留好余量,别把路走绝了。

好了,这一章就聊到这儿。低功耗设计是个系统工程,后面我们会一步步深入每个技术细节。记住,功耗分析是基础,先把账算清楚,再谈优化。

专注资料整理