LVS验证的实验指导.docx
- 文档编号:24611646
- 上传时间:2023-05-29
- 格式:DOCX
- 页数:22
- 大小:829.21KB
LVS验证的实验指导.docx
《LVS验证的实验指导.docx》由会员分享,可在线阅读,更多相关《LVS验证的实验指导.docx(22页珍藏版)》请在冰豆网上搜索。
LVS验证的实验指导
第五章 物理验证
(一)教学内容
1.物理验证的概念;
2.主流物理验证工具介绍;
Calibre是MentorGraphics的IC版图验证软件,此软件包括设计规则检查(DRC)、版图与原理图一致性检查(LVS)、电气规则检查(ERC)、及版图寄生参数萃取(LPE)等验证功能。
其操作界面主要分为图形模式(GUI)(graphicaluserinterface)CalibreInteractive与指令模式(CommandLine),其中图形模式可以单独启动,亦可与Virtuoso等软件相连接,其操作界面皆相同。
本章我们主要研究图形模式。
3.主要术语
⏹SVRF---StandardVerificationRuleFormat(标准的检查文件)
⏹RVE---ResultsViewingEnvironment(显示结果用的环境窗口)
⏹SVDB---StandardVerificationDatabase(LVSresults)
⏹DRC---DesignRuleCheck(设计规则检查)
⏹ERC---ElectricalRuleChecking(电气规则检查)
⏹LVS---LayoutVersusSchematic(版图原理图一致性检查)
⏹LPE---LayoutParasiticExtraction(版图寄生参数萃取)
第二节LVS版图与原理图的一致性
4.CalibreLVS简介
CalibreLVS是一个出色的版图与线路图对比检查工具,具有高效率、高准确度和大容量等优点。
CalibreLVS不仅可以对所有的“元件”进行验证,而且还能在不影响性能的条件下,处理无效数据。
主要表现在以下几个方面:
(1)运行模式快捷方便:
CalibreLVS有两种运行模式,即命令行模式和界面模式(CalibreInteractive-LVS)。
采用命令行模式可以快速输入控制命令,快速运行,其结果精确稳定。
CalibreInteractive-LVS能够自动选择验证正被编辑的单元,并且能够选择所有的Calibre运行时间选项以及标准文件的规范。
该验证技术,允许用户选择特定标准文件以及独立规则和规则组的任何子集。
GUI可控制普通使用的LVS选项,并记录运行设置过程。
当采用修改控制或冻结标准文件时,它可将运行配置数据传给Calibre。
其界面友好,使用方便。
我们在做LVS过程中,对于规模较小的模拟电路和数模混合电路,一般采用方便的图形界面模式(CalibreInteractive-LVS)进行对比检查,这样可以在启动RVE后,对照LVS结果文件和版图,将电路(或者网表)和版图直接对应起来检查,非常方便;对于大规模的SoC电路,由于命令行方式输入简单直接,运行速度更快,运行结果稳定精确,这次就采用了命令行方式来运行LVS,获得了极大的成功。
(2)多种比较方式可选:
CalibreLVS可以进行版图与电路图(layoutvsshematic)和网表与网表(netlistvsnetlist)的方式对比检查,还可以单独从版图提取网表。
而且,通过v2lvs命令,可以将自动布局布线所产生的verilog网表转换成spice网表,然后与自动布局布线的版图进行对比,操作简单方便,结果精确。
由此可见,可以根据不同需要,在LVS验证过程的不同阶段,灵活地选择比较方式,以获得最有效的运行和最佳的结果。
(3)侦错方便快捷:
当运行完LVS后,CalibreLVS会产生一个结果报告,明确指出出错类型和数目,并且可以对层次化中的每个模块都有一个完整的LVS报告,简单明了。
这个报告还能明确指出短路(特别是电源和地短路的情况)、开路、浮空或孤立的nets、pinswapping以及软连接等问题。
CalibreLVS还能产生一个详细的结果数据库,其中包括原理图网表、从版图抽取的网表、结果报告、版图中的器件及连接关系等。
这样通过RVE来读取这些数据,就可以在版图和网表中准确地Highlight有错误的地方(图1)。
由此可见,CalibreLVS所产生的结果文件结构清晰,又可以通过RVE来准确定位,能有效地帮助用户快速地消除错误以降低设计风险,这在我们项目的开发过程中得到了完全的体现。
由于时间紧迫,致使后端设计的时间相当紧张,正是CalibreLVS能准确无误、快速地查出短路、开路、浮空或孤立的网络、引脚、软连接等问题,还能很好地识别晶体管、门级电路和模块级电路,才使得我们按时地完成了百万门级的信息安全SoC的设计。
在反复使用CalibreLVS的图形界面的运行方式和命令行方式过程中,发现CalibreLVS图形界面的运行方式方便快捷,但是其稳定性不如命令行方式好,若能加以改进,则能进一步
提高验证精准度。
5.物理验证的流程;
手工修改版图
注:
从APR工具实现的版图中提取(extract)出一个网表。
将这个提取出的网表与APR工具要实现的网表比较,它们应该相同。
如果两个网表不一样,这时手工修改版图,使之与要实现的网表相一致。
6.准备工作:
(1)为什么要做LVS?
LVS作了些什么?
APR(AutomaticplaceandRoute)自动布局布线工具作出的版图,基本上是正确的。
但是,不能保证APR工具是绝对正确的,也就是说,APR工具可能会出错。
为了发现并改正APR工具布线的错误,需要做LVS。
另外,从版图中提取电路图,同样需要验证电路图与版图的一致性。
LVS的目的就是证明版图的逻辑与网表是一致的,APR将网表实现成了版图,现在LVS要证明这个实现是正确的。
(2)下面是一个简单的calibreLVSRuleFile,右边#后内容是对它的解释。
⏹LAYOUTSYSTEMGDSII#指定layout的格式为gds
⏹LAYOUTPATH“/user/joeb/proj/layout/ictr”#指定版图的路径
⏹LAYOUTPRIMARYCalibreM#版图的topcell
⏹SOURCESYSTEMSPICE#指定source的格式为spice网表
⏹SOURCEPATH“/user/joeb/proj/logic/ictr”#source的路径
⏹SOURCEPRIMARYCalibreM#source的topcell
⏹MASKRESULTSDATABASECalibreM.db#LVS的结果保存文件,将来指导改正版图
⏹LVSREPORTCalibreM.rpt#report文件
⏹layerPWELL1#读入版图的各层信息
⏹layerOXIDE2
⏹layerRES3
⏹layerPOLY4
⏹layerNPLUS5
⏹layerPPLUS6
⏹layerCONTACT7
⏹layerMETAL18
⏹layerVIA9
⏹layerMETAL210
⏹chip=extent
⏹nsub=chipnotpwell#进行layeroperation。
⏹gate=oxideandpoly
⏹sd=oxidenotpoly
⏹ngate=gateandnplus
⏹pgate=gateandpplus
⏹psd=sdandpplus
⏹nsd=sdandnplus
⏹sdm=pplusornplus
⏹connectpsdpwell#定义连接关系
⏹connectnsdnsub
⏹connectmetal1polynsdpsdbycontact
⏹connectmetal2metal1byvia
⏹devicemnngatepolynsdnsdpwell[0]#提取nmos
⏹devicemppgatepolypsdpsdnsub[0]#提取pmos
Calibre根据这个RuleFile提供的信息,首先从版图中提取出一个网表,再将这个网表与APR要实现的网表进行比较,判断APR生成的版图是否正确。
7.具体操作:
⏹专门建立一个新的文件夹用于此次LVS。
⏹将RuleFile拷贝至此文件夹。
⏹从版图中导出GDS文件至此文件夹下,操作同DRC时导出版图,亦可在CalibreDRC图形界面中选择从当前版图中导出GDS文件。
⏹利用AnalogEnvironment中的hspiceS从电路图中导出网表。
下面是导出网表的图示。
●在Simulator中选择hspiceS
⏹将电路图网表拷贝至你所建立的新目录scj_lvs中与*.gds和rulefile放置在一起,此时要修改电路图网表的内容,使其与layout有相同的modelname,以及把VDD!
等的惊叹号去掉,以保持与layout网表的一致性。
(二)实验内容
1.启动LVS方法(三种方法启动图形界面)
●在版图的Calibre菜单下点出RUNLVS命令
●在命令窗口里输入calibre–gui启动calibreGUI,再选择LVS
●直接在命令窗口里输入calibre–gui-lvs
2.RunsetFile是RUNLVS时需要填入的一些设置,方便于下次RUN。
第一次由于没有,所以就选择NewRunset,等第一次RUN完后,可以将填入的设置存成一个RunsetFile。
再RUNLVS时,可以将这个RunsetFileLoad进来。
同RUNDRC。
⏹上面的窗口中,可以看到Rules与Inputs两个命令是红色的,表示RUNLVS需你设置的。
3.点击Rules命令,在Calibre-LVSRulesFile的命令行里输入用来做LVS检查的文件(SVRF),这个文件里包括了一些层次及器件的定义等。
在Calibre-LVSunDirectory里输入你要RUNLVS的路径,建议建一个专门的目录。
可以看到这时Rules已经变成绿色,表示Rules里设置完成了。
每个命令行后面的…可以帮助你选择文件。
4.点击Inputs命令,如果选择LayoutvsNetlist,则在Layout命令行里输入你要检查的版图的GDS,假如你已经当前版图输出GDS了,可以输入已经生成的GDS。
假如你还没有输出GDS,可以选下面的Importlayoutdatabasefromlayoutviewer设置,这样Calibre在RunLVS时就先把当前的版图输出GDS,名字就是你上面输入的GDS名。
●PrimaryCell的命令行里就是当前的顶层单元名。
●LayoutNetlist的命令行里填入版图提取出SPICE网表的名称。
⏹如果选择NetlistvsNetlist,此时layout选项中的Files不可选,则必须已经有了layout的网表,在LayoutNetlist命令行里填入layout网表的名称。
⏹如果选择NetlistExtraction,则只从layout中抽取出网表,不与电路图网表进行比对。
⏹PrimaryCell的命令行里就是当前的顶层单元名,与上面LayoutvsNetlist时相同。
⏹在Files命令行里填入逻辑网表。
⏹可以选择从电路图中自动导出,此电路图应与当前版图在同一个Library里的同一个Cell里,自动导出的网表为cdl格式。
⏹通常利用Import自动产生Sourcenetlist后,其device的modelname会与layout不匹配,因此常需要自行修正。
⏹PrimaryCell里填入逻辑的顶层单元名。
使用hspice格式的网表时,由于其顶层单元不包括.subckt语句,所以就用”.”填入。
因为填“.”时,LVS只读取.subckt语句之外的内容。
⏹HCells是使用Hierarchical模式做LVS时才需设定,否则不需额外去做设定。
使用Hierarchical模式下最常见的设定是Automatch,一般在Layout所用的CellName于Schematic的CellName不一致的情况下方需设定HCells.
⏹点击Netlist边上的H-Cells,选中Matchcellsbyname(automatch)选项。
CalibreHierarchicalLVS是先完成底层单元的比对,但需要将底层单元设为H-Cells。
如果一个单元只调用了一次,没必要将它设为H-Cells。
但被调用了多次时,将它设为H-Cells时会大大减少LVS时间。
5.点击Outputs命令
⏹选择run完LVS后检视Report。
⏹建立SVDBdatabase并在run完LVS后开启RVE来检视error。
⏹在LVSReportFile的命令行里输入LVS输出的文本文件的路径及名称。
⏹在SVDBDirectory的命令行里输入LVS输出的数据存放的路径。
这个数据是用CalibreRVE来Debug时读入的数据。
6.点击LVSOptions命令
⏹Setup->LVSOptions
⏹在Options里的Supply选项里选中AbortLVSonpower/groundneterrors,这个选项的目的是当电源地短路时中断LVS.
⏹如果出现电源地短路,再RUNLVS时就不选这个选项,这样LVS就不会中断并且会报出电源地短路的地方。
⏹但是不选这个选项会RUN很长时间,所以一般都会选上这个选项。
⏹在Powernets和Groundnets两个命令行里分别输入电源地的名称。
一般rulefile里已经写好了,loadrulefile或runsetfile时自动会填在这里面。
⏹在Report选项里的LVSReportOptions里选中S选项。
这样在LVSReportFile里会输出详细的软连接的冲突。
⏹软连接(softconnect)是将电位单向由上传至下层的layer,以用来检查是否有不同电压准位透过底层连接,或是上层电位是从底层传递过去的。
⏹在Gates选项里选中Recognizeallgates选项,目的是CalibreLVS能以所有的逻辑门(与非门、倒相器、或非门、与或非门等)为单元来比对。
⏹选中Recognizesimplegates,只能以基本的逻辑门(倒相器、与非门、或非门)比对。
⏹选中Turngaterecognitionoff时,LVS将以单管为单位来比对。
当你允许逻辑门的输入可以互换时选前两个,如果你不允许时就选最后一个。
⏹当你要在RUNLVS的同时RUNERC检查时选中ERC选项,选中RunERC选项
⏹在ERCResultsFile命令行里填入ERC的结果数据的路径和名称。
⏹在ERCSummaryFile命令行里填入ERC的简述文件的路径和名称。
●在Connect选项里选中Connectnetswithcolon(:
),当你的版图里有用TEXT加冒号来表示两条线的连接时要选中这个选项。
7.点击RunControl命令
⏹RunCalibreLVS的相关option,可决定是
⏹否以64bit,远端操作,或多台server执行,
⏹一般均不改变预设值。
8.点击Transcript命令
⏹Transcript记录RunLVS的过程与相关信息,若无法顺利执行,可由此看错误讯息,亦可利用Transcript->Saveas存成logfile。
⏹RunLVS执行CalibreLVScheck。
8.可点击StartRVE自行以手动方式开启RVE视窗。
⏹在Report上出现笑脸符号代表LVScheck正确,RVE也将显示DesignMatch.
9.LVS错误举例
⏹RVE显示有四处net错误,一处port错误,一处instance错误,一处property错误。
●RVE显示有四处net错误,点开第二个错误,下面显示了详细的incorrectnets的信息。
LAYOUT中一条net对应着电路图中的两条net,表示电路图中有一处OpenCircuit开路错误。
或者是layout中有一处ShortCircuits短路错误。
●双击LAYOUTNAME中的NetX89/inp,则会打开版图并高亮此net
⏹通过版图中高亮的net,找出与此错误有关系的cell,然后在电路图上在根据cell,找出有错误的net,如上图所示
⏹左右两条红线net,在版图上是连起来的,所以修正电路图如上图所示
⏹点开第三个错误,下面显示了详细的incorrectnets的信息。
LAYOUT中两条net对应着电路图中的一条net,表示layout中有一处OpenCircuit开路错误。
或者是电路图中有一处ShortCircuits短路错误。
●版图上a1和a2是两条net,而在电路图上两条线连了起来,修正后如右图所示。
(1)Property错误
⏹RVE显示property参数错误,mos管的宽度不匹配。
⏹双击LAYOUT下边的X89/X8422/M0,在版图中高亮这个晶体管。
⏹电路图中multiplier参数错误。
(2)Port错误
●RVE显示port错误,在下面可以看到,layout中的portDOUT在source中对应着DOUT_E,把名字改过来即可。
(3)Instance错误
●从版图中可以看到M_133一端接VD33,所以其modelname应该填PD,然后在导出的spice网表中再改为P33即可
⏹从右面三张图上可以看到,M_130_133上的bulk一端,layout与source上不一致,将电路图上的bulknodeconnection的值改为与版图一致的VD33即可。
10.关于Calibrelvsreport?
●Lvs中Input和Output的信息:
●该部分主要记录calibre中的一些信息,例如layout,netlist,reportfile,运行时间以及calibre的版本信息。
Lvs是否匹配最明显的标志:
NOTCOMPARED,CORRECT和INCORRECT
(a)NOTCOMPARED:
lvs没有完成,会有Error信息出现在reportfile的开头,提示为什么lvs没有进行,一般是lvs文件中input的信息不对;
(b)CORRECT:
layout与netlist匹配;
(c)INCORRECT:
layout与netlist不匹配,有error信息提示,表示具体不匹配的原因;
●LVSPARAMETERS部分:
这部分描述的是lvscommandfile中定义的各种参数设置,可以忽略;
●INITIALNUMBERSOFOBJECTS:
表示转换前layout和netlist中的net数目,器件类型和器件数目。
这部分不用太留意,因为最终的器件数目会在转换后有所变化。
根据lvsrulefile中的某些设置,某些器件可以合并,或被剔除
●NUMBERSOFOBJECTSAFTERTRANSFORMATION:
表示转换后layout和netlist中的net数目,器件类型和数目。
某些器件被合并或者剔除,从例子中可以看到,port,器件数目都保持一致;因为电路图中有一处开路和一处短路,所以net数据也保持一致。
●Report中最重要的部分――INCORRECTNETS部分:
Report中,该部分分为左右两列,左边部分表示layout中关于某个net的信息,右边表示netlist中该net的信息。
⏹INCORRECTPORTS部分:
这部分描述layout中和netlist中不对应的input和output的PORT名称。
⏹INCORRECTINSTANCES部分:
描述layout中和netlist中不对应的device。
⏹PROPERTYERRORS部分:
主要描述layout和netlist中对应的device的参数错误,例如length、width、area等。
⏹INFORMATIONANDWARNINGS部分:
layout和netlist中匹配情况的统计,以及各种不匹配的信息;
⏹后面的描述表示有多少device被合并或者剔除。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- LVS 验证 实验 指导