How to read Calibre lvs report.docx
《How to read Calibre lvs report.docx》由会员分享,可在线阅读,更多相关《How to read Calibre lvs report.docx(15页珍藏版)》请在冰点文库上搜索。
HowtoreadCalibrelvsreport
HowtoreadCalibrelvsreportfile
1.Report开头部分的Warning和Error信息(因为出现Warning和Error的情况很多,这里主要举一些常见的例子):
∙Error部分:
只要report的开头部分有Error信息出现,lvs就肯定没有运行成功。
Error一般由lvs命令文件或netlist文件中的参数定义引起,这时候需要修改lvs文件或者netlist。
Error信息都很直观,比较容易查出产生Error的地方。
oExample1(参见文件“lvs_test1.rep”):
在”lan_yang_dig.cir”的2191和2192行调用到了两个标准单元”INLX1”和”LOGICOL”,但是netlist中找不到对这两个标准单元的描述。
这个错误需要检查netlist,添加上对这些标准单元的描述部分。
通常标准单元的netlist由foundry提供,是一个单独的cdl或者spice文件;
Example1:
LVSNetlistCompiler-ErrorsandWarningsfor"LANYANG_FULLCHIP_V11_20060427.CIR"
-------------------------------------------------------------
Error:
Nomatching".SUBCKT"statementfor"INLX1"atline2191infile"lan_yang_dig.cir"
Error:
Nomatching".SUBCKT"statementfor"LOGIC0L"atline2192infile"lan_yang_dig.cir"
.........
.........
∙Warning部分:
warning不会影响lvs的运行,但是经常会导致结果的不正确。
很一些warning可以忽略掉,这些常常是netlist中或者lvs命令文件中一些多余部分引起的,例如下面的Example2_1和Example2_2;很多warning是不能忽略的,最常见的是short和softconnect,例如下面的Example3,Example4_1,Example4_2;
oExample2_1(参见文件“lvs_test2.rep”):
这个warning是因为calibre不认netlist中的参数”*.MEGA”,这时需要在netlist中注释掉这个参数。
(”*.MEGA”只在dracula中起作用,用于区分netlist中单位m和M的不同,有了这个参数以后,m代表千分之一,M代表百万,如果没有这个参数,则m和M都代表千分之一);
Example2_1:
.........
Warning:
*.MEGAatline86infile"/home/taurus/XFAB/cdl/xc06m3/core/xc06a2dl.cdl"notappliedtoearlierglobal-scope.PARAMstatements
Warning:
*.MEGAatline148infile"/home/taurus/XFAB/cdl/xc06m3/core/xc06a2dl.cdl"notappliedtoearlierglobal-scope.PARAMstatements
.........
oExample2_2(参见文件“lvs_test2.rep”):
这个warning是由于在netlist中重复定义了”NAND4”和”NOR2”这两个标准单元引起,可以修改netlist解决;如果能确定重复定义的部分是完全相同的,这个warning可以忽略掉;
Example2_2:
.........
Warning:
Duplicatesubcktdefinition"NAND4"atline1642infile"/home/taurus/XFAB/cdl/xc06m3/core/xc06a2dl.cdl"
Warning:
Duplicatesubcktdefinition"NOR2"atline1671infile"/home/taurus/XFAB/cdl/xc06m3/core/xc06a2dl.cdl"
.........
oExample3(参见文件“lvs_test3.rep”):
在layout中两条标记了label的net短路时,或者不同的label标记到了同一net上时,出现这种warning,lvs中会忽略掉其中一个label,将这个net定义为另一个label的名字,例如这个例子中这个net被定义为”osc32k”,忽略掉了”tclk_control”。
这两个warning一般会同时出现,解决办法是通过坐标和label在layout中查找short的地方,或者是label移位的地方。
这个warning会引起layout和netlist出现不同数目的net,一定要改掉;
Example3:
.........
WARNING:
Directconnectionbetweendifferentports:
Portnames:
osc32ktclk_control
WARNING:
Shortcircuit-Differentnamesononenet:
NetId:
513
(1)name"osc32k"atlocation(944.4,1199.6)onlayer39"metal3"
(2)name"tclk_control"atlocation(944.4,1228.4)onlayer39"metal3"
Thename"osc32k"wasassignedtothenet.
.........
oExample4_1(参见文件“lvs_test4_1.rep”):
如果在Psubstrate上出现没有通过金属直接连接的Psubstratetie,那么这些Psubstratetie会引起softconnect的warning,这个例子中net“chg_out_p”连接到了某个Psubstratetie,与gnd!
通过Psubstrate短路到了一起,net“chg_out_p”被忽略掉。
解决办法是找到net“chg_out_p”与Psubstrate短路的地方;
Example4_1:
.........
WARNING:
StampingconflictinSCONNECT-Multiplesourcenetsstamponetargetnet.
Netgnd!
isselectedforstamping.
Rejectednets:
chg_out_p
.........
oExample4_2(参见文件“lvs_test4_2.rep”):
这个例子和上一个例子基本一样,不同的是和gnd!
sconnect的这个net在layout上没有标记label。
”2089”是calibre从layout中提取并随机命名的net。
解决办法是在report的具体信息中找到net2089的坐标,再在layout中查找该点的net是如何通过Psubstrate短路到gnd!
;
Example4_2:
.........
WARNING:
StampingconflictinSCONNECT-Multiplesourcenetsstamponetargetnet.
Netgnd!
isselectedforstamping.
Rejectednets:
2089
...
...
...
1Netgnd!
(33.050,176.900)GND!
2089(33.050,47.300)
...
...
2.Lvs中Input和Output的信息:
该部分主要记录calibre中的一些信息,例如layout,netlist,reportfile,运行时间以及calibre的版本信息。
Example5:
REPORTFILENAME:
lvs.rep
LAYOUTNAME:
../gds/lan_yang_dig_lvs_test3.gds
SOURCENAME:
LANYANG_FULLCHIP_V11_20060427.CIR('Lan_Yang_Dig')
RULEFILE:
xc06_calibre_lvs_302.rul
RULEFILETITLE:
XC06CalibreDRC/LVSFile
LVSMODE:
Mask
RULEFILENAME:
xc06_calibre_lvs_302.rul
CREATIONTIME:
ThuMay1815:
44:
022006
CURRENTDIRECTORY:
/direct/cd-home/gene.huang/tuna/lvs
USERNAME:
gene.huang
CALIBREVERSION:
v2005.2_6.10WedJul1317:
47:
45PDT2005
3.Lvs是否匹配最明显的标志:
NOTCOMPARED,CORRECT和INCORRECT
∙NOTCOMPARED(参见lvs_test1.rep):
lvs没有完成,会有Error信息出现在reportfile的开头,提示为什么lvs没有进行,一般是lvs文件中input的信息不对;
Example6:
##########################
####
##NOTCOMPARED#
####
##########################
∙CORRECT:
layout与netlist匹配;
Example7:
####################__
###**
###CORRECT#|
####\___/
####################
∙INCORRECT(参见lvs_test5.rep):
layout与netlist不匹配,有error信息提示,表示具体不匹配的原因;
Example8:
#######################
####
##INCORRECT#
####
#######################
Error:
Differentnumbersofnets(seebelow).
Error:
Connectivityerrors.
4.OBJECTS信息:
∙INITIALNUMBERSOFOBJECTS:
表示转换前layout和netlist中的net数目,器件类型和器件数目。
这部分不用太留意,因为最终的器件数目会在转换后有所变化。
根据lvscommandfile中的某些设置,某些器件可以合并,或被剔除:
Example9(参见:
lvs_test5.rep):
INITIALNUMBERSOFOBJECTS
--------------------------
LayoutSourceComponentType
--------------------------
Ports:
9595
Nets:
217329901*
Instances:
95299489*MN(4pins)
95439489*MP(4pins)
66R(3pins)
66D(2pins)
------------
TotalInst:
1908418990
∙NUMBERSOFOBJECTSAFTERTRANSFORMATION:
表示转换后layout和netlist中的net数目,器件类型和数目。
某些器件被合并或者剔除,从例子中可以看到,netlist(Source)比Layout中多一个net,器件数目则保持一致;
Example10(参见:
lvs_test5.rep):
NUMBERSOFOBJECTSAFTERTRANSFORMATION
---------------------------------------
LayoutSourceComponentType
--------------------------
Ports:
9595
Nets:
99009901*
Instances:
94729472MN(4pins)
94699469MP(4pins)
66R(3pins)
66D(2pins)
------------
TotalInst:
1895318953
5.Report中最重要的部分――INCORRECTNETS部分:
Report中,该部分分为左右两列,左边部分表示layout中关于某个net的信息,右边表示netlist中该net的信息。
∙Open(断路):
layout中出现两个net的信息,而netlist中只出现一个net的信息。
这是典型的断路错误。
解决办法:
根据net的坐标到layout中找到两个net断开的地方。
Example11(参见:
lvs_test5.rep):
***********************************************************
INCORRECTNETS
DISC#LAYOUTNAMESOURCENAME
***********************************************************
1Netvdd!
(32.800,839.700)VDD!
2089(62.400,35.250)
-------------------------------------
---Devicesonlayoutnet2089(62.400,35.250)---
19074(307.950,38.300)R(RDIFFP3)u_clock_divider/u37/RR0R(RDIFFP3)
pos:
567(306.950,38.300)neg:
u_clock_divider/N2
neg:
2089(62.400,35.250)pos:
VDD!
sub:
2089(62.400,35.250)sub:
VDD!
…
…
Example11中,layout的vdd!
与net2089是两个不同的net,但是在netlist中这两点都对应VDD!
;后面的具体信息是这两个net上对应的device的信息,在layout中这个电阻的neg和sub两端接到了net2089,但是在netlist中应该是接到VDD!
;
Example12(参见:
lvs_test6.rep):
*******************************************************************
INCORRECTNETS
DISC#LAYOUTNAMESOURCENAME
*******************************************************************
1Net54(43.600,1162.700)u_clock_divider/CLK16_FROM32K
1543(50.700,1206.450)
--------------------------------------------------
Example12中,同样是一个open的错误类型,layout中的net54和net1543都对应netlist中的同一个net;
∙Layout与netlist不对应的net:
layout中某些net在netlist中找不到对应的net。
解决办法:
根据含有该net的device的坐标找到对应的layout,对照schematic查找错误的地方;
Example13(参见:
lvs_test7.rep):
1Net510(876.200,1138.300)**nosimilarnet**
---Devicesonlayoutnet510(876.200,1138.300)---
19070(908.200,1199.300)MP(pmos4)osc32k__L1_I0/in_2/MMMP1/M1MP(pmos4)
G:
5735(904.500,1202.300)g:
osc32k__L1_I0/NETZ9
S:
vdd!
(32.800,839.700)s:
VDD!
B:
vdd!
(32.800,839.700)b:
VDD!
D:
510(876.200,1138.300)**nosimilarnet**
**nosimilarnet**d:
osc32k__L1_N0
Example13中,layout中的net510在netlist中找不到对应的net;在layout中的一个pmos4的Drain端为net510,对应的netlist中的该pmos4的Drain端为osc32k__L1_N0,判断layout中该net连接有错误,到layout中查找该pmos4的Drain的坐标510(876.200,1138.300)再对照schematic找连接错误的地方;
Example14(参见:
lvs_test7.rep):
2**nosimilarnet**u_lan_yang_dig_core/U_ADC_CONTROL_ADC_COUNTER_11_
---Devicesonsourcenetu_lan_yang_dig_core/U_ADC_CONTROL_ADC_COUNTER_11_--
18798(887.100,1203.300)MP(pmos4)u_lan_yang_.../r384_u1_1_11/in_3/MMMP1/M1MP(pmos4)
S:
vdd!
(32.800,839.700)s:
VDD!
D:
5639(887.700,1203.300)d:
u_lan_yang_dig_core/r384_u1_1_11/NETZ43
B:
vdd!
(32.800,839.700)b:
VDD!
G:
510(876.200,1138.300)**nosimilarnet**
**nosimilarnet**g:
u_lan_yang_dig_core/U_ADC_CONTROL_ADC_COUNTER_11_
Example14中,netlist中的u_lan_yang_dig_core/U_ADC_CONTROL_ADC_COUNTER_11_在layout中找不到对应的net,但是netlist中与该net有关联的device在layout中有对应,从中找到layout中该device的坐标,查找其Gate端的连线是否正确;
6.INCORRECTPORTS部分:
这部分描述layout中和netlist中不对应的input和output的PORT名称。
Example15(参见:
lvs_test8.rep):
*****************************************************************************************
INCORRECTPORTS
DISC#LAYOUTNAMESOURCENAME
*****************************************************************************************
6**missingport**COMPonnet:
COMP
Example15中,netlist中出现了COMP这个端口,但是在layout中没有标示出来。
7.INCORRECTINSTANCES部分:
描述layout中和netlist中不对应的device。
Example16(参见:
lvs_test8.rep):
*****************************************************************************************
INCORRECTINSTANCES
DISC#LAYOUTNAMESOURCENAME
*****************************************************************************************
7**missinginstance**MPD2/M1MP(pmos4)
**nosimilarnet**g:
PDN
**VD33(53.750,42.450)**s:
VD33
**5(212.650,56.500)**d:
COMPN
**VD33(53.750,42.450)**b:
VD33
Example16中,netlist中出现在block‘MPD2’中的pmos4-M1在layout中找不到。
找不到的原因大概是:
layout中没有画;被忽略掉;layout画得有问题,没有被lvs认出;layout中连线错误,这个device与其它device合并了。
8.PROPERTYERRORS部分:
主要描述layout和netlist中对应的device的参数错误,例如length、width、area等。
Example17(参见:
lvs_test8.rep):
*****************************************************************************************
PROPERTYERRORS
DISC#LAYOUTSOURCEERROR
*****************************************************************************************
836(212.050,56.500)MP(pmos4)MPD1/M1MP(pmos4)
w:
8uw:
4u100%
Example17中,对应的这个pmos4在layout中的width是8um,而在net