在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
楼主: estyzq

[求助] 求助,calibre lvs的问题[已解决]

[复制链接]
 楼主| 发表于 2012-2-27 12:29:59 | 显示全部楼层
本帖最后由 estyzq 于 2012-2-27 12:33 编辑

回复 20# damonzhao

版主你好,
     我按照你的说法,在spice网表里面将eeprom的端口上面加上了VDD和GND线,并且在调用eeprom的地方也将VDD和GND连接上了。刚才还跑了一遍LVS,可以lvs也通过了。

    但是版主你说,最终验证不能带BLACK BOX?这个,因为foundry没有给我rtl的eeprom内容,就是一个硬核,也没有其他任何可以调用的,如eeprom的spice网表。所以,在进行lvs验证的时候也就只能验证port,也就必须是black box。当然这样做就没办法去做后仿和sta,只能说在设计eeprom的控制器的时候要注意时序问题。

不知道我这样说的对不对,求版主指导
发表于 2012-2-27 13:36:44 | 显示全部楼层
回复 21# estyzq


    这样子,那没办法!只能当black box处理了
 楼主| 发表于 2012-2-27 20:35:42 | 显示全部楼层
本帖最后由 estyzq 于 2012-2-27 20:39 编辑

回复 22# damonzhao

今天,我将设计流程做了一个变动,以前是将core和eeprom一起做出来的,现在因为一些原因,需要先单独做core部分,并提取出core的lef和gds。然后将core当成一个ip,再把eeprom部分加上,得到一个整体的芯片。
在做core部分的时候,已经将core的电源VCC和GND也做了电源环,并且core部分的最后lvs和drc没有问题,在core的spice网表结尾带有.GLOBAL VCC GND
加上eeprom部分后,因为eeprom的电源VDD和GND需要独立供电,而且已经有自己的电源环,所以在拼接的时候,没有在edi中将VDD和GND与VCC和GND连接起来,只是单独的连接了信号线
目前来看,core部分(名字为top)和eeprom其实都可以当做两个IP,并且都需要独立的供电,edi中只是将两个ip的信号连接完成

在做最后的lvs检查时,总网表中,INCLUDE了core部分的spice网表,对eeprom的处理还是采取了在spice网表中的eeprom声明部分加上VDD和GND两个端口,并且声明GLOBAL VDD GND,在调用eeprom的时候加上VDD=VDD GND=GND

但最后lvs报告错误,从错误来看,是因为eeprom的电源GND在spice网表中没有port,但是在layout中有;部分报告内容如下:
CELL COMPARISON RESULTS ( TOP LEVEL )

                  #   #         #####################  
                   # #          #                   #  
                    #           #     INCORRECT     #  
                   # #          #                   #  
                  #   #         #####################  

  Error:    Different numbers of nets (see below).
  Error:    Connectivity errors.
LAYOUT CELL NAME:         rfid
SOURCE CELL NAME:         rfid
--------------------------------------------------------------------------------------------------------------
INITIAL NUMBERS OF OBJECTS
--------------------------
                Layout    Source         Component Type
                ------    ------         --------------
Nets:              46        46
Instances:          1         1         HJ250EEPEE8K1PL_E (38 pins)
                     1         1         top (44 pins)
                ------    ------
Total Inst:         2         2

NUMBERS OF OBJECTS AFTER TRANSFORMATION
---------------------------------------
                Layout    Source         Component Type
                ------    ------         --------------
Nets:              46        45    *
Instances:          1         1         HJ250EEPEE8K1PL_E (38 pins)
                     1         1         top (44 pins)
                ------    ------
Total Inst:         2         2

       * = Number of objects in layout different from number in source.

**************************************************************************************************************
                                 INCORRECT OBJECTS
**************************************************************************************************************

LEGEND:
-------
  ne  = Naming Error (same layout name found in source
        circuit, but object was matched otherwise).

**************************************************************************************************************
                                   INCORRECT NETS
DISC#  LAYOUT NAME                                               SOURCE NAME
**************************************************************************************************************
  1    Net GND                                                   GND
           47                                                   
       --------------------------                                --------------------------
           --- Devices on layout net GND ---
       X0(1.588,1.180)  top                                      Xdigit  top
         VCC: VCC                                                  VCC: VCC
         GND: GND                                                  GND: GND
         clk: CLK                                                  clk: CLK
         rst_b: CLR                                                rst_b: CLR
         data_in_ana: DATA_IN_ANA                                  data_in_ana: DATA_IN_ANA
         send_final_out: SEND_FINAL_OUT                            send_final_out: SEND_FINAL_OUT
         rand_en: Trng_En                                          rand_en: Trng_En
         rand_data_out: Trng_Data                                  rand_data_out: Trng_Data
         dout: 9                                                   dout: dout
         a[12]: 29                                                 a[12]: a[12]
         a[11]: 32                                                 a[11]: a[11]
         a[10]: 31                                                 a[10]: a[10]
         a[9]: 30                                                  a[9]: a[9]
         a[8]: 28                                                  a[8]: a[8]
         a[7]: 27                                                  a[7]: a[7]
         a[6]: 24                                                  a[6]: a[6]
         a[5]: 26                                                  a[5]: a[5]
         a[4]: 25                                                  a[4]: a[4]
         a[3]: 14                                                  a[3]: a[3]
         a[2]: 10                                                  a[2]: a[2]
         a[1]: 11                                                  a[1]: a[1]
         a[0]: 3                                                   a[0]: a[0]
         din: 21                                                   din: din
         por: 1                                                    por: por
         ce_b: 18                                                  ce_b: ce_b
         oe_b: 17                                                  oe_b: oe_b
         we_b: 7                                                   we_b: we_b
         id_modeb: 8                                               id_modeb: id_modeb
         curenb: 19                                                curenb: curenb
         emod[1]: 22                                               emod[1]: emod[1]
         emod[0]: 23                                               emod[0]: emod[0]
         werase: 6                                                 werase: werase
         erase: 15                                                 erase: erase
         write: 20                                                 write: write
         eeclk: 16                                                 eeclk: eeclk
         sel: 5                                                    sel: sel
         cell_i[7]: 34                                             cell_i[7]: cell_i[7]
         cell_i[6]: 4                                              cell_i[6]: cell_i[6]
         cell_i[5]: 36                                             cell_i[5]: cell_i[5]
         cell_i[4]: 33                                             cell_i[4]: cell_i[4]
         cell_i[3]: 35                                             cell_i[3]: cell_i[3]
         cell_i[2]: 12                                             cell_i[2]: cell_i[2]
         cell_i[1]: 2                                              cell_i[1]: cell_i[1]
         cell_i[0]: 13                                             cell_i[0]: cell_i[0]
           --- Devices on layout net 47 ---
       X1(5.000,757.090)  HJ250EEPEE8K1PL_E                      Xeeprom  HJ250EEPEE8K1PL_E
         Dout: 9                                                   Dout: dout
         A[12]: 29                                                 A[12]: a[12]
         A[11]: 32                                                 A[11]: a[11]
         A[10]: 31                                                 A[10]: a[10]
         A[9]: 30                                                  A[9]: a[9]
         A[8]: 28                                                  A[8]: a[8]
         A[7]: 27                                                  A[7]: a[7]
         A[6]: 24                                                  A[6]: a[6]
         A[5]: 26                                                  A[5]: a[5]
         A[4]: 25                                                  A[4]: a[4]
         A[3]: 14                                                  A[3]: a[3]
         A[2]: 10                                                  A[2]: a[2]
         A[1]: 11                                                  A[1]: a[1]
         A[0]: 3                                                   A[0]: a[0]
         Din: 21                                                   Din: din
         CE_B: 18                                                  CE_B: ce_b
         OE_B: 17                                                  OE_B: oe_b
         WE_B: 7                                                   WE_B: we_b
         WRITE: 20                                                 WRITE: write
         ERASE: 15                                                 ERASE: erase
         WERASE: 6                                                 WERASE: werase
         ID_MODEB: 8                                               ID_MODEB: id_modeb
         POR: 1                                                    POR: por
         EECLK: 16                                                 EECLK: eeclk
         EMOD[1]: 22                                               EMOD[1]: emod[1]
         EMOD[0]: 23                                               EMOD[0]: emod[0]
         CURENB: 19                                                CURENB: curenb
         SEL: 5                                                    SEL: sel
         CELL_I[7]: 34                                             CELL_I[7]: cell_i[7]
         CELL_I[6]: 4                                              CELL_I[6]: cell_i[6]
         CELL_I[5]: 36                                             CELL_I[5]: cell_i[5]
         CELL_I[4]: 33                                             CELL_I[4]: cell_i[4]
         CELL_I[3]: 35                                             CELL_I[3]: cell_i[3]
         CELL_I[2]: 12                                             CELL_I[2]: cell_i[2]
         CELL_I[1]: 2                                              CELL_I[1]: cell_i[1]
         CELL_I[0]: 13                                             CELL_I[0]: cell_i[0]
         VDD: 46                                                   VDD: VDD
         GND: 47                                                   GND: GND

**************************************************************************************************************
                               INFORMATION AND WARNINGS
**************************************************************************************************************

                  Matched    Matched    Unmatched    Unmatched    Component
                   Layout     Source       Layout       Source    Type
                  -------    -------    ---------    ---------    ---------
   Nets:               46         45            0            0
   Instances:           1          1            0            0    HJ250EEPEE8K1PL_E
                        1          1            0            0    top
                  -------    -------    ---------    ---------
   Total Inst:          2          2            0            0

o Initial Correspondence Points:
   Nets:         VCC GND Trng_En Trng_Data SEND_FINAL_OUT DATA_IN_ANA CLR CLK
发表于 2012-2-28 09:44:44 | 显示全部楼层
VDD=VDD GND=GND?????

你设置.GLOBAL VDD VCC GND就可以了

还有你的include的网表中端子的顺序要和top level中该单元的顺序一致
 楼主| 发表于 2012-2-28 10:28:53 | 显示全部楼层
本帖最后由 estyzq 于 2012-2-28 11:01 编辑

回复 25# damonzhao

   如果只设置了global VDD VCC GND,那么lvs是会报错的,第一个设计的错误是,lvs.rep里面报告在spice网表中有missing pins,这个missing pins就是GND(没有VDD);lvs报告的开头也说明了,cell with non-floating extra pins和component(eeprom) with no-identical signal pins,都是对应GND;报告没有提及VDD的问题。

第二个设计在同样写GLOBAL VDD VCC GND的情况下,也会有错,错误提示也是non_floating extra pins,错误是说core部分的VCC和GND在source网表中没有定义,还有eeprom的VDD和GND,但是layout中有

我在spice网表里面这么做VDD=VDD GND=GND,针对第一个设计反而没有错了,第二个设计就会出现上述的错误报告,虽然我对这样的方法也很纳闷。

说明:第一和第二个设计的区别在于,第二个设计是让eeprom和core部分电源相连接,第二个设计没有连接起来。同时,第二个设计是先将core部分做成ip,在顶层rfid(core+eeprom)将两个ip连接起来。

第二个设计的core部分的的spice是v2lvs弄出来的,端口顺序应该没有问题。在top level调用core部分和eeprom部分的端口顺序也没有问题。
我怀疑我的v2lvs的方式是不是错了,我使用命令为:v2lvs -v input_netlist.v -o output_spi.spi -s include.spi -s1 power -s0 ground
发表于 2012-2-28 13:05:51 | 显示全部楼层
回复 3# estyzq


    谢谢
发表于 2012-2-28 13:32:48 | 显示全部楼层
回复 26# estyzq


    其实你的设计的两种方式都没问题,很典型,都可以搞的定的

你的v2lvs方法也没有问题

你LVS时,不要ignore pins。因为我看到报告中有nets没有ports的对比信息


现在有种无奈感,我只能提供思路,具体的数据你自己去处理,我不能跑一遍验证自己分析,所以,只是从你描述情况来看,思路都没有问题,细节上哪里出问题,还真说不上来
 楼主| 发表于 2012-2-28 15:04:02 | 显示全部楼层
本帖最后由 estyzq 于 2012-2-28 15:39 编辑

回复 28# damonzhao


    版主你好,首先非常感谢你一直帮助我到现在!

你提到的不要ignore ports,我在lvs 规则文件中将这个规则修改过来了。

第二种设计方法的lvs报告开头如下,感觉很奇怪的样子,每个cell summary都是正确的,为何总的overall comparison results就是错误的呢?而且提示的error:componets with non-identical signal pins,在lvs.rep中找到的错误就是eeprom的VDD和GND没有在source中。

下述的top单元就是我先提出来的ip,eeprom的component情况没有在如下的报告显示出,rfid就是top和eeprom的顶层调用者。

对了,foundry提供的lvs规则文件中,有
LVS POWER NAME ?VDD?//?VCC?
LVS PGROUND NAME ?VSS?//?GND?

ps:为何在VDD和VSS边上还有问号?
这个规则的设定对lvs结果的影响是什么?和spice的GLOBAL的区别在哪?是不是在global设置的电源名必须和规则文件的一样?

其实我感觉现在lvs就是电源的问题了,而且应该就是eeprom和top的两个电源,在layout中有这个port,但是source中没有,这样拿去投片,有风险吗?

OVERALL COMPARISON RESULTS

                  #   #         #####################  
                   # #          #                   #  
                    #           #     INCORRECT     #  
                   # #          #                   #  
                  #   #         #####################  

  Error:    Components with non-identical signal pins.
  Warning:  Components with non-identical power or ground pins.

**************************************************************************************************************
                                      CELL  SUMMARY
**************************************************************************************************************
  Result         Layout                        Source
  -----------    -----------                   --------------
  CORRECT        AN2                           AN2
  CORRECT        AN2B1S                        AN2B1S
  CORRECT        AN2S                          AN2S
  CORRECT        AN3B1                         AN3B1
  CORRECT        AN3S                          AN3S
...................... (省略其他cell)
  CORRECT        TIE0                          TIE0
  CORRECT        TIE1                          TIE1
  CORRECT        XNR2                          XNR2
  CORRECT        XOR2                          XOR2
  CORRECT        XOR2S                         XOR2S
  CORRECT        top                           top
  CORRECT        rfid                          rfid
发表于 2012-2-28 16:00:17 | 显示全部楼层
那个问号是通配符,可以代指多个字母的
它是calibre自动用来识别电源的,如果你的电源是VDA,那么按照这个规则的话,它只能是普通信号了
同样如果你的时ABCVDDABC,那也可以被认为是电源的

我也有个疑问:
LVS POWER NAME ?VDD?//?VCC?
LVS PGROUND NAME ?VSS?//?GND?
你的rule里面如上写的,就是有“//”么?
如果有,建议你拿掉,替换成空格,然后再试试


不管你的感觉是什么,如果要流片,那就要排除任何的错误,让工具得出正确的验证。这时对工作负责,也是对之前的辛苦负责。
 楼主| 发表于 2012-2-29 10:13:04 | 显示全部楼层
本帖最后由 estyzq 于 2012-2-29 10:15 编辑

回复 30# damonzhao

今天我修改了LVS rule中的
LVS POWER NAME ?VDD?
LVS GROUND NAME ?GND?
然后在顶层网表中加上
.GLOBAL VDD GND

LVS 规则文件中,有两个设置,不知道会不会影响到什么结果
LVS IGNORE PORTS NO
LVS CHECK PORT NAMES NO

本次进行lvs就可以通过了,存在一个警告如下,请问版主这个警告要紧吗?
   
还有一个问题,LVS rule中的LVS POWER/GROUND NAME如果已经写了,那么在spice网表中如果没有.GLOBAL VDD GND,发现lvs还是过不了,请问lvs的power/ground name 和spice网表中的VDD GND有什么区别和联系?

如果设计中有两个电源,分别是VDD 和VCC 但是只有一个地GND,那么在lvs rule中的power name和ground name要怎么设置?

                                   OVERALL COMPARISON RESULTS
                         #       ###################     
                        #        #                 #       *   *   
                   #   #         #     CORRECT     #         |     
                    # #          #                 #       \___/  
                     #           ###################               

Warning:  Components with non-identical power or ground pins.

**************************************************************************************************************
                                      CELL  SUMMARY
**************************************************************************************************************
  Result         Layout                        Source
  -----------    -----------                   --------------
  CORRECT        AN2                           AN2
  CORRECT        AN2B1S                        AN2B1S
  CORRECT        AN2S                          AN2S
  CORRECT        AN3B1                         AN3B1
  CORRECT        AN3S                          AN3S
  CORRECT        AN4B1S                        AN4B1S
  CORRECT        AO112S                        AO112S
  CORRECT        AO12                          AO12
  CORRECT        AO13                          AO13
.......
  CORRECT        TIE0                          TIE0
  CORRECT        TIE1                          TIE1
  CORRECT        XNR2                          XNR2
  CORRECT        XOR2                          XOR2
  CORRECT        XOR2S                         XOR2S
  CORRECT        top                           top
  CORRECT        rfid                          rfid

**************************************************************************************************************
                               INFORMATION AND WARNINGS
**************************************************************************************************************

o Component types with non-identical power or ground pins:
      (Cells with the same ( or corresponding ) name that have different voltage
       pin names are listed below.  Pins that do not appear in all corresponding
       cells in both source and layout are ignored by the comparison algorithm.)
Layout Component Type:  HJ250EEPEE8K1PL_E (38 pins)
Extra Pins:  VDD GND
Source Component Type:  HJ250EEPEE8K1PL_E (36 pins)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

×

小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-15 23:19 , Processed in 0.026005 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表