|
发表于 2016-6-16 15:06:10
|
显示全部楼层
procedure(replace_dev(source_lib source_dev target_lib target_dev)
let((cell_list sch_cv targetId w l)
cell_list=ddGetObj(source_lib)~>cells~>name
foreach(cell cell_list
if(cell != source_dev then
sch_cv= dbOpenCellViewByType(source_lib cell "schematic" "schematic" "a")
foreach(inst sch_cv~>instances
if(inst~>cellName == source_dev then
targetId=dbOpenCellViewByType(target_lib target_dev "symbol" "" "r")
if(targetId then
w=inst~>w
l=inst~>l
inst~>master=targetId
inst~>w=w
;;need trigger callback for "w"
inst~>l=l
;;need trigger callback for "l“
);if
);if
);foreach
dbSave(sch_cv)
);if
);foreach
)
)
大概在你的skill基础上改了下, 你验证下看看, 我这里就是先取得旧的参数值, 替换master后再赋给inst, 最好修改param值后需要trigger callback(这里我没有做), 如果旧的PDK参数值不超过新的PDK参数值范围,就可以维持旧的PDK参数值不变。 |
|