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/xc06a2...