理论的部分请看数字后端小白学习日志----LVS(持续更新版本-已更新至5月20)-CSDN博客
中5月20日及之前的部分。
当然此处的内容并非自己做的,而是对资料的总结,应该最近会使用一个真实的Lab进行完全流程的LVS,请后续观看。
下面开始演示实战内容:
(一) gds准备
cd gds_merge,进入该文件夹
然后进行merge:
输入命令后
然后我们查看当前目录下的文件,发现确实生成了merge.gds文件
然后使用calibredrv打开merge文件(如果有layerprops文件也可以加上)
运行后的界面:
如果需要进行DRC,则需要加上border层,但是具体的border层要有多宽,需要查看设计规则文档,加上后的结果:
因为我们用M4打label,那么我们就选M4查看一下(这里只是以此为例,具体需要查看的label很多,这里只是介绍一下需要有该步骤)
比如此处给FP和FPB打label:
Object--Create Text
注意看Create Text中的Layer,此处显示的是64,那我们猜测,这里因为M4层是打label的,那么64对应的就是M4
然后看Layer,我们发现M4对应的的确是64
在加完border层和打上Label后,gds的工作(merge和编辑)就算完成了
(二)spice网表-通过v2lvs
第一个是IO Pad的SPICE网表
第二个是从ICC中导出的用于LVS的.v文件
第三个是IO 的SPICE网表
第四个是std cell的.cdl文件-也就是SPICE网表
第五个是H-Cells文件(Hier mode下需要使用,Flat mode下不需要)
最后一个是之前生成的SPICE网表,我们删除之后重新演示
接着使用v2lvs:
v2lvs
-v 接.v文件
-lsp 接spice库网表
-o 导出经过v2lvs的SPICE网表
然后查看运行后的结果,红色框的就是最后生成了SPICE网表
我们需要对该网表进行一定的编辑,如下图所示,红色框里面的就是我们需要加的东西
因为我们需要用到std cell,IO,Sram。所以我们需要将它们的SPICE网表都INCLUDE进来。否则做LVS的时候会显示没有这些器件的定义。
之后我们需要声明电源和地(VDD VSS)。还有IO里面独有的VDD25和VSSD。
因为此处用到的工艺在标准单元里面有专门的Cell来给P衬底和N阱进行供电。所以此处需要进行声明。然后我们需要把n阱接到电源上,P衬底接到VSS上。
同时需要声明FP和FPB
此时保存,然后我们就得到了可以进行LVS的SPICE网表
(三)进行LVS
完成(一)(二)后,我们需要准备的东西就都准备好了,现在可以进行LVS
Verification--nmLVS
(3.1)Rules
设置好规则文件和跑LVS的路径
(3.2)Input
<layout>
设置好Run的模式,此处选择Hierarchical mode。同时Hier mode还会导出来一个网表
<netlist>
首先选择spice files,也就是第二步我们转换完成的
<H-Cells>
我们可以添加H-Cells(没有的话可以通过H-Cells Analysis产生)
<Outputs>
设置输出文件的相关配置
<LVS Options>
Setup--LVS Option选项来打开。
目的:让LVS遇到short的问题就报错
<Run Control>
条件允许就设置为多线程,这样跑的更快。
<Run LVS>