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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2920|回复: 7

[求助] skill无法获取用reference方式建立的lib的tf

[复制链接]
发表于 2019-12-3 07:47:14 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 chinarml 于 2019-12-3 07:49 编辑

如题,写脚本很多时候需要从当前lib里面获取tf里的信息,比如via的定义,routingleyer的list:
tech=techGetTechFile()
layer=ciGetRoutingLayers()
等等这些指令,很多时候这些指令不能用,将无法实现希望写出的功能。
经过测试,这些指令只能使用在当前lib的tf是attach pdk lib时才可用。
用reference建立的lib内,这些指令都会失效。
求助各位大佬,有什么解决办法吗?
发表于 2019-12-3 13:11:03 | 显示全部楼层
当前设计库本身确实是需要attach一个PDK 提供的tech lib的,否则你对当前库进行tech类别的各种操作有什么意义呢?
 楼主| 发表于 2019-12-3 17:55:49 | 显示全部楼层


amodaman 发表于 2019-12-3 13:11
当前设计库本身确实是需要attach一个PDK 提供的tech lib的,否则你对当前库进行tech类别的各种操作有什么意 ...


tech那个是用来获取lib的tf,然后获取via def,然后可以写自动打孔相关的脚本。因为createVia函数需要有viaID,这个ID只能从tf中获取。
比如techFindViaDefByName(tech Via1)函数.如果当前lib是reference的,那么这个函数将不会生效。
ci开头的函数,都是读取当前lib的tf来获取目标ID的。比如我前面问题中的函数就是获取routing layer的list。这个可以用来写metal 换层的脚本。
但只能用在attach的lib里面。reference的lib同样用不了。

tech这个我想到了一个办法,用ddGetobj("pdk lib")就可以直接获取到pdk库的tf了,前提是pdk库也在library list里面(cds.lib里)

但是ci*这个我暂时没想出办法来。
发表于 2019-12-3 19:50:21 | 显示全部楼层
解释一下什么叫reference 的库?和有tech attachment的库有什么不同?
 楼主| 发表于 2019-12-4 07:54:06 | 显示全部楼层


amodaman 发表于 2019-12-3 19:50
解释一下什么叫reference 的库?和有tech attachment的库有什么不同?


New library时会需要选择tf,这里有几个选项,一般都选择attach 到 pdk lib。这样新建的lib在lsw位置,点击出display resource editor之后,有个位置会显示这个tf所在的lib。
如果是attach的pdk lib,这里会显示pdk lib name。
但新建lib时如果选择reference existing technology library的话,新建的lib会从pdk lib中copy一个tf。这个tf的所有者是新建的这个lib本身。之后如果pdk lib tf有变化时,这个
新建lib的tf不会随之变化。相当于独立出来的一个tf。

比如cad写出一个gardring的脚本,比fab自身提供的更方便更强大,这时因为这个脚本使用了一些基础函数,需要修改基础参数。这时就不能再用attach 建立lib。
而是由cad 用reference tf建立一个lib,然后在这个lib里load自己的gardring 脚本。此时cad建立的这个lib就可以作为项目的标准lib。
其他人新建lib时可以再reference cad的这个lib,就可以随意使用新的gardring脚本了。

我现在用的很多lib都是reference的方式做的lib,虽然我觉得还是attach更方便一些,不太理解为什么都喜欢reference。弄得我很多脚本都用不了。。。
发表于 2019-12-4 21:43:05 | 显示全部楼层


chinarml 发表于 2019-12-4 07:54
New library时会需要选择tf,这里有几个选项,一般都选择attach 到 pdk lib。这样新建的lib在lsw位置,点 ...


这个问题应该可以解决。

你可以创建一个用户属性,规定你这个设计库的参考tf库是哪一个,把这个属性附加在这个设计库上面,在IC51中它会一prop.xx的形式存在,在IC61中应该是data.dm.  

然后你用代码去读出你自己设定的用户属性,再用ddGetObj(库名) 作为桥接去做剩下的事情。在此之后,一切都一样了。

Hope it works.
 楼主| 发表于 2019-12-5 08:00:05 | 显示全部楼层


amodaman 发表于 2019-12-4 21:43
这个问题应该可以解决。

你可以创建一个用户属性,规定你这个设计库的参考tf库是哪一个,把这个属性附加 ...


data.dm确实存在lib路径下,但vi打开时乱码。而且reference建库的都是别人建的,我不好直接修改和lib相关的属性。
还是希望能用一个基础函数或者系统函数去绕过读取当前库tf的操作。比如ddGetObj()函数这种,既不会改变lib的property,也可以实现脚本功能。
只是ciGetRoutingLayers()这类ci开头的似乎真的是无能为力了。。
发表于 2024-4-30 15:54:11 | 显示全部楼层
学习了~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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

GMT+8, 2024-11-18 00:23 , Processed in 0.021937 second(s), 7 queries , Gzip On, Redis On.

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