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

标题: 如何用SKILL实现在顶层填充 PSUB(NTN) layer [打印本页]

作者: z20102760    时间: 2018-4-8 23:05
标题: 如何用SKILL实现在顶层填充 PSUB(NTN) layer
一般做完顶层模块之后,我们需要在空着的p-sub区域填充 PSUB layer 或者NTN layer,我目前的思路是遍历底层所有cell,然后抓取指定几层layer的shape,再通过layer的Boolean运算,得到PSUB或NTN
测试之后发现,对于规模较小的模块,代码运行时间还能接受,但是到了较大规模的模块时,代码运行时间完全不能接受,

不知道有没有更加合理的思路或者方法实现相同的需求?
作者: yuanhuan    时间: 2018-4-12 11:20
假如在顶层模块上覆盖某特殊层次,只抓取这个特殊层次呢?感觉没必要遍历吧。
作者: z20102760    时间: 2018-4-13 15:35
回复 2# yuanhuan


   这种方式我考虑过,但是因为有时候很多Block的形状是不规则的,生成的PSUB有时候需要伸进block内部,导致人工添加标识layer也比较麻烦且不够完美。当然通过脚本提取顶层标识layer再生成PSUB的效率确实很高。
作者: 通信小小生    时间: 2018-4-26 14:22
楼主的代码可以分享吗,想研究一下算法
作者: 195293204    时间: 2018-5-5 19:49
我也正在研究这种做法,但是初学skill,对各种函数还不太了解。
目前想到两种方法:
1.按楼主这种方法遍历所有cell(或者flatten top)找到相关图形,再进行布尔运算;
2.用其diva获取所需图形,再进行布尔运算
    第一种方法就是速度慢。
楼主能不能分享下你的代码,我目前遇到的问题时如何获得子单元的相关图形在topcell中的bBox和坐标信息。
作者: z20102760    时间: 2018-5-7 21:41
回复 4# 通信小小生


  代码在公司,不方便分享
作者: z20102760    时间: 2018-5-7 21:46
回复 5# 195293204


   代码在公司,不方便分享。   但可以告诉你我用到的核心函数,dbGetOverlaps() 抓取底层图形, dbGetHierPathTransform()坐标信息转换到顶层,dbCopyFig()复制图形。
  你说的用diva获取图形是什么原理呢?
作者: 195293204    时间: 2018-5-8 00:14
回复 7# z20102760


    谢谢你的提醒,我参考别人的脚本找到了如何抓取底层图形,就是用你提示这几个关键函数.
第二种方法我想的是使用diva(hierachical运行提高速度)来获得下层图形的信息,并处理逻辑运算,这样的话速度会不会快点?
用skill跑diva的时候遇到点问题,跑完了没在layout中产生想要的数据,ui界面倒是没问题.
我先把第一种方法写好了,再研究下,到时候可以做个速度对比
作者: 195293204    时间: 2018-5-8 00:16
回复 7# z20102760

diva获取图形的原理就是简单的DRC或者EXT命令提取layout数据,不需要考虑hierarchyl问题
作者: z20102760    时间: 2018-5-8 09:24
回复 9# 195293204


   如果不用考虑hierarchy结构,速度应该会提升非常大,dbGetOverlaps这个命令在大规模搜索底层时,很容易成为瓶颈。你说的diva是 virtuoso自带的那个验证工具diva吗?
作者: 195293204    时间: 2018-5-8 23:09
回复 10# z20102760

嗯,是virtuoso自带的diva,用calibre或者assura也行  ,calibre执行速度应该最快,但是存在导出和导入GDS过程,比较麻烦
作者: aszx    时间: 2018-6-12 20:30
it's use for me
作者: 3512596    时间: 2018-6-21 18:13
回复 1# z20102760


   我觉得 你写一份drc 文件然后 去省城gds相对会更容易一下 。
作者: z20102760    时间: 2018-6-21 21:22
回复 13# 3512596


   是的,配合calibre或者assura更容易。
作者: okfunny    时间: 2018-7-25 23:12
http://bbs.eetop.cn/thread-617795-9-1.html
参考这个帖子里的 ok_CopyFig( ) 这个函数,能hier抓取指定的层次,你这个抓 NT_N ,数量很少速度很快的, 我之前实用这个函数包装一下 填充PSUB
作者: huqy    时间: 2018-12-29 17:41
回复 5# 195293204


   有关于diva的资料吗? 能够分享一下吗?
作者: 195293204    时间: 2019-1-9 20:07
回复 16# huqy


  没有相关文档,都是查官方手册,cadence安装路径下有,你找下
作者: huqy    时间: 2019-1-10 20:53
回复 17# 195293204
请问一下diva语句在哪里执行呢?   就好比skill语言在icw窗口里执行。
作者: 195293204    时间: 2019-1-13 22:24
回复 18# huqy


    应该是可以直接写成skill代码在ciw里面跑,UI的话在virtuoso layout菜单栏有个verify目录,里面的DRC就是diva的界面
作者: huqy    时间: 2019-2-23 14:01
回复 8# 195293204


   请问一下skill里面怎么调用diva?
作者: huqy    时间: 2019-2-26 16:06
回复 20# huqy


   已解决
作者: nichole.fan    时间: 2019-2-28 08:01
diva好用
作者: 星祭    时间: 2019-5-9 11:21
学习了
作者: fan309550595    时间: 2019-5-16 22:34


   
huqy 发表于 2019-2-23 14:01
回复 8# 195293204


可以分享下吗,diva结合skill怎么来?或者有相关的文档推荐下!



作者: fan309550595    时间: 2019-5-16 22:38
楼主,最近我写了一个自动画大片功率管的skill程序,用到的思路和你这个功能差不多,其他速度都还好就是打via孔的时候会超慢,曾经也想过用diva来完成这个功能,但是从来没有用过diva,表示没有一点思路,更别说结合skill。。不知道楼主现在怎么解决“效率”这个问题?
作者: fan309550595    时间: 2019-5-16 22:44
还有就是我们公司也有工艺最后会在空余处补充psub和nwell的pick up,不过都是用caliber做的,最后导gds进来,步骤比较多一些。
作者: huqy    时间: 2019-5-19 12:31


   
fan309550595 发表于 2019-5-16 22:34
可以分享下吗,diva结合skill怎么来?或者有相关的文档推荐下!


在diva reference里面有 Executing Diva Verification Using SKILL Commands 介绍

作者: 墨染-001    时间: 2023-7-9 17:07


   
195293204 发表于 2018-5-8 00:14
回复 7# z20102760




如何抓住底层图形在哪里找到的啊,我点进去连接咋没有呢?




欢迎光临 EETOP 创芯网论坛 (原名:电子顶级开发网) (https://bbs.eetop.cn/) Powered by Discuz! X3.5