(一)教学内容 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 里设置完成了。每个命令行后面的…可以帮助你选择文件。
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
本站由北京市万商天勤律师事务所王兴未律师提供法律服务