You can use below SKILL code to get list of stacked vias and coordinates ;get all stacked vias in design axlCmdRegister("get stackedvia" `getStackedVias) (procedure getStackedVias() (let (viaListAtLoc curViaNameList allVias curLoc viaList) ;get all Vias in design viaLocMap=makeTable("ViaMapLocTable" nil) axlSetFindFilter(?enabled list( "noall" "vias") ?onButtons list( "noall" "vias")) axlAddSelectAll() allVias = axlGetSelSet() ;Make a table for Via with location as key (foreach curVia allVias ;printf("curVia is %s loc %L\n" curVia->name curVia->xy) curLoc=curVia->xy viaListAtLoc=viaLocMap[curLoc] (if viaLocMap[curLoc] then viaListAtLoc=cons(curVia viaListAtLoc ) viaLocMap[curLoc]=viaListAtLoc else viaLocMap[curLoc]=list(curVia) ) ) ;print List of Vias printf("Stacked vias \n") (foreach key viaLocMap viaList=viaLocMap[key] curViaNameList=list() (if length(viaList) > 1 then (foreach curVia viaList curViaNameList = cons( curVia->name curViaNameList) ;printf("\tvia %s \n" curVia->name ) ) printf("%L : %L\n" key curViaNameList) ) ); (axlShell "done") );let );procedure
↧