calibredrc和lvs验证总结 下载本文

0

PD_M4 199 1 0

PD_M5 200 1 0

PD_M6 201 1 0

也包含了检查的错误信息,该数据库主要是被后面的RVE 来调用的。然后要根据错误去版图中相应的位置改,Calibre 提供了良好的RVE(Result View Enviroment)界面,它能直接调用DRC 或者LVS 检查后的结果数据库,图形化很直观地显示错误所在,并且可以调用版图工具如Virtuoso,直接在Virtuoso 中快速定位错误位置。

2、用RVE 查看结果和改错

RVE(Result View Enviroment)是Calibre 自带的看验证结果的集成工具。启动 方式为:

calibre –rve database

database 为DRC 或LVS 检查结果的数据库,这里是drc_err : calibre -rve drc_err 激活后界面如图1

可见左边显示DRC 错误种类和数目,右边显示坐标位置,下面是对该Rule 的解释。 清晰的界面,方便的操作能帮助用户快速找到错误和修改。RVE 能调用很多版图工 具,把错误直接反映在版图位置上,见菜单Setup ——> Layout , 这里可以设置调 用的版图工具。具体配置方法见在线帮助中Calibre 与其他工具的接口。在Cadence 的Virtuoso 中集成了Calibre 以后,Virtuoso 的菜单中会多出Calibre 的菜单,如: 即可以直接从Virtuoso 中调用图形化的DRC, LVS 和RVE,显得十分方便。点击 Start RVE , 选择数据库名称,同样可以得到同图1 一样的界面,这时RVE 已经 和版图工具集成在一起,可以在RVE 中点击一些错误坐标,Virtuoso 中立刻会显示 错误的位置,如图3:

这里点击M1 小于最小面积的错误中的第1 个错误点:右边坐标红色下划线的 , ) , 在版图工具中会立刻高亮显示位置,如图4:

因此改错起来十分方便。可以在RVE 菜单View ――> By Check , RVE 左边会显 示出Check 每条rule 的结果,见图5:

绿色的表示检查该rule 无误。而且利用File 菜单中可以方便地打开DRC 结果报告、 DRC Runset 等,如图6:

第三章 Calibre LVS

3.1数据准备

需要的数据为版图数据、电路图数据和runset 文件。Calibre 把电路图网表 的部分叫SOURCE。SOURCE 部分要求的网表格式为标准spice 格式或者Calibre

自身的一种类似spice 的格式。Calibre 有一种把verilog 转为自身类spice 格式的 功能,叫v2lvs,下面先介绍v2lvs:

v2lvs 能够把verilog 网表和相对应的spice 库、verilog 子库转成Calibre LVS 用 到的电路图SOURCE 网表,其功能如图:

转换的原理是verilog 网表根据verilog 子库对元件端口的定义,去spice 子库找同样 名称和端口的元件,然后进行网表和格式上的替换。因此v2lvs 转类spice 网表时, 需要verilog 网表、spice 库、verilog 子库描述(可选),其命令格式如下:

v2lvs –v verilog_file –o spice_like_file [-l verilog_lib_file ] [-lsp spice_lib_file] [-lsr spice_lib_file] [-s spice_lib_file] [-s0 groundnet] [-s1 powernet] [-sk] [-i]

-v 后面接verilog 文件名称;-o 为输出类spice 格式文件;-l 是verilog 子库描述;-lsp 接spice 库网表,p 是pin 模式,即不允许有数组类的verilog 端口(比如PA[3]、PA[2]、 PA[1]、PA[0])出现;-lsr 与-lsp 意义同,不过pin 是range 模式,即可以接受verilog 的数组端口;与-lsp,-lsr 不同的是,-s 是只是让转出文件在前面INCLUDE 这些spice 子库,而不会读它们;-s0 , -s1 为对verilog 中1’b0, 1’b1 的电源网络取代;-sk 指允

许多组复合电源,不仅仅是一对全局电源VDD,VSS;-i 指输出文件采用spice 通用 的pin 格式,没有$引导,便于仿真。常见的例子如下:

v2lvs –v –o –s0 VSS –s1 VDD –sk –l -l –l –l -lsr –lsr

–lsp -lsp -s –s –s –s

根据几个子模块的情况,转出整个芯片的LVS 网表。

实际上,verilog 子库并不是都需要的,v2lvs 在转spice 网表的时候,是根据verilog 子库中元件端口和spice 子库中的元件端口名称对应关系来转的。如果在verilog 网表中没有数组端口,则该元件端口名称在spice 子库网表中元件的端口名称中也是唯一的标识,因此不会转错。但是对于数组端口(如PA[31:0]),如果没有verilog 子库对模块的端口定义,v2lvs 按照缺省的从高位到低位的方式转出端口对应关系,因此会出错。因此对于有数

组端口的verilog 网表,一定要求有verilog子库网表。上面的例子可以简化为:

v2lvs –v –o –s0 VSS –s1 VDD –sk -l –l -lsr -lsr -lsp –lsp -s –s –s –s

3.2 LVS 流程

从下面的流程中可看出,Calibre LVS都先把版图提取出SPICE格式的网表来,实际上Calibre LVS比对的是两个SPICE网表。

Rule Completed Completed

Calibre LVS

ASCII ExtracteLVS Results

Report d Database

Determine Locate Errors using Calibre Correct

Errors from RVE and Layout Tool Layout

3.3一个简单的LVS Runset文件

. .

bulk = EXTENT . . . . Element_name Model_name Gate pin Source pin layer layer Device Drain Bulk pin pin Property Specification (1) run_lvs命令就可。运行完后可以到存放结果文件的目录里看Report File,还可

以在版图里用RVE调LVS Database进行Debug (2) hcell_file的格式如下

Error: Different numbers of instances. Error: Connectivity errors.

Error: Instances of different types or subtypes were matched.

Error: Property errors.

Warning: Unbalanced smashed mosfets were matched.

Warning: Ambiguity points were found and resolved arbitrarily.

*******************************************************************************

* CELL SUMMARY *

*******************************************************************************

Result Layout Source ----------- ----------- ------------- INCORRECT TOPCELL TOPCELL

可见总的比较结果是不正确,错误有5 种: 不同网络、不同元件个数、连接错误、不同元件类型、属性错误,CELL SUMMARY 里面有Layout 和Source 的TOPCELL 不匹配。然后直接翻页到文件的后面,看到INFORMATION AND WARNINGS 栏:

*******************************************************************************

INFORMATION AND WARNINGS

*******************************************************************************

这里列出了匹配的统计情况(同dracula 的最后),可以看见SOURCE 和

LAYOUT 匹配了多少,各有多少没有匹配,错在哪种单元上面等,这里可以看出共 有10 个layout 单元和16 个source 单元没有匹配。下面是管子等删减的情况统计:

o Statistics:

310940 layout mos transistors were reduced to 94596. 24286 connecting nets were deleted.

171921 mos transistors were deleted by parallel reduction.

16 mos transistors and 16 connecting nets were deleted by series reduction. 44407 mos transistors and 24270 connecting nets were deleted by split-gate reduction.

106383 source mos transistors were reduced to 28181. 22460 connecting nets were deleted.

36983 mos transistors were deleted by parallel reduction.

16 mos transistors and 16 connecting nets were deleted by series reduction. 41203 mos transistors and 22444 connecting nets were deleted by split-gate reduction.

20 series/parallel layout resistors were reduced to 6. 8 connecting nets were deleted.

141 unused layout mos transistors were deleted. 141 unused source mos transistors were deleted. 2 unused layout resistors were deleted. 47 nets were matched arbitrarily.

下面是顶层端口对应情况,这个很重要:

Initial Correspondence Points:

Ports: vdd VDD33 SAVDD VSS VSSD SAVSS EB_RDVAL EB_WDRDY EB_RBERR EB_WBERR SI_NMI SI_INT[5] SI_INT[4] SI_INT[3] SI_INT[2] SI_INT[1] SI_INT[0] SI_ENDIAN

SI_COLDRESET EB_ARDY SI_RESET EJ_DINTSUP EJ_DINT CACHE_CE TRST TMS TCK TDI SI_ERL SI_EXL SI_RP SI_CLKOUT SI_SLEEP SI_TIMERINT EB_AVALID EXT_CLK EXT_CLKEN EB_INSTR EB_WRITE EB_BURST EB_BFIRST EB_BLAST EJ_DEBUGM EB_BE[3] EB_BE[2] EB_BE[1] EB_BE[0] FREF PLL_TEST SI_PLLCLK

如果Ports 部分没有出现顶层模块的所有端口, 则肯定会导致整个比较的失败,因 此如果端口方面信息错误的话, 应该去查一下版图抽取的时候是否出了问题,可以 去看 和。注意: Ports 报告的数目和LVS Report

MAXIMUM number 的设置数据有关,最好使number 大于顶层的端口数目。下面是 具体详细的连接信息。如果发现端口基本正确,可以直接到文件的前面看详细的 Error 信息。CELL SUMMARY 下面是LVS PARAMETERS 部分,即回放LVS 比 较的所有选项设置:

看 的方法是:先看OVERALL COMPARISON RESULTS,看总体比较是否正确,如果不对,看错误的类型;然后去文件后面看INFORMATION AND WARNINGS , 看具体元器件匹配的情况, 尤其是下面的Initial Correspondence Points Ports 中顶层端口匹配的情况,如果端口没有匹配好,去查版图抽取的情况;如果出现很多大量的管子不匹配,请检查电源网络是否有开路,短路现象,同时可以设置LVS Recongnize gates 和LVS Reduce split gates 为yes 再试一次(即允许pin 交换和删减复杂门);最后可以回到文件开头看INITIAL NUMBERS OF OBJECTS 和NUMBERS OF OBJECTS AFTER TRANSFORMATION , 以及具体的INCORRECT NETS , INCORRECT INSTANCES,PROPERTY ERRORS 信息,在版图和电路图上找到相对应的地方进行检查。

注意:对于短路现象,则Layout 中的网络数目必然少于Source 中的,并且出现Layout 中几个网络对应与Source 中的一个网络的信息;对于开路,Layout 中的网络数目必然大于