物理设计

金属层(BEOL,后段制程)

晶体管在硅片里刻好之后,光有它们还派不上用场——你得先把它们连起来,而现代芯片里有数十亿个晶体管。这件事没法在一个平面上完成,就像一座城市没法只靠一条街道把每栋楼都连通一样。于是晶圆厂在晶体管上方一层层地架起一张立体路网:十几层甚至更多的金属布线,一层叠一层,层与层之间填着绝缘体,再由一种叫「通孔(via)」的微型垂直电梯穿过去,把这一层的导线接到上一层的导线上。这整套金属堆叠就是后段制程,也就是 BEOL——之所以叫「后段」,是因为它是在晶体管本身(前段制程,FEOL)做好之后,一层一层叠在它们上面才造出来的。布局布线在「布线」时,画导线用的正是这些层。

这些层故意做得不一样。靠近晶体管的最底层金属(常叫 M1、M2 往上)又薄又密、线距很细——是供相邻单元之间做短距离本地跳接的窄巷子,这里要的是密度,而不是速度。顺着堆叠往上爬,导线越来越宽、越来越厚,到顶层就是几条又粗又胖的金属,专门干两件活:把干净的电源和地送遍整片芯片(也就是供电网络 PDN),以及把长距离信号从芯片这头送到那头。原因很简单,就是电阻。一根导线的电阻是 R = rho*L/A——与长度成正比,与横截面积成反比——所以一条长走线如果走在又薄的底层,电阻会高得离谱、信号也慢得要命;把它提到横截面又大的厚顶层,每毫米的电阻就骤然下降。这正是好的布线器会把短网络往低层放、把长网络或电流大的网络往高层送的道理。

不过这些铜导线并不理想:每一根都带着实实在在的电阻,还会与左右邻线以及上下各层之间形成电容。这些寄生参数,正是寄生参数提取要从最终版图里抠出来、再交给静态时序分析的东西——因为在先进工艺节点上,金属导线的延迟可以逼近甚至超过它所连接的逻辑门的延迟。所以金属堆叠绝不是收尾时随手装上去的「水管」:一个网络走在哪一层、各层尺寸怎么定,都是头等的设计决策,直接关系到芯片能不能满足时序、扛不扛得住供电需求。

R = rho * L / A (resistance rises with wire length L, falls with cross-sectional area A)

为什么长网络和电源网络要提到厚的上层金属:横截面 A 越大,单位长度的电阻就越小,于是同一条长走线,放在又薄的底层会拖垮性能,放到上面的厚层就变得可以接受了。

层数和命名因晶圆厂、因工艺节点而异,顶部的「厚」金属有时还会再细分成重布线层与超厚电源层——但原理是通用的:底部又薄又密,留给本地网络;顶部又厚又疏,留给电源和长距离信号。

又称
BEOLback-end-of-lineinterconnect stackmetal stackMx layers金属层互连层金属互连堆叠