Calibre : 一个简单的DRC rule file

本文介绍了Calibre DRC检查的基本配置和规则设置方法。主要内容包括:1)文件路径和检查参数设置,如最大错误输出数、数据精度等;2)层次定义和连接性设置;3)基础检查规则,包括格点对齐、角度、锐角等检查;4)具体规则示例,如N阱宽度、间距检查,接触孔尺寸检查,金属密度检查等。文档还提到可以通过GROUP命令对检查规则进行分组管理,并说明了不同检查命令的关键词含义和使用方法。这些设置可以帮助工程师快速定位版图中的设计规则违规问题。

一般的DRC 检查文件包含以下几个部分:

(1) 运行设置,设置GDS 的位置,结果文件放的位置等;

(2) 层次定义,定义输入的层次;

(3) 层次运算,产生运算需要的一些中间层次;

(4) 规则检查,具体对每条规则的检查;

(5) 选择控制,可以只检查某几条规则或者只检查某个单元。

针对一个新的产品在进行DRC检查时,需要修改以下开关:

(1)gds 文件路径;

(2)gds top cell 名称;

(3)版图格式文件;

bash 复制代码
//――――――――――――――――――――――――――――
LAYOUT PATH "/home/*......." //GDS 的路径
LAYOUT PRIMARY "*" //GDS 的顶单元名
LAYOUT SYSTEM GDSII //版图数据的格式
//――――――――――――――――――――――――――――
DRC MAXIMUM RESULTS 500 //最大错误输出数目
DRC RESULTS DATABASE "/home/*......" //存放DRC 错误数据的路径及名称
DRC SUMMARY REPORT"/home/*......" HIER //存放DRC 简述文件的路径及名称
//――――――――――――――――――――――――――――
DRC CELL NAME YES CELL SPACE XFORM //表示底层的错误将直接在底层显示
PRECISION 1000
RESOLUTION 10 //两句合起来表示检查的数据格点为10/1000=0.01
//――――――――――――――――――――――――――――
FLAG OFFGRID YES //在Summary Report 里显示不在格点上的版图的坐标
FLAG SKEW YES //在Summary Report 里显示不是45 度线的版图的坐标
FLAG ACUTE YES //在Summary Report 里显示锐角的版图的坐标
//――――――――――――――――――――――――――――-
//输入层次的定义
LAYER nwelli 1
LAYER ndiffi 2
LAYER pdiffi 3
.
.
.
//TEXT 层及连接性的定义
TEXT LAYER 60 ATTACH 60 met1
TEXT LAYER 70 ATTACH 70 met2
//定义连接
CONNECT met1 poly1 BY cont
CONNECT met1 ndiff BY cont
CONNECT met1 pdiff BY cont
CONNECT met2 met1 BY via1
CONNECT met1 allnsub BY cont
SCONNECT allnsub nwelli
//顶层数据的定义,有利于提高检查速度
LAYOUT TOP LAYER pad met2 via1
//―――――――――――――――――――――――――――
//层次的运算
fpoly = poly1 INTERACT celiso
tpoly = poly1 NOT INTERACT celiso
pcode = SIZE pcodei BY 0.15 OVERUNDER
//一般用来层次运算用的命令大概有:INTERACT 表示有任何重合关系的,
//相当于DRACULA 的OVERLAP。NOT ,AND,OR,SIZE 同DRACULA。SIZE 后面
//加上UNDEROVER 表示先缩小再放大,OVERUNDER 表示先放大再缩小。
//wmet1 = WITH WIDTH met1 >=10 表示找出宽度大于等于10 的铝。
//―――――――――――――――――――――――――――――――
//具体的规则检查
//FLAG CHECK
acute_chk { //acute_chk 表示这个错误的名称,随便定义
@ flag acute yes //@开头表示注释会在RVE 的注释窗口里显示
DRAWN ACUTE //每条检查必须包含一条可以输出错误的命令
} //一对花括号表示执行一条规则检查
//上面这条规则检查的目的是在版图上直接显示锐角的地方。
offgrid_chk{
@ flag offgrid yes
DRAWN OFFGRID
} //直接在版图上显示不在格点上的地方
skew_chk {
@ flag skew yes
DRAWN SKEW
}// 直接在版图上显示非45 度线的地方
//――――――――――――――――――――――――――――
// well check
GROUP nwchk nw_chk? //?是一个通配符,这句语句是将所有以nw_chk 开头的错
//误定义成一个名称为nwchk 的集合。可以通过
//DRC SELECT CHECK nwchk 这个语句来控制DRC 检查
//只检查这个集合,也可UNSELECT 去掉这个集合。
nw_chk1 {
@ nwell width must >=2.5
INT nwelli <2.5 ABUT <90 SINGULAR REGION
} // N 阱的宽度检查,后面的ABUT<90 SINGULAR REGION 是secong key words 。
//ABUT<90 一般都要加上,表示有交叉的地方的角度小于90 度报错
//SINGULAR 一般也要加上,表示有点碰点或者点碰线的地方都报错
//REGION 是一个显示控制,表示显示错误时显示范围
nw_chk2{
@ nwell of same potential space must >=1.4
EXT nwelli < 1.4 ABUT<90 SINGULAR REGION SQUARE CONNECT
} // 同电位的阱间距必须不能小于1.4 。SQUARE 是输出结果控制,上面有详细说明
//CONNECT 是连接控制,表示凡是通过铝或其它连接层有连接关系的阱。
nw_chk3{
@nwell of different potential space must >=4
EXT nwelli <4 ABUT<90 SINGULAR REGION NOT CONNECT
} // 不同电位的阱间距不能小于4。
nw_chk4{
@nwell overlap nsub >=0.4
ENC allnsub nwell <0.4 ABUT<90 OUTSIDE ALSO SINGULAR REGION
}// 阱包nsub 不能小于0.4, OUTSIDE ALSO 也是second key words,表示nsub 在
// nwell 外也报错。
nw_chk5{
@ show bad nwell connect two different net
stamp_nwell = STAMP nwell BY allnsub
nwell NOT stamp_nwell
}//STAMP 命令来定义nwell 连接性,并且只能有一个连接,当某个nwell 的nsub 有两
//个或以上的不同线名时,这个nwell 不会被选成stamp_nwell。没有nsub 的阱也不会被
//选出来。
//――――――――――――――――――――――――――――――――
//关于有源区及多晶硅,铝等层次的检查可参考nwell 的设置。
//contact check
cont_chk1{
@min&max contact size 0.5×0.5
NOT RECTANGLE cont ==0.5 BY = =0.5 ORTHOGONAL ONLY
}//表示contact 只能这么大,并且每条边必须都平行与X 或Y 轴。
//密度检查
den_chk1{
@ min met1 density is 30%
DENSITY met1 < 0.3 PRINT den_report_m1.log
}//当铝密度小于30%时,输出den_report_m1.log 文件,要注意查看。这个文件里有具
//体的铝密度。

上是一个简单的检查文件,从上面的内容可大致了解一下Calibre 的检查规则。

还有许多其它的检查,如Antenna(天线效应)、衬底密度等的检查可以参考Calibre 手

册。

相关推荐
C雨后彩虹2 小时前
ReentrantLock入门:核心特性与基本使用
java·数据结构·reentrantlock·lock
你撅嘴真丑2 小时前
短信计费 和 甲流病人初筛
数据结构·c++·算法
CAAS_IFR_zp2 小时前
BEAUT:胆汁酸酶注释
数据结构
散峰而望10 小时前
【算法竞赛】C++函数详解:从定义、调用到高级用法
c语言·开发语言·数据结构·c++·算法·github
LYFlied12 小时前
【每日算法】LeetCode 416. 分割等和子集(动态规划)
数据结构·算法·leetcode·职场和发展·动态规划
历程里程碑13 小时前
滑动窗口最大值:单调队列高效解法
数据结构·算法·leetcode
量子炒饭大师13 小时前
Cyber骇客的逻辑节点美学 ——【初阶数据结构与算法】二叉树
c语言·数据结构·c++·链表·排序算法
量子炒饭大师14 小时前
Cyber骇客神经塔尖协议 ——【初阶数据结构与算法】堆
c语言·数据结构·c++·二叉树·github·
XLYcmy14 小时前
TarGuessIRefined密码生成器详细分析
开发语言·数据结构·python·网络安全·数据安全·源代码·口令安全