使用Virtuoso设计全定制版图.docx
- 文档编号:24255216
- 上传时间:2023-05-25
- 格式:DOCX
- 页数:26
- 大小:812KB
使用Virtuoso设计全定制版图.docx
《使用Virtuoso设计全定制版图.docx》由会员分享,可在线阅读,更多相关《使用Virtuoso设计全定制版图.docx(26页珍藏版)》请在冰豆网上搜索。
使用Virtuoso设计全定制版图
使用Virtuoso设计全定制版图
使用Virtuoso设计全定制版图
本文介绍利用virtuosolayouteditor(以后简称le)创建全定制版图,以及vituosole的一些使用说明。
全文将用一个贯穿始终的例子来说明如何绘制全定制版图,一个最简单的反相器的版图.设计过程采用chartered(csm25rf)库—标准CMOS工艺库。
具体内容包括:
1)如何打开virtuosole和le的一些设置;
2)使用LSW窗口;
3)使用le创建一个版图;
4)使用快捷键—bindkey;
5)使用diva验证版图;
6)使用diva进行LVS;
登陆以后,首先要先创建自己的工作目录,比如Work,cdWork.从csm25rf库所在文件夹下拷贝display.drf文件到自己的工作目录下,你的工作目录下必须有display.drf文件,不然在LSW窗无法显示绘制版图需要的各个图层。
从/CDS_ROOT/tools/dfII/cdsuser目录下拷贝.cdsinit文件到自己的目录下,该文件是Cadence自带的软件相关设置的文件,里面有相关字体的设置,Bindkey设置等,这里主要考虑Bindkey的设置,也可以设置自己的Bindkey,不过Cadence默认的设置是足够的。
当然也可以单单靠鼠标来进行操作,virtuosole窗口有常用命令的工具栏,不过就我自己的感觉,用快捷键比鼠标要快很多。
如果要运行DivaLVS还得有.simrc文件。
(不过这里有一个问题,服务器上的.simrc文件的设置跟csm25rf库有不一致的地方,运行DivaLVS会出现目录LVS非法的错误。
运行vituosole
要打开virtuosole,首先要打开CIW窗口。
在shell命令行下输入:
icfb&进入CIW窗口,字符&使得cadence在后台工作(即可以在shell命令行执行其它命令),也可以在shell提示符下输入其它的命令来打开CIW窗口,如下图:
(在这里也可以输入layout&或者layoutPlus&)
现在要先建立自己的工作库。
在CIW窗口中选择File-〉new->newlibrary建立自己的库。
在弹出的对话框中,在libraryname中输入库的名字,比如guan;在Technology选项选择Attachtoanexistingtechfile,点击OK,弹出AttachDesignLibrarytoTechnologyFile的对话框,如下图:
在TechnologyLibrary选项卡中选择csm25rf,按下OK,两个对话框窗口消失。
现在已经建立了自己的工作库guan,并且它与技术库csm25rf相关联。
在前面的NewLibrary窗口TechnologyFile选项中,如果没有现成的技术库,而有相应的技术文件(techfile),那么可以先选择Compileanewtechfile来创建自己的技术库。
如果该选项被选上,点击OK后会弹出一个输入ASCII码文件(techfile)的对话框,在对话框中输入技术文件的完整路径,点击OK,如果没有错误,一个自己的技术库就生成了。
不过利用这种方法生成的技术库里面包含的器件数量一般比较少,可以自行添加,这里涉及库开发的问题,超出本文的讨论范围。
为了运行DivaLVS,还要把前面的逻辑电路图添加到刚刚创建的工作库中。
下一步,创建相对于上图中的逻辑电路图的版图。
在CIW窗口中,File->new->newcellview,打开创建新cellview的对话框。
按照下图中的设置设置对话框,LibraryName选择guan,Tool选择Virtuoso,cellname为inv.点击OK。
这时会弹出三个窗口,其中一个是le的窗口,一个是le的说明窗口,另一个是LSW窗口。
对于le和LSW窗口在后面的图片中会出现,在这里就省略了。
下面的一段斜体字是Le和LSW窗口的相关使用说明及相关工艺,可以跳过去不看。
Le及LSW窗口相关
版图视窗(virtuosole)打开后,掩模版图(le)窗口显现。
视窗由三部分组成:
Iconmenu,menubanner,statusbanner.
Iconmenu(图标菜单)缺省时位于版图图框的左边,列出了一些最常用的命令的图标,要查看图标所代表的指令,只需要将鼠标滑动到想要查看的图标上,图标下方即会显示出相应的指令。
menubanner(菜单栏),包含了编辑版图所需要的各项指令,并按相应的类别分组。
几个常用的指令及相应的快捷键列举如下:
ZoomIn-------放大(z)
Zoomoutby2-------缩小2倍(Z)
Save-------保存编辑(f2)
Delete-------删除编辑(Del)
Undo-------取消编辑(u)
Redo-------恢复编辑(U)
Move-------移动(m)
Stretch-------伸缩(s)
Rectangle-------编辑矩形图形(r)
Polygon-------编辑多边形图形(P)
Path-------编辑布线路径(p)
Copy-------复制编辑(c)
statusbanner(状态显示栏),位于menubanner的上方,显示的是坐标、当前编辑指令等状态信息。
在版图视窗外的左侧还有一个层选择窗口(LayerandSelectionWindowLSW)。
LSW视图的功能:
1)可选择所编辑图形所在的层;
2)可选择哪些层可供编辑;
3)可选择哪些层可以看到。
只要在刚才运行Icfb的目录中有正确的display.drf文件的拷贝,在LSW窗口就会显示我们设计中需要的所有图层。
为了简单起见,以下仅列出绘制我们这个版图所需的最少版图层次。
层次名称
说明
Nwell
N阱
Pdiff
P有源区
Ndiff
N有源区
CNT
引线孔,连接金属与多晶硅/有源区
Met1
第一层金属,用于水平布线,如电源和地
Via1
通孔,连接metal1和metal2
Met2
第二层金属,用于垂直布线,如信号源的I/O口
Text
标签
Poly2
多晶硅,做mos的栅
使用LSW窗口
在LSW窗口的图层栏点击一个图层,比如metal1,则metal1为当前图层,在le窗口就可以画出该层的图形来,编辑过程不会有影响。
如果想要只显示metal1层,那么请先选择metal1,然后在图层资源的上方选择NV,鼠标点击Le窗口,在键盘按下f键,则le视图窗口就隐藏其它的图层,这你可以只编辑该图层,而不受其它图层的影响。
接着如果想要多显示另外一层,比如contact,用鼠标在LSW窗口点击contact,然后鼠标点击le窗口,按下f键,看看是不是contact层也显示出来了。
利用同样的方法,可以显示更多的图层或者任意的一层或几层。
当编辑完之后,要回到全部显示时,在LSW窗口选择AV,切换到Le窗口,按下f键,显示全部图层。
在建立相应的版图的图形后,如果需要编辑新建的图形,这时可能会遇到这样的一个问题,由于设计的版图比较复杂,多个图形叠加到一起,结果在想选择metal1的一个图形时,不小心选上了P管,而这时如果执行的命令是移动或者拉伸,就有可能造成先前管子的布局和位置的改变,如果是删除则可能会把管子删除掉,这会给的设计带来很大的不便。
在这种情况下可以通过LSW窗口的来控制器具可选性,在LSW窗口中比较靠上方处有两个选项,默认都被选上,如果不想让器件为可选,则取消inst前面的选上标志,同样也可以取消Pin的可选性。
另外也可以控制那些图层可以被编辑,方法类似于如何控制图层的显示,其中的选项为NS和AS,通过设置可以选择任意的图层来编辑。
Le的相关选项设置
在le菜单栏中,选择option->display(快捷键e)打开displayoptions对话框,如下图。
在Displaylevels中把from0to0改为from0to21(或者其它的大于零的数),该选项设置显示的深度,如果不改,将无法看到调用的器件的内部结构。
在MinorSpacing填入0.1,MajorSpacing:
0.5,XSnapSpacing:
0.01,YSnapSpacing:
0.01。
这些设置有利于编辑时候的图形对准,当然有时候会设置得更小。
其它的保持默认。
还有一个需要更改设置的地方,选择option->layouteditor(快捷键shift+e),在Layouteditoroption对话框中取消其中的gravityon选项,点击OK。
请务必保证gravityon为off.
添加器件
现在添加反相器N管和P管,在工具栏中选择addinstance或者按快捷键(i),弹出添加器件对话框(CreateInstance),选择Browse,在BrowseLibrary对话框中,Library选择csm25rf,Cell为pmos_tk(厚栅),view为layout改变管子的栅长和宽为w=3u,l=600n,如下图。
然后在le窗口中点击鼠标左键,添加一个P管。
用同样的方法添加一个N管,完成后的版图如下所示。
图片的左边是LSW窗口,其结构:
左上方为编辑菜单和帮助按钮,然后是当前选择的图层,接着下面是器件与Pin的可选性控制选项,再下来是全部可见与不可见,全部可选与不可选按钮,再下来是图层资源框。
LSW窗口再过来就是le窗口的工具栏,其中列出大部分常用命令的按钮。
添加矩形
在N管和P管之间需要用多晶硅来连接两个管子的栅。
在LSW窗口中点击POLY2(在charter库中利用poly2作为管子的栅),切换到Le窗口,利用鼠标点击工具栏中的下方倒数第二个按钮或者按下r键,放大到两个管子之间的地方,就可以开始画矩形了,选择的第一个点是P管的多晶硅的左下角,第二个点是N管的多晶硅栅的右上角。
如下图所示,多晶硅矩形把两个管子的栅连接到一起。
利用同样的方法在输出端用金属1把两个管子连接起来,该软件的默认设置是重复命令,即在画完一个矩形后可以不执行任何其它命令继续画更多的矩形,按ESC键来可以取消当前命令。
但一旦执行下一个命令后,前一个命令自动取消。
添加多边形
在LSW窗口中选择MET1作为当前图层,在Create菜单选择Polygon或者按工具栏上下方倒数第四个按钮(shift+p)进入添加多边形状态,如果在先前userpreference对话框中选上了optiondisplayedwhencommandstart,则可以看到一个新建多边形的对话框,如下。
这里SnapMode为orthogonal表示多边形的各边只能为垂直或水平方向,当然还有其它的选项,比如Anyangle(任意方向)。
NetName处可以不输入。
现在首先添加电源连线,用鼠标多次点击形成多边形的多个顶点,就可以构成一个封闭的图像,如下图。
继续添加地线,得到如下所示的粗糙的版图,还需要编辑才能不致于有错误。
从图中可以看出,两个多边形和金属矩形连线都没有对准。
编辑版图
现在我们要通过拉伸来使得各个图形相互对准。
在菜单栏Edit->stretch(s)或者按下工具栏的相应按钮,进入到拉伸状态。
放大到要编辑的地方,选择要调整的边,不能把这个图形选上,拖动鼠标拉到合适的地方,如下图。
注意:
在这里执行拉伸命令的时候请保证当前没有选中的器件或者图形。
如果有选中的图形,则相当于执行移动命令。
一个小技巧:
利用鼠标右键可以放大到自己需要的地方,先用鼠标右键点中要放大的区域的右下角,按住往左上角方向拖动,会有一个方形的边框表示选择的区域,如果看到该边框已经包围了需要放大的区域,放开鼠标右键,看看是不是如你所愿地放大了。
如果鼠标往右下角拖动,则会起到缩小的作用。
调整后的版图如下所示.
现在还需要添加输入端,反相器的输入端应该为金属,所以要添加接触孔。
在菜单栏Create->contact(o),弹出添加接触孔的对话框,如下。
在ContactType选项选择M1_POLY2,点击Hide,在le视窗适当位置点击添加接触孔。
于是我们得到一个漂亮的版图如下。
接下来将对版图进行验证。
使用DIVA
DIVA和dracula都是CADENCE的,而且集成到了virtuoso平台,一般说,dracula更精确,但是diva更加容易使用,况且学会DIVA了再学其它的验证软件会更容易。
DIVADRC
现在我们将要对先前设计的版图进行设计规则的检查。
首先,我们还得先做一件事,检查我们的环境变量CDS_Netlisting_Mode,在shell提示符下输入:
env|grepCDS_Netlisting_Mode,确保该变量的值为Analog,如果不是可能需要找管理员,因为如果这个值设置不当会引起一些很奇怪的问题,那时是根本无法从问题上找出原因来的。
网上有很多通过把该变量改为Analog就解决问题的说法。
接下来就可以开始了。
在le窗口,选择verify-〉DRC打开DRC对话框如下
在这里需要在SwitchNames处填上验证方法,可以通过键盘输入,如果已经很熟悉了。
鼠标点击SetSwitches按钮,弹出如下图所示的SetSwitches对话框,在对话框中用鼠标点击,就可以选择相应的项,也可以通过在选择过程中按住CTRL键来选择多项,不过有些项是不能重复的,而具体每一项是干什么用的可以通过查询该技术库的说明文件,比如2P4M表示两层多晶硅四层金属,即金属4为顶层金属。
在该对话框点击OK后,所选择的项就在DRC对话框的SwitchNames后面出现。
在DRC对话框单击Ok,DRC对话框消失,开始进行DRC检查。
检查完成后,在CIW窗口有检查结果的相关信息输出,在进行设计的过程中可能要经常通过CIW窗口来获得相关信息。
与此同时,在版图上有错误的地方会被一些专用的图层标出来,但有时由于版图太复杂了,无法很快从版图上直接找到一些错误。
检查结束后的CIW窗口和le窗口如下。
通过CIW窗口我们可知,版图中存在违反金属1的最小面积规则,金属1最小面积为:
0.36us
,但是通过layout窗口是不太好定位的。
现在要找出出错的地方,在layout窗口选择verify->marker->find,得到FindMarker对话框,在对话框中,把ZoomtoMarker选上,其它的保持默认。
按下Apply后,layout窗口放大到相应的出错的地方,同时还有一个markertext窗口,其上面的信息解释当前的错误,如下。
取消掉FindMarker和解释窗口(FindMarker窗口按下Cancel键),缩小layout视图就可以确定出错的位置了,如下图,出错在多晶硅连接的接触孔处。
根据出错的提示信息,可以在接触孔出添加金属,使得金属1的面积不小于0.36,保存后再运行DRC,结果如下图。
CIW窗口给出信息找到0个错误,就是说以上版图已经没有违背物理设计规则的地方了,虽然这个版图并不完整,比如版图上还没有N井和衬底的偏置连接。
但我们还是用这个版图继续去完成下面的步骤,当然在下面的验证过程中我们会遇到一些错误。
版图的提取
现在我们可以将刚才那个版图进行提取,这一步是必须的,在LVS或者ERC时我们不再用刚才那个版图文件,即.layout文件,而使用.extracted文件。
Le窗口选择verify->extract,打开Extractor对话框。
如同在DRC对话框,这里也只要在SwitchNames中输入相关消息就可以了,其他的信息只要在建立库时指定正确的技术库,其中大部分内容都会被填充。
对于提取方法(ExtractMethod)的设置,默认为Flat,是全新提取,会覆盖先前的提取。
点击SetSwitches按钮后得到如下SetSwitch对话框,选择No_Soft_Checks(工艺说明文件上有相关选项的说明),点击Ok。
在Extractor对话框点击OK,开始版图的提取。
运行完成后,查看CIW窗口,如下,没有错误,我们可以进行下一步验证,如果有错误,找到并改正它。
现在我们就可以通过design->open打开OpenFile对话框,如下,在ViewName选项选择extracted。
点击Ok打开提取过的版图,如下图,可以看到一些跟逻辑电路图上相同的管子符号,除了偏置端悬空外,管子的其它各个端点都已和特定的节点连接上,各个节点的命名由系统自动生成,当然也可以通过添加Pin来自定义各个节点的名字。
运行LVS
在菜单栏选择verify->LVS,打开LVS对话框,
按照上图在CreateNetlist处进行填写,可以通过Browse按钮来填充。
在View处分别为schematic和extracted,请不要在View上填入layout,这里只能是Schematic和Extracted的比较.在对话框的左下角的priority处填上20,默认值为0,改为20会看到更多的信息。
其它的采用默认,点击Run按钮,开始LVS。
LVS是后台运行的,在运行LVS过程中可以干一些其它的事情,当LVS运行完成后,会弹出一个运行成功或失败的对话框,如下,显示运行成功。
现在可以查看运行结果了。
如果弹出的对话框显示失败,则没有输出文件生成。
从这里可以看出,虽然我们的版图上有错误,但LVS还是可以成功运行的,不过输出结果是肯定有Missmatch的。
LVS过程出现错误往往是由于软件设置不当造成的,可以通过LVS对话框的ErrorDisplay来查看信息,同样也可以通过CIW窗口,不过如果LVS运行出问题了,往往无法通过错误信息直接找到错误的原因,比如有时会看到像:
LVS目录非法的信息。
在LVS窗口中点击Info按钮,打开DisplayRunInformation对话框来查看信息,如下。
面板上有很多按钮,通过按钮上的标签就可以得到相应的运行信息,比如,点击LogFile查看运行日志,在Schematic处点击Netlist可以看到逻辑电路图的网表输出,而点击Extracted的Netlist按钮则可以看到版图提取生成的网表文件,LVS就是通过先生成两个视图的网表,然后再比较两个网表文件的。
点击Output来查看LVS的输出,如下图。
到此已经完成版图的LVS。
祝贺你,这个使用说明结束了。
以上是在大学的时候写的,全部属于原创.
如有疑问请联系:
guanzhzh@
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 使用 Virtuoso 设计 定制 版图
![提示](https://static.bdocx.com/images/bang_tan.gif)