求skill脚本,要换工艺,怎样批量替换symbol,但参数要保持不变
目前的工艺, MOSFET的参数名是 fingerWidth fingerLength等等
目标工艺是w和l,目前的困惑就是批量查找替换时, 参数丢失了
先赋值给新创建的inst,然后再删除原有的inst,目前inst应该不能直接用脚本替换吧!
阁下有没有批量替换symbol的脚本文件,能否上传个附件,给在下参考一下。
先在此谢过!
有换工艺的skill脚本 参考下吗
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)
)
)
参考一下这个吧:
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)
)
)
谢谢分享!
duoxie fengxiang
学习一下
谢谢 学习了
谢谢小编的分享