【Skill】更改Stdvia
首先,要有一个drc_err.list
drc_bBox = list(0:0 1:1)
Procedure(Fix_Via()
inPort = infile("./drc_err.list")
via_name = "M2_M1"
cut_old = 0.035
cut_new = 0.021
when(inPort
while(gets(input_str inPort)
loadstring(input_str)
cv = geGetEditCellView()
tf = techGetTechFile(cv)
viadf = techFindViaDefByName(tf via_name)
via_cut = list("cutWidth" cut_new)
via_list = leSearchHierarchy(cv drc_bBox 0 "via" ())
if(via_list != nil
then
foreach(via via_list
if((via~>viaHeader~>viaDefName == via_name) && (cadr(via~>viaHeader~>overrideParams) == cut_old)
then
viaparam = via~>viaHeader~>overrideParams
via_pt = via~>origin
via_r = via~>orient
viaparam_new = cons(via_cut cdr(viaparam))
dbDeleteBhiect(via)
dbCreateVia(cv viadf via_pt via_r viaparam_new)
);end if
);end foreach
);end if
);end while
close(inPort)
);end when
);end pro