热度 6| |
1.
css()=car(geGetSelSet())
2. 消除额外的边框
procedure(updata_bBox()
let((st)
cv=geGetEditCellView()
foreach(st cv~>steiners dbDeleteObject(st))
foreach(st cv~>guides dbDeleteObject(st))
foreach(st cv~>markers dbDeleteObject(st))
hiZoomAbsoluteScale(hiGetCurrentWindow() 0.9)
);let
);procedure
hiSetBindKey("layout" "<Key>KP_1" "updata_bBox()")3. 迭层-----
procedure(change_metal()
let(()
objs=geGetSelSet()
foreach(obj objs
case(car(obj~>lpp)
("NW" obj~>lpp=list("DNW" "drawing"))
("DNW" obj~>lpp=list("NW" "drawing"))
("NP" obj~>lpp=list("PP" "drawing"))
("PP" obj~>lpp=list("NP" "drawing"))
("M1" obj~>lpp=list("M2" "drawing"))
("M2" obj~>lpp=list("M3" "drawing"))
("M3" obj~>lpp=list("M4" "drawing"))
("M4" obj~>lpp=list("M5" "drawing"))
("M5" obj~>lpp=list("M1" "drawing"))
(t obj~>lpp=list("M1" "drawing"))
);case
pteSetActiveLpp(strcat(car(obj~>lpp) " " cadr(obj~>lpp)) getCurrentWindow())
);foreach
);let
);procedure
hiSetBindKey("Layout" "<Key>KP_1" "change_metal()")4. 叠层
procedure(fastcopy()
let((cv obi obis)
cv=geGetEditCellView()
objs=geGetSelSet()
foreach(obj objs
case(obj->layerName
("M1" CopyMetal="M2")
("M2" CopyMetal="M3")
("M3" CopyMetal="M4")
("M4" CopyMetal="M5")
("M5" CopyMetal="M6")
("M6" CopyMetal="M7")
("M7" CopyMetal="M8")
("M8" CopyMetal="M9")
(t CopyMetal="M1")
);case
case(obj~>objType
("polygon" newMetal=dbCreatePolygon(cv CopyMetal obj->points))
("path" newMetal=dbCreatePath(cv CopyMetal obj->points obj->width))
("rect" newMetal=dbCreateRect(cv CopyMetal obj->bBox))
("pathSeg" newMetal=dbCreatePathSeg(cv~>cellView CopyMetal car(obj->beginPt):cadr(obj~>beginPt) car(obj~>endPt):cadr(obj~>endPt) obj~>width "truncate" "truncate"))
);case
pteSetActiveLpp(strcat(car(newMetal~>lpp) " " cadr(newMetal~>lpp)) getCurrentWindow())
geDeselectFig(obj)
geSelectObject(newMetal)
); foreach
);let
);procedure
hiSetBindKey("Layout" "<Key>KP_1" "fastcopy()")5. 改字号
hiSetFont("ciw" ?size 14)
hiSetFont("label" ?size 14)
hiSetFont("text" ?size 14)6. 快捷键启用Alt键
ui enableMenuShortcuts boolean nil--写在.cdsenv内
7. 将leHiEditProp() function cancel
geiPlInvokePlistAction("editorNum0" “cancel”)8. list 去重 function
ciUtilsMakeUnique(list(1 2 3 4 2 3 1 2 4 5)) =>list(1 2 3 4 5)
9. DRC报错 解决同NET,相邻层次没扎 via
M1_M2_NOT_VIA1{
@check M1 M2 VIA1
A = (M1 AND M2 CONNECTED) NOT INTERACT VIA1
AREA A>0.1
} ---------------- M1 M2 重叠面积大于 0.1 则会报错。10. DRC 报错 扎 VIA 不充分
VARIABLE VIA1_RATIO 0.3
VIA1_NOT_FULL{
M1_M2 = M1 AND M2 CONNECTED
DFM PROPERTY M1_M2 VIA1 [-=AREA(VIA1)/AREA(M1_M2)]<VIA1_RATIO
} ------------------重叠地方VIA1 面积比 M1 M2 重叠面积比 小于0.3 报错11DRC 报错 单contact 报错
PO_Single{
@please check CO is single CO
CT =CO INSIDE (M1 AND PO)
CT_NOT_Res= CT NOT RPO
M1_Region=(M1 AND PO) INTERACT CT_NOT_Res<2
M1_Region AND CO
} ---------------------------报错只打一个 cont 的 M1 与 PO 重叠的区域12. OFFGRID error
OFFGRID M1 5.0 HINT------------------------格点5nm(0.005)
13. 导出lib 中所有的cell -----在导出时,只填写library,cellname viewname 不填就好,这样导出的gds 就包含全部layout
14. 切换EIP surround
procedure(EIP_modify() prog(() if(hiGetCurrentWindow()~>drawSurroundingOn then hiGetCurrentWindow()~>drawSurroundingOn = nil else hiGetCurrentWindow()~>drawSurroundingOn = t );if );prog );procedure
15. Check enc via
Check_enc_via1{
@check doubl via enc
VIA_I=VIA1 inside M1
M1_region= VIA_I interact M1 >=2
rectangle enc VIA_I M1_region abut >0 <90 singular outside also
good 0.01 0.04 0.01 0.04
good 0.02 0.03 0.02 0.03
good 0.025 0.025 0.025 0.025
}
/1