微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微波和射频技术 > RFIC设计学习交流 > 求skill脚本,要换工艺,怎样批量替换symbol,但参数要保持不变

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

时间:10-02 整理:3721RD 点击:
求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

学习一下

谢谢 学习了



谢谢小编的分享

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top