LVS验证的实验指导.docx

上传人:b****6 文档编号:7405923 上传时间:2023-01-23 格式:DOCX 页数:20 大小:829.27KB
下载 相关 举报
LVS验证的实验指导.docx_第1页
第1页 / 共20页
LVS验证的实验指导.docx_第2页
第2页 / 共20页
LVS验证的实验指导.docx_第3页
第3页 / 共20页
LVS验证的实验指导.docx_第4页
第4页 / 共20页
LVS验证的实验指导.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

LVS验证的实验指导.docx

《LVS验证的实验指导.docx》由会员分享,可在线阅读,更多相关《LVS验证的实验指导.docx(20页珍藏版)》请在冰豆网上搜索。

LVS验证的实验指导.docx

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被合并或者剔除。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 理学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1