搜档网
当前位置:搜档网 › CalibreDRC和LVS验证归纳

CalibreDRC和LVS验证归纳

CalibreDRC和LVS验证归纳
CalibreDRC和LVS验证归纳

Calibre学习总结

第一章Calibre简述

1. 1 Calibre 简介

Calibre 作为Mentor Graphics 公司出品的后端物理验证(Physical Verification)工具,它提供了最为有效的DRC/LVS/ERC 解决方案,特别适合超大规模IC电路的物

理验证。它支持平坦化(Flat mode )和层次化(Hierarchical mode)的验证,大大缩短了验证的过程;它高效可靠的性能已经被各大Foundry 认证,作为Tape Out 之前的验证标准。它独有的RVE(Result ViewEnviroment)界面可以把验证错误反标到版图工具中去,而且良好的集成环境便于用户在版图和电路图之间轻松转换,大大提高了

改错的效率。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数据准备

完成CalbireDRC 需要的数据有版图数据和执行DRC 检查的命令文件(Runset )。版

图数据支持GDSII 、CIF 、BINARY 、ASCII 格式。

2.2流程图

2

.3 DRC Runset File

1 基本控制,原有DRACULA 的

file 可以用drac_cvt sourcefile targetfile 命令来

转换。

(1)Calibre 是一个“Edge -Based ”Tool ,默认错误的显示是边

(2)DRC 检查的结果有三种控制Euclidean(default)、Square、Opposite。

(3)常用的几条检查规则,具体可阅读Calibre的手册

(a)Internal(内边对内边)用来检查Width、Overlap;

(b)External(外边对外边)用来检查Space、Notch;

(c)Enclosure(内边对外边)

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

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

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

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

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

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

3一个简单的Rule File,“//”后面为注释

//――――――――――――――――――――――――――――

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文件,要注意查看。这个文件里有具//体的铝密度。

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

则。

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

2.4用commond line 来运行Calibre DRC检查

(1)先必须有一个完整的规则检查文件,必须包含运行设置、层次定义、层次运算、规则检查等几部分。

(2)在UNIX的命令窗口里输入calibre –hier –drc rulefile 。

(3)运行完后可在Cadence的版图窗口里的Calibre菜单点出start RVE ,然后就可进行DRC错误的修改了。

(4)也可输入calibre –gui 调出calibre 图形界面,具体的运行方式类似Cadence环境下的模式。

2.5查看结果文件和改错

1、drc 检查运行完毕后,首先看drc_err.sum 文件,看有无错误。下面是一个例子:前面是本次运行的一些信息:

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: drc.rule

Rule File Title:

Layout System: GDS

Layout Path(s): test_nand3.gds

Layout Primary Cell: test_nand3

Current Directory: /export/home/project/cpu863/LVStest/calibre/drc/test User Name: cpu863

Maximum Results/RuleCheck: 1000

Maximum Result Vertices: 4096

DRC Results Database: drc.out (ASCII)

Layout Depth: ALL

Text Depth: PRIMARY

Summary Report File: drc_err.sum (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_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 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: drc.rule

Minimum width of an NW region is 0.86um

NW_2a

0 0 3 Jan 2 20:10:47 2004

Rule File Pathname: drc.rule

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: drc.rule

Minimum space between two NW with different potential is 1.40um

NW_3

……

Rule File Pathname: drc.rule

NW without N+ pick up

Convention_BPMO

0 0 2 Jan 2 20:10:48 2004

Rule File Pathname: drc.rule

Pmos in PW

Convention_BAD_IMP

0 0 2 Jan 2 20:10:48 2004

Rule File Pathname: drc.rule

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

PD_M3 198 1

PD_M4 199 1

PD_M5 200 1

PD_M6 201 1

也包含了检查的错误信息,该数据库主要是被后面的RVE 来调用的。然后要根据错误去版图中相应的位置改,Calibre 提供了良好的RVE(R esult V iew E nviroment)界面,它能直接调用DRC 或者LVS 检查后的结果数据库,图形

化很直观地显示错误所在,并且可以调用版图工具如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 中立刻会显示

错误的位置,如图3:

这里点击M1 小于最小面积的错误中的第1 个错误点:右边坐标红色下划线的(-1.96 ,

3.97 ) , 在版图工具中会立刻高亮显示位置,如图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 网表时,

需要verilog 网表、spice 库、verilog 子库描述(可选),其命令格式如下:

v2lvs –v verilog_file –o spice_like_file [-l verilog_lib_file ] [-lsp spice_lib_file] [-lsr spice_lib_file] [-s spice_lib_file] [-s0 groundnet] [-s1 powernet] [-sk] [-i]

-v 后面接verilog 文件名称;-o 为输出类spice 格式文件;-l 是verilog 子库描述;-lsp 接spice 库网表,p 是pin 模式,即不允许有数组类的verilog 端口(比如PA[3]、PA[2]、PA[1]、PA[0])出现;-lsr 与-lsp 意义同,不过pin 是range 模式,即可以接受verilog 的数组端口;与-lsp,-lsr 不同的是,-s 是只是让转出文件在前面INCLUDE 这些spice 子库,而不会读它们;-s0 , -s1 为对verilog 中1’b0, 1’b1 的电源网络取代;-sk 指允许多组复合电源,不仅仅是一对全局电源VDD,VSS;-i 指输出文件采用spice 通用

的pin 格式,没有$引导,便于仿真。常见的例子如下:

v2lvs –v top_design.hv –o top_design.sp –s0 VSS –s1 VDD –sk –l pll_risc.v

-l cache_core.v –l pad.v –l std.v -lsr pll_risc.sp –lsr cache_try_new.sp

相关主题