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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 11466|回复: 27

[求助] 如何用SKILL实现在顶层填充 PSUB(NTN) layer

[复制链接]
发表于 2018-4-8 23:05:10 | 显示全部楼层 |阅读模式

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

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

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

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


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


  代码在公司,不方便分享
 楼主| 发表于 2018-5-7 21:46:12 | 显示全部楼层
回复 5# 195293204


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


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

diva获取图形的原理就是简单的DRC或者EXT命令提取layout数据,不需要考虑hierarchyl问题
 楼主| 发表于 2018-5-8 09:24:49 | 显示全部楼层
回复 9# 195293204


   如果不用考虑hierarchy结构,速度应该会提升非常大,dbGetOverlaps这个命令在大规模搜索底层时,很容易成为瓶颈。你说的diva是 virtuoso自带的那个验证工具diva吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-12-18 22:44 , Processed in 0.022228 second(s), 7 queries , Gzip On, Redis On.

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