您好,欢迎来到小侦探旅游网。
搜索
您的当前位置:首页LVS验证的实验指导

LVS验证的实验指导

来源:小侦探旅游网


第五章 物理验证

(一)教学内容

1.物理验证的概念;

2.主流物理验证工具介绍;

Calibre 是Mentor Graphics 的IC版图验证软件,此软件包括设计规则检查( DRC )、版图与原理图一致性检查(LVS)、电气规则检查(ERC)、及版图寄生参数萃取(LPE)等验证功能。其操作界面主要分为图形模式(GUI)(graphical user interface) Calibre Interactive与指令模式(Command Line),其中图形模式可以单独启动,亦可与Virtuoso 等软件相连接,其操作界面皆相同。本章我们主要研究图形模式。

3.主要术语

⏹ SVRF---Standard Verification Rule Format(标准的检查文件)

⏹ RVE---Results Viewing Environment(显示结果用的环境窗口)

⏹ SVDB---Standard Verification Database (LVS results)

⏹ DRC---Design Rule Check(设计规则检查)

⏹ ERC---Electrical Rule Checking(电气规则检查)

⏹ LVS---Layout Versus Schematic(版图原理图一致性检查)

⏹ LPE---Layout Parasitic Extraction(版图寄生参数萃取)

第二节 LVS版图与原理图的一致性

4.Calibre LVS 简介

Calibre LVS 是一个出色的版图与线路图对比检查工具,具有高效率、高准确度和大容量等优点。Calibre LVS 不仅可以对所有的“元件”进行验证,而且还能在不影响性能的条件下,处理无效数据。主要表现在以下几个方面:

(1) 运行模式快捷方便:Calibre LVS 有两种运行模式,即命令行模式和界面模式(Calibre Interactive-LVS)。采用命令行模式可以快速输入控制命令,快速运行,其结果精确稳定。Calibre Interactive-LVS 能够自动选择验证正被编辑的单元,并且能够选择所有的Calibre运行时间选项以及标准文件的规范。该验证技术,允许用户选择特定标准文件以及规则和规则组的任何子集。GUI 可控制普通使用的LVS 选项,并记录运行设置过程。当采用修改控制或冻结标准文件时,它可将运行配置数据传给Calibre。其界面友好,使用方便。我们在做LVS 过程中,对于规模较小的模拟电路和数模混合电路,一般采用方便的图形界面模式(Calibre Interactive-LVS)进行对比检查,这样可以在启动RVE 后,对照LVS 结果文件和版图,将电路(或者网表)和版图直接对应起来检查,非常方便;对于大规模的SoC 电路,由于命令行方式输入简单直接,运行速度更快,运行结果

稳定精确,这次就采用了命令行方式来运行LVS,获得了极大的成功。

(2) 多种比较方式可选:Calibre LVS 可以进行版图与电路图(layout vs shematic)和网表与网表(netlist vs netlist)的方式对比检查,还可以单独从版图提取网表。而且,通过v2lvs 命令,可以将自动布局布线所产生的verilog 网表转换成spice 网表,然后与自动布局布线的版图进行对比,操作简单方便,结果精确。由此可见,可以根据不同需要,在LVS 验证过程的不同阶段,灵活地选择比较方式,以获得最有效的运行和最佳的结果。

(3) 侦错方便快捷:当运行完LVS 后,Calibre LVS 会产生一个结果报告,明确指出出错类型和数目,并且可以对层次化中的每个模块都有一个完整的LVS 报告,简单明了。这个报告还能明确指出短路(特别是电源和地短路的情况)、开路、浮空或孤立的nets、pin swapping以及软连接等问题。Calibre LVS 还能产生一个详细的结果数据库,其中包括原理图网表、从版图抽取的网表、结果报告、版图中的器件及连接关系等。这样通过RVE 来读取这些数据,就可以在版图和网表中准确地Highlight 有错误的地方(图1)。

由此可见,Calibre LVS 所产生的结果文件结构清晰,又可以通过RVE 来准确定位,能有效地帮助用户快速地消除错误以降低设计风险,这在我们项目的开发过程中得到了完全的体现。由于时间紧迫,致使后端设计的时间相当紧张,正是Calibre LVS 能准确无误、快速地查出短路、开路、浮空或孤立的网络、引脚、软连接等问题,还能很好地识别晶体管、门级电路和模块级电路,才使得我们按时地完成了百万门级的信息安全SoC 的设计。在反复使用 Calibre LVS 的图形界面的运行方式和命令行方式过程中,发现Calibre LVS 图形界面的运行方式方便快捷,但是其稳定性不如命令行方式好,若能加以

改进,则能进一步

提高验证精准度。

5.物理验证的流程;

手工修改版图

注:从APR 工具实现的版图中提取(extract)出一个网表。

将这个提取出的网表与APR 工具要实现的网表比较,它们应该相同。

如果两个网表不一样,这时手工修改版图,使之与要实现的网表相一致。

6.准备工作:

(1)为什么要做LVS?LVS 作了些什么?

APR (Automatic place and Route)自动布局布线工具作出的版图,基本上是正确的。但是,不能保证APR 工具是绝对正确的,也就是说,APR 工具可能会出错。为了发现并改正APR 工具布线的错误,需要做LVS。

另外,从版图中提取电路图,同样需要验证电路图与版图的一致性。

LVS的目的就是证明版图的逻辑与网表是一致的,APR 将网表实现成了版图,现在LVS 要证明这个实现是正确的。

(2)下面是一个简单的calibre LVS Rule File,右边#后内容是对它的解释。

⏹ LAYOUT SYSTEM GDSII # 指定layout 的格式为gds

⏹ LAYOUT PATH “/user/joeb/proj/layout/ictr” # 指定版图的路径

⏹ LAYOUT PRIMARY CalibreM # 版图的top cell

⏹ SOURCE SYSTEM SPICE # 指定source 的格式为spice 网表

⏹ SOURCE PATH “/user/joeb/proj/logic/ictr” # source 的路径

⏹ SOURCE PRIMARY CalibreM # source 的top cell

⏹ MASK RESULTS DATABASE CalibreM.db # LVS 的结果保存文件,将来指导改正版图

⏹ LVS REPORT CalibreM.rpt # report 文件

⏹ layer PWELL 1 # 读入版图的各层信息

⏹ layer OXIDE 2

⏹ layer RES 3

⏹ layer POLY 4

⏹ layer NPLUS 5

⏹ layer PPLUS 6

⏹ layer CONTACT 7

⏹ layer METAL1 8

⏹ layer VIA 9

⏹ layer METAL2 10

⏹ chip = extent

⏹ nsub = chip not pwell # 进行layer operation。

⏹ gate = oxide and poly

⏹ sd = oxide not poly

⏹ ngate = gate and nplus

⏹ pgate = gate and pplus

⏹ psd = sd and pplus

⏹ nsd = sd and nplus

⏹ sdm = pplus or nplus

⏹ connect psd pwell # 定义连接关系

⏹ connect nsd nsub

⏹ connect metal1 poly nsd psd by contact

⏹ connect metal2 metal1 by via

⏹ device mn ngate poly nsd nsd pwell [0] # 提取 nmos

⏹ device mp pgate poly psd psd nsub [0] # 提取 pmos

Calibre 根据这个Rule File 提供的信息,首先从版图中提取出一个网表,再将这个网表与APR要实现的网表进行比较,判断APR 生成的版图是否正确。

7.具体操作:

⏹ 专门建立一个新的文件夹用于此次LVS 。

⏹ 将Rule File拷贝至此文件夹。

⏹ 从版图中导出GDS文件至此文件夹下,操作同DRC时导出版图,亦可在Calibre DRC 图形界面中选择从当前版图中导出GDS 文件。

⏹ 利用Analog Environment 中的hspiceS 从电路图中导出网表。下面是导出网表

的图示。

● 在Simulator中选择hspiceS

⏹ 将电路图网表拷贝至你所建立的新目录scj_lvs中与*.gds和rule file 放置在一起,此时要修改电路图网表的内容,使其与layout有相同的model name,以及把VDD!等的惊叹号去掉,以保持与layout网表的一致性。

(二)实验内容

1.启动LVS方法(三种方法启动图形界面)

●在版图的Calibre菜单下点出 RUN LVS 命令

●在命令窗口里输入 calibre –gui 启动calibre GUI,再选择LVS

●直接在命令窗口里输入calibre –gui -lvs

2. Runset File是RUN LVS时需要填入的一些设置,方便于下次RUN。第一次由于没有,所以就选择New Runset ,等第一次RUN完后,可以将填入的设置存成一个Runset File。再RUN LVS时,可以将这个Runset File Load进来。同RUN DRC。

⏹ 上面的窗口中,可以看到 Rules 与 Inputs 两个命令是红色的,表示 RUN LVS 需你设置的。

3. 点击 Rules 命令,在 Calibre-LVS Rules File 的命令行里输入用来做 LVS检查的文件(SVRF),这个文件里包括了一些层次及器件的定义等。在 Calibre-LVSun Directory 里输入你要 RUN LVS 的路径,建议建一个专门的目录。可以看到这时Rules 已经变成绿色,表示 Rules 里设置完成了。每个命令行后面的…可以帮助你选择文件。

4. 点击Inputs 命令,如果选择Layout vs Netlist ,则在Layout 命令行里输入你要检查的版图的GDS,假如你已经当前版图输出GDS 了,可以输入已经生成的GDS。假如你还没有输出GDS,可以选下面的Import layout database from layout viewer 设置,这样Calibre 在Run LVS 时就先把当前的版图输出GDS,名字就是你上面输入的GDS 名。

●Primary Cell 的命令行里就是当前的顶层单元名。

●Layout Netlist 的命令行里填入版图提取出 SPICE 网表的名称。

⏹ 如果选择Netlist vs Netlist , 此时layout 选项中的Files 不可选,则必须已经有了layout的网表,在Layout Netlist命令行里填入layout网表的名称。

⏹ 如果选择Netlist Extraction ,则只从layout中抽取出网表,不与电路图网表进行比对。

⏹ Primary Cell 的命令行里就是当前的顶层单元名,与上面Layout vs Netlist 时相同。

⏹ 在Files命令行里填入逻辑网表。

⏹ 可以选择从电路图中自动导出,此电路图应与当前版图在同一个Library里的同一个Cell里,自动导出的网表为cdl格式。

⏹ 通常利用Import自动产生Source netlist 后,其device的model name会与layout不匹配,因此常需要自行修正。

⏹ Primary Cell里填入逻辑的顶层单元名。

使用hspice格式的网表时,由于其顶层单元不包括.subckt语句,所以就用”.”填入。因为填“.”时,LVS只读取.subckt语句之外的内容。

⏹ HCells是使用Hierarchical模式做LVS时才需设定,否则不需额外去做设定。使用Hierarchical模式下最常见的设定是Automatch,一般在Layout所用的Cell Name于Schematic 的Cell Name 不一致的情况下方需设定HCells.

⏹ 点击Netlist边上的H-Cells,选中Match cells by name(automatch)选项。Calibre Hierarchical LVS是先完成底层单元的比对,但需要将底层单元设为H-Cells。如果一个单元只调用了一次,没必要将它设为H-Cells。但被调用了多次时,将它设为H-

Cells时会大大减少LVS时间。

5. 点击Outputs命令

⏹ 选择run完LVS后检视Report。

⏹ 建立SVDB database并在run完LVS后开启RVE来检视error。

⏹ 在LVS Report File 的命令行里输入LVS输出的文本文件的路径及名称。

⏹ 在SVDB Directory 的命令行里输入LVS输出的数据存放的路径。这个数据是用Calibre RVE来Debug时读入的数据。

6. 点击LVS Options命令

⏹ Setup->LVS Options

⏹ 在Options里的Supply选项里选中Abort LVS on power/ground net errors,这个选项的目的是当电源地短路时中断LVS.

⏹ 如果出现电源地短路,再RUN LVS时就不选这个选项,这样LVS就不会中断并且会报出电源地短路的地方。

⏹ 但是不选这个选项会RUN很长时间,所以一般都会选上这个选项。

⏹ 在Power nets 和Ground nets 两个命令行里分别输入电源地的名称。一般rule file里已经写好了,load rule file 或 runset file时自动会填在这里面。

⏹ 在Report 选项里的LVS Report Options 里选中S选项。这样在LVS Report File 里会输出详细的软连接的冲突。

⏹ 软连接(soft connect) 是将电位单向由上传至下层的layer,以用来检查是否有不同电压准位透过底层连接,或是上层电位是从底层传递过去的。

⏹ 在 Gates 选项里选中 Recognize all gates 选项,目的是 Calibre LVS 能以所有的逻辑门(与非门、倒相器、或非门、与或非门等)为单元来比对。

⏹ 选中 Recognize simple gates,只能以基本的逻辑门(倒相器、与非门、或非门)比对。

⏹ 选中 Turn gate recognition off 时,LVS将以单管为单位来比对。当你允许逻辑门的输入可以互换时选前两个,如果你不允许时就选最后一个。

⏹ 当你要在RUN LVS 的同时RUN ERC 检查时选中ERC 选项,选中Run ERC 选项

⏹ 在ERC Results File 命令行里填入ERC 的结果数据的路径和名称。

⏹ 在ERC Summary File 命令行里填入ERC 的简述文件的路径和名称。

● 在Connect 选项里选中Connect nets with colon(:) ,当你的版图里有用TEXT 加

冒号来表示两条线的连接时要选中这个选项。

7.点击Run Control命令

⏹ Run Calibre LVS的相关option,可决定是

⏹ 否以bit,远端操作,或多台server执行,

⏹ 一般均不改变预设值。

8.点击Transcript命令

⏹ Transcript 记录Run LVS的过程与相关信息,若无法顺利执行,可由此看错误讯息,亦可利用Transcript -> Save as 存成log file。

⏹ Run LVS 执行Calibre LVS check。

8.可点击Start RVE 自行以手动方式开启RVE视窗。

⏹ 在Report 上出现笑脸符号代表LVS check正确,RVE也将显示Design Match.

9. LVS 错误举例

⏹ RVE 显示有四处net 错误,一处port 错误,一处instance 错误,一处property 错误。

● RVE 显示有四处net 错误,点开第二个错误,下面显示了详细的incorrect nets 的信息。LAYOUT 中一条net 对应着电路图中的两条net ,表示电路图中有一处Open Circuit 开路错误。 或者是layout 中有一处Short Circuits 短路错误。

● 双击LAYOUT NAME 中的Net X/inp ,则会打开版图并高亮此net

⏹ 通过版图中高亮的net ,找出与此错误有关系的cell ,然后在电路图上在根据cell ,找出有错误的net ,如上图所示

⏹ 左右两条红线net ,在版图上是连起来的,所以修正电路图如上图所示

⏹ 点开第三个错误,下面显示了详细的incorrect nets 的信息。LAYOUT 中两条net 对应着电路图中的一条net ,表示layout 中有一处Open Circuit 开路错误。 或者是电路图中有一处Short Circuits 短路错误。

● 版图上a1 和a2 是两条net ,而在电路图上两条线连了起来,修正后如右图所示。

(1)Property 错误

⏹ RVE 显示property 参数错误,mos管的宽度不匹配。

⏹ 双击LAYOUT 下边的X/X8422/M0 ,在版图中高亮这个晶体管。

⏹ 电路图中multiplier 参数错误。

(2)Port 错误

● RVE 显示port 错误,在下面可以看到,layout 中的port DOUT 在source 中对应着DOUT_E ,把名字改过来即可。

(3)Instance 错误

● 从版图中可以看到M_133一端接VD33,所以其model name 应该填PD,然后在导出的spice网表中再改为P33即可

⏹ 从右面三张图上可以看到,M_130_133 上的bulk一端,layout与source上不一致,将电路图上的bulk node connection 的值改为与版图一致的VD33 即可。

10.关于Calibre lvs report?

●Lvs中Input和Output的信息:

●该部分主要记录calibre中的一些信息,例如layout,netlist,report file,运行时间以及calibre的版本信息。Lvs是否匹配最明显的标志:NOT COMPARED, CORRECT 和 INCORRECT

(a)NOT COMPARED: lvs没有完成,会有Error信息出现在report file的开头,提示为什么lvs没有进行,一般是lvs文件中input的信息不对;

( b )CORRECT:layout与netlist匹配;

( c )INCORRECT: layout与netlist不匹配,有error信息提示,表示具体不匹配的原因;

●LVS PARAMETERS部分:这部分描述的是lvs command file中定义的各种参数设置,可以忽略;

●INITIAL NUMBERS OF OBJECTS: 表示转换前layout和netlist中的net数目,器件类型和器件数目。这部分不用太留意,因为最终的器件数目会在转换后有所变化。根据lvs rule file中的某些设置,某些器件可以合并,或被剔除

●NUMBERS OF OBJECTS AFTER TRANSFORMATION: 表示转换后layout和netlist中的net数目,器件类型和数目。某些器件被合并或者剔除,从例子中可以看到,port ,器件数目都保持一致;因为电路图中有一处开路和一处短路,所以net数据也保持一致。

●Report中最重要的部分――INCORRECT NETS部分:

Report中,该部分分为左右两列,左边部分表示layout中关于某个net的信息,右边表示netlist中该net的信息。

⏹ INCORRECT PORTS 部分:这部分描述layout中和netlist中不对应的input和output的PORT名称。

⏹ INCORRECT INSTANCES 部分:描述layout中和netlist中不对应的device。

⏹ PROPERTY ERRORS 部分: 主要描述layout和netlist中对应的device的参数错误,例如length、width、area等。

⏹ INFORMATION AND WARNINGS部分:layout和netlist中匹配情况的统计,以及各种不匹配的信息;

⏹ 后面的描述表示有多少device被合并或者剔除。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- xiaozhentang.com 版权所有 湘ICP备2023022495号-4

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务