恒裕 发表于 2023-8-3 14:16:22

skill脚本,要换工艺,批量替换symbol,但参数要保持不变

可以参考这个:
   procedure(Rpposab2rphpoly(@optional (Lib_name "tsmc_dcf_schem") (Cell_name "bgivref_cis_rda2033"))let(
(Id_cell Id_inst Id_newinst)
Id_cell=dbOpenCellViewByType(Lib_name Cell_name "schematic" nil "a")
foreach(Id_inst Id_cell~>instances

if(Id_inst~>cellName=="rphpoly"   ;"rphpoly" "rpposab_ckt"

then

Id_newinst=dbOpenCellViewByType("schem_pcell" "rphpoly" "symbol")

Id_inst~>master=Id_newinst

dbClose(Id_newinst)

;println(Id_inst~>segments)

println(Id_inst~>w)

println(type(Id_inst~>w))

Id_inst~>w=Id_inst~>segW

Id_inst~>l=Id_inst~>segL

if(Id_inst~>connection==nil

then

Id_inst~>s=Id_inst~>segments

else

Id_inst~>s=1

)

if(Id_inst~>m==""


Id_inst~>m=1)

;println(Id_inst~>m)



cdfgData = cdfGetInstCDF( Id_inst )

paramType = cdfFindParamByName( cdfgData "w" )

when( paramType~>callback evalstring(paramType~>callback) )

paramType = cdfFindParamByName( cdfgData "l" )

when( paramType~>callback evalstring(paramType~>callback) )

paramType = cdfFindParamByName( cdfgData "s" )

when( paramType~>callback evalstring(paramType~>callback) )

paramType = cdfFindParamByName( cdfgData "m" )

when( paramType~>callback evalstring(paramType~>callback) )

else

)

)
dbCheck(Id_cell)
dbSave(Id_cell)
)
)

恒裕 发表于 2023-8-3 14:22:18

网友验证过的,大家可以看下



恒裕 发表于 2023-8-3 14:23:00

cdfgData = cdfGetInstCDF(instance)       ;;取CDF数据
(foreach pName list("fw" "l" "m")            ;;要触发callBack的参数列表
    param = cdfFindParamByName(cdfgData pName)
    (when param~>callback
          evalstring(param~>callback)       ;;挨个触发
    )      
)
页: [1]
查看完整版本: skill脚本,要换工艺,批量替换symbol,但参数要保持不变