看calibre lvs 错误报告的方法
1. Report开头部分的Warning和Error信息(因为出现Warning和Error的情况很多,这里主要举一些常见的例子):
· Error部分:只要report的开头部分有Error信息出现,lvs就肯定没有运行成功。Error一般由lvs命令文件或netlist文件中的参数定义引起,这时候需要修改lvs文件或者netlist。Error信息都很直观,比较容易查出产生Error的地方。
o Example1 (参见文件“lvs_test1.rep”) : 在”lan_yang_dig.cir”的2191和2192行调用到了两个标准单元”INLX1”和”LOGICOL”,但是netlist中找不到对这两个标准单元的描述。这个错误需要检查netlist,添加上对这些标准单元的描述部分。通常标准单元的netlist由foundry提供,是一个单独的cdl或者spice文件;
Example1:
LVS Netlist Compiler - Errors and Warnings for "LANYANG_FULLCHIP_V11_20060427.CIR"
-------------------------------------------------------------
Error: No matching ".SUBCKT" statement for "INLX1" at line 2191 in file "lan_yang_dig.cir"
Error: No matching ".SUBCKT" statement for "LOGIC0L" at line 2192 in file "lan_yang_dig.cir"
.........
.........
· Warning部分:warning不会影响lvs的运行,但是经常会导致结果的不正确。很一些warning可以忽略掉,这些常常是netlist中或者lvs命令文件中一些多余部分引起的,例如下面的Example2_1和Example2_2;很多warning是不能忽略的,最常见的是short和soft connect,例如下面的Example3, Example4_1, Example4_2;
o Example2_1 (参见文件“lvs_test2.rep”) :这个warning是因为calibre不认netlist中的参数”*.MEGA” ,这时需要在netlist中注释掉这个参数。(”*.MEGA”只在dracula中起作用,用于区分netlist中单位m和M的不同,有了这个参数以后,m代表千分之一,M代表百万,如果没有这个参数,则m和M都代表千分之一);
Example2_1:
.........
Warning: *.MEGA at line 86 in file "/home/taurus/XFAB/cdl/xc06m3/core/xc06a2dl.cdl" not applied to earlier global-scope .PARAM statements
Warning: *.MEGA at line 148 in file "/home/taurus/XFAB/cdl/xc06m3/core/xc06a2dl.cdl" not applied to earlier global-scope .PARAM statements
.........
o Example2_2 (参见文件“lvs_test2.rep”) :这个warning是由于在netlist中重复定义了”NAND4”和”NOR2”这两个标准单元引起,可以修改netlist解决;如果能确定重复定义的部分是完全相同的,这个warning可以忽略掉;
Example2_2:
.........
Warning: Duplicate subckt definition "NAND4" at line 1642 in file "/home/taurus/XFAB/cdl/xc06m3/core/xc06a2dl.cdl"
Warning: Duplicate subckt definition "NOR2" at line 1671 in file "/home/taurus/XFAB/cdl/xc06m3/core/xc06a2dl.cdl"
.........
o Example3 (参见文件“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: Direct connection between different ports:
Port names: osc32k tclk_control
WARNING: Short circuit - Different names on one net:
Net Id: 513
(1) name "osc32k" at location (944.4,1199.6) on layer 39 "metal3"
(2) name "tclk_control" at location (944.4,1228.4) on layer 39 "metal3"
The name "osc32k" was assigned to the net.
.........
o Example4_1 (参见文件“lvs_test4_1.rep”) :如果在P substrate上出现没有通过金属直接连接的P substrate tie,那么这些P substrate tie会引起soft connect的warning,这个例子中net “chg_out_p”连接到了某个P substrate tie,与gnd!通过P substrate短路到了一起,net “chg_out_p”被忽略掉。解决办法是找到net “chg_out_p”与P substrate短路的地方;
Example4_1:
.........
WARNING: Stamping conflict in SCONNECT - Multiple source nets stamp one target net.
Net gnd! is selected for stamping.
Rejected nets: chg_out_p
.........
o Example4_2 (参见文件“lvs_test4_2.rep”) :这个例子和上一个例子基本一样,不同的是和gnd! sconnect的这个net在layout上没有标记label。 ”2089”是calibre从layout中提取并随机命名的net。解决办法是在report的具体信息中找到net 2089的坐标,再在layout中查找该点的net是如何通过P substrate短路到gnd!;
Example4_2:
.........
WARNING: Stamping conflict in SCONNECT - Multiple source nets stamp one target net.
Net gnd! is selected for stamping.
Rejected nets: 2089
...
...
...
1 Net gnd!(33.050,176.900) GND!
2089(33.050,47.300)
...
...
2.Lvs中Input和Output的信息:
该部分主要记录calibre中的一些信息,例如layout,netlist,report file,运行时间以及calibre的版本信息。
Example5:
REPORT FILE NAME: lvs.rep
LAYOUT NAME: ../gds/lan_yang_dig_lvs_test3.gds
SOURCE NAME: LANYANG_FULLCHIP_V11_20060427.CIR ('Lan_Yang_Dig')
RULE FILE: xc06_calibre_lvs_302.rul
RULE FILE TITLE: XC06 Calibre DRC/LVS File
LVS MODE: Mask
RULE FILE NAME: xc06_calibre_lvs_302.rul
CREATION TIME: Thu May 18 15:44:02 2006
CURRENT DIRECTORY: /direct/cd-home/gene.huang/tuna/lvs
USER NAME: gene.huang
CALIBRE VERSION: v2005.2_6.10 Wed Jul 13 17:47:45 PDT 2005
3. Lvs是否匹配最明显的标志:NOT COMPARED, CORRECT 和 INCORRECT
· NOT COMPARED(参见lvs_test1.rep): lvs没有完成,会有Error信息出现在report file的开头,提示为什么lvs没有进行,一般是lvs文件中input的信息不对;
Example6:
# # ########################
# # # #
# # NOT COMPARED #
# # # #
# # ########################
· CORRECT:layout与netlist匹配;
Example7:
# ################### _ _
# # # * *
# # # CORRECT # |
# # # # \___/
# ###################
· INCORRECT(参见lvs_test5.rep): layout与netlist不匹配,有error信息提示,表示具体不匹配的原因;
Example8:
# # #####################
# # # #
# # INCORRECT #
# # # #
# # #####################
Error: Different numbers of nets (see below).
Error: Connectivity errors.
4.OBJECTS信息:
· INITIAL NUMBERS OF OBJECTS: 表示转换前layout和netlist中的net数目,器件类型和器件数目。这部分不用太留意,因为最终的器件数目会在转换后有所变化。根据lvs command file中的某些设置,某些器件可以合并,或被剔除:
Example9(参见:lvs_test5.rep):
INITIAL NUMBERS OF OBJECTS
--------------------------
Layout Source Component Type
------ ------ --------------
Ports: 95 95
Nets: 21732 9901 *
Instances: 9529 9489 * MN (4 pins)
9543 9489 * MP (4 pins)
6 6 R (3 pins)
6 6 D (2 pins)
------ ------
Total Inst: 19084 18990
· NUMBERS OF OBJECTS AFTER TRANSFORMATION: 表示转换后layout和netlist中的net数目,器件类型和数目。某些器件被合并或者剔除,从例子中可以看到,netlist(Source)比Layout中多一个net,器件数目则保持一致;
Example10(参见:lvs_test5.rep):
NUMBERS OF OBJECTS AFTER TRANSFORMATION
---------------------------------------
Layout Source Component Type
------ ------ --------------
Ports: 95 95
Nets: 9900 9901 *
Instances: 9472 9472 MN (4 pins)
9469 9469 MP (4 pins)
6 6 R (3 pins)
6 6 D (2 pins)
------ ------
Total Inst: 18953 18953
Report中,该部分分为左右两列,左边部分表示layout中关于某个net的信息,右边表示netlist中该net的信息。
· Open(断路):layout中出现两个net的信息,而netlist中只出现一个net的信息。这是典型的断路错误。解决办法:根据net的坐标到layout中找到两个net断开的地方。
Example11(参见:lvs_test5.rep):
***********************************************************
INCORRECT NETS
DISC# LAYOUT NAME SOURCE NAME
***********************************************************
1 Net vdd!(32.800,839.700) VDD!
2089(62.400,35.250)
-------------------- -----------------
--- Devices on layout net 2089(62.400,35.250) ---
19074(307.950,38.300) R(RDIFFP3) u_clock_divider/u37/RR0 R(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!与net 2089是两个不同的net,但是在netlist中这两点都对应VDD!;后面的具体信息是这两个net上对应的device的信息,在layout中这个电阻的neg和sub两端接到了net 2089,但是在netlist中应该是接到VDD!;
Example12(参见:lvs_test6.rep):
*******************************************************************
INCORRECT NETS
DISC# LAYOUT NAME SOURCE NAME
*******************************************************************
1 Net 54(43.600,1162.700) u_clock_divider/CLK16_FROM32K
1543(50.700,1206.450)
------------------------ --------------------------
Example12中,同样是一个open的错误类型,layout中的net 54和net 1543都对应netlist中的同一个net;
· Layout与netlist不对应的net:layout中某些net在netlist中找不到对应的net。解决办法:根据含有该net的device的坐标找到对应的layout,对照schematic查找错误的地方;
Example13(参见:lvs_test7.rep):
1 Net 510(876.200,1138.300) ** no similar net **
--- Devices on layout net 510(876.200,1138.300) ---
19070(908.200,1199.300) MP(pmos4) osc32k__L1_I0/in_2/MMMP1/M1 MP(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) ** no similar net **
** no similar net ** d: osc32k__L1_N0
Example13中,layout中的net 510在netlist中找不到对应的net;在layout中的一个pmos4的Drain端为net 510,对应的netlist中的该pmos4的Drain端为osc32k__L1_N0,判断layout中该net连接有错误,到layout中查找该pmos4的Drain的坐标510 (876.200,1138.300)再对照schematic找连接错误的地方;
Example14(参见:lvs_test7.rep):
2 ** no similar net ** u_lan_yang_dig_core/U_ADC_CONTROL_ADC_COUNTER_11_
--- Devices on source net u_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/M1 MP(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) ** no similar net **
** no similar net ** 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. INCORRECT PORTS 部分:这部分描述layout中和netlist中不对应的input和output的PORT名称。
Example15(参见:lvs_test8.rep):
*****************************************************************************************
INCORRECT PORTS
DISC# LAYOUT NAME SOURCE NAME
*****************************************************************************************
6 ** missing port ** COMP on net: COMP
Example15中,netlist中出现了COMP这个端口,但是在layout中没有标示出来。
7. INCORRECT INSTANCES 部分:描述layout中和netlist中不对应的device。
Example16(参见:lvs_test8.rep):
*****************************************************************************************
INCORRECT INSTANCES
DISC# LAYOUT NAME SOURCE NAME
*****************************************************************************************
7 ** missing instance ** MPD2/M1 MP(pmos4)
** no similar net ** 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. PROPERTY ERRORS部分: 主要描述layout和netlist中对应的device的参数错误,例如length、width、area等。
Example17(参见:lvs_test8.rep):
*****************************************************************************************
PROPERTY ERRORS
DISC# LAYOUT SOURCE ERROR
*****************************************************************************************
8 36(212.050,56.500) MP(pmos4) MPD1/M1 MP(pmos4)
w: 8 u w: 4 u 100%
Example17中,对应的这个pmos4在layout中的width是8um,而在netlist中是4um。
9. LVS PARAMETERS部分: 这部分描述的是lvs command file中定义的各种参数设置,可以忽略;
Example18:
**********************************************************************************
LVS PARAMETERS
**********************************************************************************
o LVS Setup:
LVS COMPONENT TYPE PROPERTY LVS_TYPE
LVS COMPONENT SUBTYPE PROPERTY LVS_SUBTYPE
LVS PIN NAME PROPERTY PHY_PIN PIN
LVS POWER NAME "VDD" "VDDA" "VDD3" "VDD5O" "VDD5R" "VDD3O" "VDD3R" "VDD!" "vdd!" "RAMVDD"
LVS GROUND NAME "GND" "GNDA" "VSS" "VSSA" "GND!" "gnd!" "RAMGND"
LVS RECOGNIZE GATES NONE
LVS IGNORE PORTS NO
LVS CHECK PORT NAMES NO
LVS BUILTIN DEVICE PIN SWAP YES
LVS ALL CAPACITOR PINS SWAPPABLE NO
LVS DISCARD PINS BY DEVICE NO
...
...
...
10. INFORMATION AND WARNINGS部分:layout和netlist中匹配情况的统计,以及各种不匹配的信息;
Example19(参见:lvs_test8.rep):
*******************************************************************************
INFORMATION AND WARNINGS
*******************************************************************************
Matched Matched Unmatched Unmatched Component
Layout Source Layout Source Type
------- ------- --------- --------- ---------
Ports: 8 8 0 1
Nets: 19 19 1 3
Instances: 14 14 1 1 MN(nmos4)
6 6 0 0 MN(nmosi)
13 13 0 1 MP(pmos4)
------- ------- --------- ---------
Total Inst: 33 33 1 2
o Statistics:
65 isolated layout nets were deleted.
19 layout mos transistors were reduced to 5.
14 mos transistors were deleted by parallel reduction.
14 source mos transistors were reduced to 3.
11 mos transistors were deleted by parallel reduction.
Example19中,前面的列表是对整个layout和netlist中匹配情况的一个统计;后面的描述表示有多少device被合并或者剔除。
Example20(参见:lvs_test7.rep):
o Isolated Layout Nets:
(Layout nets which are not connected to any instances or ports).
18(169.800,39.400) 19(169.800,151.900) 23(15.400,42.050) 24(15.400,120.850) 25(31.400,38.450)
26(31.400,114.250) 27(45.000,72.050) 28(45.000,120.850) 29(51.150,36.750) 30(51.150,163.900)
31(51.450,58.050) 32(51.450,150.850) 33(69.400,54.150) 34(69.400,111.850) 35(106.200,43.050)
36(106.200,120.850) 37(117.300,38.450) 38(117.300,114.250) 39(144.300,42.050)
40(144.300,120.850) 41(155.400,38.450) 42(155.400,114.250) 43(169.800,39.400)
44(169.800,151.900) 45(171.200,84.350) 46(171.200,118.550) 47(176.600,49.200)
48(176.600,161.700) 49(183.550,46.200) 50(183.550,161.700) 51(183.600,73.600)
52(183.600,119.250) 53(210.550,46.900) 54(210.550,61.700) 55(218.950,46.900)
56(223.750,46.900) 57(0.400,27.050) 58(12.800,39.450) 59(12.800,115.250) 60(42.400,69.450)
61(42.400,115.250) 62(48.650,52.350) 63(48.650,148.250) 64(53.750,42.450) 65(53.750,166.500)
66(72.000,56.750) 67(72.000,116.150) 68(91.200,27.050) 69(103.600,39.450) 70(103.600,115.250)
Example20中,列出在layout找到的孤立的net,这些net没有连接到任何的device上,是一些悬空的net,可能是由于floating的dummy metal引起,可以忽略。
Example21(参见:lvs_test7.rep):
o Passthrough Layout Nets And Their Ports:
(Layout nets which are connected only to ports).
zener_array[1](943.800,997.400) (port: zener_array[1]),
zener_array[0](943.800,1055.000) (port: zener_array[0]),
Example21中,表示layout中有两个net没有连接到任何device,只接到了两个port上
用户377235 2012-3-31 18:34