微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > IC后端设计交流 > 急急急~~~马上出片,求教LVS,望大家多多指点啊~

急急急~~~马上出片,求教LVS,望大家多多指点啊~

时间:10-02 整理:3721RD 点击:
问题是这样的,现在即将出片的chip是块全数字的,很小的模块,然后外面做的PAD呢是模拟给做的,没有用foundry厂的,现在单独跑这个数字模块的LVS是没有问题的,但是leader要求把Pad和这个数字模块一起跑LVS,
问题来了,我具体的做法跟大家一起探讨一下,先将这个pad的电路图在virtuoso下提取出netlist,其格式是xxx.cdl的,然后又将数字模块在PR工具(Encounter)下生成的xxx.v网表导入virtuoso中Import--->Verilog这样可以自动的生成原理图和symbol图,然后再新建一个schematic将这两个的连接关系画出来,然后导出电路网表,再与layout做LVS,
然后现在的问题是这个数字模块的电源和地分别是VDD和VSS,而PAD上的电源和地却是DVDD和DVSS,虽然这两个在顶层绘制的原理图里是对应的连接关系,但是再跑LVS的时候还是报了“Power or ground net missing”,
我想请问一下对于这样的一个设计如何去跑LVS(数字的模块,加模拟的pad)
谢谢

定义CONNECT VDD DVDD ; CONNECT VSS DVSS
还有其他详细报告吗

前辈你说的这个语句是加在顶层原理图生成的cdl网表里吗?只需要添加这个连接关系吗?这个语句的放置有什么讲究呢?请详细的指教,还有具体的报告是没有的,因为LVS里没有识别出POWER和Ground是不能继续进行验证的,再补充说明一下,我单个数字模块里是没有引出VDD和VSS的,只是做了一个VDD和VSS的电源ring,最后只需要把有关PAD为电源和地连接上这个Ring就OK供电了

首先确认lvs rule中LVS POWER NAME/GROUND有没有声明定义
layout中实际没有连接?就不能那样定义在cdl面
还有你跑得是flatten还是hier模式?
你说的PAD是指IO吗?PAD只是一块metal

首先我刚刚确定了一下LVS rule里有两个关于POWER和Ground的说明格式分别是:
VARIABLE POWER_NAME "DVDD VDD"
VARIABLE GROUND_NAME "AVSS VSS"
然后是layout里已经做了连接 VDD与DVDD相连,VSS与AVSS相连;
最后我跑的是Hirerachical模式

VARIABLE只是定义变量的关键词。
LVS POWER NAME/GROUND这句话是声明
另外,在cdl前面定义下列内容试试看:
*.CONNECT VDD DVDD
*.CONNECT VSS DVSS

我试了一下只是把这个加到最后的,还是不行,这个错误是一样的,不知道我这样的方法是否正确,如果方法是正确的,出现电源的错又是如何

只能给你提供点思路了,提供的情报不够
1、确认rule关于电源的设定正确
2、确认layout中电源Ptext是否正确被认到
3、确认cdl中电源ports是否正确定义

前辈,现在一个是我以前还没有去接触过数模混合跑LVS的方法,这次这个方法也是自己摸索出来的,
二一个是我希望前辈多给予一下帮助,需要什么情报我都可以给出,对于rule我个人觉得应该不会有什么大问题,
关键现在是整体跑LVS直接跑不起来,因为没法识别电源和地,而现在的矛盾点就是我数字Pin里有出VDD和VSS的,只是想用电源环ring来接入到DVDD和DVSS的Pad的

网表可以贴出来么?
看看标字文件中,cell名对不对?



额,你这个想法不太实际,一个是这个是数模混合的网表,肯定很多,不能贴的,二一个cell是没有问题的,现在报的错主要是电源和地的问题,因为数字模块是没有做有关power和ground的pin的,而模拟部分也就是这里的PAD,我是有专门的Pad是DVDD和DVSS的,在layout里我是将DVDD与VDD,DVSS与VSS相连了的,而原理图里的数字部分我是将PR后的.v网表导入到virtuoso后自动生成的,但是发现的问题是自动生成的原理图其实就是一个symbol,然后进入symbol里后会发现里面的VDD和VSS其实是没有连接的,如果自己手动的去连接会很麻烦不知道这个该如何去处理?我现在估计问题就出在这儿了,数字部分的VDD没有与DVDD相连,VSS与DVSS也没有相连。

.v网表,我们通常都是通过calibre自己转netlist(v2lvs)
你说的“symbol里后会发现里面的VDD和VSS其实是没有连接的”不知道是否指的是网表中数字部分没有电源
定义,如果是的话,可以尝试用global定义电源。这样免去了你自己定义电源的麻烦。
希望能帮到你。

数字部分的网表确实是v2lvs产生的,当然这个数字这一部分单独跑LVS是没错的,但是现在我把模拟接过来也就是这儿的PAD,把对应的IO与PAD相连,这儿的问题就是我数字是没有单独做有关VDD和VSS的io的,而PAD我是有DVDD和DVSS,这两个是相对应的,我把数字电源环ring上的VDD和VSS与Pad DVDD和DVSS相连就是我顶层设计了,所以我刚刚说的symbol里没有相连是说这个数字我是没有做独立的VDD和VSS的IO的,但是每个stdcell又有VDD和VSS,现在进到原理图里看到VDD和VSS是处于悬空的状态,所以问题就是出在这儿;
我单独把独立的数字部分的网表看了一下,里面对于电源和地在网表最后是做了Global的处理的,所以单独跑这个数字模块的LVS是没问题的

测试下
在网表头定义:
*.global VDD DVDD
*.global VSS DVSS
*.connect VDD DVDD
*.connect VSS DVSS
top的port应该只有DVDD和DVSS吧?在lvs rule中添加:
LVS Globals Are Ports NO
我以前碰到过类似的,logic部供电是IO通过IP输出的。logic的电源名字和IP输出的电源名字也不一样。

不行,我想问一下关于前辈你让加的这四个语句是单独写在网表最后吗?也就是.SUBCKT..... .ENDS后面?还是加在这个的里面?
现在我跑LVS出现一个很奇怪的现象就是我跑LVS加载网表其实这个网表很多的,但是跑完LVS以后再看同样的文件发现里面的内容删除了很多,这样的情况有遇见过吗?

“前辈”,不敢当,一起学习
那几句话加在subckt....end 外面。
因为看不到你的网表,感觉上像是网表的问题。

提供点思路:1 看看power/ground IO的CDL,确认所使用的电源地IO里都有些什么样的PIN
2. 正确的给电源地打上标签

VDD和VSS在数字单元的网表中应该是global的,所以最直接的做法就是在schematic最顶层的电路中把DVDD修改成VDD,DVSS改成VSS。版图最顶层label也相应改了。

这位兄台的建议感觉没什么建议啊,1、有关Power和Ground PAD的cdl网表没有什么不同啊,很正常的;
2、版图上的lable是加上了的,只是数字部分是打的VDD和VSS的电源和地Ring,所以在连PAD的时候是将其直接拉出接到DVDD和DVSS上的

是这样想的没错,但是那个是模拟部分的了,我的PAD是模拟那边designer设计的,所以如果要改的话那边需要很麻烦的去修改layout和原理图,我想能不能在网表里做些修改,然后电路原理图上直接打上标记就行了,主要是电器连接能对应上就行吧?

顶起来

自己得勤快的多顶顶~

好了,现在我再来具体说说这个问题,或者说我在处理这个LVS的时候自己的方法;
是这样的,digital网表我确实是通过calibre的v2lvs产生的.sp文件,单独这个数字模块我将GDS导入到virtuoso后这个layout因为没有单独的一个io是vdd或者vss的,所以我将vdd和vss的label打在了电源和地的ring上,然后通过这样的方式是完全跑通了LVS的;
然后跑整体的数模混合的LVS我又是通过将PR产生的.v文件和工艺库的网表文件一并通过import in---》verilog的方式导入的,没错这个symbol是产生了,看上去也很正常,只是注意到一点儿,这个symbol上是不会有VDD和VSS的pin的;
好了,现在数字的symbol已经做出来了,现在我们要做的相当于是顶层设计(数模混合模块),因为这个模拟部分其实就是PAD,而这个PAD的symbol、layout、schematic都是模拟那边做好了的,我只需要调用后把对应的IO相连即可,然后我现在跟你说说看到的吧,在这个顶层我是可以通过快捷键E进入到symbol下的每一个电路的,包括每个标准单元下的每个管子,所以我认为导入应该是没有问题的,现在将这个整体设计产生cdl网表,然后拿去跑LVS,出的有管power and ground miss,主要是我在想这个VDD、VSS、DVDD、DVSS这几个的关系,前面我也谈到了问题,我数字部分是没有单独做VDD和VSS的PIN的,而模拟PAD是有的,但是名字却又是DVSS和DVDD,但是他们是对应连在一起的,然后我通过查看原理图,发现的问题是数字部分的VDD和VSS是没有连接的也就是悬空状态,但是为什么单独跑LVS能顺利通过呢,关键是在v2lvs后产生的sp文件里最后有个global vdd这样的语句,所以现在说了那么多,您应该明白这样的流程了吧?期待你的回复

还没出片吧 。
您现在的这种流程没有用过,原理上是行得通的,不过有时候实际情况总是事与愿违的。
我建议你换个流程试试看,等有时间您在研究您的这套流程(我怀疑是你转schematic时
出错)
Block部分还是按照原来的cdl,IO自己导出单独的cdl,然后自己写个Block和IO整合后的
顶层cdl,再includeBlock和IO的cdl。
顶层cdl加上:
.GLOBAL VDD VSS DVDD DVSS
.CONNECT VDD DVDD
.CONNECT VSS DVSS
并且,保证你的layout电源连接正确,电源label标正确。
另外,您的IO数目多吗?

方便的话,把top cdl的贴上来看看呢(附件)
在ic dream上也看到你的帖子了

已近流出去了,但是TOP的LVS还是没有跑,因为这次只是将IO与对应的PAD连在一起,而且IO的数目不是很多,所以就没有跑LVS直接出片了,不过这段时间还是在研究这个,一直没什么进展,你说的方法将Block和Pad的cdl整合在一起再做个TOP的cdl网表,这个方法我也想过,不过介于不太懂这个网表的语法,而且补充一下,这个数字部分的网表是.sp格式的,里面其实是没有具体管子的宽长比的,而模拟layout工程师所提供过来的PAD的网表是.cdl格式的,这两张格式还是有不同的,cdl格式里包含了管子的宽长比,所以对于如何去整合还得请教一下各位~

还没有得到解决呢

自己编写,找一个TOP cdl参考一下
IO数目不多 ,我觉得这样更快点。

这个寻找了很久没有结果,大侠那边有没有例子呢?还望提供一下吧~谢谢啦

这个寻找了很久没有结果,大侠那边有没有例子呢?还望提供一下吧~谢谢啦

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top