关于Cadence virtuoso的一些实用技巧.docx
- 文档编号:30491964
- 上传时间:2023-08-15
- 格式:DOCX
- 页数:24
- 大小:28.14KB
关于Cadence virtuoso的一些实用技巧.docx
《关于Cadence virtuoso的一些实用技巧.docx》由会员分享,可在线阅读,更多相关《关于Cadence virtuoso的一些实用技巧.docx(24页珍藏版)》请在冰豆网上搜索。
关于Cadencevirtuoso的一些实用技巧
1.关于版图一些实用的快捷键之答禄夫天创作
创作时间:
贰零贰壹年柒月贰叁拾日
F3:
显示Optionform
F4:
Full/Partial选择切换
N:
改变snapmodel,n---diagonal,Shift+n---orthogonal,Ctrl+n---L90Xfirst
Ctrl+y:
当多个图形叠在一起时(点击左键默认是两个图形间切换),可以轮流选择重叠的图形
BackSpace:
当命令尚未完成时,可以撤消上一次(多次点击可撤消多次)鼠标的点击。
如:
画path时可撤消前面鼠标错误的点击,选择很多图形stretch,点了referencepoint发现有多选,可撤消点击,去掉多选图形后再stretch。
Rightmouse:
a.没有命令时重复上次命令;
b.move和Createinstance时逆时针旋转,Shift+Rightmouse轮流关于x/y轴对称;
c.画path时,L90Xfirst和L90Yfirst之间切换,Ctrl+RightmousePath自动换层(Pathstitching)切换,Shift+Rightmouse换层时通孔旋转;
d.Reshape和split时,切换分歧的高亮区域,以便下一步的操纵。
2.使用referencewindow
一个cellview可以打开两个窗口,一个作为主窗口编辑,另外一个可以放小一点作为参考窗口(即referencewindow),有点像worldview,分歧的是主窗口的编辑不但在参考窗口中可以看到,而且两个窗口中编辑是等效的(当然你的显示器越大,用参考窗口越好,^_^)。
可以用Window–Utilities–CopyWindow打开一个参考窗口,也可以直接把一个cellview打开两次,如图
可以同时在两个窗口中编辑
3.关于Pathstitching
①画path时可以从一层切换到另一层,而且自动打上对应的接触孔,这个功能叫pathstitching.
②在ChangeToLayer栏里选择你要换的layer,也可以通过Control+rightmouse键来选择需要换的层。
如果ChangeToLayer栏里没有层可选,那是因为在technologyfile中没有关于这层的contact(或者cdsVia的定义)定义,只有定义了之后才干使用pathstitching功能。
下面是一个contacts定义的例子:
;********************************
;DEVICES
;********************************
devices(
tcCreateCDSDeviceClass()
symContactDevice(
;(nameviaLayerviaPurposelayer1purpose1layer2purpose2
;wl(rowcolumnxPitchyPitchxBiasyBias)encByLayer1encByLayer2legalRegion)
(ACT_M1CONdrawingACTdrawingM1drawing
0.300.30(110.600.60centercenter)0.140.15_NA_)
(GP_M1CONdrawingGPdrawingM1drawing
0.300.30(110.600.60centercenter)0.140.15_NA_)
(M1_M2V1drawingM1drawingM2drawing
0.360.36(110.710.71centercenter)0.120.12_NA_)
(M2_M3V2drawingM2drawingM3drawing
0.360.36(110.710.71centercenter)0.120.12_NA_)
);endofsymContactDevice
;;*****oryoucandefinecdsViaDevice************
;cdsViaDevice(
;;(deviceNamecutLayercutPurposelayer1purpose1layer2purpose2
;;rowcolumnoriginstackedViascutLayerWcutLayerLxCutSpacingyCutSpacing
;;layer1XEnclayer1YEnclayer2XEnclayer2YEnclayer1Dirlayer2Dir)
;(CDSVIA1V1drawingM1drawingM2drawing
;11centerCenter_NA_0.360.360.350.350.120.120.120.12"""")
;
;(CDSVIA2V2drawingM2drawingM3drawing
;11centerCenter_NA_0.360.360.350.350.120.120.120.12"""")
;
;(CDSVIA3V3drawingM3drawingM4drawing
;11centerCenter_NA_0.360.360.350.350.120.120.120.12"""")
;
;);endofcdsViaDevice
);devices
③根据pathwidth的分歧,工具会自动打上一个孔,或者是一组孔
如果想改变孔的对齐方式,可以通过改变ContactJustification来调整
如果定义了多个Contacts,PathStitching时,
a.设置环境变量useDefaultVia为nil,
envSetVal("layout""useDefaultVia"'booleannil),
b.然后换层时,如果定义了多种contact,会弹出一个选择框,可以选择你需要的孔
通孔只出现一个边框时,可以点击Rotate或者Shiftandclickright来旋转通孔。
4.PlacingPinArrays(buspins)
你也许认为label就可以代替pin了,还用的着打pin吗?
其实否则,virtuoso工具一些连接关系都是通过pin来体现的,通过pin体现连接关系,在连线时(尤其时连线比较远,比较复杂时)可以通过打开Options->display->DisplayControls->Nets,来显示复杂Net的连接。
当然更实用的是在Layout-XL工具中可以对版图和电路进行实时对比(需要techfile的支持)。
当需要打buspins的时候,可以一次打一组pins,buspins的命名必须是Busname EndNum>,这时可以通过修改Xpitch和Ypitch来改变Buspin的间隔,注意打的pin是顺序上升或者下降的。 两层之间的互连,可以手动打孔,也可以用CreateContact自动打孔,但是必须在两条path交错的地方,而且两层之间有孔的定义(见Pathstitching中contact的定义),不克不及跨层打孔(如M1-M3之间),不克不及在斜线上自动打孔,两条path不受cell的条理的限制,只要是可见的。 如图,选中AutoContact,通孔中心会自动移到两条path的中心线交点处,但要注意交点是否在格点上 6.关于Tap的使用 Tap是用来快速捕获任意一个图形的相关属性,捕获到的信息会自动赋给将要生成的Object上包含Layer信息,Net的名字,其它属性(如path的width,endtype等等) a.用Tap来快速选择entryLayer 选择Edit–Tap[t],默认的是选择的Layer是鸿沟最接近鼠标指针(或者鸿沟与指针重合)的图形的Layer,如果两层完全重合,则有一层可能一直也选不中。 因此可以设置环境变量layerTapCycle为tornil,可以改变捕获的方法 在CIW敲入命令(只对这个icfb窗口适用): envSetVal("layout""layerTapCycle"'booleant) 或者在根目录下的.cdsenv文件中加入一行,每次启动icfb就会调用这个环境变量 layoutlayerTapCyclebooleant 设成nil时(默认值)选择的Layer是鸿沟最接近鼠标指针(或者鸿沟与指针重合)的图形的Layer 设成t时,在重复的图形上连续点击,可以依次轮流的选择分歧的Layer,直到选到你想要的为止。 b.用Tap捕获图形信息,并传给将要生成的图形上 将TapTypes设为All(net名纷歧样的话去掉Net,不过我们很少设置netname),点击图形后会捕获到它的Layer信息,Net的名字,其它属性等,如下图的示例,分歧的layer,width,endtype,Tap后再画path,path里的设置都和你tap的图形一样了 7.ReshapeObjects Reshape顾名思义就是改变图形的形状,但要注意几点: 1.ReshapeType设为rectangle时,rectangle的一角必须与原来的图形交错 2.ReshapeType设为line时,第一点和最后一点必须在原来图形的边线上,另外Reshapepath只能选择line,第一点必须在原来path的中线上 3.Reshape的图形在完成之前会高亮显示,点击右键会切换分歧的高亮区域,确认是否是最终的图形形状 8.关于部分选择及相关的操纵 在stretch时可以选择一部分操纵,但通常其他情况下只能选择全部,因为默认是fullselectmode,stretch是自动切换到partialselectmode时,其实按F4键就可以切换这两种模式,这种模式下可以stretch,delete等 我们经常会有一些图形需要对齐,例如一组横向摆放的pad,要求对齐且间隔相等,手动对齐比较麻烦,在Edit->Other->Align有对齐的命令,可以用来对齐两个或多个图形。 对齐图形有preselect和postselect两种方式。 a.Postselect方式 把SelectionMod设置为Setreferenceandselectobjectstobealigned. 点击SetNewReference,先选择一个图形的鸿沟作为参考边,然后选择其他图形与这个参考边对齐。 b.Preselect方式 设置SelectionMod为Setreferencetoalignpreselectedobjects. 先选择未对齐的图形,然后点击SetNewReferenceand在layout窗口选择一个对齐点,所有选择的图形就会对齐。 当然对齐还有其他的一些设置,但要注意这里的对齐操纵是对一个整体而言(如一个instance,polygon等),如果几个图形需要组合在一起,介入与其他单元的对齐,先将这几个图形makecell或者用attatch(而且被attatch的图形不克不及被选中),否则这几个图形将被拆开。 10.Yanking&Pasting图形(即复制-粘贴) 我们经经常使用copy命令来复制图形,但复制的都是一个整体(如一个instance,一条path等),Yank命令可以复制(相当于切割)一部分图形到一个临时的buffer,而Paste命令把buffer中的图形复制到layout窗口中。 Yank&Paste与Copy的区别在于Yank的图形是chopobject而来,Copy的图形是Fullselectobject而来,Yank/Paste可以看作是“少量信息切割”的copy。 需要注意的是Yank图形条理是可以控制的,部分选择的图形将被chop,Paste的图形是打平的(注意paste的图形的layer,如果有不需要的layer,设为invisible可以不复制这些层);全部选择的图形依然保管条理化的结构。 如图是Yank/Paste下个条理的图形的例子: MultipartPaths Multipartpath是指一条path包含有多部分(≥2)与其相关的图形,CreateMultipartPath命令是用来生成一条path并包含有其他相关的图形(relativeobjectdesign---ROD)信息,你可以用它来画一条简单的path,也可以一条有几部分组成的复杂multipartpath,例如: guardring,transistor,bus,或者shieldedpath。 Multipartpath同样可以进行stretch,chop,reshape等操纵,而且对应的ROD图形会根据masterpath的变更自动重新画。 MultipartPaths的流程,如下图 b.定义MasterPath 对于masterpath的Choppable选项: 使masterpath和所有的subparts都choppable,打开Choppable选项; 使masterpath不克不及choppable(但是subparts既可以choppable也可以不choppable),关闭Choppable. c.添加Subpart,可以添加path,rectangle等 d.Subpath和MasterPath的位置关系见下表 Table10-2PositionofOffsetSubpathinRelationtoMasterPath Separation CenterJustification LeftJustification RightJustification Zero Subpathcenterline onmasterpath centerline Leftedgeofmaster pathcoincidentwith rightedgeof subpath Rightedgeof masterpath coincidentwithleft edgeofsubpath Positivenumber Subpathcenterline onleftsideof masterpath centerline Leftedgeofmaster pathonrightsideof rightedgeof subpath Rightedgeof masterpathonleft sideofleftedgeof subpath Negativenumber Subpathcenterline onrightsideof masterpath centerline Leftedgeofmaster pathonleftsideof rightedgeof subpath Rightedgeof masterpathonright sideofleftedgeof subpath Table10-3PositionofSubrectanglesinRelationtoMasterPath Separation CenterJustification LeftJustification RightJustification Zero Centerofwidthof subrectangleson masterpath centerline Leftedgeofmaster pathcoincidentwith rightedgeof subrectangles Rightedgeofmaster pathcoincidentwith leftedgeof subrectangles Positivenumber Centerofwidthof subrectangleson leftsideofmaster pathcenterline Leftedgeofmaster pathonrightsideof rightedgeof subrectangles Rightedgeofmaster pathonleftsideofleft edgeofsubrectangles Negativenumber Centerofwidthof subrectangleson rightsideofmaster pathcenterline Leftedgeofmaster pathonleftsideof rightedgeof subrectangles Rightedgeofmaster pathonrightsideof leftedgeof subrectangles e.实例: 用Multipartpath画GuardRing 其中masterpath选择有源区Active层,而metal1和注入层(如PPlus)作为enclosuresubpath,而接触孔CT设为subrectangles,metal1和CT孔设为choppable,具体方法这里不在详述,结果如下图,后面附有用Multipartpath生成Bus和Tap的skill程序。 12.SearchandWordStr的应用 查找和替换是个很有用的功能,可以快速查找一个图形对象,以及其属性,而且可以批量替换。 如图,你可以添加多个搜索条件, 在用==和! =时,可以用通配符: *可以替代任意数的任意字符 .可以替代当前位置的任一字符 []可以替代一个范围的字符 13.提高软件速度的一些环境变量的优化 EnvironmentVariable Old New Effect dotsOn t nil Dotsarenotdisplayed. displayStretchHandles t nil Stretchhandlesarenotdisplayed. filterSize 3 6 Objectswithonesideoflessthan6pixelsarenotdisplayed.Instancesnotatthestoplevelwithtwosidesoflessthan6pixelsaredisplayedaccordingtothefilterSizeDrawingStylesetting. filterSizeDrawingStyle outlined empty Nowusedonlyforinstanceswhicharenotatthedisplaystoplevel.Whensettoempty,instancesarenotdisplayed. gravityOn t nil Gravityisturnedoff. openToStopLevel nil t Alldataisloadedpriortorendering. originMarkersOn t nil Instanceoriginmarkersarenotdisplayed. useTrueBBox t nil Displaysonlytheinstancemasterboundingbox. 的skill程序是用来快速定义Multipartpath的template,方便一些参数的修改,下面是用Multipartpath生成Bus的skill程序 procedure(DefineBusMPPTemplate(BusNumberBusWidthBusSpace) let((CVBusLayerTechSubListNSubPathList) CV=geGetEditRep() Tech=techGetTechFile(CV) if(Tech==nilthen error("Can'treadthetechfile! ") ) BusLayer=leGetEntryLayer() while(BusNumber>1 --BusNumber SubListN=list( ? layerBusLayer ? widthBusWidth ? choppablet ? sepBusNumber*(BusWidth+BusSpace) ? justification"center" ) SubPathList=cons(SubListNSubPathList) );while ;Thetemplatenameis: BusMPP leDefineMPPTemplate( ? techIdTech ? name"BusMPP" ? layerBusLayer ? widthBusWidth ? choppablet ? endType"flush" ? justification"center" ? offsetSubPathSubPathList ); );let );procedure /**********Topproceduretocreateform*******************************/ procedure(CreateBus() let((BusWidthBusSpaceBusNumberBusNumberFieldBusWidthFieldBusSpaceField MyLabelField) ;;;createintfieldforBusNumbervalue. BusNumberField=hiCreateIntField( ? name'BusNumberField ? prompt"BusNumber: " ? range'(11000) ;? value3 ? defValue5 ;? callback"println(hiGetCurrentForm()->B
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 关于Cadence virtuoso的一些实用技巧 关于 Cadence virtuoso 一些 实用技巧
![提示](https://static.bdocx.com/images/bang_tan.gif)