首先我们拿到了Lab的.tar.gz文件
对于.tar.gz文件我们需要使用命令“tar -zxvf”进行解压
进入lab6a文件,发现有如下的内容:
Lab资源有了,那就开始吧:
(一)calibredrv 打开.gds文件
(二)Verification--Run nmLVS
(三)Rules
选择Rules文件
然后选择运行LVS的路径(calibre-signoff-lvs)
(四)Inputs
总的Inputs设置如下:
以此进行解析:
<layout>
选择Hierarchical mode,Layout从实图里面去抽取,所以勾选-Export from layout viewer
<netlist>
然后netlist选择lab提供的已经通过v2lvs的.spi文件
同时要保证Top Cell的名字,点击进去看一下Lab OA 里面有没有lab6a这个名字,如下图有这个名字。
<H-Cells>
此处不加,在后续Lab6b的Lab中添加。此处需要了解的是,如何在没有H-Cells文件的情况下,通过H-Cells Analysis自动的生成该文件。通过H-Cells Analysis自动生成H-Cells文件-CSDN博客
(五)LVS Options
LVS Options ----(Setup-----LVS Options)
其中Supply就选择默认的
reports里面的LVS Reports Options选择S,即报告如软链接
因为此lab没有short的问题,所以此处的Run short isolation勾不勾选都可以,但是正常的做LVS的过程中是一定要勾选的,此处仅是因为知道此lab没有short的错误,所以不勾选
(六)Run Control
想运行的快一点,就选择Multi-Threaded,多线程进行
(七)Run LVS
完成以上步骤后就可以开始跑LVS了
结果如下:
我们看到是一个笑脸的状态,所以LVS是通过的
--------------------------------------------------------------------------------------------------------------------------------
(八)加入short错误
全是正确的情况对学习并没有参考价值,仅仅是提供了一套流程的方法而已,我们自己加一点错误,看看工具能不能发现,因为我们把netlist的SPICE网表当作了golden netlist。所以我们在calibredrv上改变layout的相关信息。
改变前:
加入short后
因为我们在layout中选择的是(Export from layout viewer),所以不用保存layout。直接运行LVS
Run LVS的结果:
LVS报错
去定位错误,看是否定位正确;
定位正确。
---------------------------------------------------------------------------------------------------------------------------------以上内容有一个需要注意的点:
Hierarchical mode下,工具会从GDS里面抽取一个SPICE网表,如下图,名为lab6a.sp。
然后再netlist里面也会有一个SPICE网表,也就是Spice Files里面的东西。这两者的名字一定不能冲突。否则从layout里面抽取的SPICE网表可能被当作netlist的SPICE网表进行LVS。这样的情况下,相当于是merge后的layout和自己比,那么结果当然一定是通过的,但是这样也失去了做LVS的意义。