热度 23| |
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