-
* *
Calibre
学习总结
第一章
Calibre
简述
1.
1 Calibre
简介
Calibre
作为
Mentor
Graphics
公司出品的后端物理验证(
Physical
Verification
)
工具,它提供了最为有效的
DRC/LVS/ERC
解决方案,特别适合超大规模
IC
电路的物
p>
理验证。它支持平坦化(
Flat
mode
)和层次化(
Hierarchical
mode
)的验证,大大缩
短了验证的过程;它高效可靠的性能已经被各大
Foundry
认证,作为
Tape Out
之前的
验证标准。它独有的
RVE
(
Result ViewEnviro
ment
)界面可以把验证错误反标到版图
< br>工具中去,而且良好的集成环境便于用户在版图和电路图之间轻松转换,大大提高了
改错的效率。
xCalibre
具有版图寄生参数抽取的功能。
1
.
2
手册
在工作站下输入
mgcdocs &
命
令,就可阅读
Calibre
的所有手册。
1
.
3
几个常用的缩写命令
1
、
SVRF---Standard Verification Rule
Format
(标准的检查文件)
2
、
RVE
---Results Viewing
Environment(
显示结果用的环境窗口
)
* *
3
、
SVDB---Standard Verification Database
(LVS results)
4
、
DRC
---Design Rule Checking
5
、
LVS
---Layout Versus Schematic
6
、
ERC
---Electrical Rule Checking
第二章
Calibre DRC
2
.
1
数据准备
* *
完成
Ca
lbireDRC
需要的数据有版图数据和执行
DRC
检查的命令文件(
Runset
)
。版
图数据支持
GDSII
、
CIF
、
BINARY
、
ASCII
格式。
<
/p>
2
.
2
流程图<
/p>
Runset
Locate Errors Using Calibre RVE and
Layout Tool
Correct Layout
Errors
ASCII Report
DRC
Results Database
Calibre DRC
Completed Layout
2
.
3 DRC Runset
File
1
基本控制,原有
p>
DRACULA
的
file
可以用
drac_cvt
sourcefile
targe
tfile
命令来
转换。
(
1
)
Calibre<
/p>
是一个“
Edge
-
Based
”
Tool
,默认错误
的显示是边
Error is between these
edges
* *
(2)DRC
检查的结果有三种控制
Euclid
ean
(
default
)
、
Square
、
Opp
osite
。
(3)
常用的几条检查规则,具体可阅读
Calibre
的手册
(a)
Internal
(内边对内边)用来检查
<
/p>
Width
、
Overlap
;
* *
(b)
External
(外边对外边)用来检查
Space
、
Notch
;
(c)
Enclosure
(内边对外边)
2
一般的
DRC
检查文件包含以下几个部分:
(1)
运行设置,设置
GDS
的位置,结果文件放的位置等;
* *
(2)
(3)
(4)
(5)
层次定义,定义输入的层次;
层次运算,产生运算需要的一些中间层次;
规则检查,具体对每条规则的检查;
选择控制,可以只检查某几条规则或者只检查某个单元。
3
一个简单的
Rule File
p>
,
“
//
”后面为
注释
//
――――――――――――
――――――――――――――――
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
//
――――――――――――――――――――――――――――
p>
* *
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
//
p>
顶层数据的定义,有利于提高检查速度
*
*
LAYOUT TOP LAYER pad met2 via1
//
――
―――――――――――――――――――――――――
//
层次的运算
fpoly
=
poly1 INTERACT
celiso
tpoly
=
poly1 NOT INTERACT celiso
pcode
=
SIZE pcodei BY 0.15
OVERUNDER
.
.
. <
/p>
//
一般用来层次运算用的命令大概有:
INTERACT
表示有任何重合关系的,
//
相当于
DRACULA
的
OVERLAP
。
NOT
,AND,OR,SIZE
同
DR
ACULA
。
SIZE
后面
//
加上
UNDEROVER
表示先缩小再放大,
OVERUNDER
表示
先放大再缩小。
//wmet1 = WITH WIDTH
met1 >=10
表示找出宽度大于等于
10
的铝。
//
――――――
―――――――――――――――――――――――――
//
具体的规则检查
//FLAG CHECK
acute_chk {
p>
//acute_chk
表示这个错误的名称
,
随便定义
@ flag acute
yes
//@
开头表示注释会在<
/p>
RVE
的注释窗口里显示
DRAWN ACUTE
//
每条检查必须包含一条可以输出错误的命令
}
//
一对花括号表示执行一条规则检查
//
上面这条规则检查的目的是在版图上直接显示锐角的地方。
* *
offgrid_chk{
@ flag offgrid yes
DRAWN OFFGRID
}
//
直接在版图上显示不在格点上的地方
skew_chk {
@
flag skew yes
DRAWN SKEW
}//
直接在版图上显示非
45
p>
度线的地方
//
――――――――――――――――――――――――――――
// well check
GROUP
nwchk
nw_chk? //
?是一个通配符,
这句语句是将所有以
nw_chk
开头的
错
//
误定义成一个名称为
p>
nwchk
的集合。可以通过
//DRC SELECT CHECK nwchk
p>
这个语句来控制
DRC
检查
//
只检查这个集合,也可
UNSELECT
去掉这个集合。
nw_chk1 {
@ nwell width must >=2.5
INT nwelli <2.5
ABUT <90 SINGULAR REGION
}
// N
阱的宽度检查,
后面的
ABU
T<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
的
< br>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_
p>
}//
当铝密度小于
30
< br>%时,输出
den_report_
文件,要注意查看。
这个文件里
有具
//
体的铝密度。
p>
(
6
)上面只是一个简单的检查文件,从上面的内容可大致了解一下
Cali
bre
的检查规
* *
则。
还有许多其它的检查,如
Antenna
(天线效应)
、衬底密度等的
检查可以参考
Calibre
手册。
2
.
4
用
p>
commond line
来运行
Calibre
DRC
检查
(
1
)
p>
先必须有一个完整的规则检查文件,必须包含运行设置、层次定义、层次
运算、规则检查等几部分。
(
2
)
p>
在
UNIX
的命令窗口里输入
calibre
–
hier
–
drc rulefile
。
(
3
)
p>
运行完后可在
Cadence
的版图窗口里
的
Calibre
菜单点出
start
RVE
,
然
后就可进行
DRC
错误的修改了。
(
4
)
也可输入
calibre
–
gui
调出
calibre
图形界面,具体的运行方式类似
Cadence
环境
下的模式。
2
.
5
查看结果文件和改错
1
、
drc
检查运行完毕后,
首先看
drc_
文件,看有无错误。下面是一个例子:
前面是本次运行的一些信息:
CALIBRE:: DRC-F SUMMARY REPORT
Execution Date/Time: Fri Jan 2 20:10:46
2004
Calibre Version: v9.1_9.3 Fri Dec
13 15:05:27 PST 2002
Rule File
Pathname:
Rule File Title:
Layout System: GDS
Layout
Path(s): test_
* *
Layout
Primary Cell: test_nand3
Current
Directory: /export/home/project/cpu863/LVStest/cal
ibre/drc/test
User Name: cpu863
Maximum Results/RuleCheck: 1000
Maximum Result Vertices: 4096
DRC Results Database: (ASCII)
Layout Depth: ALL
Text Depth: PRIMARY
Summary
Report File: drc_ (REPLACE)
Geometry
Flagging: ACUTE = YES SKEW = YES OFFGRID = NO
NONSIMPLE POLYGON = YES NONSIMPLE PATH
= NO
CheckText Mapping: COMMENT TEXT +
RULE FILE INFORMATION
Layers: MEMORY-
BASED
Keep Empty Checks: YES
-------------------------------------------------
---------------------------------
---
RUNTIME WARNINGS
——
There is no data for layout net name
?vcc?.
中部开始有关
RuleCheck
Results
的统计,如下:
--- RULECHECK RESULTS STATISTICS
---
RULECHECK NW_1
................. TOTAL Result Count = 0
RULECHECK NW_2a ................ TOTAL
Result Count = 0
* *
RULECHECK NW_2b ................ TOTAL
Result Count = 0
RULECHECK NW_3
................. TOTAL Result Count = 0
RULECHECK NR_1 ................. TOTAL
Result Count = 0
RULECHECK NR_2
................. TOTAL Result Count = 0
RULECHECK NR_3 ................. TOTAL
Result Count = 0
RULECHECK NR_4
................. TOTAL Result Count = 0
RULECHECK NR_5 ................. TOTAL
Result Count = 0
RULECHECK NR_6
................. TOTAL Result Count = 0
RULECHECK NR_7 ................. TOTAL
Result Count = 0
RULECHECK NR_8
................. TOTAL Result Count =
0
如
RULECHECK NR_8
................. TOTAL Result Count = 0
表示
NR_8
这条规
则
检查的结果是
0
个错误,具体
NR_8
规则的含义要看
DRC Runset File
中的定
义,
检查有错的如:
RULECHECK
CT_9 ................. TOTAL Result Count = 0
RULECHECK CT_10 ................ TOTAL
Result Count = 0
RULECHECK CT_11
................ TOTAL Result Count = 0
RULECHECK CT_12 ................ TOTAL
Result Count = 0
RULECHECK M1_1
................. TOTAL Result Count = 0
RULECHECK M1_2 ................. TOTAL
Result Count = 1
RULECHECK M1_3&4
............... TOTAL Result Count = 0
RULECHECK M1_5 ................. TOTAL
Result Count = 0
* *
RULECHECK M1_6 ................. TOTAL
Result Count = 3
RULECHECK M2_1
................. TOTAL Result Count = 0
RULECHECK M2_2 ................. TOTAL
Result Count = 0
RULECHECK PD_M1
................ TOTAL Result Count = 0
RULECHECK PD_M2 ................ TOTAL
Result Count = 1
RULECHECK PD_M3
................ TOTAL Result Count = 1
RULECHECK PD_M4 ................ TOTAL
Result Count = 1
RULECHECK PD_M5
................ TOTAL Result Count = 1
RULECHECK PD_M6 ................ TOTAL
Result Count = 1
RULECHECK
Convention_FLT_NW .... TOTAL Result Count = 0
分别是
1
,
3
,
1
,
1
,
1
,
1
个错误,最后是错误统计:
---
SUMMARY
---
TOTAL CPU Time:
0
TOTAL REAL Time: 1
TOTAL
Original Layer Geometries: 73
TOTAL DRC
RuleChecks Executed: 205
TOTAL DRC
Results Generated: 9
可见一共检查出
9
个
DRC
错误。如果没有错,则最后的
TOTAL DRC
Results
Generated
为
0
。
还可以查看
DRC
检查结果的数据库
“
drc_err
”,
如下:
test_nand3
1000
* *
NW_1
0 0
2 Jan 2 20:10:47 2004
Rule File
Pathname:
Minimum width of an NW
region is 0.86um
NW_2a
0 0 3
Jan 2 20:10:47 2004
Rule File Pathname:
Minimum space between two NW regions
with the same potential is 0.60um
Merge
if space is less than 0.6um
NW_2b
0 0 2 Jan 2 20:10:47 2004
Rule File Pathname:
Minimum
space between two NW with different potential is
1.40um
NW_3
……
Rule File Pathname:
NW without N+ pick up
Convention_BPMO
0 0 2 Jan 2
20:10:48 2004
Rule File Pathname:
Pmos in PW
Convention_BAD_IMP
* *
0 0 2 Jan 2 20:10:48 2004
Rule File Pathname:
AA area
without any implant
__RVE_ERROR_TAG2__
0 0 14 Jan 11 10:10:57 2004
M1_2 151 1
1
M1_6
154 1
000
PD_M2 197 1
0
PD_M3 198 1
0
PD_M4 199 1
0
PD_M5 200 1
0
PD_M6 201 1
0
也包含了检查的错误信息,该数据库主要是被后面的
RVE <
/p>
来调用的。然后
要根据错误去版图中相应的位置改,
Calibre
提供了良好的
RVE
(
R
esult
V
iew
E
nviroment
)界面,它能直接调用
DRC
或者
LVS
检查后的结果数据库,图形
* *
化
很直观地显示错误所在,
并且可以调用版图工具如
Virtuo
so
,
直接在
Virtuoso
中快速定位错误位置。
2
、用
RVE
查看结果和改错
RVE
(
R
esult
V
iew
E
nviroment
)是
Calibre
自带的看验证结果的集成工具。启动
方式为:
calibre
–
rve database
database
为
DRC
或
LVS
检查结果的数据库,这里是
drc_err
:
calibre -rve
drc_err
激活后界面如图
1
可见左边显示
DRC
错误种类和数目,右边显示坐标位置,下面是对该
Rule
的解释。
清晰的界面,方便的操作能
帮助用户快速找到错误和修改。
RVE
能调用很多版图工
具,把错误直接反映在版图位置上,见菜单
Setup
——
> Layout ,
这里可以设置调
用的版图工具。具体配置方法见在线帮助中
Calibre
与其他工具的接口。在
Cadence
的
Virtuoso
中集成了
Calibre
以后,
Virtuoso
的菜单中会多出
Calibre
的菜单,如:
即可以直接从
Virtuoso
中调用图形化的
DRC, LVS
和
RVE
,显得十分方便。点击
Start RVE
,
选择数据库名称,同样可以得到同图
1
一样的界面,这时
RVE
已经
和版图工具集成在一起,可以在
RVE
中点击一些错误坐标,
Virtuoso
中立刻会显示
错误的位置,如图
p>
3
:
这里点击
M1
小于最小面积的错误中的第
1
个错误点:右边坐标红色下划线的
(-1.96 ,
* *
3.97 ) ,
在版图工
具中会立刻高亮显示位置,如图
4
:
因此改错起来十分方便。可以在
RVE
菜单
View
――
> By Check , RVE
左边会显
示出
Check
每条
rule
的结果,见图
5
:
绿色的表示检查该
rule
无误。而且利用
File
菜单中可以方便地打开
DRC
结果报告、
DRC Runset
等,如图
6
:
第三章
Calibre LVS <
/p>
3
.
1
数据准备
需要的数据为版图数据、电路图数据和
runset
文件。
Calibre
把电路图网表
的部分叫
SOURCE
。
SOURCE
部分要求的网表格式为标准
spice
格式或者
Calibre
自身的一种类似
spice
的格式。
Calibre
有一种把
verilog
转为自身类
spice
格式的
功能,叫
v2lvs
,下面先介绍
v2lvs
:
v2lvs
能够把
verilog
网表和相对应的
spice
库、
verilog
子库转成
Calibre LVS
用
到的电路图
SOURCE
网表,其功能如图: