关于Cadence virtuoso的一些实用技巧.docx

上传人:b****8 文档编号:30491964 上传时间:2023-08-15 格式:DOCX 页数:24 大小:28.14KB
下载 相关 举报
关于Cadence virtuoso的一些实用技巧.docx_第1页
第1页 / 共24页
关于Cadence virtuoso的一些实用技巧.docx_第2页
第2页 / 共24页
关于Cadence virtuoso的一些实用技巧.docx_第3页
第3页 / 共24页
关于Cadence virtuoso的一些实用技巧.docx_第4页
第4页 / 共24页
关于Cadence virtuoso的一些实用技巧.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

关于Cadence virtuoso的一些实用技巧.docx

《关于Cadence virtuoso的一些实用技巧.docx》由会员分享,可在线阅读,更多相关《关于Cadence virtuoso的一些实用技巧.docx(24页珍藏版)》请在冰豆网上搜索。

关于Cadence virtuoso的一些实用技巧.docx

关于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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 理化生

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1