|  | 
 
 发表于 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参数值不变。
 | 
 |