原创 Calibre经典教程和看LVS的错误报告的方法

2009-7-7 22:08 7566 4 5 分类: FPGA/CPLD

Calibre经典教程和看LVS的错误报告的方法



看calibre lvs 错误报告的方法


1. Report开头部分的WarningError信息(因为出现WarningError的情况很多,这里主要举一些常见的例子):


 


·        Error部分:只要report的开头部分有Error信息出现,lvs就肯定没有运行成功。Error一般由lvs命令文件或netlist文件中的参数定义引起,这时候需要修改lvs文件或者netlistError信息都很直观,比较容易查出产生Error的地方。


 


o       Example1 (参见文件“lvs_test1.rep) ”lan_yang_dig.cir”21912192行调用到了两个标准单元”INLX1””LOGICOL”,但是netlist中找不到对这两个标准单元的描述。这个错误需要检查netlist,添加上对这些标准单元的描述部分。通常标准单元的netlistfoundry提供,是一个单独的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_1Example2_2;很多warning是不能忽略的,最常见的是shortsoft connect,例如下面的Example3, Example4_1, Example4_2


 


o       Example2_1 (参见文件“lvs_test2.rep) :这个warning是因为calibre不认netlist中的参数*.MEGA,这时需要在netlist中注释掉这个参数。(”*.MEGA”只在dracula中起作用,用于区分netlist中单位mM的不同,有了这个参数以后,m代表千分之一,M代表百万,如果没有这个参数,则mM都代表千分之一);


 


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中两条标记了labelnet短路时,或者不同的label标记到了同一net上时,出现这种warninglvs中会忽略掉其中一个label,将这个net定义为另一个label的名字,例如这个例子中这个net被定义为”osc32k”,忽略掉了”tclk_control”。这两个warning一般会同时出现,解决办法是通过坐标和labellayout中查找short的地方,或者是label移位的地方。这个warning会引起layoutnetlist出现不同数目的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 connectwarning,这个例子中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的这个netlayout上没有标记label       ”2089”calibrelayout中提取并随机命名的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)                                 


...


...


 


 


2LvsInputOutput的信息:


       该部分主要记录calibre中的一些信息,例如layoutnetlistreport 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


 


 


3Lvs是否匹配最明显的标志:NOT COMPARED, CORRECT INCORRECT


 


·        NOT COMPARED(参见lvs_test1.rep: lvs没有完成,会有Error信息出现在report file的开头,提示为什么lvs没有进行,一般是lvs文件中input的信息不对;


Example6


                 #   #         ######################## 


                  # #          #                      # 


                   #           #     NOT COMPARED     # 


                  # #          #                      # 


                 #   #         ######################## 


 


 


·        CORRECTlayoutnetlist匹配;


Example7


                         #       ###################       _   _  


                        #        #                 #       *   *  


                   #   #         #     CORRECT     #         |    


                    # #          #                 #       \___/ 


                     #           ###################              


 


 


·        INCORRECT(参见lvs_test5.rep: layoutnetlist不匹配,有error信息提示,表示具体不匹配的原因;


Example8


                  #   #         ##################### 


                   # #          #                   # 


                    #           #     INCORRECT     # 


                   # #          #                   # 


                  #   #         ##################### 


 


 


            Error:    Different numbers of nets (see below).


   Error:    Connectivity errors.


 


 


4OBJECTS信息:


 


·        INITIAL NUMBERS OF OBJECTS表示转换前layoutnetlist中的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表示转换后layoutnetlist中的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


5Report中最重要的部分――INCORRECT NETS部分:

       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中,layoutvdd!net 2089是两个不同的net,但是在netlist中这两点都对应VDD!;后面的具体信息是这两个net上对应的device的信息,在layout中这个电阻的negsub两端接到了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 54net 1543都对应netlist中的同一个net


 


 


·        Layoutnetlist不对应的netlayout中某些netnetlist中找不到对应的net。解决办法:根据含有该netdevice的坐标找到对应的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 510netlist中找不到对应的net;在layout中的一个pmos4Drain端为net 510,对应的netlist中的该pmos4Drain端为osc32k__L1_N0,判断layout中该net连接有错误,到layout中查找该pmos4Drain的坐标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有关联的devicelayout中有对应,从中找到layout中该device的坐标,查找其Gate端的连线是否正确;


 


6.             INCORRECT PORTS 部分:这部分描述layout中和netlist中不对应的inputoutputPORT名称。


 


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’中的pmos4M1layout中找不到。找不到的原因大概是:layout中没有画;被忽略掉;layout画得有问题,没有被lvs认出;layout中连线错误,这个device与其它device合并了。


 


8.        PROPERTY ERRORS部分: 主要描述layoutnetlist中对应的device的参数错误,例如lengthwidtharea等。


 


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中,对应的这个pmos4layout中的width8um,而在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部分:layoutnetlist中匹配情况的统计,以及各种不匹配的信息;


 


       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中,前面的列表是对整个layoutnetlist中匹配情况的一个统计;后面的描述表示有多少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,可能是由于floatingdummy 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

文章评论1条评论)

登录后参与讨论

billzhu_345737527 2012-3-31 18:34

很好,解决了我的问题啦~
相关推荐阅读
lamsam 2009-10-12 11:47
静态时序分析技术提高ASIC时序性能
静态时序分析技术提高ASIC时序性能  类别:技术文章来源:未知作者:Dean Bronnenberg关键字:时序加入日期:2002-3-6今天阅读:2总共阅读:2677 〖文章转载或出处〗≡中国电子...
lamsam 2009-10-10 16:55
cache的相关知识
[精华] cache的相关知识http://www.chinaunix.net 作者:ohwww  发表于:2005-12-14 11:55:26【发表评论】【查看原文】【服务器及硬件技术讨论区】【关...
lamsam 2009-10-09 10:07
FPGA跨时钟处理小结[转]
最近逛各个论坛加上以前学习FPGA和数字电路设计的书,跨时钟处理大概有以下三种,第一种是用来处理一位数据或信号的跨时钟处理,用D触发器而不用组合电路延时的方法;第二种是总线握手方式,即当信号从A电路传...
lamsam 2009-07-09 17:46
特许.35流片总结
      辛苦了1个多月,终于把后端做通了,但是还存在很多问题,这次由于时间原因,只能很不严谨的直接拿去流片,甚至LVS都没有来得及做完,没办法,经验太少了。     首先,特许0.35工艺的库实在...
lamsam 2009-07-07 22:48
LVS实例
熟悉netlist 文件例:*******MUX2 NETLIST *********.BIPOLAR*.RESI=1K.INCLUDE ./inv.cir.PARAM.GLOBAL VSS:G VD...
广告
我要评论
1
4
1
2
3
4
5
6
7
8
9
0
广告
关闭 热点推荐上一条 /5 下一条