ET创芯网论坛(EETOP)

找回密码

  登录   注册  

搜帖子
汽车电子资料大全(下载奖励300信元)
查看: 5354|回复: 13

[原创] 经验分享:真实的GDS替换非真实的GDS,脚本自动实现(对ICC有用)

[复制链接]
发表于 2014-7-25 22:56:02 | 显示全部楼层 |阅读模式

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

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

x
ICC中导出的GDS文件只有std cells是真实的,macro的GDS是不真实的(例如只有模块的大小,pin脚,pin脚名和最高层金属(电源)等,其他信息是没有的)。为了进行DRC检查我们需要完整的GDS文件。GDS的替换分为手动替换和自动替换,手动是指用在layout编辑软件(如virtuoso)中进行手动替换;此外,Mentor公司的Calibredrv提供了自动对部分GDS进行替换的功能,下面讲介绍怎样用脚本自动实现部分GDS的替换。
       例如有3个GDS,一个model的gds(defe_0.gds2),两个memery的gds,这两个memery属于这个model。defe_0.gds2是ICC导出的,其中memery的GDS是不真实的,想将真实的memery GDS替换不真实的GDS。做法是用calibredrv 的filemerge命令来完成。
脚本:
     layout filemerge -in memery1.gds2 -in memery2.gds2 -out memery_top.gds2 -createtop memery_top
     layout filemerge -in memery_top.gds2 -in defe_0.gds -out defe_0_top.gds2
执行完上面的命令后,用calibredrv defe_0_top.gds2将merge后的gds打开:
QQ截图20140725224213.png
     可以看到有两个GDS在里面,而我需要的是defe_0这个模块的GDS(解释:merge前,defe_0中memery1和memery2的GDS是不全的;merge后,defe_0内部有memery1和memery2被真实的GDS替换了),所以需要将memery_top删除,
    set L [layout create defe_0_top.gds2 -dt_expand -preservePaths -preserveTextAttributes -preserveProperites ]
    $L delete cell memory_top
    $L gdsout  defe_0_top_new.gds2  
      上面讲述的是大体步骤以及关键命令,这里我就不提供中间的Tcl脚本了,大家如果有需求可以将其封成一个连贯的脚本,那样就更方面了。由于本人资历较浅,以上有什么错误的地方还望各位前辈指正,共同学习。
     另外,在解决这个问题咨询了icfbicfb 版主,这里再次感谢我们的好版主,
下面是我们的讨论连接:
http://bbs.eetop.cn/viewthread.php?tid=451595&extra=&page=2
发表于 2014-7-28 09:19:07 | 显示全部楼层
good and share, 多总结也有好处
回复 支持 反对

使用道具 举报

发表于 2014-7-28 12:54:51 | 显示全部楼层
点赞
回复 支持 反对

使用道具 举报

发表于 2015-1-30 23:48:28 | 显示全部楼层
顶一个,谢谢分享。
回复 支持 反对

使用道具 举报

发表于 2015-3-24 22:34:30 | 显示全部楼层
本帖最后由 黄zhuoquan 于 2015-3-31 20:51 编辑

万能的版主icfbicfb:      我现在有个疑问啊,ICC里面怎么merge GDS啊,查了老半天找不到具体方法!

回复 支持 反对

使用道具 举报

发表于 2015-7-27 15:34:02 | 显示全部楼层
要是有几十个gds呢,还是一个个的写-in x.gds -in x.gds 吗,试了-in *.gds 不能用
回复 支持 反对

使用道具 举报

发表于 2015-7-27 20:26:41 | 显示全部楼层
calibre在merge gds这里确实不像edi,可以-merge *.gds 进行通配 ,
只能-in 1.gds  -in 2.gds 这样处理,可以用脚本处理

icc merge gds的方法是把每个gds装入cel view,然后Write_stream -depth 99  这样出来的
方法和edi,calibre不同,不是一样的方法, 可以见icc  : read_stream命令
和mllkyway user guide,
回复 支持 反对

使用道具 举报

发表于 2015-7-27 21:57:32 | 显示全部楼层
layout filemerge -in memery_top.gds2 -in defe_0.gds -out defe_0_top.gds2 -overwrite

---
一个脚本搞定
回复 支持 反对

使用道具 举报

发表于 2016-3-18 10:32:51 | 显示全部楼层
回复 1# liuhaib11


   楼主,有个问题我想问一下,你这边用了一个中间的-out memery_top.gds2那么我是否可以绕过这个中间的gds直接把这两个memory的gds merge进去。
layout filemerge
-in memery1.gds2 -in memery2.gds2 -in defe_0.gds -out defe_0_top_new.gds2
回复 支持 反对

使用道具 举报

发表于 2016-7-5 11:03:29 | 显示全部楼层
非常好的分享!!!!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

小黑屋| 关于我们| 联系我们| 在线咨询| ET创芯网 ( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2019-12-10 00:53 , Processed in 0.070031 second(s), 13 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表