经验分享:真实的GDS替换非真实的GDS,脚本自动实现(对ICC有用)
例如有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打开:
可以看到有两个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 gdsoutdefe_0_top_new.gds2
上面讲述的是大体步骤以及关键命令,这里我就不提供中间的Tcl脚本了,大家如果有需求可以将其封成一个连贯的脚本,那样就更方面了。由于本人资历较浅,以上有什么错误的地方还望各位前辈指正,共同学习。
另外,在解决这个问题咨询了icfbicfb 小编,这里再次感谢我们的好小编,
下面是我们的讨论连接:
http://bbs.eetop.cn/viewthread.php?tid=451595&extra=&page=2
good and share, 多总结也有好处
点赞
顶一个,谢谢分享。
万能的小编icfbicfb:我现在有个疑问啊,ICC里面怎么merge GDS啊,查了老半天找不到具体方法!
要是有几十个gds呢,还是一个个的写-in x.gds -in x.gds 吗,试了-in *.gds 不能用
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,
layout filemerge -in memery_top.gds2 -in defe_0.gds -out defe_0_top.gds2 -overwrite
---
一个脚本搞定
小编,有个问题我想问一下,你这边用了一个中间的-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
非常好的分享!
太麻烦拉,一步就可以了
layout filemerge -in memery1.gds2 -in memery2.gds2-in defe_0.gds -out defe_0_top.gds2 -topcell defe_0
谢谢,非常感谢。
谢谢,很有用