4、基础图层与层次:工艺层(Layer)的概念、常用层次(N阱、有源区、多晶硅、金属等)、层次颜色与填充设置。
好,咱们今天聊聊版图设计里最基础、也最绕不开的东西——工艺层。说白了,就是你在 Virtuoso 里画的那一层层花花绿绿的图形,到底代表什么。
我刚入行那会儿,看着屏幕上密密麻麻的层次,说实话有点懵。什么 N阱、有源区、多晶硅……颜色还都不一样。后来带我的老工程师跟我说了一句话,我到现在都记得:「你画的每一根线,最后都会变成芯片上实实在在的东西。」嗯,这话一点不夸张。
4.1 工艺层(Layer)到底是什么?
工艺层,你可以理解成是芯片制造过程中的「物理掩模版」。每一层掩模版对应一道光刻工序。你在版图上画的一个矩形,到了晶圆厂,就是一次曝光、一次刻蚀或者一次注入。
举个例子。你画了一个 N阱 的矩形,那在制造时,光刻胶就会把这块区域保护起来,然后进行高能离子注入,把这块 P 型衬底变成 N 型区域。这就是一个完整的工艺层逻辑。
我个人习惯把工艺层分成三类:
- 注入层:比如 N阱、P+注入、N+注入。它们改变硅片的导电类型。
- 图形层:比如有源区、多晶硅、金属。它们定义器件的几何形状和连线。
- 标记层:比如标识层、文本层。它们不参与制造,只用于设计辅助。
重要概念: 工艺层 ≠ 显示层。你在 Virtuoso 里看到的颜色和填充,只是显示设置。真正的工艺层信息,藏在 LSW(Layer Selection Window)的 Layer Name 里。千万别搞混了。
4.2 常用层次详解
咱们挑几个最常用的层次,一个一个说。这些你几乎天天都要打交道。
4.2.1 N阱(N-Well)
N阱是 PMOS 管的「老家」。所有 PMOS 管都必须放在 N阱里。为什么?因为 PMOS 的源漏是 P+,衬底是 N 型,所以需要一个独立的 N 型区域来做衬底偏置。
我在项目中遇到过一件事:有个同事把 N阱画得太靠近芯片边缘,结果流片回来,那块区域的 PMOS 漏电特别大。后来查出来,是 N阱的横向扩散把边缘的隔离区给「吃掉」了。所以,N阱离芯片边界一定要留够余量,至少 0.5μm 以上。
4.2.2 有源区(Active / Diffusion)
有源区,也叫扩散区。它是晶体管沟道和源漏形成的地方。你可以把它想象成一块「空地」,在这块空地上,多晶硅跨过去就是栅极,两边就是源漏。
有源区有个特点:它必须被 N+ 或 P+ 注入层 覆盖,才能定义它是 NMOS 还是 PMOS。光画有源区是不够的,你得告诉工艺厂:「这块我要做 N 型,那块我要做 P 型。」
我的小技巧: 画有源区时,我习惯把有源区画得比多晶硅稍微大一圈。这样能保证多晶硅完全覆盖沟道,避免边缘漏电。具体大多少?看工艺规则,一般每边大 0.1~0.2μm 就够了。
4.2.3 多晶硅(Poly / Polysilicon)
多晶硅是栅极材料。在标准 CMOS 工艺里,它用来做 MOS 管的栅极,也用来做短距离的互连线(比如电阻)。
多晶硅的宽度决定了晶体管的沟道长度。沟道长度越短,管子速度越快,但漏电也越大。这是个 trade-off。我记得有一次,为了追求速度,我把多晶硅宽度画到了工艺允许的最小值。结果流片回来,阈值电压漂移得厉害。后来才知道,多晶硅的线宽受光刻分辨率影响,太窄了均匀性会变差。
4.2.4 金属层(Metal 1, Metal 2, ...)
金属层就是芯片里的「电线」。它们把各个器件连接起来,形成电路。从 Metal 1 到顶层金属,每一层的厚度、电阻、电流能力都不一样。
一般来说,底层金属(M1)比较薄,适合走短距离、小电流的信号。顶层金属比较厚,适合走电源、地线或者大电流。
我建议你养成一个习惯:电源和地线尽量用高层金属走。为什么?因为高层金属电阻小,压降小。而且底层金属留给信号线,可以减少串扰。这个习惯帮我避免了好几次 IR Drop 的问题。
4.3 层次颜色与填充设置
好了,层次讲完了。但你在 Virtuoso 里看到的,可不是干巴巴的「N阱」、「有源区」,而是各种颜色和填充图案。这些设置在哪?怎么调?
4.3.1 颜色设置
颜色在 Display Resource Manager (DRM) 里设置。你可以通过 Tools → Display Resource Manager 打开它。
我个人习惯用 对比度高 的颜色方案。比如:
- N阱:浅蓝色(不刺眼)
- 有源区:绿色(代表「生长」)
- 多晶硅:红色(醒目,因为它是栅极)
- Metal 1:蓝色
- Metal 2:紫色
- 接触孔/过孔:白色或黄色
这样设置的好处是,一眼看过去就能分清不同层次。尤其是检查 DRC 时,红色多晶硅和绿色有源区重叠的地方,就是晶体管沟道,非常直观。
4.3.2 填充设置
填充(Stipple)是为了区分不同层次的重叠区域。比如,N阱和有源区重叠,如果都是实心颜色,就看不清了。所以需要给某些层加上斜线、点阵等填充图案。
在 DRM 里,你可以为每个层次选择 Fill Style。我常用的规则是:
- 注入层(N阱、P+注入):用斜线填充,45度方向
- 有源区:实心填充
- 多晶硅:实心填充(因为它通常面积小)
- 金属层:实心填充,但透明度调高一点
注意: 填充图案不要选得太花哨。有些新手喜欢用各种交叉网格,结果版图看起来像迷宫,根本看不清。简单、清晰才是王道。我曾经见过一个同事,把每一层都设成不同方向的斜线,结果叠在一起时,眼睛都快看花了。DRC 检查时,他花了三倍时间才找到问题。
4.4 实战小贴士
最后,分享几个我这些年积累的小经验:
- 别乱改默认颜色:如果你在团队里工作,尽量使用统一的颜色方案。否则,别人看你的版图会很痛苦。我一般只在项目开始时,和团队一起定好颜色规范,然后导出
.display文件,大家共用。 - 善用 Layer Purpose:同一个工艺层,可以有不同用途。比如
M1 drawing是实际金属,M1 pin是端口标记。别把pin层当成drawing层用,否则 LVS 会报错。 - 定期检查层次完整性:在跑 DRC 之前,先跑一遍
Layer Map Check。确保所有需要的层次都存在,没有遗漏。我吃过一次亏:有个项目,我忘了画 N阱的N-well pickup层,结果 DRC 报了几百个错误,全是衬底接触问题。
嗯,关于基础图层和层次,今天就聊这么多。这些东西看着简单,但真要在项目里用好,还是需要一些经验的。下次咱们讲 DRC 规则文件的结构,到时候你会更明白,为什么层次设置这么重要。