关于Cadencevirtuoso的⼀些实⽤技巧
1. 关于版图⼀些实⽤的快捷键
F3:显⽰Option form
F4:Full/Partial 选择切换
父亲节是几月几号N:改变snap model,n---diagonal, Shift+n---orthogonal, Ctrl+n---L90Xfirst
Ctrl+y:当多个图形叠在⼀起时(点击左键默认是两个图形间切换),可以轮流选择重叠的图形
数学特殊符号
BackSpace:当命令尚未完成时,可以撤销上⼀次(多次点击可撤销多次)⿏标的点击。如:画path时可撤销前⾯⿏标错误的点击,选择很多图形stretch,点了reference point发现有多选,可撤销点击,去掉多选图形后再stretch。
Right mou:
a. 没有命令时重复上次命令;
b. move和Create instance时逆时针旋转,Shift+Right mou轮流关于x/y轴对称;
c. 画path时,L90Xfirst和L90Yfirst之间切换,Ctrl+Right mou Path⾃动换层(Path stitching)切换,Shift+Right mou换层时通孔旋转;
d. Reshape和split时,切换不同的⾼亮区域,以便下⼀步的操作。红酒的好处与功效
2.使⽤reference window
⼀个cellview可以打开两个窗⼝,⼀个作为主窗⼝编辑,另外⼀个可以放⼩⼀点作为参考窗⼝(即reference window),有点像world view,不同的是主窗⼝的编辑不仅在参考窗⼝中可以看到,⽽且两个窗⼝中编辑是等效的(当然你的显⽰器越⼤,⽤参考窗⼝越好,^_^)。
用车小知识
可以⽤Window – Utilities – Copy Window打开⼀个参考窗⼝,也可以直接把⼀个cellview打开两次,如图
可以同时在两个窗⼝中编辑
3.关于Path stitching
①画path时可以从⼀层切换到另⼀层,并且⾃动打上对应的接触孔,这个功能叫path stitching.
②在Change To Layer 栏⾥选择你要换的layer,也可以通过Control+right mou 键来选择需要换的层。
如果Change To Layer栏⾥没有层可选,那是因为在technology file 中没有关于这层的contact(或者cdsVia的定义)定义,只有定义了之后才能使⽤path stitching功能。
下⾯是⼀个contacts定义的例⼦:
;********************************
; DEVICES
;********************************
devices(
tcCreateCDSDeviceClass()
symContactDevice(
; (name viaLayer viaPurpo layer1 purpo1 layer2 purpo2
; w l (row column xPitch yPitch xBias yBias) encByLayer1 encByLayer2 legalRegion)
(ACT_M1 CON drawing ACT drawing M1 drawing
0.30 0.30 (1 1 0.60 0.60 center center) 0.14 0.15 _NA_)
(GP_M1 CON drawing GP drawing M1 drawing
0.30 0.30 (1 1 0.60 0.60 center center) 0.14 0.15 _NA_)
(M1_M2 V1 drawing M1 drawing M2 drawing
0.36 0.36 (1 1 0.71 0.71 center center) 0.12 0.12 _NA_)
(M2_M3 V2 drawing M2 drawing M3 drawing大年初一拜年
0.36 0.36 (1 1 0.71 0.71 center center) 0.12 0.12 _NA_)
); end of symContactDevice
;;***** or you can define cdsViaDevice ************
;
cdsViaDevice(
;;( deviceName cutLayer cutPurpo layer1 purpo1 layer2 purpo2
;; row column origin stackedVias cutLayerW cutLayerL xCutSpacing yCutSpacing ;; layer1XEnc layer1YEnc layer2XEnc layer2YEnc layer1Dir layer2Dir )
; ( CDSVIA1 V1 drawing M1 drawing M2 drawing
; 1 1 centerCenter _NA_ 0.36 0.36 0.35 0.35 0.12 0.12 0.12 0.12 "" "" )
;
; ( CDSVIA2 V2 drawing M2 drawing M3 drawing
; 1 1 centerCenter _NA_ 0.36 0.36 0.35 0.35 0.12 0.12 0.12 0.12 "" "" )
;
; ( CDSVIA3 V3 drawing M3 drawing M4 drawing
; 1 1 centerCenter _NA_ 0.36 0.36 0.35 0.35 0.12 0.12 0.12 0.12 "" "" )
;
; ) ; end of cdsViaDevice
) ;devices
③根据path width的不同,⼯具会⾃动打上⼀个孔,或者是⼀组孔
④如果想改变孔的对齐⽅式,可以通过改变Contact Justification来调整
⑥如果定义了多个Contacts,Path Stitching时,
a. 设置环境变量uDefaultVia为nil,
envSetVal("layout" "uDefaultVia" 'boolean nil),
b. 然后换层时,如果定义了多种contact,会弹出⼀个选择框,可以选择你需要的孔
⑦通孔只出现⼀个边框时,可以点击Rotate或者Shift and click right来旋转通孔。
河南有啥好玩的
4.Placing Pin Arrays(bus pins)
渣男的意思你也许认为label就可以代替pin了,还⽤的着打pin吗?其实不然,virtuoso⼯具⼀些连接关系都是通过pin来体现的,通过pin体现连接关系,在连线时(尤其时连线⽐较远,⽐较复杂时)可以通过打开Options->display->Display Controls->Nets,来显⽰复杂Net 的连接。当然更实⽤的是在Layout-XL⼯具中可以对版图和电路进⾏实时对⽐(需要tech file的⽀持)。
当需要打bus pins的时候,可以⼀次打⼀组pins,bus pins的命名必须是Busname ,这时可以通过修改Xpitch和Ypitch来改变Bus pin的间隔,注意打
的pin是顺序上升或者下降的。
5.在已存在的两个path交错的地⽅⾃动打孔
两层之间的互连,可以⼿动打孔,也可以⽤Create Contact ⾃动打孔,但是必须在两条path交错的地⽅,⽽且两层之间有孔的定义(见Path stitching中contact的定义),不能跨层打孔(如M1-M3之间),不能在斜线上⾃动打孔,两条path不受cell的层次的限制,只要是可见的。如图,选中Auto Contact, 通孔中⼼会⾃动移到两条path的中⼼线交点处,但要注意交点是否在格点上
两男日一女
6. 关于Tap的使⽤
Tap是⽤来快速捕捉任意⼀个图形的相关属性,捕捉到的信息会⾃动赋给将要⽣成的Object上包括Layer信息,Net的名字,其它属性(如path的width,endtype等等)
a. ⽤Tap来快速选择entry Layer
选择Edit – Tap [t],默认的是选择的Layer是边界最接近⿏标指针(或者边界与指针重合)的图形的Layer,如果两层完全重合,则有⼀层可能⼀直也选不中。
因此可以设置环境变量layerTapCycle为t or nil, 可以改变捕捉的⽅法
在CIW敲⼊命令(只对这个icfb窗⼝适⽤):
envSetVal("layout" "layerTapCycle" 'boolean t )
或者在根⽬录下的.cdnv⽂件中加⼊⼀⾏,每次启动icfb就会调⽤这个环境变量layout layerTapCycle boolean t
设成nil时(默认值)选择的Layer是边界最接近⿏标指针(或者边界与指针重合)的图形的Layer