Calibre使用简介B.ppt

上传人:max****ui 文档编号:3404073 上传时间:2019-12-13 格式:PPT 页数:88 大小:6.06MB
返回 下载 相关 举报
Calibre使用简介B.ppt_第1页
第1页 / 共88页
Calibre使用简介B.ppt_第2页
第2页 / 共88页
Calibre使用简介B.ppt_第3页
第3页 / 共88页
点击查看更多>>
资源描述
2019年12月,1,Calibre使用简介,宋存杰2008年05月03日,2019年12月,2,IntroductionCalibreDRCCalibreLVS,2019年12月,3,Introduction,Calibre是MentorGraphics的IC版图验证软件,此软件包括设计规则检查(DRC)、版图与原理图一致性检查(LVS)、电气规则检查(ERC)、及版图寄生参数萃取(LPE)等验证功能。此软件的操作界面主要分为图形模式(GUI)(graphicaluserinterface)CalibreInteractive与指令模式(CommandLine),其中图形模式可以单独启动,亦可与Virtuoso等软件相连接,其操作界面皆相同;指令模式则是类似于Dracula的操作方式。对于规模较小的版图应用Interactive很方便,而且直观的图像化接口便于初学者使用。采用命令行模式能够快速输入控制命令,快速执行,其结果精确稳定。以下简介说明以图形模式为主。,Goback,2019年12月,4,UsefulAbbreviations,SVRF-StandardVerificationRuleFormat(标准的检查文件)RVE-ResultsViewingEnvironment(显示结果用的环境窗口)SVDB-StandardVerificationDatabase(LVSresults)DRC-DesignRuleCheck(设计规则检查)ERC-ElectricalRuleChecking(电气规则检查)LVS-LayoutVersusSchematic(版图原理图一致性检查)LPE-LayoutParasiticExtraction(版图寄生参数萃取),CommercialVerificationToolsCadenceDraculaSynopsysHerculesMentorCalibre,2019年12月,5,WhatareI/OsforDRCandLVS?,InputsLayoutSchematicorNetlist(LVSonly)RuleFilesOutputsSVDB(LVSresultsdatabase)DRCResultsReportLog,2019年12月,6,在Cadence环境里调用Calibre,在.cdsinit(此文件在启动tool时会自动读取)里加上load(“/usr/calibre/mgc_skl.skl”),这个.skl文件就是Mentor公司提供的skill文件。,启动icfb&后,打开一个版图检查一下顶端的Menu里有没有一个Calibre的菜单。如果有则表示可以在当前环境下使用Calibre了,这个菜单里有DRC、LVS、RVE等命令。,Goback,2019年12月,7,CalibreDRC,如上图所示,DRC的输入有两项,一个是layout,就是手工或APR(automaticplaceandroute)(自动布局布线)工具生成的版图,一般是GDSII格式。另一个是RuleFile,RuleFile告诉DRC工具怎样做DRC,这个文件十分重要,一般,由流片厂家提供,或者由designer根据流片厂家提供的版图几何规范自己写。Calibre读入GDS(版图)和RuleFile,进行处理,输出结果,输出结果是calibre自己定义的格式,designer可以通过一个Viewer来看,一般用cadence的virtuoso来分析输出结果和修改版图。,Goback,2019年12月,8,因为做DRC会产生很多文件,建议建立一个专属于此Layout做DRC时的新文件夹。然后拷贝RuleFile至此工作目录下。从版图中导出GDS文件至此工作目录下,亦可在CalibreDRC图形界面中选择从当前版图中导出GDS文件。,2019年12月,9,DRCRuleFile,下面是一个简单的calibreLVSRuleFile,右边是对它的解释。与/后是注释部分layoutsystemgdsii指明输入的版图格式是GDSII,calibre还可支持其他格式layoutpath“/layout/basic_drc.gds”输入版图的路径layoutprimarybasic_drc要检查的版图的topcell名字drcresultsdatabase“/training/drc_results_db”drc的输出,将来可以用calibre结合virtuoso分析variablemetal_width3定义一个变量layersubstrate0本行和下面相似的行定义了输入版图中每一层的名字layerpwell1本行把GDS的layer1定义为pwell,接下来pwell都指输入的GDS的layer1。layeroxide2layerres3layerpoly4layernplus5layerpplus6layercontact7layermetal18,2019年12月,10,DRCRuleFile,layervia9layermetal210.ngate=polyANDnplus#layer运算,由原始的poly和nplus层推出ngate层./Module2-DRCMeasurementOperations/InternalChecksrule_2aoxideminimumwidthis6/进行检查,rule_2a是检查标号,/oxideminimumwidthis6是解释,报错时会报出这一句,internaloxide6/这一句是具体动作,internal是calibre的关键字,/这一句检查所有的oxide的internal小于6的情况。/如果internaloxideSaveas存成logfile。RunDRC执行CalibreDRCcheck。可点击StartRVE自行以手动方式开启RVE视窗。,2019年12月,33,此图形是run完DRC后弹出的窗口。左边的是除错(debug)用的RVE窗口。右边是一个简述的结果文件(DRCSummaryReportFile)左边的窗口里有红色的,表示有DRC错误,假如没有DRC错误会出来绿色的。点击每个错误左边的,就可以进行每个具体错误的Debug。,2019年12月,34,在SetupRVE窗口里选中Edit-in-placewhilehighlighting。这样在底层的错误就可直接跳到可编辑状态。,在Calibre菜单里选中Setup下的RVE命令,2019年12月,35,点开一个具体的错误,比如下面的第一个CheckGT_7-1Error,有一个错误:01,双击01,版图上就会直接显示当前错误所在的位置。你改完当前错误后就可在01点击右键选中ErrorFixed这样就表示这个错误已修改,相应的01也会变成01。这个RVE窗口的下面Checktext为当前错误的注释,这个注释是RuleFile里以开头的语句。,右边的窗口为错误所在的坐标。Click坐标,可刻在LayoutTool(如VirtuosoLayoutEditor)上show出此error的edge。每个错误有几个edge就有几个坐标。Cell:显示此错误在底层单元中的坐标。Top:显示此错误在顶层单元中的坐标。两坐标不一定相同。,2019年12月,36,当我们修改完layout时再依照上面的流程runDRC即可不用再导出*.gds文件。当你的DRCRVE的图显示NoErrors时,这就表示你的layout已经通过了DRC的检验。,清除高亮。高亮显示上一个错误。高亮显示当前的错误。高亮显示下一个错误。,2019年12月,37,用commondline来运行CalibreDRC检查,先必须有一个完整的规则检查文件,必须包含运行设置、层次定义、层次运算、规则检查等几部分。在UNIX的命令窗口里输入calibrehierdrcrulefile。运行完后可在Cadence的版图窗口里的Calibre菜单点出startRVE,或者在命令窗口里输入calibrerve,然后就可进行DRC错误的修改了。也可输入calibregui调出calibre图形界面,具体的运行方式类似Cadence环境下的模式。,Goback,2019年12月,38,CalibreLVS,为什么要做LVS?LVS作了些什么?APR(AutomaticplaceandRoute)自动布局布线工具作出的版图,基本上是正确的。但是,不能保证APR工具是绝对正确的,也就是说,APR工具可能会出错。为了发现并改正APR工具布线的错误,需要做LVS。另外,从版图中提取电路图,同样需要验证电路图与版图的一致性。LVS的目的就是证明版图的逻辑与网表是一致的,APR将网表实现成了版图,现在LVS要证明这个实现是正确的。,Goback,2019年12月,39,LVS的流程是:从APR工具实现的版图中提取(extract)出一个网表。将这个提取出的网表与APR工具要实现的网表比较,它们应该相同。如果两个网表不一样,这时手工修改版图,使之与要实现的网表相一致。上图描述了CalibreLVS的flow。,2019年12月,40,LVSRuleFile,下面是一个简单的calibreLVSRuleFile,右边后内容是对它的解释。LAYOUTSYSTEMGDSII指定layout的格式为gdsLAYOUTPATH“/user/joeb/proj/layout/ictr”指定版图的路径LAYOUTPRIMARYCalibreM版图的topcellSOURCESYSTEMSPICE指定source的格式为spice网表SOURCEPATH“/user/joeb/proj/logic/ictr”source的路径SOURCEPRIMARYCalibreMsource的topcellMASKRESULTSDATABASECalibreM.dbLVS的结果保存文件,将来指导改正版图LVSREPORTCalibreM.rptreport文件layerPWELL1读入版图的各层信息layerOXIDE2layerRES3layerPOLY4layerNPLUS5layerPPLUS6layerCONTACT7layerMETAL18,2019年12月,41,LVSRuleFile,layerVIA9layerMETAL210chip=extentnsub=chipnotpwell进行layeroperation。gate=oxideandpolysd=oxidenotpolyngate=gateandnpluspgate=gateandppluspsd=sdandpplusnsd=sdandnplussdm=pplusornplusconnectpsdpwell定义连接关系connectnsdnsubconnectmetal1polynsdpsdbycontactconnectmetal2metal1byviadevicemnngatepolynsdnsdpwell0提取nmosdevicemppgatepolypsdpsdnsub0提取pmosCalibre根据这个RuleFile提供的信息,首先从版图中提取出一个网表,再将这个网表与APR要实现的网表进行比较,判断APR生成的版图是否正确。,2019年12月,42,LVSRuleFile,这个RuleFile首先设置LVS的运行环境,然后读入版图各层的信息,接下来进行layer的运算,为下一步提取device作准备。Connectlayer1layer2是定义连接关系,提取版图时将根据这个信息来提取连接关系。mn指提出的device为nmos管,ngate的解释为seed,即只要在版图上发现ngate,就提出一个nmos管,seed后面的四个参数为GSDB,分别为nmos管的4各pin。根据device指令,calibre从版图中提出各种device,根据connect指令提出连接关系。提出完整的netlist后,calibre会与sourcenetlist比较,来判断网表与版图是否一致。,2019年12月,43,LVS流程专门建立一个新的文件夹用于此次LVS。将RuleFile拷贝至此文件夹。从版图中导出GDS文件至此文件夹下,操作同DRC时导出版图,亦可在CalibreDRC图形界面中选择从当前版图中导出GDS文件。利用AnalogEnvironment中的hspiceS从电路图中导出网表。下面是导出网表的图示。,2019年12月,44,在Simulator中选择hspiceS,2019年12月,45,将电路图网表拷贝至你所建立的新目录scj_lvs中与*.gds和rulefile放置在一起,此时要修改电路图网表的内容,使其与layout有相同的modelname,以及把VDD!等的惊叹号去掉,以保持与layout网表的一致性。,2019年12月,46,2019年12月,47,在VIM中少量替换可以使用%substitute/from/to/命令。如果需要修改的modelname比较多的话,可使用上面的脚本,将相应项目替换掉即可。,2019年12月,48,启动LVS方法(三种方法启动图形界面)在版图的Calibre菜单下点出RUNLVS命令在命令窗口里输入calibregui启动calibreGUI,再选择LVS,直接在命令窗口里输入calibregui-lvs,2019年12月,49,RunsetFile是RUNLVS时需要填入的一些设置,方便于下次RUN。第一次由于没有,所以就选择NewRunset,等第一次RUN完后,可以将填入的设置存成一个RunsetFile。再RUNLVS时,可以将这个RunsetFileLoad进来。同RUNDRC。,2019年12月,50,上面的窗口中,可以看到Rules与Inputs两个命令是红色的,表示RUNLVS需你设置的。点击Rules命令,在CalibreLVSRulesFile的命令行里输入用来做LVS检查的文件(SVRF),这个文件里包括了一些层次及器件的定义等。在CalibreLVSunDirectory里输入你要RUNLVS的路径,建议建一个专门的目录。可以看到这时Rules已经变成绿色,表示Rules里设置完成了。每个命令行后面的可以帮助你选择文件。,2019年12月,51,点击Inputs命令,如果选择LayoutvsNetlist,则在Layout命令行里输入你要检查的版图的GDS,假如你已经当前版图输出GDS了,可以输入已经生成的GDS。假如你还没有输出GDS,可以选下面的Importlayoutdatabasefromlayoutviewer设置,这样Calibre在RunLVS时就先把当前的版图输出GDS,名字就是你上面输入的GDS名。PrimaryCell的命令行里就是当前的顶层单元名。LayoutNetlist的命令行里填入版图提取出SPICE网表的名称。,2019年12月,52,如果选择NetlistvsNetlist,此时layout选项中的Files不可选,则必须已经有了layout的网表,在LayoutNetlist命令行里填入layout网表的名称。如果选择NetlistExtraction,则只从layout中抽取出网表,不与电路图网表进行比对。PrimaryCell的命令行里就是当前的顶层单元名,与上面LayoutvsNetlist时相同。,2019年12月,53,在Files命令行里填入逻辑网表。可以选择从电路图中自动导出,此电路图应与当前版图在同一个Library里的同一个Cell里,自动导出的网表为cdl格式。通常利用Import自动产生Sourcenetlist后,其device的modelname会与layout不匹配,因此常需要自行修正。PrimaryCell里填入逻辑的顶层单元名。使用hspice格式的网表时,由于其顶层单元不包括.subckt语句,所以就用”.”填入。因为填“.”时,LVS只读取.subckt语句之外的内容。使用cdl格式的网表时,有.subckt语句来定义顶层单元名,就填入顶层单元名。建议使用hspice格式的网表。,2019年12月,54,以此为例说明spice格式网表与cdl网表的区别。,2019年12月,55,点击Netlist边上的H-Cells,选中Matchcellsbyname(automatch)选项。CalibreHierarchicalLVS是先完成底层单元的比对,但需要将底层单元设为H-Cells。如果一个单元只调用了一次,没必要将它设为H-Cells。但被调用了多次时,将它设为H-Cells时会大大减少LVS时间。如果你清楚的知道你电路里的单元时,你可编辑一个H-Cell文件,格式如下:/是注释。/LayoutcellNameSourcecellnameABCDEFABCGHIUVWXYZRSTXYZ可见单元名可以1VSN或者NVS1,但是不要出现MVSN的情况。当有这个文件时就可以选中UseH-Cellsfile选项,在命令行里填入H-Cells文件。没有就选中Matchcellsbyname(automatch)将版图里和逻辑里单元名相同的设为H-Cells.,HCells是使用Hierarchical模式做LVS时才需设定,否则不需额外去做设定。使用Hierarchical模式下最常见的设定是Automatch,一般在Layout所用的CellName于Schematic的CellName不一致的情况下方需设定HCells.,2019年12月,56,在LVSReportFile的命令行里输入LVS输出的文本文件的路径及名称。在SVDBDirectory的命令行里输入LVS输出的数据存放的路径。这个数据是用CalibreRVE来Debug时读入的数据。,选择run完LVS后检视Report。建SVDBdatabase并在run完LVS后开启RVE来检视error。,2019年12月,57,Setup-LVSOptions在Options里的Supply选项里选中AbortLVSonpower/groundneterrors,这个选项的目的是当电源地短路时中断LVS.如果出现电源地短路,再RUNLVS时就不选这个选项,这样LVS就不会中断并且会报出电源地短路的地方。但是不选这个选项会RUN很长时间,所以一般都会选上这个选项。,在Powernets和Groundnets两个命令行里分别输入电源地的名称。一般rulefile里已经写好了,loadrulefile或runsetfile时自动会填在这里面。,2019年12月,58,在Report选项里的LVSReportOptions里选中S选项。这样在LVSReportFile里会输出详细的软连接的冲突。软连接(softconnect)是将电位单向由上传至下层的layer,以用来检查是否有不同电压准位透过底层连接,或是上层电位是从底层传递过去的。SoftconnectVSSunknow_connect是双向传递电位的,由上至下或由下至上传递。connectVSSVSS_,2019年12月,59,在Gates选项里选中Recognizeallgates选项,目的是CalibreLVS能以所有的逻辑门(与非门、倒相器、或非门、与或非门等)为单元来比对。选中Recognizesimplegates,只能以基本的逻辑门(倒相器、与非门、或非门)比对。选中Turngaterecognitionoff时,LVS将以单管为单位来比对。当你允许逻辑门的输入可以互换时选前两个,如果你不允许时就选最后一个。,2019年12月,60,当你要在RUNLVS的同时RUNERC检查时选中ERC选项,选中RunERC选项在ERCResultsFile命令行里填入ERC的结果数据的路径和名称。在ERCSummaryFile命令行里填入ERC的简述文件的路径和名称。,2019年12月,61,在Connect选项里选中Connectnetswithcolon(:),当你的版图里有用TEXT加冒号来表示两条线的连接时要选中这个选项。,2019年12月,62,Transcript记录RunLVS的过程与相关信息,无法顺利执行,可由此看错误讯息,亦可用Transcript-Saveas存成logfile。RunLVS执行CalibreLVScheck。可点击StartRVE自行以手动方式开启RVE视窗。,RunCalibreLVS的相关option,可决定是否以64bit,远端操作,或多台server执行,一般均改变预设值。,2019年12月,63,在Report上出现笑脸符号代表LVScheck正确,RVE也将显示DesignMatch.,2019年12月,64,利用CalibreLVSRVE来分析版图,2019年12月,65,有关NetPON的信息,双击NetPONinlayoutcellT.版图上立即高亮显示,2019年12月,66,双击具体某层数据比如metal1,则版图上在layermetal1立即高亮显示netPON。,2019年12月,67,Device是指版图中的一个管子,器件X89/X5479/M1是层层调用的关系,Instance是指底层单元单元TCM13_33_DIFFRCVR在layoutnetlist中编号为X89,2019年12月,68,可以通过点击Netbylocation,然后在版图中选择要查看的net.,查找Device,instance,port的方法与net相同。还可以通过LocationQueries来查找。,2019年12月,69,LVS错误举例,RVE显示有四处net错误,一处port错误,一处instance错误,一处property错误。,2019年12月,70,RVE显示有四处net错误,点开第二个错误,下面显示了详细的incorrectnets的信息。LAYOUT中一条net对应着电路图中的两条net,表示电路图中有一处OpenCircuit开路错误。或者是layout中有一处ShortCircuits短路错误。双击LAYOUTNAME中的NetX89/inp,则会打开版图并高亮此net.,2019年12月,71,通过版图中高亮的net,找出与此错误有关系的cell,然后在电路图上在根据cell,找出有错误的net,如下图所示,左右两条红线net,在版图上是连起来的,所以修正电路图如下图所示,2019年12月,72,点开第三个错误,下面显示了详细的incorrectnets的信息。LAYOUT中两条net对应着电路图中的一条net,表示layout中有一处OpenCircuit开路错误。或者是电路图中有一处ShortCircuits短路错误。,2019年12月,73,2019年12月,74,版图上a1和a2是两条net,而在电路图上两条线连了起来,修正后如右图所示。,2019年12月,75,RVE显示property参数错误,mos管的宽度不匹配。双击LAYOUT下边的X89/X8422/M0,在版图中高亮这个晶体管。电路图中multiplier参数错误。,Property错误,2019年12月,76,RVE显示port错误,在下面可以看到,layout中的portDOUT在source中对应着DOUT_E,把名字改过来即可。,Port错误,2019年12月,77,Instance错误从版图中可以看到M_133一端接VD33,所以其modelname应该填PD,然后在导出的spice网表中再改为P33即可。,2019年12月,78,从右面三张图上可以看到,M_130_133上的bulk一端,layout与source上不一致,将电路图上的bulknodeconnection的值改为与版图一致的VD33即可。,2019年12月,79,HowtoreadCalibrelvsreport,Lvs中Input和Output的信息:该部分主要记录calibre中的一些信息,例如layout,netlist,reportfile,运行时间以及calibre的版本信息。,2019年12月,80,Lvs是否匹配最明显的标志:NOTCOMPARED,CORRECT和INCORRECT,NOTCOMPARED:lvs没有完成,会有Error信息出现在reportfile的开头,提示为什么lvs没有进行,一般是lvs文件中input的信息不对;,CORRECT:layout与netlist匹配;,INCORRECT:layout与netlist不匹配,有error信息提示,表示具体不匹配的原因;,2019年12月,81,LVSPARAMETERS部分:这部分描述的是lvscommandfile中定义的各种参数设置,可以忽略;,2019年12月,82,HowtoreadCalibrelvsreport,INITIALNUMBERSOFOBJECTS:表示转换前layout和netlist中的net数目,器件类型和器件数目。这部分不用太留意,因为最终的器件数目会在转换后有所变化。根据lvsrulefile中的某些设置,某些器件可以合并,或被剔除,NUMBERSOFOBJECTSAFTERTRANSFORMATION:表示转换后layout和netlist中的net数目,器件类型和数目。某些器件被合并或者剔除,从例子中可以看到,port,器件数目都保持一致;因为电路图中有一处开路和一处短路,所以net数据也保持一致。,2019年12月,83,Report中最重要的部分INCORRECTNETS部分:Report中,该部分分为左右两列,左边部分表示layout中关于某个net的信息,右边表示netlist中该net的信息。,2019年12月,84,INCORRECTPORTS部分:这部分描述layout中和netlist中不对应的input和output的PORT名称。INCORRECTINSTANCES部分:描述layout中和netlist中不对应的device。PROPERTYERRORS部分:主要描述layout和netlist中对应的device的参数错误,例如length、width、area等。,2019年12月,85,INFORMATIONANDWARNINGS部分:layout和netlist中匹配情况的统计,以及各种不匹配的信息;后面的描述表示有多少device被合并或者剔除。,2019年12月,86,用commondline来运行CalibreLVS检查,先必须有一个完整的规则检查文件,必须包含运行设置、层次定义、层次运算、规则检查等几部分。在UNIX的命令窗口里输入calibre-lvs-hier-autorule_file运行完后可在Cadence的版图窗口里的Calibre菜单点出startRVE,或者在命令窗口里输入calibrerve,然后就可进行LVS错误的修改了。也可输入calibregui调出calibre图形界面,具体的运行方式类似Cadence环境下的模式。,Goback,2019年12月,87,References,Calibre中文教程Calibre简易使用流程(如何在Cadence环境里简单的使用Calibre)Calibre简介,CIC电子报,2004基于Calibre工具的SoC芯片的物理验证“VerificationCalibre”,CICDRC_LVS_Calibre“UsingCalibreStudentWorkbook”trainingmanualofMentor,2003“CalibreVerificationUsersManual”trainingmanualofMentor,2004HowtoreadCalibrelvsreport,2019年12月,88,ENDTHANKYOU!,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!