logo资料库

看calibrelvs错误报告的方法.docx

第1页 / 共14页
第2页 / 共14页
第3页 / 共14页
第4页 / 共14页
第5页 / 共14页
第6页 / 共14页
第7页 / 共14页
第8页 / 共14页
资料共14页,剩余部分请下载后查看
转自 http://bbs.ednchina.com/view_comments.jspa?entry_id=241794 看 calibrelvs 错误报告的方法 1.Report 开头部分的 Warning 和 Error 信息(因为出现 Warning 和 Error 的情 况很多,这里主要举一些常见的例子): Error 部分:只要 report 的开头部分有 Error 信息出现,lvs 就肯定没有运 行成功。Error 一般由 lvs 命令文件或 netlist 文件中的参数定义引起, 这时候需要修改 lvs 文件或者 netlist。Error 信息都很直观,比较容易 查出产生 Error 的地方。 Example1(参见文件“lvs_test1.rep”):在”lan_yang_dig.cir”的 2191 和 2192 行调用到了两个标准单元”INLX1”和”LOGICOL”,但是 netlist 中找不到对这两个标准单元的描述。这个错误需要检查 netlist,添加上对这些标准单元的描述部分。通常标准单元的 netlist 由 foundry 提供,是一个单独的 cdl 或者 spice 文件; Example1: LVSNetlistCompiler-ErrorsandWarningsfor"LANYANG_FULLCHIP_V11_20060427.CI R" ------------------------------------------------------------- Error:Nomatching".SUBCKT"statementfor"INLX1"atline2191infile"lan_yang_di g.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; Example2_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 ......... Example2_2(参见文件“lvs_test2.rep”):这个 warning 是由于在 netlist 中重复定义了”NAND4”和”NOR2”这两个标准单元引起,可以修改 netlist 解决;如果能确定重复定义的部分是完全相同的,这个 warning 可以忽略掉; Example2_2: ......... Warning:Duplicatesubcktdefinition"NAND4"atline1642infile"/home/taurus/XF AB/cdl/xc06m3/core/xc06a2dl.cdl" Warning:Duplicatesubcktdefinition"NOR2"atline1671infile"/home/taurus/XFA B/cdl/xc06m3/core/xc06a2dl.cdl" ......... 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: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. ......... Example4_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 ......... Example4_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 查找错误的地方;
分享到:
收藏