第三节:Virtuoso 版图编辑器入门——创建 CellView、LSW 窗口使用、基本绘制与编辑命令

好,咱们正式开始动手了。这一节我带你熟悉 Virtuoso 版图编辑器最核心的几个操作。说白了,就是让你知道怎么打开一个空白画布,怎么选图层,怎么画最基本的图形。这些动作你以后每天要重复几百遍,所以一开始就把习惯养好,后面能省不少事。

3.1 创建 CellView:你的第一块画布

打开 Virtuoso 之后,第一步不是直接画图,而是先创建一个 CellView。你可以把它理解成一张白纸,只不过这张白纸是带刻度的。

操作路径很简单:CIW → File → New → Cell View。弹出来的对话框里,你需要填几个东西:

  • Library:选你之前建好的库。我习惯把不同项目分到不同库,别所有东西都塞一个库里,不然三个月后你自己都找不到。
  • Cell:给这个版图起个名字。比如我叫它 inv_layout,一看就知道是反相器的版图。
  • View:选 layout。这个别选错,选成 schematic 就跑到原理图编辑器里去了。
  • Type:保持默认的 maskLayout 就行。

点 OK 之后,你会看到一个灰色网格窗口。嗯,这就是你的战场了。

我的小习惯:每次新建 CellView 之前,我都会先确认一下当前 Library 的 attach 工艺库对不对。你想想看,画了半天发现图层颜色跟工艺文件对不上,那得多郁闷。我早期就吃过这个亏,画了一个小时的版图,结果发现工艺库没 attach 上,所有图层都是默认的白色——白干了。

3.2 LSW 窗口:你的调色盘

LSW 全称是 Layer Selection Window。你可以把它当成画图的调色盘。没有它,你连一根线都画不了。

LSW 窗口通常会自动弹出来,如果没看到,去 Tools → Layer Selection Window 把它调出来。这个窗口里列出了当前工艺库支持的所有图层,比如 NW(N阱)ACT(有源区)PO(多晶硅)M1(金属1) 等等。

每个图层前面有个小方块,颜色就是你在版图里看到的样子。选中的图层会高亮显示,这时候你画的所有图形都会属于这个图层。

重点来了:LSW 窗口里每个图层都有两个状态——Drawing(绘制)Select(选择)。你点一下图层名字,它变成 Drawing 状态;再点一下,变成 Select 状态。我刚开始用的时候经常搞混,画了半天发现图层没选对,画出来的东西全在错误的层上。后来我养成一个习惯:画之前先看一眼 LSW 窗口左上角,确认当前 Drawing 层是不是我要的。

还有一个实用功能:LSW 的过滤显示。如果你的工艺库图层特别多(比如某些先进工艺有上百层),你可以右键点击 LSW 窗口,选择 Filter,只显示你常用的图层。我个人会把 M1、M2、VIA1、PO、ACT 这几个放在最前面,其他的收起来。眼不见心不烦。

3.3 基本绘制命令:Path、Polygon、Rectangle

好了,画布有了,图层选好了,现在开始画。Virtuoso 里最基本的三个绘制命令是 PathPolygonRectangle。这三个命令你以后会用到烂熟,所以一开始就练扎实。

3.3.1 Rectangle(矩形)

这是最常用的命令,没有之一。快捷键是 R。点一下起点,拖到终点,一个矩形就出来了。矩形的好处是边界规整,DRC 检查时不容易出问题。

操作步骤:

  1. 在 LSW 里选好图层(比如 M1)。
  2. 按键盘 R 键,或者点工具栏上的矩形图标。
  3. 在版图区域点一下左键,确定起点。
  4. 拖动鼠标,看到矩形预览,再点一下左键确定终点。

嗯,就这么简单。但这里有个坑:矩形的大小怎么控制? 你当然可以凭感觉拖,但做版图讲究的是精确。我建议你养成用 坐标输入 的习惯。在拖动矩形的时候,按 F3 键,会弹出一个参数窗口,里面可以输入矩形的宽度和高度。比如输入 0.51.0(单位是微米),矩形就精确地变成 0.5μm × 1.0μm。

注意:坐标输入的单位默认是微米(μm),但有些工艺库用的是纳米(nm)。如果你发现画出来的矩形小得看不见或者大得离谱,先检查一下单位设置。我曾经有一次把单位搞混了,画了一个 500μm 的矩形,结果整个屏幕都装不下。

3.3.2 Path(路径)

Path 用来画连线,比如金属走线。快捷键是 P。Path 和 Rectangle 的区别在于:Path 可以画折线,而且有固定的宽度。

操作步骤:

  1. 选好图层(比如 M1)。
  2. P 键。
  3. 在起点点一下,然后移动鼠标,每点一下左键就增加一个拐点。
  4. Esc 或双击结束。

Path 的宽度怎么设?同样按 F3,在参数窗口里输入 Width 值。比如金属1的最小宽度是 0.5μm,你就设成 0.5。别设小了,不然 DRC 会报错。

我个人习惯用 Path 画电源线和地线。因为电源线通常比较宽(比如 2μm 或 5μm),用 Path 可以一次性画完,不用一段一段拼矩形。你想想看,如果用 Rectangle 画一条 100μm 长的电源线,你得点多少下?Path 两下就搞定了。

3.3.3 Polygon(多边形)

Polygon 是最灵活的,也是最容易出问题的。快捷键是 G(或者 Shift+P,看你的版本)。Polygon 可以画任意形状,不限于直角。

操作步骤:

  1. 选好图层。
  2. G 键。
  3. 在版图区域依次点击多边形的各个顶点。
  4. 最后回到起点附近,光标会变成一个圆圈,点一下闭合。

Polygon 的坑在哪里?DRC 检查时,非直角的多边形很容易报错。 很多工艺规则要求图形必须是 45 度或 90 度角,你画一个 30 度的斜角,DRC 直接给你标红。所以除非你很清楚自己在做什么,否则尽量用 Rectangle 和 Path,少用 Polygon。

避坑指南:我曾经在画一个模拟电路的匹配管时,为了省面积,用 Polygon 画了一个梯形有源区。结果 DRC 报了一堆「角度违规」和「最小间距违规」。后来我老老实实改成矩形阵列,虽然面积大了一点,但 DRC 一次过。所以我的建议是:能用矩形,就别用多边形。

3.4 基本编辑命令:移动、复制、拉伸、删除

画完了图形,你肯定需要调整。Virtuoso 的编辑命令也很直观。

命令 快捷键 说明
移动 M 选中图形,按 M,点基准点,再点目标位置
复制 C 跟移动类似,但保留原图形
拉伸 S 选中图形的边或顶点,拖动改变形状
删除 Delete 选中后按 Delete 键

这里重点说一下 拉伸(Stretch)。这个命令非常实用。比如你画了一个矩形,发现宽度不够,不用删了重画。按 S 键,点中矩形的一条边,拖动到合适位置就行。我经常用这个命令来微调图形尺寸,比重新画快多了。

还有一个技巧:按住 Shift 键可以多选。比如你要同时移动好几个图形,按住 Shift 依次点选,或者用鼠标框选,然后按 M 移动。这个在调整模块位置时特别有用。

3.5 实战小练习:画一个反相器的版图轮廓

光说不练假把式。咱们来画一个简单的反相器版图轮廓,把刚才学的命令用一遍。

步骤:

  1. 新建 CellView,取名 inv_layout_demo
  2. 在 LSW 里选 NW(N阱) 图层,按 R 画一个矩形,大小 2μm × 3μm。这是 PMOS 的阱区。
  3. 切换到 ACT(有源区) 图层,在 NW 内部画两个矩形,分别作为 PMOS 和 NMOS 的有源区。大小各 1μm × 1.5μm,间距 0.5μm。
  4. 切换到 PO(多晶硅) 图层,用 R 画一条横跨两个有源区的矩形,宽度 0.2μm。这就是栅极。
  5. 切换到 M1(金属1) 图层,用 P 画一条 Path,连接栅极和输出端。

画完之后,按 Ctrl+S 保存。嗯,一个简单的反相器轮廓就出来了。虽然还没加接触孔和金属连线,但至少形状是对的。

我的建议:刚开始学的时候,别追求一次画对。多画几遍,熟悉快捷键。我当年练这个反相器画了不下 50 遍,直到闭着眼睛都能把尺寸和间距背出来。熟能生巧,这话在版图设计里一点不假。

好了,这一节的内容就到这儿。下一节咱们会讲怎么加接触孔和通孔,以及怎么跑 DRC 检查。到时候你会发现,画图只是开始,真正磨人的是后面那些检查规则。