第一章 版图基本元素(一):图层、图形绘制与格点设置
各位同学,欢迎来到《版图入门到DRC规则全掌握》的第一课。
我是你们的版图设计讲师。在IC设计这行摸爬滚打十几年,我见过太多新手一上来就急着画图,结果后面DRC报错改到崩溃。所以,咱们先把地基打牢。
今天要聊的,是版图世界最底层的三个东西:图层(Layer)、基础图形绘制、以及格点与单位。说白了,这就是你画版图的“笔”、“纸”和“尺子”。
核心观点:版图设计不是画画,而是用几何图形精确描述物理掩模。每一层图形,都对应着芯片制造中的一道工序。
一、图层(Layer)的概念与分类
什么是图层?你可以把它想象成一张透明的塑料片。每一张塑料片上画一种图形,所有塑料片叠在一起,就构成了完整的芯片版图。
但注意,这不是比喻——在芯片制造中,每一层真的对应一张光刻掩模版。你画的每一根线条,最终都会变成硅片上的物理结构。
1.1 物理层 vs 逻辑层
图层分两大类:物理层和逻辑层。
| 类型 | 说明 | 常见例子 |
|---|---|---|
| 物理层 | 真正参与制造的层,有厚度、有材料 | N阱、多晶硅、金属1、接触孔 |
| 逻辑层 | 辅助设计用,不参与制造 | 识别层、标注层、DRC标记层 |
我个人习惯把物理层叫做“真家伙”,逻辑层叫做“便签纸”。真家伙画错了,流片就废了;便签纸画错了,顶多DRC报个warning。
小技巧:在Cadence Virtuoso中,图层显示颜色和填充样式是可以自定义的。我建议把金属层设为实心色,多晶硅设为斜线填充,这样一眼就能区分。
1.2 图层编号与命名规则
每个工艺厂都有自己的图层命名规则。以常见的0.18μm工艺为例:
// 典型图层编号示例
Layer Name Layer Number Purpose
---------- ------------ -------
NW 1 N阱
ACT 2 有源区
PO 3 多晶硅
CO 4 接触孔
M1 5 金属1
VIA1 6 通孔1
M2 7 金属2
嗯,这里要注意:不同工艺厂的编号可能完全不同。你换一个工艺,就得重新记一套编号。我当年从0.18μm转到55nm时,光记图层编号就花了一周。
避坑指南:我曾经在项目里见过新手把M1画成了M2层,结果DRC跑出来全是短路错误。所以画图前,一定先确认当前激活的是哪一层。
二、基础图形绘制
版图的基本图形只有三种:矩形、多边形、路径。别小看这三样,整个芯片就是由它们拼出来的。
2.1 矩形(Rectangle)
矩形是版图里最常用的图形。几乎所有规则结构——晶体管、电阻、电容——都是用矩形拼的。
画矩形时,记住一个原则:必须正交。也就是说,矩形的边必须平行于X轴或Y轴。为什么?因为制造设备只能识别水平和垂直的边。
// 矩形绘制命令示例(Skill语言)
leCreateRect(cellView list("M1" "drawing")
list(0:0 10:5)
)
// 这个命令会在M1层创建一个从(0,0)到(10,5)的矩形
关键点:矩形由两个对角点定义。左下角和右上角。坐标顺序不重要,但两个点必须在同一层。
2.2 多边形(Polygon)
多边形比矩形灵活,但限制也更多。在大多数工艺中,多边形只允许45°或90°角。为什么不能画30°、60°?因为光刻机的分辨率限制,非45°的斜边会导致图形失真。
你想想看,如果画了一个30°的斜边,制造出来可能变成锯齿状,那电路性能就全毁了。
// 多边形绘制示例
leCreatePolygon(cellView list("PO" "drawing")
list(0:0 10:0 15:5 10:10 0:10)
)
// 这个多边形有5个顶点,形成45°斜边
个人经验:我建议新手尽量用矩形,少用多边形。矩形出错概率低,DRC也好过。只有遇到必须走斜线的场景(比如天线效应规避),才考虑多边形。
2.3 路径(Path)
路径是专门用来画连线的。它本质上是一条有宽度的线。你只需要定义路径的中心线和宽度,软件会自动生成两边的边界。
// 路径绘制示例
leCreatePath(cellView list("M1" "drawing")
list(0:0 20:0 20:10)
width:0.5
)
// 这条路径从(0,0)到(20,0)再到(20,10),宽度0.5μm
路径的好处是修改方便。想改线宽?直接改width参数就行,不用重新画整个图形。我在项目中经常用路径来画电源走线,因为电源线宽度经常要调整。
三、格点(Grid)与单位(Unit)设置
这是新手最容易忽略,但老手最在意的东西。
3.1 单位系统
版图设计的基本单位是微米(μm)。1μm = 1000nm。在先进工艺中,我们经常用纳米(nm)来讨论,但画图时还是以微米为主。
| 单位 | 换算关系 | 典型应用 |
|---|---|---|
| 1 μm | 1000 nm | 版图坐标基准 |
| 1 nm | 0.001 μm | 先进工艺线宽 |
| 1 mil | 25.4 μm | 封装设计(很少用) |
3.2 格点设置
格点就是鼠标移动的最小步长。比如格点设为0.005μm,那你的鼠标每次移动0.005μm。为什么要有格点?因为制造设备只能识别特定精度的坐标。
常见的格点设置:
- 0.005μm:0.18μm及以上工艺常用
- 0.001μm:65nm及以下先进工艺常用
- 0.01μm:某些模拟版图设计用
避坑指南:我曾经见过一个同事,格点设成了0.003μm,结果画出来的图形坐标全是0.003的倍数。DRC规则要求最小间距是0.005μm的倍数,他的图形怎么都对不齐,最后全部重画。所以,格点一定要和工艺规则匹配。
3.3 如何设置格点
在Virtuoso中,格点设置通常在CIW窗口或Layout Editor的Options里:
// 设置格点为0.005μm
leSetGrid(0.005 0.005)
// 第一个参数是X方向格点,第二个是Y方向格点
// 通常X和Y设成一样
我的习惯:开始一个新项目时,第一件事就是检查格点设置。我会把格点设成工艺规则中最小尺寸的1/2或1/5。比如最小线宽0.18μm,我就设格点为0.09μm或0.036μm。这样画出来的图形,DRC基本不会因为坐标问题报错。
本章小结
好了,今天的内容就这些。总结一下:
- 图层是版图的“维度”,每层对应一道制造工序
- 基础图形就三种:矩形、多边形、路径。矩形最常用,多边形限制多,路径适合走线
- 格点和单位是版图的“尺子”,设错了后面全是坑
这些看起来简单,但都是基本功。我见过太多人因为图层选错、格点设错,导致整个项目返工。所以,别嫌我啰嗦,把这些基础打扎实了,后面学DRC规则才能事半功倍。
下一章,我们会聊版图的第二个基本元素——器件。到时候见。