第五章 物理验证
(一)教学内容 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 ↓
Spice网表
↘
规则文件
↓
Calibre LVS ↙ ↓ ↘ LVS错误数据库LVS错误差异报告
提取的网表
↓ ↘ ↙SVDB
↓ 确定报告来自
RVE+VLE版图
于差错报告
↙ ↑
GDSⅡ版图
→
手工修改
→
编辑器↓
↑
↑
版图
注:从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 里设置完成了。每个命令行后面的…可以帮助你选择文件。