How to read Calibre lvs report file
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) layer 39 "metal3" (2) name "tclk_control" at location (944