Calibre物理验证技术点滴 (下)

本文介绍如何使用Calibre工具的命令行模式进行高效版图处理,包括打开GDS/OASIS文件、GDS信息扫描、版图合并及微操作等技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

工具如人,强大在外貌形象,更强大在内在心智。工具也不例外,一个高颜值的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版图的合并。

  1. 命令一: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的结构如下:

在这里插入图片描述

  1. 命令二: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工具,推荐使用。

本章词汇

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1i9QGGQH-1612328636995)(D:\01_DOC_PIC\10_小艾\06_公众号\01_文章\08_Calibre物理验证技术点滴 (下)_20210202\本章词汇.jpg)]

【敲黑板划重点】

在这里插入图片描述

使用合适的选项打开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

读者须知:处于表达方便和技术保密条例,上述技术细节描述可能会存在转义或别名,请读者周知和理解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值