LVS的诸多问题
时间:10-02
整理:3721RD
点击:
小弟第一次用encounter布线,导出gds再导入virtuoso后做LVS基本没有一个匹配的。
经过在论坛上的一番查找发现主要有以下问题:
1.v2lvs命令究竟需要那几个文件?我用的encounter生成的.v网表,还有工艺库提供的cdl网表和一个.v网表,这个工艺库提供的.v网表里面是标准单元的端口定义。
有人说只需要encounter导出的.v网表和库里提供的cdl网表就可以,但是我只合成这两个文件时有很多warning。
2.导入gds时,很自动生成一个.map文件,工艺库里提供了一个简单的.map文件,我发现他们的语法根本不一样。
有人说按照工艺库提供的层的标号修改生成的.map文件,然后在往virtuoso导入gds时,加载修改后的.map就行了,但我试了一下不行。
又有人说还需要把修改后的.map加载到encounter下重新导出gds,然后再加载到virtuoso下导入gds,我又试了一下倒是可以,但是要想看到整个版图还需要导入标准单元地gds文件。
3.做lvs时,没有一个匹配的。
我先用encounter导出的gds和v2lvs合成后的网表做了一遍lvs,用的是calibre,lvs没有进行完就报错。
然后我在virtuoso下直接用版图和合成的网表做lvs,几乎没有一个匹配的。
我又把virtuoso下的版图导出gds,再次做lvs,和上面的情况一样。
我看了一下具体的报告,主要是版图中某个模块的pin的名字和网表中的都不一样,其实连模块名称也不完全一样,但名字其实很像,一看就能看出来是同一个模块。不知道为什么会出现这种情况?
另外标准模块的pin在顶层模块中其实是没有label的,而网表中肯定是有的,这样的话该怎么办呢?
经过在论坛上的一番查找发现主要有以下问题:
1.v2lvs命令究竟需要那几个文件?我用的encounter生成的.v网表,还有工艺库提供的cdl网表和一个.v网表,这个工艺库提供的.v网表里面是标准单元的端口定义。
有人说只需要encounter导出的.v网表和库里提供的cdl网表就可以,但是我只合成这两个文件时有很多warning。
2.导入gds时,很自动生成一个.map文件,工艺库里提供了一个简单的.map文件,我发现他们的语法根本不一样。
有人说按照工艺库提供的层的标号修改生成的.map文件,然后在往virtuoso导入gds时,加载修改后的.map就行了,但我试了一下不行。
又有人说还需要把修改后的.map加载到encounter下重新导出gds,然后再加载到virtuoso下导入gds,我又试了一下倒是可以,但是要想看到整个版图还需要导入标准单元地gds文件。
3.做lvs时,没有一个匹配的。
我先用encounter导出的gds和v2lvs合成后的网表做了一遍lvs,用的是calibre,lvs没有进行完就报错。
然后我在virtuoso下直接用版图和合成的网表做lvs,几乎没有一个匹配的。
我又把virtuoso下的版图导出gds,再次做lvs,和上面的情况一样。
我看了一下具体的报告,主要是版图中某个模块的pin的名字和网表中的都不一样,其实连模块名称也不完全一样,但名字其实很像,一看就能看出来是同一个模块。不知道为什么会出现这种情况?
另外标准模块的pin在顶层模块中其实是没有label的,而网表中肯定是有的,这样的话该怎么办呢?
1,encounter 中lvs 过了吗?
2,如果layermap 问题。先统一layer name。
3,先做个很小的解决1,2。再全芯片。
4, soce layermap 定义的话,顶层pin 可自动加label
LS说的SOCE中的LVS是不是verify geometry。layermap问题我应该搞明白了,顶层中的pin确有label,但是和网表中的不一样,总不能一个一个改吧。
verify connectivity.
到底为什么不一样。
应该和netlist 的一样才对。你可以floorplan dump 看名字的。
1.
v2lvs -v encounter.v -l library.v -o encounter.cdl
做lvs时,include encounter.cdl和library.cdl
2.
在encounter中导出gds时就要.map(按照工艺库提供的层的标号修改生成的,UG里有格式)文件
3. 上面1里的错误操作导致的.
谢谢各位大侠,小弟再试试,4楼说的floorplan dump 我还真没找到。
网标转化不对,layermap 可能有错。