-
实用文档
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
具有版图寄生参数抽取的功能。
<
/p>
1
.
2
手册
p>
在工作站下输入
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
数据准备
完成
CalbireDRC
需要的数据
有版图数据和执行
DRC
检查的命令文件
(
Runset
)
。
版图数
据支持
GDSII
、<
/p>
CIF
、
BINARY
< br>、
ASCII
格式。
2
.
2
流程图
Runset
Calibre DRC
ASCII Report
DRC
Results Database
Locate Errors Using Calibre
RVE and Layout Tool
Completed Layout
Correct
Layout Errors
2
.
3 DRC Runset
File
1
基本控制,
原有
DRACULA
的
file
可以用
drac_cvt sourcefile
targetfile
命令来
转换。
(
1
)
Cal
ibre
是一个“
Edge
-
Based
”
Tool
,默认错误的显示是边
Error is between these edges
(2)DRC
检查的结果有三种控制
Euclidean
(
default
)
、
Square
、
< br>Opposite
。
实用文档
(3)
常用的几条检查规则,具体可阅读
Calibre
的手册
(a)
<
/p>
Internal
(内边对内边)用来检查
Width
、
Overlap
;<
/p>
(b)
Ex
ternal
(外边对外边)用来检查
Space
、
Notch
;
(c)
Enclosure
(内边对外边)
2
一般的
< br>DRC
检查文件包含以下几个部分:
(1)
运行设置,设置
GDS
的位置,结果文件放的位置等;
(2)
层次定义,定义输入的层次;
(3)
层次运算,产生运算需要的一些中间层次;
(4)
规则检查,具体对每条规则的检查;
(5)
选择控制,可以只检查某几条规则或者只检查某个单元。
实用文档
3
一个简单的
Rule File<
/p>
,
“
//
”后面
为注释
//
―――――――――――
―――――――――――――――――
LAYOUT
PATH
“
/home/*
……<
/p>
.
”
//GDS
的路径
LAYOUT PRIMARY
“
*
”
//GDS
的顶单元名
LAYOUT SYSTEM GDSII
//
版图数据的格式
//
――――――――――――――――――――――――――――
DRC MAXIMUM RESULTS 500
//
最大错误输出数目
DRC
RESULTS DATABASE
“
/home/*
……”
//
存放
D
RC
错误数据的路径及名称
DRC SUMMARY REPORT
“
/home/*<
/p>
……”
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
实用文档
.
.
.
//
一般用来层次运算用的命令大概有:
INTERACT
表示有任何重合关系的,
//
相当于
DRACULA
的
OVERLAP
。
NOT ,AND,OR,SIZE
同
DRACULA
。
< br>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
p>
度线的地方
//
――――――――――――――――――――――――――――
// well check
GROUP nwchk
nw_chk? //
?是一个通配符,这句语句是将所有以
n
w_chk
开头的错
//
误定义成一个名称为
nwchk
的集合。可以通过
//DRC SELECT CHECK nwchk <
/p>
这个语句来控制
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_
}//
当铝密度小于
30
%时,输出
den_report_
文件,要注意查看。这个文件里有
具<
/p>
//
体的铝密度。
(
6
)上面
只是一个简单的检查文件,从上面的内容可大致了解一下
Calibre
的检查规
则。
还有许多其它
的检查,如
Antenna
(天线效应)
、衬底密度等的检查可以参考
Calibre
手册。
2
.
4
用
commond line
来运行
Calibre
DRC
检查
(
1
)
p>
先必须有一个完整的规则检查文件,必须包含运行设置、层次定义、层次
运算、规则检查等几部分。
(
2
)
p>
在
UNIX
的命令窗口里输入
calibre
–
hier
–
drc rulefile
。
(
3
)
p>
运行完后可在
Cadence
的版图窗口里
的
Calibre
菜单点出
start
RVE
,然
后就可进行
DRC
错误的修改了。
实用文档
(
4
)
也可输入
calibre
–
gui
调出
calibre
图形界面,<
/p>
具体的运行方式类似
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/h
ome/project/cpu863/LVStest/calibre/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
也包含了检查的错误信息,
该数据库主要是被后面的
< br>RVE
来调用的。
然后要
根据
错误去版图中相应的位置改,
Calibre
提供了良好的<
/p>
RVE
(
R
es
ult
V
iew
E
nviroment
)
界面,
它能直接调用
DRC
或者
LVS <
/p>
检查后的结果数据库,
图形化很
直观地显
示错误所在,并且可以调用版图工具如
Virtuoso
,直接
在
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 ) ,
在版图工具中会立刻高亮显示位置,如图<
/p>
4
:
因此改错起来十分方便。可以在
RVE
菜单
View
――
> By Check , RVE
左边会显
示出
Check
每条
rule
的结果,见图
5
:
绿色的表示检查该
rule
无误。而且利用
File
菜单中可以方便地打开
DRC
结果报告、
DRC Runset
等,如图
6
:
第三章
Calibre LVS
3
.
1
数据准备
需要的数据为版图数据、电路图数据和
runset
文件。
Calibre
把电路图网表
的部分叫
SOURCE
。
SOURCE
部分要求的网表格式为标准
spice
格式或者
Calibre
自身的一种类似
spice
的格式。
Calibre
有一种把
verilog
转为自身类
spice
格式的
功能,叫
v2lvs
,下面先介绍
v2lvs
:
v2lvs
能够把
verilog
网表和相对应的
spice
库、
verilog
子库转成
Calibre LVS
用
到的电路图
SOURCE
网表,其功能如图:
转换的原理是
verilog
网表根据
verilog
子库对元件端口的定义,去
spice
子库找同样
名称和端口的元件,然后
进行网表和格式上的替换。因此
v2lvs
转类
spice
网表时,