微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > IC版图设计交流 > 分享一个合并gds的方法

分享一个合并gds的方法

时间:10-02 整理:3721RD 点击:
最近在做一个项目,需要添加dummy,可是fab厂提供的文件是feol和beol分开的,需要产生两个gds。如果版图小也就算了,直接calibre -drc 生成gds就好了,可是小弟整的是whole chip,导出的gds就有近20G呀,用flat跑那个drc文件需要24小时+,这时间真的是受不了,用hierarchy跑的话生成近几万个小的cell,尼玛导入vituoso需要好几个library呀,有没有靠谱的方法呀,项目赶的紧呀,于是于是我想到了如下方法,欢迎拍砖:
1.用hierarchy跑出两个gds,至于怎么跑就不要我说了吧,能多用几个cpu就用几个cpu,时间是宝贵的说,用法:calibre-64 -drc -hier -turbo 24 -hyper xxx.cal
2.将gds合并:
方法如下:
a.在csh终端敲入 calibredrv -shell
b.输入layout filemerge -in A.gds -in B.gds -out C.gds -createtop topcellname
生成新的C.gds,topcell名字是topcellname
3.写一个calibre drc文件将所需要的层次copy出来,大概用法 A1 { COPY A},最后运行calibre -drc yy.cal,生成新的gds,然后导入virtuso。

通过此方法,时间省了好多,省下的时间干嘛呢,可以刷微博,聊QQ,和妹子么么哒等等,千万不要谢我,因为我是雷锋。

这个我也是在公司刚刚学会,谢谢大神指导,另求指点,版图该如何学习

谢谢涛哥:)

和妹子么么哒

现在都是calibre merge gds啊,还有用icfb的么,淘汰了都,
calibre 除了layout filemerge 以外,还有layout import/等很多种功能,
可以替代icfb的简单操作功能, 比如merge blocks, 加logo,换层,
很好用的东西,具体看calibredrv user reference

导出的gds就有近20G呀 ,乖乖,你啥design啊,这么大 , 10x10 mm2 ?

merge gds本来用的不多,可是hier跑出来的cell太多了,故找到了现在这个方法,献丑了

主要数字的东西太多了,所以导出的数据比较大

哇,被发现了

请教小编一个问题:例如有3个GDS2,一个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打开,如图(1):



图(1)
可以看到有两个GDS在里面,而我需要的是defe_0这个模块的GDS(解释:merge前,defe_0中memery1和memery2的GDS是不全的;merge后,defe_0内部有memery1和memery2被真实的GDS替换了),所以需要将memery_top删除,如图(2):





图(2)
依照上面的操作可以达到我的目的,
这里需要请教的问题是:怎么用脚本实现memery_top的删除,以及保存输出?
看了好久的calibredrv user reference都没弄明白,希望得到前辈的指点,感谢您了。

layout filemerge只能实现简单的merge功能,比如替代icc的top fram gds 的合并过程,
其实edi flow不需要这个,因为edi streamOut -merge 功能已经做得很好,
icc flow因为milkyway ,layermap等问题,有时候需要drv这个功能来merge的来的方便,
但是对复杂的操作,比如替换单元,增加,删除cell等, layout filemerge搞不定的,
要用tcl脚本来实现,具体可见 drv 命令表,
基本操作比如:
set L [layout create xxx.gds -dt_expand -preservePaths -preserveTextAttributes -preserveProperites ]
$L delete cell memory_top
$L gdsoutxxx_new.gds
要替换一个新cell,要使用import mode ,
$L import layoutxxx falseoverwrite;# overwrite mode to replace new cell ,

基本靠脚本了, gui帮不了太多忙,

太感谢您了,这几天都没时间上网回复您,真心感谢,我会努力学习的。

icfbicfb 我将咨询您的问题总结了下发到了论坛里,您看看有什么不足之处。
http://bbs.eetop.cn/viewthread.php?tid=454572&extra=

小编,想请问一下calibredrv 的脚本语法,应该看什么文档

安装目录下有 calbr_drv_ref.pdf ,等,

学习一下!

学习啦!

学习了,有用

请教大神如果想用calibredrv导出单层GDS呢

偶不是大神,我是个大神提鞋的。具体方法:
calibredrv打开文件,在file-->export layout layers选择selected就可以了

留名待用

好家伙。牛!

好东西

谢谢大神们分享经验。Mark,待用。

都是大神啊,目前我还没接触过这个

学习了,小编大牛啊!赞

留名待用

留名待用`~

很有实用价值的方法

学习了

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top