【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

posted @ 2024-07-11 17:45  Vincent_Wood  阅读(22)  评论(0编辑  收藏  举报