实操1 设计工具的使用(中) – 版图设计
设计工具使用的上一部分内容主要介绍了Virtuoso模拟设计平台中的设计制作电路原理图的工具 Composer, 测试台模拟验证的工具 Spectre;这一部分主要介绍平台中的绘制和编辑版图的工具 Virtuoso; 大家从具体的操作演示中可以看到,这些工具是无缝连接,随时切换的,并且你感受不到工具之间的切换。
有两种方式 Virtuoso
第一种是在icfb 窗口直接进入Virtuoso窗口,打开一个已有的版图文件,或新建立一个版图文件,如图1到图3; 为什么这里打开或新建立是版图文件?这是由于在图3的 “Tools ” 中,通过 “Browse” 选择了工具Virtuoso,它对应的文件形式 (View Name) 就是 “Layout” ! ,当然如果选择了工具 Composer-Schematic, 它对应的文件形式就是电路原理图 “Schematic”,这是上一讲的内容。
在UNIX / LINIX 环境下,打开一个视窗 ( Terminal); 键入icfb, 进入 Virtuoso 平台,如图 1。

图 1 Virtuoso 平台
进入 Virtuoso 平台后,选择 “File” 下拉式菜单,点选 “Open” 打开一个已存储的设计。如果新手学习,没有预存的设计,则按后续步骤从新建一个设计开始。

图2 打开一个已有的版图文件
下图是建立一个新文件,操作步骤和上一讲的建立一个新的电路原理图文件一样,只是在工具 “ Tool” 的选择中选取Virtuoso, 系统自动切换到版图模式。操作方式, 菜单 File –>new–>Cellview, 在跳出的新窗口”Create New File”中 Tool栏选择 Virtuoso,如图3所示。

图3 建立一个新的版图文件
另一种是在电路原理图界面下(Composer ),打开“tools” 的下拉式菜单,选中 “ Design Synthesis” 点击 “Layout XL”,如图4。

图4 从电路原理图界面进入 Virtuoso窗口
点击 “Layout XL” 后,图5的小窗口出现,提示你版图文件名,如果文件名不做任何改动,缺省沿用电路原理图的文件名,只是文件格式变成版图文件的格式。

图5 从电路原理图界面进入 Virtuoso窗口
点击小窗口的 “OK” 后,进入 Virtuoso窗口,如下图。

图6 Virtuoso窗口打开 ( 右侧 )
实际上,进入 Virtuoso后,同时打开了两个窗口,如下图,左侧的是层选择窗口Layer Selection window (LSW),选择所需要的层;右侧的是版图设计主窗口;

图 7 层选择窗口LSW (左侧 )和版图设计主窗口 (右侧 )
选中下图左侧电路原理图中要拖动的器件,在Virtuoso窗口下打开 “Create” 下拉式菜单, 点击 “Pick from Schematic”,

图8 从电路原理图选择器件到 Virtuoso窗口
“ Pick From Schematic” 小窗口出现, 如果没有改变,或对其含有不了解,有选择缺省值,点击 “ Hide” 继续。

图 9 从电路原理图选择器件到 Virtuoso窗口
图10中,在电路原理图中选中的器件以符号图的形式显示在 Virtuoso 窗口, 利用快捷键 Shift+ f 切换成器件版图形式,如图11。

图 10 器件以符号图的形式显示在Virtuoso窗口

图 11 切换到版图形式
器件之间的连线关系在移动其中一个器件时就会显示出来,如图 12 所示。

图12 器件之间的连线关系
另外一个显示器件之间连线关系的操作是;打开 “Options” 下拉式菜单, 点击 “Display”,出现如下图的窗口

图13 显示器件之间的连线关系
把左上方 “Display Controls” 的按钮 “Nets” 勾选上,点击 “OK” 确认键 , 版图窗口中器件之间的连线关系就显示如图 15。

图14 显示器件之间的连线关系
下图显示出各器件之间的连线关系,即 p型管的栅极和 n型管的栅极相连,p型管的漏极和 n型管的漏极相连。 如果需要消除这些连线关系,回到图13和14,撤销 “Nets” 的勾选即可。

图15 显示器件之间的连线关系
这些器件,无论是晶体管,电阻,电容,还是互连线,都是由一层层的薄膜相互叠加构成的,同样的版图也是由一层层的图像,如扩散层,有源层,金属层等图像相互叠加形成的,我们目前看到的晶体管版图,是构成该晶体管版图所有层的叠加效果图,能不能把某一层单独拿出来看呢? 答案是可以的,并且在做图,修图过程中经常要这样做,具体方法如下:
首先要把该器件的层级(hierarchy) 平坦化 (Flatten),即俗称的“打散”, 即把各层之间的关联关系去掉:点选中该器件后,点击 “Edit” 打开下拉式菜单,光标移至 “ Hierarchy” 后又出来两个选项,点击 “Flatten…” 被选中的器件就被打散了, 如图 16;

图16 器件的层级关系“打散”
下图是已打散的器件,组成该器件的各层现在都可以单独移动位置。

图 17 已打散的器件各层可以单独移动
器件的层级关系打散后,就可以通过左侧的 LSW 窗口选择所要看的层,点击 “NV” ( Non Visible), 然后选中右侧窗口按下快捷键 shift + f ,只有选中的层显示出来;如下图中只显示有源层( AA, Active Area)。

图18 驱动电压为 3.3v 的n型场效应管版图分层展示,只显示一层
也可以选择两个或多个层同时显示,这时要点击 “AS” , 然后选中右侧窗口按下快捷键 shift + f ,只有选中的层显示出来如下图同时显示了金属1层和通孔chr接触层。如果恢复显示所有的层,按下 LSW窗口的 “AS ” (All Selected),选中右侧窗口按下快捷键 shift + f 即可。

图 19 驱动电压为 3.3v 的n型场效应管版图分层展示,显示两层
在 Virtuoso 窗口中,点选中某个器件,按下键盘上的快捷键 q, 该器件的参数就显示出来,这些参数是从电路原理图中继承过来的;但是在这里你也可以修改该器件的参数,需要注意的是还需要回到电路原理图中修改对应的参数,这样两者才一致,在之后的 LVS 和后仿真中不会因此而出错。

图 20 显示和修改器件参数
也可以显示某一层的信息:点选住该层,按下键盘上的快捷键q,该层的信息就显示出来,如下图。

图 21 显示器件中某一层的信息
器件的版图显示在 “ Virtuoso” 窗口后,接下来就是根据电路原理图中器件的连接关系,将它们联起来。
做连线时,先确定用使用哪一层,在 LSW 窗口上选中该层,然后选择 “Create” 下拉式菜单, 点击 “Path” (熟悉以后就可以用快捷键 p, 在下拉式菜单上有提示), 就可以画连线,要退出,
点击键盘上的 “Esc”

图 22 用 “Path”画连线
也可以用 “Rectangle” ( 做矩形 ) 来画连线,选择 “Create” 下拉式菜单, 点击 “Rectangle” (熟悉以后就可以用快捷键 R ),如下图。

图23 用 “Rectangle” 画连线
如果开始时选错了层,在任何时候都可以改正,如下图,选中该层,点击键盘上的字母 “q”,出现如下图的小窗口,点击 “ Layer” 右侧的按钮,又打开另一个窗口,如图 。

图 24 显示和改变层性质
在下图中找到需要的层,点击就可以了。

图 25 层选择窗口
层与层之间还需要应用通孔 ( Vias)连接上,通过 “ Contact” 来完成,如下图;

图26 建立层与层之间的连接
选择所需要连接的层

图 27 选择所需要连接的层
如果想仔细看某一层的版图,可以先把别的层屏蔽,只显示出该层,如下图只显示金属一层 (M1)。

图 28 只显示版图中的某一层
如果需要知道某些层,某些形状的尺寸,可以使用标尺 (Rule ), 点击键盘上的字母“k”, 标尺出现,使用鼠标选择要测量的起点和终点, 工具自动显示测量值;点击“Shift”+“k” 标尺消失。

图 29 使用标尺测量尺寸
芯片 (Die ), 同外界的信息交流需要通过引脚来 ( Pin ) 完成,这里只需要命名引脚的名称,工具自动将相同名字的引脚视为连接。
可以选择和改变引脚名称的字体,大小等。

图 30 命名引脚名称
模拟电路中,为了避免器件之间相互干扰,降低噪声,往往在器件周边加保护环 ( Guard Ring),尤其是关键器件/模块周边,保护环是多层组合,我们在之后的设计案例中会详细介绍。

图 31 设计保护环
最后可以显示和打印出该版图的统计报告, 该报告告诉我们这个电路图包括有一个n 型管 n12, 一个p 型管 p12, 以版图的形式,还有三个删极层,以符号的形式;所用到的层包括有金属1层,金属2层,和多晶硅层;如下图。

图 32 版图统计报告
版图设计工作到这里就全部完成了, 接下来就是版图验证工作,这是下一讲的内容。