第三章:工艺演进与功耗:从28nm到7nm,漏电流与电压的博弈

各位同学,今天我们来聊聊工艺演进这件事。说实话,我从28nm做到7nm,中间踩过的坑,够写一本小册子了。

很多人觉得,工艺从28nm走到7nm,不就是尺寸变小了嘛,功耗自然就降下来了。嗯,这个想法,对了一半。尺寸变小确实让动态功耗降低了,但另一个问题——漏电流,却成了让人头疼的难题。

3.1 28nm:最后的“平坦”时代

28nm工艺,我个人认为是传统平面晶体管的巅峰之作。为什么这么说?因为到了28nm,晶体管的栅极还能勉强控制住沟道,漏电流虽然存在,但还在可接受范围内。

我在28nm时代做过一个手机基带芯片,那时候最关心的是动态功耗。公式大家都熟:P = αCV²f。降低电压V,或者降低频率f,效果立竿见影。我记得当时我们团队为了省电,把核心电压从1.1V降到0.9V,动态功耗直接降了三分之一。

但28nm有个特点:漏电流占总功耗的比例大概在10%-20%左右。你想想看,这个比例还不算致命。所以那时候的设计策略很简单——主攻动态功耗,漏电流嘛,差不多就行。

28nm功耗特征总结:

  • 动态功耗占比:80%-90%
  • 漏电流占比:10%-20%
  • 电压范围:0.9V - 1.2V
  • 主要优化手段:DVFS(动态电压频率调整)

3.2 16nm/14nm:FinFET来了,漏电流开始“造反”

到了16nm/14nm,情况变了。平面晶体管到了极限,栅极控制不住沟道了,漏电流开始飙升。这时候FinFET(鳍式场效应晶体管)登场了。

FinFET说白了就是把沟道立起来,让栅极从三个面包围它。这样控制力强了,漏电流确实降下来了。但代价是什么?工艺复杂度上去了,成本也上去了。

我做过一个14nm的AI加速芯片,第一次流片回来,测静态功耗的时候吓了一跳——待机电流比仿真结果大了30%。后来查了半天,发现是标准单元库里的高阈值电压(HVT)单元用少了,低阈值电压(LVT)单元太多。

避坑指南: 我曾经在14nm项目中吃过亏——以为仿真结果准,结果漏电流模型在低电压区间的精度不够。后来我养成了一个习惯:流片前一定要做蒙特卡洛仿真,看看工艺角变化对漏电流的影响。

3.3 7nm:漏电流与电压的终极博弈

7nm工艺,说实话,是我做过最“难伺候”的工艺。为什么?因为到了这个节点,漏电流和电压的关系变得极其敏感。

你想想看,7nm的晶体管尺寸已经小到只有几十个原子那么宽。栅极氧化层薄到只有几个原子层。这时候,量子隧穿效应开始显现,漏电流不再是简单的指数关系,而是变得非常复杂。

我给大家看一组数据,是我在7nm项目里实测的:

工艺节点 典型电压(V) 漏电流密度(nA/μm) 漏电占比(待机)
28nm 1.0 0.5 15%
16nm 0.85 1.2 30%
7nm 0.75 3.5 55%

看到了吗?7nm待机时,漏电流已经占到了一半以上。这意味着什么?意味着你辛辛苦苦降低动态功耗,结果芯片一待机,电池照样哗哗地掉电。

3.4 电压的博弈:降还是不降?

这时候就面临一个两难选择:电压降还是不降?

降电压,动态功耗确实降了,但漏电流呢?我告诉你一个反直觉的事实:在7nm工艺下,电压降低到一定程度,漏电流反而会增大。为什么?因为阈值电压也跟着变了,亚阈值漏电反而上去了。

我在一个7nm的IoT芯片项目中,试过把核心电压从0.75V降到0.65V。动态功耗降了20%,但漏电流涨了40%。总功耗算下来,反而高了。你说气不气人?

重要提醒: 7nm工艺下,不要盲目降电压。一定要做完整的电压-漏电流扫描,找到最优工作点。我建议至少扫描5-8个电压点,画出功耗曲线再决定。

3.5 实战策略:多阈值电压设计

那怎么办?我的经验是:用多阈值电压(Multi-Vt)设计来平衡。

简单说,就是把芯片里的标准单元分成几类:

  • HVT(高阈值电压): 漏电流最小,但速度慢。用在非关键路径上。
  • RVT(常规阈值电压): 折中方案。用在一般路径上。
  • LVT(低阈值电压): 速度快,但漏电流大。只用在关键路径上。
  • SLVT(超低阈值电压): 速度最快,漏电流最大。能不用就不用。

我在7nm项目中,HVT单元用了60%,RVT用了30%,LVT只用了10%。这样既保证了性能,又把漏电流控制在了可接受范围内。

给大家看一段实际使用的UPF(统一功耗格式)脚本片段:

# 设置不同电压域
create_power_domain PD_CORE -voltage 0.75V
create_power_domain PD_IO -voltage 1.8V

# 指定阈值电压策略
set_threshold_voltage_group -name HVT_GROUP -threshold high
set_threshold_voltage_group -name LVT_GROUP -threshold low

# 约束关键路径使用LVT
set_max_delay -from [get_pins {core/clk}] -to [get_pins {core/data_out}] 0.5ns
set_preferred_threshold_voltage_group -min_delay LVT_GROUP

3.6 我的7nm低功耗设计清单

最后,给大家总结一下我在7nm项目里总结的几条经验:

  1. 别迷信仿真: 7nm的漏电流模型误差可能达到20%-30%。流片前一定要做裕量设计。
  2. 电源门控是必须的: 不用的模块一定要彻底断电。我见过太多芯片因为漏电流太大,待机功耗超标。
  3. 温度效应要重视: 7nm工艺下,温度每升高10度,漏电流可能翻倍。散热设计不能马虎。
  4. 电压降(IR Drop)更敏感: 7nm的供电网络电阻更大,电压降问题更突出。我建议在早期floorplan阶段就做IR Drop分析。
  5. 别忘了老化效应: 芯片用久了,阈值电压会漂移,漏电流会变化。设计时要留余量。

好了,这一章就讲到这里。下一章我们聊聊动态功耗的优化技巧,那又是另一番天地了。