最新Calibre DRC和LVS验证总结.docx
《最新Calibre DRC和LVS验证总结.docx》由会员分享,可在线阅读,更多相关《最新Calibre DRC和LVS验证总结.docx(33页珍藏版)》请在冰豆网上搜索。
最新CalibreDRC和LVS验证总结
Calibre学习总结
第一章Calibre简述
1.1Calibre简介
Calibre作为MentorGraphics公司出品的后端物理验证(PhysicalVerification)
工具,它提供了最为有效的DRC/LVS/ERC解决方案,特别适合超大规模IC电路的物
理验证。
它支持平坦化(Flatmode)和层次化(Hierarchicalmode)的验证,大大缩
短了验证的过程;它高效可靠的性能已经被各大Foundry认证,作为TapeOut之前的
验证标准。
它独有的RVE(ResultViewEnviroment)界面可以把验证错误反标到版图
工具中去,而且良好的集成环境便于用户在版图和电路图之间轻松转换,大大提高了
改错的效率。
xCalibre具有版图寄生参数抽取的功能。
1.2手册
在工作站下输入mgcdocs&命令,就可阅读Calibre的所有手册。
1.3几个常用的缩写命令
1、SVRF---StandardVerificationRuleFormat(标准的检查文件)
2、RVE---ResultsViewingEnvironment(显示结果用的环境窗口)
3、SVDB---StandardVerificationDatabase(LVSresults)
4、DRC---DesignRuleChecking
5、LVS---LayoutVersusSchematic
6、ERC---ElectricalRuleChecking
第二章CalibreDRC
2.1数据准备
完成CalbireDRC需要的数据有版图数据和执行DRC检查的命令文件(Runset)。
版图数据支持GDSII、CIF、BINARY、ASCII格式。
2.2流程图
2.3DRCRunsetFile
1基本控制,原有DRACULA的file可以用drac_cvtsourcefiletargetfile命令来转换。
(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一个简单的RuleFile,“//”后面为注释
//――――――――――――――――――――――――――――
LAYOUTPATH“/home/*…….”//GDS的路径
LAYOUTPRIMARY“*”//GDS的顶单元名
LAYOUTSYSTEMGDSII//版图数据的格式
//――――――――――――――――――――――――――――
DRCMAXIMUMRESULTS500//最大错误输出数目
DRCRESULTSDATABASE“/home/*……”//存放DRC错误数据的路径及名称
DRCSUMMARYREPORT“/home/*……”HIER//存放DRC简述文件的路径及名称
//――――――――――――――――――――――――――――
DRCCELLNAMEYESCELLSPACEXFORM//表示底层的错误将直接在底层显示
PRECISION1000
RESOLUTION10//两句合起来表示检查的数据格点为10/1000=0.01
//――――――――――――――――――――――――――――
FLAGOFFGRIDYES//在SummaryReport里显示不在格点上的版图的坐标
FLAGSKEWYES//在SummaryReport里显示不是45度线的版图的坐标
FLAGACUTEYES//在SummaryReport里显示锐角的版图的坐标
//――――――――――――――――――――――――――――-
//输入层次的定义
LAYERnwelli1
LAYERndiffi2
LAYERpdiffi3
.
.
.
//TEXT层及连接性的定义
TEXTLAYER60ATTACH60met1
TEXTLAYER70ATTACH70met2
//定义连接
CONNECTmet1poly1BYcont
CONNECTmet1ndiffBYcont
CONNECTmet1pdiffBYcont
CONNECTmet2met1BYvia1
CONNECTmet1allnsubBYcont
SCONNECTallnsubnwelli
//顶层数据的定义,有利于提高检查速度
LAYOUTTOPLAYERpadmet2via1
//―――――――――――――――――――――――――――
//层次的运算
fpoly=poly1INTERACTceliso
tpoly=poly1NOTINTERACTceliso
pcode=SIZEpcodeiBY0.15OVERUNDER
.
.
.
//一般用来层次运算用的命令大概有:
INTERACT表示有任何重合关系的,
//相当于DRACULA的OVERLAP。
NOT,AND,OR,SIZE同DRACULA。
SIZE后面
//加上UNDEROVER表示先缩小再放大,OVERUNDER表示先放大再缩小。
//wmet1=WITHWIDTHmet1>=10表示找出宽度大于等于10的铝。
//―――――――――――――――――――――――――――――――
//具体的规则检查
//FLAGCHECK
acute_chk{//acute_chk表示这个错误的名称,随便定义
@flagacuteyes//@开头表示注释会在RVE的注释窗口里显示
DRAWNACUTE//每条检查必须包含一条可以输出错误的命令
}//一对花括号表示执行一条规则检查
//上面这条规则检查的目的是在版图上直接显示锐角的地方。
offgrid_chk{
@flagoffgridyes
DRAWNOFFGRID
}//直接在版图上显示不在格点上的地方
skew_chk{
@flagskewyes
DRAWNSKEW
}//直接在版图上显示非45度线的地方
//――――――――――――――――――――――――――――
//wellcheck
GROUPnwchknw_chk?
//?
是一个通配符,这句语句是将所有以nw_chk开头的错
//误定义成一个名称为nwchk的集合。
可以通过
//DRCSELECTCHECKnwchk这个语句来控制DRC检查
//只检查这个集合,也可UNSELECT去掉这个集合。
nw_chk1{
@nwellwidthmust>=2.5
INTnwelli<2.5ABUT<90SINGULARREGION
}//N阱的宽度检查,后面的ABUT<90SINGULARREGION是secongkeywords。
//ABUT<90一般都要加上,表示有交叉的地方的角度小于90度报错
//SINGULAR一般也要加上,表示有点碰点或者点碰线的地方都报错
//REGION是一个显示控制,表示显示错误时显示范围
nw_chk2{
@nwellofsamepotentialspacemust>=1.4
EXTnwelli<1.4ABUT<90SINGULARREGIONSQUARECONNECT
}//同电位的阱间距必须不能小于1.4。
SQUARE是输出结果控制,上面有详细说明
//CONNECT是连接控制,表示凡是通过铝或其它连接层有连接关系的阱。
nw_chk3{
@nwellofdifferentpotentialspacemust>=4
EXTnwelli<4ABUT<90SINGULARREGIONNOTCONNECT
}//不同电位的阱间距不能小于4。
nw_chk4{
@nwelloverlapnsub>=0.4
ENCallnsubnwell<0.4ABUT<90OUTSIDEALSOSINGULARREGION
}//阱包nsub不能小于0.4,OUTSIDEALSO也是secondkeywords,表示nsub在
//nwell外也报错。
nw_chk5{
@showbadnwellconnecttwodifferentnet
stamp_nwell=STAMPnwellBYallnsub
nwellNOTstamp_nwell
}//STAMP命令来定义nwell连接性,并且只能有一个连接,当某个nwell的nsub有两//个或以上的不同线名时,这个nwell不会被选成stamp_nwell。
没有nsub的阱也不会被
//选出来。
//――――――――――――――――――――――――――――――――
//关于有源区及多晶硅,铝等层次的检查可参考nwell的设置。
//contactcheck
cont_chk1{
@min&maxcontactsize0.5×0.5
NOTRECTANGLEcont==0.5BY==0.5ORTHOGONALONLY
}//表示contact只能这么大,并且每条边必须都平行与X或Y轴。
//密度检查
den_chk1{
@minmet1densityis30%
DENSITYmet1<0.3PRINTden_report_m1.log
}//当铝密度小于30%时,输出den_report_m1.log文件,要注意查看。
这个文件里有具//体的铝密度。
(6)上面只是一个简单的检查文件,从上面的内容可大致了解一下Calibre的检查规则。
还有许多其它的检查,如Antenna(天线效应)、衬底密度等的检查可以参考Calibre手册。
2.4用commondline来运行CalibreDRC检查
(1)先必须有一个完整的规则检查文件,必须包含运行设置、层次定义、层次运算、规则检查等几部分。
(2)在UNIX的命令窗口里输入calibre–hier–drcrulefile。
(3)运行完后可在Cadence的版图窗口里的Calibre菜单点出startRVE,然后就可进行DRC错误的修改了。
(4)也可输入calibre–gui调出calibre图形界面,具体的运行方式类似Cadence环境下的模式。
2.5查看结果文件和改错
1、drc检查运行完毕后,首先看drc_err.sum文件,看有无错误。
下面是一个例子:
前面是本次运行的一些信息:
CALIBRE:
:
DRC-FSUMMARYREPORT
ExecutionDate/Time:
FriJan220:
10:
462004
CalibreVersion:
v9.1_9.3FriDec1315:
05:
27PST2002
RuleFilePathname:
drc.rule
RuleFileTitle:
LayoutSystem:
GDS
LayoutPath(s):
test_nand3.gds
LayoutPrimaryCell:
test_nand3
CurrentDirectory:
/export/home/project/cpu863/LVStest/calibre/drc/test
UserName:
cpu863
MaximumResults/RuleCheck:
1000
MaximumResultVertices:
4096
DRCResultsDatabase:
drc.out(ASCII)
LayoutDepth:
ALL
TextDepth:
PRIMARY
SummaryReportFile:
drc_err.sum(REPLACE)
GeometryFlagging:
ACUTE=YESSKEW=YESOFFGRID=NO
NONSIMPLEPOLYGON=YESNONSIMPLEPATH=NO
CheckTextMapping:
COMMENTTEXT+RULEFILEINFORMATION
Layers:
MEMORY-BASED
KeepEmptyChecks:
YES
----------------------------------------------------------------------------------
---RUNTIMEWARNINGS——
Thereisnodataforlayoutnetname?
vcc?
.
中部开始有关RuleCheckResults的统计,如下:
---RULECHECKRESULTSSTATISTICS
---
RULECHECKNW_1.................TOTALResultCount=0
RULECHECKNW_2a................TOTALResultCount=0
RULECHECKNW_2b................TOTALResultCount=0
RULECHECKNW_3.................TOTALResultCount=0
RULECHECKNR_1.................TOTALResultCount=0
RULECHECKNR_2.................TOTALResultCount=0
RULECHECKNR_3.................TOTALResultCount=0
RULECHECKNR_4.................TOTALResultCount=0
RULECHECKNR_5.................TOTALResultCount=0
RULECHECKNR_6.................TOTALResultCount=0
RULECHECKNR_7.................TOTALResultCount=0
RULECHECKNR_8.................TOTALResultCount=0
如RULECHECKNR_8.................TOTALResultCount=0表示NR_8这条规则
检查的结果是0个错误,具体NR_8规则的含义要看DRCRunsetFile中的定义,检查有错的如:
RULECHECKCT_9.................TOTALResultCount=0
RULECHECKCT_10................TOTALResultCount=0
RULECHECKCT_11................TOTALResultCount=0
RULECHECKCT_12................TOTALResultCount=0
RULECHECKM1_1.................TOTALResultCount=0
RULECHECKM1_2.................TOTALResultCount=1
RULECHECKM1_3&4...............TOTALResultCount=0
RULECHECKM1_5.................TOTALResultCount=0
RULECHECKM1_6.................TOTALResultCount=3
RULECHECKM2_1.................TOTALResultCount=0
RULECHECKM2_2.................TOTALResultCount=0
RULECHECKPD_M1................TOTALResultCount=0
RULECHECKPD_M2................TOTALResultCount=1
RULECHECKPD_M3................TOTALResultCount=1
RULECHECKPD_M4................TOTALResultCount=1
RULECHECKPD_M5................TOTALResultCount=1
RULECHECKPD_M6................TOTALResultCount=1
RULECHECKConvention_FLT_NW....TOTALResultCount=0
分别是1,3,1,1,1,1个错误,最后是错误统计:
---SUMMARY
---
TOTALCPUTime:
0
TOTALREALTime:
1
TOTALOriginalLayerGeometries:
73
TOTALDRCRuleChecksExecuted:
205
TOTALDRCResultsGenerated:
9
可见一共检查出9个DRC错误。
如果没有错,则最后的TOTALDRCResults
Generated为0。
还可以查看DRC检查结果的数据库“drc_err”,如下:
test_nand31000
NW_1
002Jan220:
10:
472004
RuleFilePathname:
drc.rule
MinimumwidthofanNWregionis0.86um
NW_2a
003Jan220:
10:
472004
RuleFilePathname:
drc.rule
MinimumspacebetweentwoNWregionswiththesamepotentialis0.60um
Mergeifspaceislessthan0.6um
NW_2b
002Jan220:
10:
472004
RuleFilePathname:
drc.rule
MinimumspacebetweentwoNWwithdifferentpotentialis1.40um
NW_3
……
RuleFilePathname:
drc.rule
NWwithoutN+pickup
Convention_BPMO
002Jan220:
10:
482004
RuleFilePathname:
drc.rule
PmosinPW
Convention_BAD_IMP
002Jan220:
10:
482004
RuleFilePathname:
drc.rule
AAareawithoutanyimplant
__RVE_ERROR_TAG2__
0014Jan1110:
10:
572004
M1_21511
1
M1_61541
000
PD_M21971
0
PD_M31981
0
PD_M41991
0
PD_M52001
0
PD_M62011
0
也包含了检查的错误信息,该数据库主要是被后面的RVE来调用的。
然后要根据错误去版图中相应的位置改,Calibre提供了良好的RVE(ResultViewEnviroment)界面,它能直接调用DRC或者LVS检查后的结果数据库,图形化很直观地显示错误所在,并且可以调用版图工具如Virtuoso,直接在Virtuoso中快速定位错误位置。
2、用RVE查看结果和改错
RVE(ResultViewEnviroment)是Calibre自带的看验证结果的集成工具。
启动
方式为:
calibre–rvedatabase
database为DRC或LVS检查结果的数据库,这里是drc_err:
calibre-rvedrc_err
激活后界面如图1
可见左边显示DRC错误种类和数目,右边显示坐标位置,下面是对该Rule的解释。
清晰的界面,方便的操作能帮助用户快速找到错误和修改。
RVE能调用很多版图工
具,把错误直接反映在版图位置上,见菜单Setup——>Layout,这里可以设置调
用的版图工具。
具体配置方法见在线帮助中Calibre与其他工具的接口。
在Cadence
的Virtuoso中集成了Calibre以后,Virtuoso的菜单中会多出Calibre的菜单,如:
即可以直接从Virtuoso中调用图形化的DRC,LVS和RVE,显得十分方便。
点击
StartRVE,选择数据库名称,同样可以得到同图1一样的界面,这时RVE已经
和版图工具集成在一起,可以在RVE中点击一些错误坐标,Virtuoso中立刻会显示
错误的位置,如图3:
这里点击M1小于最小面积的错误中的第1个错误点:
右边坐标红色下划线的(-1.96,
3.97),在版图工具中会立刻高亮显示位置,如图4:
因此改错起来十分方便。
可以在RVE菜单View――>ByCheck,RVE左边会显
示出Check每条rule的结果,见图5:
绿色的表示检查该rule无误。
而且利用File菜单中可以方便地打开DRC结果报告、
DRCRunset等,如图6:
第三章CalibreLVS
3.1数据准备
需要的数据为版图数据、电路图数据和r