一 文件的准备
同样的,拿到了Lab的压缩文件
然后输入命令 tar -zxvf file_name进行解压
解压后,先进入lab9a去看看里面有什么东西
二 基本的LVS流程
(1)打开calibredrv
输入命令后:
(2)Run LVS
Verification -- Run nmLVS
到这里应该明白为什么有Runset文件了吧,直接可以Load进去进行Run LVS。
不过此处,我们不用Runset,而是按照步骤一步一步来。
(2.1)Rules
(2.2)Inputs
在Herarchical mode下跑,同时选择Export from layout viewer
同时指定好netlist的Spice file,并确认Top Cell是否正确
(2.3)H-Cells
此处先不加H-Cell文件,先快速跑一遍LVS
(3)LVS Option
Set up--LVS Option,在Supply选项里,勾选上Abort LVS on power/ground net errors。这样在出现短路问题时会终止LVS
在Short选项里,勾选上Run short isolation,Output shorts by layer和Output shorts by cell。
(4)RunControl
加快速度,这里选择多核,也就是多线程。
(5)Run LVS
结果如下,我们可以看到,结果是通过的:
三 添加五种不同的Short
(3.1)添加简单的short
跑完第一遍LVS后结果显示没有出现short,那我们来加入一点short。
然后关闭所有的Layers,只显示Metal1
然后对于下图处:
我们使用Box使VDD和VSS短路,使用Box后如下
(3.1.1)添加short后的LVS及Run后的报告
short添加进入了,下面开始做LVS:直接Run LVS,并且Overwrite掉之前的
我们看到立刻报错了,因为我们在LVS Options里面的Supply中设置了
然后查看报告:
Extraction Results:
Layout Short:(这一项是勾选了LVS Options中Shorts选项中的Run short isolation选项,否则不会出现此栏)
Comparison Result:
以上三个报告中得到的小结论:一定要勾选上LVS Options中Shorts选项中的Run short isolation选项,方便我们去debug电源地短路的问题。
(3.1.2)定位并解决Short
在Layout Shorts里去定位电源地的短路问题,右键点击报告的错误,然后选择Highlight Short
这样就会把工具找到的版图中最短的电源地短路的路径给Show出来,如下图所示,Highlight的部分存在电源地的短路。
(3.1.3)方法一
如果对该版图比较熟悉,很容易看出,红色的部分是VDD,黄色的部分是VSS,那造成它们短路的部分就是中间连接的那条线。把它删除既可。
(3.1.4)方法二
但是某些情况下,我们对layout可能不是很熟悉,那如何去定位呢?
在Layout Shorts里面,Short Texts里面的VDD和VSS可以点击一下,看到那是打的Label,然后Net那一列中的VDD和VSS都是工具能分辨的,而N/A则表示工具不能分辨
那么我们要想找到发生电源地发生短路的路径,也就是找到Short具体发生在哪里,我们可以给这些Net分配一些VDD和VSS,这样就让工具去知道电源地短路到底发生在哪里去定位。
如下图,我们双击一下Lab9,先去图里面看它是属于VDD还是VSS
我们看到它是连接到VSS的
那么我们就把它标为VSS
有了一个是VSS,工具就可以得到与它有关系的一些是VDD还是VSS了。
那么我们继续去定位,在仍显示为N/A的里面去找一个,如图:
然后去定位,我们发现连接到了VDD,那么我们把它标为VDD
同样的,其他的一些有关系也被标为了VDD:
同理,继续去定位:
发现是VSS
发现是VDD
最后结果如图,我们就知道是在第15和16条的lab9之间发生的Short
点击第10个N/A的,是不是就定位到了
那我们怎么去检测这个是不是就是造成Short的Net呢?删除掉此Net进行验证,这个地方最好不要直接在版图中进行删除,因为风险风险很大,我们现在工具中删除,验证然后是正确的之后,再去版图中删。
选择REMOVE
然后我们点击Verify Short
点击后开始验证,结果如下,可以看到short已经解掉了
问题已经定位到了,那我们就可以直接去版图中删除,选择delete
删掉后重新进行LVS,发现结果正确。
(3.1.5)方法三
在highlight后,另一种方法更快速的去定位
选择Assign Polygons in Layout(就是给Layout里面我们确切知道的是VDD还是VSS的地方进行标注)
点击后出现如下界面:我们先给电源分配net,就选择VDD
下图所示,标注了哪些是VDD,VSS和N/A的部分。
对其中一段一段的shape,对已知的进行标注
标注完成后选择Done
然后再去按方法二进行定位
是VSS
是VDD
最后结果如下:
定位到之后,其余的步骤同方法二一样,不再赘述。
(3.2)添加两个简单的Short
我们添加了两处Short,这里先不说是哪两处,按照步骤一步一步去定位;
Verification --Run nmLVS。LVS的设置不再赘述,直接到Run LVS的结果:
我们发现还是Short的问题
第一步,我们Highlight 这个Short
结果如图:
其实是有两段短路的,但是工具是Show最短的那个路径,还是使用(3.1.5)中的方法三
结果如图:
我们猜测短路可能在N/A的那条路径上,设置为REMOVE
然后再Verify Short
工具发现问题并没有完全解决掉,仍然还有Short
并且发现了新的Short
什么意思呢?就是说明仍然存在Short,那么我们先Clear Highlight
还是先解决刚刚那个short:
把N/A的Net给REMOVE
然后再Verify Short
发现第一个问题解决了
想一下,第一个Short里面,我们Remove了两个Net:
两条Net就是下图这条Net的左右两边:
我们可以定位到此Shrot就是这条Net引起的,delete此Net
重新Run LVS,我们预期的是还有一条Short,查看结果我们发现:确实存在另一条Short,并且之前的Short已经解决了
同理,去定位第二条Short
结果如图所示
还是同样的办法,REMOVE后进行Verify Short
结果如下图:
来看这个Via(通孔,很显然,应该是VDD的)
所以就是第二条有问题,我们去定位:
很明显的能看到是中间的有问题;
把它REMOVE掉,再去做Verify Short,结果如下:
我们去Layout中删掉此Net
然后重新跑LVS
LVS通过:
(3.3)添加一个复杂的Short
我们添加一个下图所示的Short
(12)定位并解决Short
先做LVS的操作,Run LVS,查看其结果,第一步,仍然是Highlight
然后使用(3.1.5)方法三
结果如图:
还是REMOVE掉后Verify Short
还是有Short,先Clear Highlight,然后再Highlight Short,Clear Highlight之前的Short,再Highlight现在的Short
REMOVE
Verify Short
检查无误后,对之前REMOVE的进行delete:
然后再跑LVS,结果为LVS通过
(3.4)非VDD和VSS之间的Short
造一个下图所示的Short
此时先在LVS Option--Gate Reconnition中选择Turn off
然后Run LVS,查看结果,我们发现Inst没有MatchL:Layout里面多了,Source里面少了
还有Net的错误,就非常不方便去debug,所以我们选择那些报错更少的Mode去debug
-----------------------------------------------------------------------------------------------------------------------
此处非常重要,告诉我们要学会用不同的去mode去快速精准的debug
----------------------------------------------------------------------------------------------------------------------
比如我们在LVS Option--Gate Reconnition中不选择Turn off,而是选择去识别一些简单的门(Recognize simple gates)。然后Run LVS
发现只有一个错,这样就很方便我们去debug
然后查看错误的地方:
Layout里面的Net只有VSS,而Source里面有VSS和12,我们又认为网表里面的SPICE为golden design,所以说明Layout里面已经发生短路了,也就是12和VSS的短路,Short在一起了。
然后我们找到12和VSS重叠的部分,也就是发生短路的部分,就定位到了。
在Layout里面因为没有对12打Label,所以不好找,在PR工具中能更方便的找取重叠的部分
(3.5)signal与signal之间的Short
做LVS,查看结果,我们看到Source里面的Net是多的,Layout里面的Net是少的。就是发生了Short。
我们可以在Layout找到12和11的Net,这种问题同(3.4),要去PR工具里面去定位更方便。