第二讲:版图基础概念——图层与工艺层次、设计规则(DRC)概念、版图设计流程概览
各位同学,欢迎来到第二讲。上一讲我们聊了版图设计在整个芯片设计流程中的位置,今天咱们来点实在的——把版图最基础的那些概念掰开揉碎了讲清楚。
说实话,我刚开始学版图那会儿,最头疼的就是那一堆花花绿绿的图层。什么N阱、有源区、多晶硅……看着就像一幅抽象画。但后来我明白了,这些图层背后对应的是实实在在的物理层次,是芯片制造过程中一层一层堆叠上去的。
2.1 图层与工艺层次
版图设计,说白了就是用几何图形去描述芯片的物理结构。每个图层对应一道光刻掩模版,也就是芯片制造过程中的一个工艺步骤。
我给大家整理一下CMOS工艺中最常见的几个核心图层:
| 图层名称 | 英文缩写 | 物理含义 | 颜色(Virtuoso默认) |
|---|---|---|---|
| N阱 | NW | PMOS管的衬底区域 | 黄色 |
| 有源区 | AA / OD | 晶体管沟道和源漏区域 | 绿色 |
| 多晶硅 | PO / POLY | 栅极材料 | 红色 |
| P+注入 | PIMP / BP | PMOS源漏掺杂 | 浅蓝色 |
| N+注入 | NIMP / BN | NMOS源漏掺杂 | 紫色 |
| 接触孔 | CO / CONT | 连接有源区/多晶硅到金属1 | 黑色方块 |
| 金属1 | M1 | 第一层金属互连 | 蓝色 |
| 通孔 | VIA | 连接金属层之间 | 灰色方块 |
| 金属2 | M2 | 第二层金属互连 | 紫色 |
嗯,这里要注意:不同工艺厂家的图层命名和颜色可能不一样。比如台积电和联电的叫法就有差异。我个人习惯是拿到新工艺后,先把所有图层的名字和用途过一遍,免得后面画错了。
L键可以打开图层选择窗口(LSW)。你可以在这里看到当前工艺库中所有可用的图层。我建议你把常用的几个图层记住快捷键,比如Shift+A切到有源区,Shift+P切到多晶硅,效率会高很多。
2.2 图层之间的层次关系
这些图层不是孤立存在的,它们之间有严格的层次关系。我画个简单的NMOS晶体管结构给你看看:
俯视图(版图视角):
+------------------+
| 有源区 (AA) |
| +-----------+ |
| | 多晶硅(PO)| | ← 栅极
| +-----------+ |
| N+注入覆盖整个AA |
+------------------+
剖面图(物理视角):
多晶硅(PO)
|
┌──────┴──────┐
│ 栅氧化层 │
│ │
│ N+ │ 沟道 │ N+ │
│ 源极 │ │ 漏极 │
│ │ │ │
└──────┴───────┴──────┘
P型衬底
为什么会这样?因为NMOS的源漏区域需要N+掺杂,而沟道区域(多晶硅下方)不能掺杂。所以N+注入层必须覆盖整个有源区,但多晶硅本身会阻挡注入——这就是所谓的「自对准工艺」。
我记得刚入行时,有个同事把N+注入画小了,结果源漏区没完全覆盖,流片回来那批芯片全废了。嗯,这种错误犯一次就够你记一辈子。
2.3 设计规则(DRC)概念
设计规则,英文叫Design Rule Check,简称DRC。它是什么?说白了就是工艺厂给你画的一条「红线」——你的版图必须满足这些几何约束,否则造不出来,或者造出来也是坏的。
常见的DRC规则包括:
- 最小宽度:比如多晶硅最小宽度0.18μm,你画0.17μm就不行
- 最小间距:比如同一层金属之间至少隔0.2μm
- 最小包围:比如接触孔必须被金属完全包围,至少超出0.05μm
- 最小延伸:比如多晶硅超出有源区至少0.1μm
我给大家看一个典型的DRC规则表格(以0.18μm工艺为例):
| 规则编号 | 描述 | 最小值 |
|---|---|---|
| AA.1 | 有源区最小宽度 | 0.18μm |
| AA.2 | 有源区间最小间距(同电位) | 0.18μm |
| AA.3 | 有源区间最小间距(不同电位) | 0.28μm |
| PO.1 | 多晶硅最小宽度 | 0.18μm |
| PO.2 | 多晶硅最小间距 | 0.18μm |
| PO.AA.1 | 多晶硅超出有源区最小延伸 | 0.10μm |
| CO.1 | 接触孔最小尺寸 | 0.18μm × 0.18μm |
| CO.2 | 接触孔最小间距 | 0.24μm |
| M1.1 | 金属1最小宽度 | 0.23μm |
| M1.2 | 金属1最小间距 | 0.23μm |
2.4 设计规则检查(DRC)工具
在Virtuoso中,跑DRC通常有两种方式:
- Assura / PVS:老一代的DRC工具,现在用得少了
- Calibre:Mentor公司的工具,目前业界主流
跑DRC的流程大致是这样的:
1. 打开版图(Layout)
2. 点击菜单:Calibre → Run DRC
3. 选择DRC规则文件(.rul或.rule)
4. 设置输出路径
5. 点击Run
6. 查看结果(RVE界面)
嗯,这里要注意:DRC规则文件是工艺厂提供的,千万别自己改。我见过有人为了「通过」DRC,偷偷把规则文件里的最小值改小了……这种行为极其危险,流片回来芯片大概率不能用。
2.5 版图设计流程概览
好了,前面讲了图层和DRC,现在咱们把整个版图设计流程串起来看看。你想想看,一个完整的版图设计项目,通常走这几步:
- 前期准备:拿到工艺文件(PDK),熟悉图层和规则
- 电路分析:理解电路原理图,确定关键器件和匹配要求
- 布局规划:在芯片上大致摆放各个模块的位置
- 器件绘制:画晶体管、电阻、电容等基本器件
- 互连布线:用金属层把各个器件连起来
- DRC检查:跑设计规则检查,修错
- LVS检查:跑版图与电路一致性检查
- 后仿真:提取寄生参数,做后仿真验证
- Tapeout:生成GDS文件,交付流片
我个人习惯是,在布局规划阶段花的时间最多。因为布局一旦定下来,后面改起来非常痛苦。我记得有一次,为了省时间,布局随便摆了一下就开始布线,结果布到一半发现两个大模块之间的信号线绕了半个芯片……最后只能推倒重来。
2.6 本章小结
这一讲我们讲了三个核心概念:
- 图层与工艺层次:每个图层对应一道光刻掩模,理解图层的物理含义是画版图的基础
- 设计规则(DRC):工艺厂给的几何约束,必须严格遵守
- 版图设计流程:从前期准备到Tapeout的完整路径
下一讲,我们会进入实战环节——在Virtuoso中创建第一个版图,画一个简单的反相器。到时候我会手把手带你操作,包括怎么建库、怎么画器件、怎么跑DRC。准备好了吗?
对了,课后作业:打开你的Virtuoso,找到工艺库中的图层列表,把每个图层的名字和颜色记下来。下次上课我会抽查。