热度 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 }