关于LVS BOX
小弟做LVS时候窗口显示no matching ".SUBCKT" statement for "A" at line xx in file(source网表文件);(A是cellname)这时候如果想正常继续做lvs,是不是需要对“A”模块屏蔽?
就是写 “LVS BOX LAYOUT A”和“LVS BOX SOURCE A”到LVS文件里?
但是为什么我写了以后毫无用处呢?是不是写的位置有问题?
请大家指教!
谢谢!
出现这个问题是因为你的source netlist中没有包含A的netlist,或者说没有定义A,先检查一下网表。
呃。就是因为没有A的定义才要box它啊-。-~我要是有他的定义的话不是lvs直接就可以跑起来了。关键是现在如何box掉A模块?
解决了,是我自己没搞好。
需要先定义A的端口,尽管没有它里面的具体定义;然后box就搞定了。
我说的就是这个意思,需要定义一个顶层。只包含pin,因为LVS BOX的时候也是会比顶层的。只是BOX里面不比较。
你好,我最近做lvs的时候也有这样的问题。
我想问问,你说的“定义A的端口”的意思是在rtl里面的定义一个A的module,然后这个module只有A的input和output信息吧?
还有一个问题,如果是按照我上面这样定义的话,在spi网表里面的subckt A也就是只有端口信息吧?
不是,我这里的意思是它缺失了source netlist里的全部定义,不仅是内部信息,还有引脚定义,所以一开始用了box命令也没用。
因此你自己得先定义出网表中A模块的端口:先正常lvs,然后在生成的source netlist里自己定义该subckt的引脚,然后不写内容直接.end。再把box命令加到lvs文件里,用版图和修改过后的source netlist做LVS就可以了。相当于屏蔽掉A的内部信息,但是A的端口定义必须是要有的。
你好,按照你的说法,只要在spice网表里面将这个moduleA的端口定义一次就可以了,但是在rtl里面不用。
但,如果在rtl里面不用,如何在布局布线软件里面调用出现这个module的marco或者lef信息?
还有,你提到的“先正常lvs,然后在生成的source netlist里自己定义该subckt的引脚”,有点疑问想请教你下;在lvs之前就已经要做一步v2lvs的操作,将verilog网表转成spice网表,你所说的“先正常lvs”是什么意思?难道是要用lvs后的gds的网表来修改吗?
我在最后的spice网表里面定义了module A的所有接口信息,也改了lvs的rule文件,但是lvs还是不能通过,请问,这个spice网表中的定义,是大小写敏感吗?定义module A的接口的时候要不要注意端口顺序的问题?
还有一个可能,我的lvs命令式 calibre -lvs -hier -auto LVS.rule;你的lvs invoke命令也是这个吗?
我的module A实质上是一个eeprom,spice中定义的方式如下:
.SUBCKT eeprom Dout A[12] A[11] A[10] A[9] A[8] A[7] A[6] A[5] A[4]
+ A[3] A[2] A[1] A[0] Din CE_B OE_B WE_B WRITE ERASE WERASE ID_MODEB POR EECLK
+ EMOD[1] EMOD[0] CURENB SEL CELL_I[7] CELL_I[6] CELL_I[5] CELL_I[4] CELL_I[3]
+ CELL_I[2] CELL_I[1] CELL_I[0]
.ENDS
这个eeprom的接口有dout ,a[12:0],emod[1:0],din,ce_b,we_b,oe_b,write,erase,werase,id_modeb,por,eeclk,cell_i[7:0],
其中只有dout是eeprom的输出端口。
http://bbs.eetop.cn/thread-319075-1-1.html
http://bbs.eetop.cn/thread-319075-1-1.html
我是做的是模拟电路lvs,你做的数字的-。-仅此。至于数字的怎么搞还没弄过~
xiexie!
你好 我也遇到了同样的问题,麻烦问下解决了吗,可以分享下解决方法吗?