微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > IC版图设计交流 > 为什么我的版图和电路图每个cell的名字都不一样?

为什么我的版图和电路图每个cell的名字都不一样?

时间:10-02 整理:3721RD 点击:
小弟是新人,最近碰到了很多问题,求助。
先说一下我的做法:
1,streamout,提取gds
2,export-cdl,从电路图提取网表
3,用calibre做lvs,input选项选择hierarchical--layout vs netlist,从gds文件产生网表sp文件
现在我的问题是sp文件除了顶层的名字和电路图里的一致之外,其他子电路的名字都是自动产生的,名字都是ICV_数字
我想请教几个问题:
1,我这么做有没有问题?
2,gds抽取的网表中子电路名字和电路图中的不一致是否正常?
3,如果2不正常,那么这个子电路名字丢失是发生在什么时候?是抽取gds时发生的,还是lvs从gds抽取网表时发生的?
哎,我现在做的稀里糊涂的, cadence 帮助文件里也没找到vertuoso画版图的帮助文件。哭死了。

没有人帮忙么?自己顶一下。
已经确认过了,子电路名称的丢失是在calibre从gds中抽取网表的过程中丢失的。
因为把gds重新导入cadence,各个子电路一切正常,这就说明gds中包含了子电路的信息。
我现在搞不清楚为什么calibre不能从gds文件中正确识别所有子电路,有人知道是哪个选项设置有问题导致的么?

哎,不会是calibre的rule有问题吧?不会这么悲剧吧?

子电路的lvs不能过,layout cell和sch cell匹配不上,所以自动命名

这样啊,我去修改试试看,谢谢啊!

大侠,我还有个疑问要请教,gds文件里面是包含了每个单元的名字信息的啊,因为用gds文件streamin成为一个库的时候每个单元的版图都有对应的名字的,而且不会有错误。
所以我的问题就是:为什么layout和网表中单元名字对不上会导致从gds中倒出的网表中单元自动命名呢?calibre为什么不用gds中各个模块的名称呢?

规模大的话,是这样子的,calibre从版图提取的网表会自动加上ICV_*的cell,我摸了好久也没有找到控制开关.但是可以说明的是,版图cell名字和电路cell名字对应不上,并不能绝对说lvs跑不过,举个例来讲,做amp版图时,为了对称,自己另建了一个cell但是,电路里并没有这个celll ,lvs的时候同样能过.所以,calibre跑的是版图和原理图之间,器件以及连接关系的对比.层次化是以原理图的层次为标准的.

谢谢您的回复。我了解您的意思了,子单元名字不对是不会影响lvs结果的。我不理解为什么层次化是以原理图的层次为标准啊?为什么不以版图的层次为标准呢?不知道这个可不可以设置?
我现在的版图top层有三个模块,分别是padring_sab,dig_cell和analog_cell.



我的电路原理图不是这样的,原理图顶层只有两个模块,分别是padring和core,而core就包括了dig_cell和Analog_cell这两个模块。

我用lvs对版图进行网表抽取,抽取出来的网表非常乱,顶层有十几个模块。我仔细分析了一下,应该是padring和dig_core这两个模块都被分成了几个小模块放在网表的最顶层,analog_core模块还是一个模块,可是名字也没有识别出来。最终从layout抽取的网表最顶层有十几个模块,名字全是ICV_XXX.
我想知道为什么padring_sab和dig_core模块被分成好几个小模块抽取了出来?

我有个疑问 在对版图抽网表的时候, 是打平了还是 按照你的层次设计抽?

1.我不理解为什么层次化是以原理图的层次为标准啊?为什么不以版图的层次为标准呢?不知道这个可不可以设置?
关于这个问题我这样子理解:一般的,版图是根据电路来设计的,而不是电路要根据版图来设计.是一个从上到下的关系.后面的设计要以前面的设计为准.
2.我想知道为什么padring_sab和dig_core模块被分成好几个小模块抽取了出来?
抽取网表,是calibre自动的抽取的,和抽取网表的算法有关,至于为什么要这样抽取,可能得请教calibre的设计人员了.我不得而知.
现在你的问题是过LVS过不了吧?建议你一个cell一个cell的跑,从最底层跑,如果底层cell 都对了,问题就都好办了.



是这样的,我设置了两个xcell,是dig_cell和analog_cell,用gate-level抽取。按照我的理解,如果一切正常,这样设置应该能抽取出dig_cell和analog_cell之间的连线,还有pad会被打散抽取出来;而dig_cell和analog_cell是作为两个黑盒子,内部电路不会被抽取。是不是这样的?如果不是这样的,我要实现这样的抽取,需要怎么做?
其实我想做的工作是想通过仿真版图抽取的网表来验证dig_cell和analog_cell之间的版图连线有没有错误。我们这个电路里面有10个ADC,设置都是一摸一样的,LVS也过了,前仿也没问题。可是芯片回来后测试发现有两路ADC输出结果和其他ADC的输出完全不同,结果明显放大了好多倍。我想能通过做后仿找到原因。

其实lvs是过了的,这个项目是我接手别人的项目。这个项目年初的时候改工艺,改到globalfoundry流片,当时为了赶进度,做的一团糟,主要是两个问题:
1,layout和schematic每个单元的名字不一样,大多数单元layout比schematic名字后面多了个后缀_GF
2,layout和schematic的hierarchy结构不完全相同
最近要在cadence中用ams做后仿真,你懂得,用calibre做pex,从gds中抽取电路图写入到库里去,然后用这个电路图做后仿真。如果在calibre里用flatten的方法,电路图中晶体管太多,仿真连compile都过不了。我就想用gate方法抽网表,我的想法是吧gate的等级定的高一些,我就直接定了用analog_cell和dig_cell这一等级作为gate。现在就是版图里根本认不出analog_cell和dig_cell这两个单元。dig_cell被打散成几个小模块,analog_cell没有打散,可是名字改成ICV_86了,现在就卡这里了。

看了这么多楼,有几个问题:
1.流片回来的图,那么起码来讲,总图的LVS不存在问题,这样子如何能能过后仿验证是否连接错误?他本身就是的电路一致辞.现在你要做后仿是只能是,后仿结果是否和前仿一致,后仿结果是否和测试结果一致,而不能验证是否有连接错误.
2.如果是做后仿,直接PEX的网表为什么不能后仿?前面也说过层次不一样一般不会对run结果产生什么影响,后仿时候找到版图和电路对应的节点看你要的结果即可
以我的经验,
1.gate起不到你想要的黑盒子效果.
2.不想要icv_*层次就不要用flaten.

应该是提的时候出的问题 我记得我们这边有人提过类似的结构只有pin被提出来 里面的东西不提出来 不知道你是不是想要这样的方式

对,我现在就是想做这个工作,可是因为layout中cell识别不出来,总是不能成功。我就是想知道,满足什么样的条件才能顺利的完成这个工作。

1,是这个道理啊,
2,我们公司工具比较匮乏,后仿也是用cadence做的。做法就是用calibre从layout抽取电路图,重新写入原先的cell中,然后用新的电路图做仿真。这个电路图很大,包括数字电路,模拟电路和memory。仿真的时候compile都过不了,cadence做compile做到一半就直接退出了。因为是用ams作仿真的,没有办法在修改input.scs,用pex的网表替代前仿的,因为根本没有input.scs这个文件。
所以我就想用gate抽取。现在这样后仿真都做不起来

如果,只是作验证,用黑盒子(lvs box)是有意义的,从技术上来讲,只要默认黑盒子CELL下的连接、管子都和电路完全对应,验证就认为是通过了。但是提出来的网表,还是存在器件的.
现在你要做的是仿真,如果一个CELL里面什么都没有,你认为他会仿出什么来呢?另外gate只是calibre自动通过逻辑关系识别,并不会把这写进网表。

谢谢您的回复,我了解您的意思了。看来提取电路图做后仿真还是要flatten的才行

这个问题看你后面跟帖说明的部分,可以确定的是:
做layout没有根据schematic去做cell的对应,top cell跑过了,并不能保证底层的cell全部跑过。
比如有些人喜欢画完底层模块之后,依据上层模块的位置在返回去修改底层模块的layout,比如切割线等等,虽然作图的人很清楚,但是别人就看不懂了。
你想找到各个对应的cell,实属大海捞针。不过如果你要用的真的是底层模块的话,那只能一层层去比对了。
名字不会差别太大,LVS结果也不会乱到完全摸不到头脑。
呵呵
我一般会建议cell的schematic和layou全部对应,以利于后期应用的。最最起码是名称一定要一样(名字都不一样,calibre确认不了cell的对应关系啊,比如core和digital,analog)。

对,现在情况就和您说的一样,其实LVS是已经跑过了,我现在就是想看看怎么样能使从版图抽取出来的电路尽量简单,使后仿真跑起来。现在抽取出来的电路,能用于仿真的是一个flatten的网表。这个网表太大了,即使我在calibre中设置不抽取任何寄生器件,只是把schematic中的器件抽取出来所生成的新的电路图也无法用于后仿真,ams编译到一半cadence就整个退出了。
这个电路的testbench是用verilog写的,hspice好像不能编译这个,而cadence编译后仿真电路会直接退出,我现在不知道该怎么办了。换一个工具做后仿真么?我也不知道该换什么工具,您有什么推荐么?
我现在就是想知道两件事情,1,怎么样使抽取出来的电路变小?我想到的是用gate层次抽取,上面已经说了这么做不可行。2,换一个后仿真工具,请大家帮忙推荐一下

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

网站地图

Top