工具如人,强大在外貌形象,更强大在内在心智。工具也不例外,一个高颜值的GUI,更需要有一个内在命令行引擎。有了强大命令行的工具,就是插上了翅膀的猛虎,上天入地,无所不能。calibredrv就是这样的一只双翼猛虎!
calibredrv的命令行模式
使用calibredrv的时候,对于关注GUI的用户而言,可能并没有太注意到它的interactive接口。默认情况下在启动的时候calibredrv会留下一个交互接口,这里是可以进行TCL命令运行的
> calibredrv -m $GDS
// Calibre DESIGNrev v2018.4_34.26 Mon Dec 3 14:40:53 PST 2018
......
LAYOUT READ TIME = 8 sec REAL. TOTAL TIME = 10 sec REAL
% puts "This is calibre"
This is calibre
calibredrv 的交互模式(interactive)启动
这里的交互交互界面确实可以执行一些calibre文本命令,但是由于这个是带着GUI的交互方式,违背了batch的文本运行的原意,请使用下面的命令进入calibre的命令行世界,在这里用户可以执行多种物理版图操作,专业且可复制
> cacalibredrv -shell
// Calibre DESIGNrev v2018.4_34.26 Mon Dec 3 14:40:53 PST 2018
......
// DESIGNrev running on 24 cores
%
calibredrv 的批处理模式(batch)运行
这个是在上述模式上的一个添加项,可以让calibredrv跑批处理命令,譬如GDS修改等等用户定义命令操作,对于刷版图流程很有帮助
> calibredrv -shell -s ./gds_edit.scr
calibredrv 的图形批处理模式(GUI batch)运行
由于calibredrv有很多的GUI操作接口,calibrdrv也提供了图形批处理(GUI batch)模式,在这里可以调用需要Tk支持的脚本
> calibredrv myscript.tcl -gui
calibredrv 单命令模式
可以使用calibredrv执行一条命令,然后直接退出,有点像perl
的命令行模式,简短命令得福音。
> calibredrv -a layout peek design.gds -bbox
topcell design bbox {design {0 0 1000000 4000000}}
对于日常工作,一般需要用到前两个模式,第一个是给脚本debug用,第二个是以批处理来做安静运行,为了能用好calibredrv的批处理,这里分享一些常用的calibredrv命令行和脚本
构建专属calibredrv脚本
版图文件的整体操作
打开GDS版图文件的命令行操作
calibredrv的命令行可以完成非常多的工作,同样也可以打开GDS/OASIS。命令行的功能强大于GUI,所以在使用命令行模式操作的时候,需要使用常用选项,确保GDS/OASIS文件打开的正确性,否则有可能在导出的时候出现不期望的改变。
% layout create design.gds -dt_expand -preservePaths -preserveTextAttributes -preserveProperties
这里的dt_expand指的是datatype expand,如果GDS的版层包含datatype,这个选项一定要添加,否则很多层都看不到
使用新的layer map映射关系打开GDS文件,譬如下例,将design.gds里边的31.1重新映射到311.1层,新保存的design_new.gds的版层里边就只会看到311.1层
% set L [layout create handle design.gds -map 31 1 311 1]
% $L gdsout design_new.gds
GDS版图信息的扫描
layout peek是非常好用的一个快速介入GDS内部信息的方法,操作对向是GDS文件本身,通过对GDS内容的扫描,可以快速获取版图内部的详细信息,非常好用。譬如:某个cell的边框大小,某个cell的版层信息等等,有趣的命令如下,各位小伙伴可以按需取拿
% layout peek design.gds -celllayers sub_design_1 ; # list all the layers in cell sub_design_1
% layout peek design.gds -cells ; # list all the cells within design.gds
% layout peek design.gds -parent sub_sub_design_2 ; # get the parent of cell sub_sub_design_2
% layout peek design.gds -bbox design ; # get the bbox of design
GDS版图合并
版图合并是常用的命令,通常是由于APR工具的view的限制,需要进行版图合并;在TO前的全芯片整合。
在calibre里边有两个比较常用的命令进行GDS版图的合并。
- 命令一:layout merge
基本语法如下
% layout merge [handle_out] {handle1| file1} {handle2| file2} bump [del1 del2] [-mode mode] [-preserveTextAttributes] [-preserveProperties] [-dt_expand] [-preservePaths] [-ignoreGdsBoxes] [-autoAlign]
这个命令可以将file2(第二个出现的GDS文件)的内容以三种方式之一,合并到file1(第一个出现的GDS文件)中,并且产生一个新的顶层cell:TOP。这个TOP在不同的合并模式产生也会有相应的变化,具体影响详见下表
譬如fill的整合,使用append的方式将design.fill.gds合并到design.gds里边,并存盘导出,注意这里多了一个TOP cell。
% layout merge design.gds design.fill.gds 0 -mode append -dt_expand
layout16
% layout16 gdsout design.fill.merge.gds
最终的GDS的结构如下:
- 命令二:layout filemerge: 更为灵活的合并命令
这个命令是更为强大和多配置的GDS文件合并命令,深受各路同行的喜爱和使用,也可以很好的遵循GDS不可更改的交付原则。基本语法
这个命令可以比较灵活的定义下列主要选项
pic_center
-
定义合并时候的topcell:-topcell TOP
-
可以配置合并后的新top cell: -createtop TOP_NEW
-
只做某些版层的合并: -incldue_layer , -exclude_layer
-
合并模式: append/overwrite/rename/forcerename
-
定义特定cell的数据来源:-preserve
-
etc.
可以看到,layout merge基本可以算是layout filemerge的一个命令子集。这里有几个常用案例分享个大家。
项目初期,顶层的GDS对某些IP GDS进行整合,产生design_IP_v1.gds,覆写模式(overwrite),top_cell保持不变
% layout filemerge -in design.gds -in IP.v1.gds -out design_IP_v1.gds -mode overwrite -topcell design
ECO模式的时候,顶层的GDS对某些IP GDS进行版本更新,产生design_IP_v2.gds,覆写模式(overwrite),top_cell保持不变
% layout filemerge -in design_IP_v1.gds -in IP.v2.gds -out design_IP_v2.gds -mode overwrite -topcell design
使用calibre进行fill填充,然后进行全芯片的GDS带fill的整合:追加模式(-append),top_cell保持不变
% layout filemerge -in design_IP_v2.gds -in design.fill.gds -out design_IP_v2.fill.gds -mode append -topcell design
版图文件微操作
给版图文件添加多边形
在某些APR流程里边有时候需要做一些微调,譬如添加边框(prboundary:layer 108)信息,以确保后面的LV流程可以正常使用。
% set L [layout create handle design.gds -map 31 1 311 1]
% $L create polygon design 108 -20u -20u 4000u 5000u
罗列GDS 包含的所有版层
有时候,需要呈现出所用版层的信息给FAB或者上级模块,这个时候使用如下命令可以很好的生成所用layers的报告
% set layout [layout create design.gds -dt_expand -preservePaths -preserveTextAttributes -preserveProperties]
% set f [open layer.list w]
file7
% puts $f [$layout layers]
% close $f
这个报告是基于GDS版图的,数据的完整性远高于APR工具,推荐使用。
本章词汇
【敲黑板划重点】
使用合适的选项打开calibredrv的命令行模式
灵活使用calibredrv的命令行完成版图的后处理操作,包括但不限于:信息搜集,GDS整合,版图编辑等等
GDS的操作是核心数据的操作,需要明确目标,对操作结果仔细评估,确保流程的正确性,然后再行交付使用
参考文献
- Calibre® DESIGNrev™ Reference Manual
- Calibre® DESIGNrev™ Layout Viewer User’s Manual
- Calibre® RVE™ for DRC Quick Reference
- internal physical design implementation user guide
读者须知:处于表达方便和技术保密条例,上述技术细节描述可能会存在转义或别名,请读者周知和理解