第一章 版图基本元素(一):图层、图形绘制与格点设置

各位同学,欢迎来到《版图入门到DRC规则全掌握》的第一课。

我是你们的版图设计讲师。在IC设计这行摸爬滚打十几年,我见过太多新手一上来就急着画图,结果后面DRC报错改到崩溃。所以,咱们先把地基打牢。

今天要聊的,是版图世界最底层的三个东西:图层(Layer)、基础图形绘制、以及格点与单位。说白了,这就是你画版图的“笔”、“纸”和“尺子”。

核心观点:版图设计不是画画,而是用几何图形精确描述物理掩模。每一层图形,都对应着芯片制造中的一道工序。

版图基本元素 图层 (Layer) • 物理层:N阱、多晶硅、金属 • 逻辑层:识别层、标记层 • 每层对应一道光刻掩模 基础图形绘制 • 矩形:最常用,必须正交 • 多边形:45°或90°角 • 路径:走线专用 格点与单位 • 格点:最小可移动步长 • 单位:1μm = 1000nm • 常用格点:0.005μm / 0.001μm

一、图层(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规则才能事半功倍。

下一章,我们会聊版图的第二个基本元素——器件。到时候见。

可可精品资料库