Calibre LVS 抽取Netlist时忽略没有Pin的Cell
最近做LVS的时候遇到的问题:Calibre从GDS中提取Spice网表的时候会忽略没有pin的cell。我们用的PDK没有提供IO和Std Cell的内部GDS,只有Pin和Blockage做PR用。有几个IO cell在我们的库里没有任何pin,比如corner cell和io power cell。这些cell肯定已经摆放并且在GDS中可见,但是因为没有pin所以基本上就是一个空的box,也没有和其他任何object连接。Calibre从这个GDS中抽取网表的时候好像会自动忽略这些cell,导致如下的LVS错误:
- Error:Different numbers of instances.
- LayoutSourceComponent Type
- --------------------------
- 0144*PADIZ40 (0 pins)
- 0188*PADOZ40 (0 pins)
- 04*PCORNERDGZ (0 pins)
请问这种问题应该如何解决?我可以选择让Source的网表不包含这些cell,这样应该就能LVS通过。但是为了验证的完整性我还是希望layout的网表也包含这些cell。
corner和filler一样,都是一些layer层,没有任何器件也没有任何pin,calibre怎么会认出这些东西呢?除非你自己在这些cell上做一些标识层,改写lvs rule,让calibre能认出这些cell。
corner cell/bondpad没有器件的, source里面应该不包含的, 本来就是这么干的
不是所有cell 都在source里面的 lvs只能比较device, 不包含device的东西全ignore的,
多谢两位!我把这些没有device的cell从source里去除了。
你这个问题以前有人在mentor社区里问过,以下时mentor方面给的解答:
Hi,
You should only use LAYOUT CASE or SOURCE CASE YES if netlist object names that differ *only by text case* are, in fact, different objects. So, for example, if vdd and VDD are truly different nets, then you have to treat that netlist with case-sensitive parsing by setting the proper command to YES. If you have no objects that are logically different based on text case alone, then both of the preceding commands should be set to NO, which is the default.
Case-sensitive comparison of layout to source is a different matter. Calibre doesn't compare layout to source in a case-sensitive manner unless you say LVS COMPARE CASE YES. If that is set, then vdd in layout will not match VDD in the source. If NO (default) is set, then they will match.
Do this:
grep -i "lvs compare case" lvs_report
If the setting is YES, you may want to set that to NO. If it already is NO, then it sounds like your nets that differ by case are logically different nets.
For a complete discussion of this topic, refer to "Case-Sensitive Handling of Netlists" in the Calibre Verification User's Manual.
dan
这么简单的问题 还要去mentor社区问 ......