LVS介绍
在跑lvs时,最想看到的就是上边这张笑脸了。LVS可以视为物理版图(GDS)和原理图(Schematic)的比对规则文件(LVS)完成的一致性比较。所以LVS的全称即是:Layout Versus Schematic。
版图(Layout)是指:工具(Calibre)对二进制文件(GDS)进行到spice网表的转化。
原理图(Schematic)是指:工具(v2lvs)将verilog进行spice的网表转化。
规则文件(LVS):是对GDS的操作,以及LVS比对是的常规配置。
LVS的流程分为:
- v2lvs,工具(v2lvs)将verilog网表转化成cdl;
- 工具(Calibre)对二进制文件(GDS)进行到spice网表的转化;
- Spice netlist与source netlist进行对比。
LVS遇到问题
1、在lvs的比对中hcell是如何选取的?
首先我们要知道hcell是什么?hcell是用来声明版图的哪些模块和电路的哪些模块是一一对应关系,主要用于LVS做层次化检查。就是一个黑盒子,顶层只要你的port信息,内部的不管你如何,只要保证和Port相关的没有问题就好了。hcell即是设计中用到的所有libcell,可以用“dbGet head.libCells.name”得到。
2、当lvs的结果显示nets对应不上时,如何解决?
首先考确认对比的cdl和spice 网表是不是同一版数据。如果对不上的nets不是所有的线,那我们可以考虑是不是因为版图和原理图的cell是不是存在大小写的问题。如果是后者的原因修改lvs rule文件,去找CASE_SENSITIVITY或者SOURCE CASE YES字样设置。
3、当source缺少PGpin时,如何解?
可以使用命令“createPGpin $pg_name”在innovus中手动创建pgpin,然后重新保存网表文件进行lvs即可。
4、一个忠告:
在解决任何问题时,都要先把能解决的问题先解了,保证问题的干净度,避免问题之间的互相干扰。以后出现lvs的错可能都会更新在这篇文章。