在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 9170|回复: 21

[求助] 使用skill转换工艺

[复制链接]
发表于 2020-5-28 16:49:59 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
这是在EETOP上抄写脚本,那个帖子好多年前的了,询问问题也得不到回应,所以重开一贴询问,希望大牛帮忙解答。脚本如下
我用这个脚本是为了将一个library下的所有schematic从SMIC工艺下转换为Huali,比如n09_ckt转换为nrvt_ckt,但是W和L值不改变。我使用下面脚本之后,遇到如图情况。希望有大牛帮忙解答,或者有skill学习资料帮忙分享一下,适合初学者的最好。万分感谢。

procedure(replace_dev(myWorkLib source_lib source_dev target_lib target_dev)
let((cell_list sch_cv targetId w l)
cell_list=ddGetObj(myWorkLib)~>cells~>name
foreach(cell cell_list
   sch_cv = dbOpenCellViewByType(myWorkLlib cell "schematic" "schematic" "a")
   if(sch_cv then
      foreach(inst sch_cv~>instances
        if(inst~>cellName == source_dev && inst~>libName == source_lib 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“
            dbClose(targetId)
          );if
        );if
        );foreach
     dbSave(sch_cv)
     dbClose(sch_cv)
   );if
);foreach
);let
);procedure

45bbbad79066cbe2256701742fe2cd8.jpg (71.27 KB, 下载次数: 0)

这是脚本运行完的样子,w l 值在这里是对的
164422xm2rqv7hzmhy6jyv.jpg
7af44157ac65f3000e9da5c7ba41b7b.jpg (144.65 KB, 下载次数: 0)

这是q一下看到的,W L变成了默认值,而不是之前的值
164517yxmsa4x0ccmhtmaa.jpg


发表于 2020-5-29 18:29:15 | 显示全部楼层


wanchengchen 发表于 2020-5-29 13:54
感谢你的回复,我也看到了callback,但是不大理解,你能就上个脚本改变一下吗?有人说用这个脚本解决了。
...


cdfgData = cdfGetInstCDF(instance)       ;;取CDF数据
(foreach pName list("fw" "l" "m")            ;;要触发callBack的参数列表
    param = cdfFindParamByName(cdfgData pName)
    (when param~>callback
          evalstring(param~>callback)       ;;挨个触发
    )       
)

大概是这样子

发表于 2020-5-28 18:38:50 | 显示全部楼层
看看先
发表于 2020-5-28 19:44:39 | 显示全部楼层
可以先把要传递的参数保存下来,把旧的删除,再在原来的位置上放置一个新的instance,把参数写入,触发callback。
这样做前提是两个库的symbol完全一样
 楼主| 发表于 2020-5-29 13:54:26 | 显示全部楼层


trumen 发表于 2020-5-28 19:44
可以先把要传递的参数保存下来,把旧的删除,再在原来的位置上放置一个新的instance,把参数写入,触发call ...


感谢你的回复,我也看到了callback,但是不大理解,你能就上个脚本改变一下吗?有人说用这个脚本解决了。
 楼主| 发表于 2020-6-1 09:01:06 | 显示全部楼层
本帖最后由 wanchengchen 于 2020-6-1 11:14 编辑


trumen 发表于 2020-5-29 18:29
cdfgData = cdfGetInstCDF(instance)       ;;取CDF数据
(foreach pName list("fw" "l" "m")             ...

感谢你的回复,通过你的脚本解决了问题,万分感谢,将你的解答置顶了,希望不要介意。
 楼主| 发表于 2020-6-1 09:23:38 | 显示全部楼层


trumen 发表于 2020-5-29 18:29
cdfgData = cdfGetInstCDF(instance)       ;;取CDF数据
(foreach pName list("fw" "l" "m")             ...


谢谢你的回复  我把你写的插入在了我的need trigger callback for "?"  哪里了   数据插入回去了 万分感谢你的解答

发表于 2020-8-7 08:37:04 | 显示全部楼层
我也再找同样的方案,但是不会skill编程。 请问楼主能否分享完成后的脚本?
发表于 2020-9-7 17:41:05 | 显示全部楼层
请问一下怎么调用这个函数啊
发表于 2020-9-22 20:07:09 | 显示全部楼层
你好 函数怎么使用 求指导
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-12-18 19:11 , Processed in 0.023460 second(s), 9 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表