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 实战小贴士

最后,分享几个我这些年积累的小经验:

  1. 别乱改默认颜色:如果你在团队里工作,尽量使用统一的颜色方案。否则,别人看你的版图会很痛苦。我一般只在项目开始时,和团队一起定好颜色规范,然后导出 .display 文件,大家共用。
  2. 善用 Layer Purpose:同一个工艺层,可以有不同用途。比如 M1 drawing 是实际金属,M1 pin 是端口标记。别把 pin 层当成 drawing 层用,否则 LVS 会报错。
  3. 定期检查层次完整性:在跑 DRC 之前,先跑一遍 Layer Map Check。确保所有需要的层次都存在,没有遗漏。我吃过一次亏:有个项目,我忘了画 N阱的 N-well pickup 层,结果 DRC 报了几百个错误,全是衬底接触问题。

嗯,关于基础图层和层次,今天就聊这么多。这些东西看着简单,但真要在项目里用好,还是需要一些经验的。下次咱们讲 DRC 规则文件的结构,到时候你会更明白,为什么层次设置这么重要。