




已阅读5页,还剩61页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第12讲回顾和总结,了解集成电路验证领域的基础知识掌握验证的基本流程和工作方法具备一定的验证实践能力了解集成电路验证领域的最新发展,1,了解集成电路验证领域的基础知识掌握验证的基本流程和工作方法具备一定的验证实践能力了解集成电路验证领域的最新发展,2,了解集成电路验证领域的基础知识,基础:现代集成电路设计面临的挑战集成电路验证的概念和基本原理集成电路验证的分类原理:仿真器的分类仿真器的组成仿真器的原理语言:设计语言(VHDL、Verilog、SystemC)验证语言(OpenVera、e、SystemVerilog),3,现代集成电路设计面临的挑战,规模市场压力低功耗设计,4,什么是集成电路的验证?,集成电路验证是检查并确认集成电路设计的各个阶段不偏离原始的需求规范的过程验证几乎伴随着集成电路设计的全过程,因此验证的周期也是与设计周期相辅相成的。,5,集成电路设计验证的覆盖范围,功能验证功能验证的目标是确保实际设计实现规范文档中所描述的功能,发现功能模块中存在的逻辑缺陷,保证逻辑设计的正确性。时序验证静态时序分析:根据设计规范的要求通过检查所有可能路径的时序。动态时序分析:主要指的是门级(或对版图参数提取结果)仿真。物理验证物理验证主要是进行设计规则检查、版图与原理图对照和信号完整性分析。性能验证性能验证的目标是确保实际设计能够提供实现规范文档中所要求的性能(如每秒执行的指令数,数据率等)。功耗验证,6,集成电路验证的基本原理,设计需求,设计,替代设计,等价?,等价性检查,设计路径,验证路径,规范的设计需求,设计,仿真输出,参考输出,功能要求,“替代设计”,等效?,设计需求,设计,特定的表述方式,正确性检查,满足?,“替代设计”,7,集成电路验证面临的挑战,验证方法和工具与不断增大的设计规模不匹配-状态空间爆炸问题验证周期增长-验证成为处理器设计流程中真正的瓶颈调试更加困难-设计复杂度增加,规模增大,从RTL到门级网表的内部信号也会随之增加,信号的层次深度也会越来越大,调试更加困难需要更多的人力/物力资源投入-IntelPentium4验证投入10亿美元BobBentley,“ValidatingtheIntelPentium4Microprocessor”,Proc.38thDesignAutomationConf.(DAC01),2001,pp.244-248验证是证明一个设计能正确实现其功能的过程,然而,客观地说,验证能发现/证明存在错误,不能证明一个设计绝对不存在错误。,8,集成电路验证的基本方法分类,基于模拟的验证基于时钟周期的模拟基于事件的模拟硬件加速仿真验证基于FPGA的验证方法基于并行服务器的硬件加速仿真基于形式化方法的验证从不同角度可对形式验证方法做不同分类,通常分为:定理证明模型检验等价性检验,9,基于模拟的验证分类,将激励信号施加于设计,进行计算并观察输出结果,判断该结果是否与预期一致。根据仿真模式的不同,可分为:时钟驱动模拟验证基于时钟周期的仿真-采用基于周期的仿真器,完全不理会时钟内部发生的事件,而是在每个周期中进行一次信号评估,由于执行时间较短,这类仿真器的运行速度往往较快,目前常用的仿真器VCS、NC-verilog、ModelSim都支持此类仿真事件驱动模拟验证基于事件的仿真-采用基于事件的仿真器,捕获事件(在时钟内部或在时钟的边界上)并通过设计进行传播,直到实现一个稳定状态为止。,10,模拟验证方法的局限性,非完备性,即只能证明有错而不能证明无错一般适用于在验证初期发现大量和明显的设计错误,对于验证后期出现的复杂和微妙的错误,常常面临调试极其困难,甚至显得难以胜任.严重依赖于测试向量的选取,而合理而充分地选取测试向量,达到高覆盖率是一个十分艰巨的课题.由于设计者不能预测所有错误的可能模式,所以尚未发现某个最好的覆盖率度量.即使选定了某个覆盖率度量,验证时间也是一个瓶颈.,11,基于形式化方法的验证,形式化验证的常用方法介绍定理证明模型检验等价性检验形式化验证方法的局限性,12,形式化验证方法的局限性,适合模块级或中小系统级设计的验证由于形式验证存在状态空间爆炸性增长的可能,当系统变复杂时,验证将占用较多的计算机资源,耗时增加。解决办法:采用能够解决更复杂问题的算法当形式方法不能完全证明为正确时,则进行部分验证,通过举出反例来协助验证。形式验证的效果受到以下因素的影响:设计规范是否存在错误设计规范中的功能覆盖是否完整用户可能发生的对规范的错误表述以及对设计的过度约束形式验证软件程序本身的错误,13,验证方法比较:模拟vs形式化方法,14,基于事件的模拟器和基于周期的模拟器,基于事件的模拟当且仅当器件的输入有事件发生时,才对器件的状态求值当变量或信号的值发生改变时,相应更新事件触发所有引用此变量或信号的器件进行求值.当一个变量或信号影响多个输出时,模拟器应分别计算每个输出的延迟,并将事件放入相应事件片的事件队列基于周期的模拟适用于同步时序逻辑的模拟模拟时组合逻辑采用零延迟模型,无法得到内部信号变化的暂态信息具有闭环的逻辑不适用基于周期的模拟,15,模拟器的组成,三个主要组成部分:前端对输入进行解析,建立程序内部各组成部分的对应关系,形成对输入电路的一个完整描述,用以支持所有的后续处理和操作后端模拟器的灵魂,决定了模拟器的类型,例:FPGA芯片划分/电路布局布线模拟引擎/控制器输入生成后的代码(可以是C,C+、本机目标码)、运行,允许用户交互,16,了解集成电路验证领域的基础知识掌握验证的基本流程和工作方法具备一定的验证实践能力了解集成电路验证领域的最新发展,17,验证的基本流程模拟验证的方法(模块级、系统级)覆盖率检验方法断言检测方法形式验证技术,掌握验证的基本流程和工作方法,18,功能需求规范,建立验证计划,开发验证环境,调试HDL和环境,回归测试,调试芯片系统级测试,逸误分析,开发人员实现功能需求规范,Tapeout,改进设计方法,验证流程,计划审查,19,开发验证环境包括确定性验证、随机验证、形式化的验证以及测试用例生成器等。调试HDL和环境前期准备基本完成,对验证工程师来说,该阶段代表进入收获阶段,可以真正发现并找到设计错误了。回归测试发现设计错误后,设计人员会修改原有的设计,为了检测设计是否已经修改正确以及是否有引进了新的错误,必须沿原有的验证轨迹重新执行验证过程,称为回归测试。芯片制造符合流片准则,设计人员会将完成的设计送芯片制造厂制造。流片准则包括一系列的条件检查,确定逻辑设计、物理设计、验证的完成情况,验证是其中最重要的部分。,验证流程,20,调试芯片前期验证速度受到仿真软件等的限制,运行测试向量数目始终有限。到了真正流片回来,在真正的芯片上,调试向量运行速度大大提高,可以启动操作系统并运行大量真正的应用程序,完全有可能发现新的设计问题。但是,由于芯片早已封装,发现问题容易,跟踪调试错误困难。如果发现了错误,根据错误的级别,可以采用数码修补,软件绕过的方式弥补。但对于某些较大的错误,可能不得不修改设计重新流片。逸误分析对于硬件芯片阶段发现的错误,还要进行潜在错误分析,能过躲过前期验证的错误,存在极大的隐蔽性,必须分析其成因,重复性和危害性,避免再次发生类似问题。最好能够在仿真验证环境中重复上述错误,确定修补或改正的正确性。,验证流程,21,验证结束的准则,根据不同的项目需求,验证结束的准则不尽相同。通常考虑以下因素:,静态验证计划是否完成随机验证计划是否达到了足够的仿真节拍是否满足了结构覆盖率标准是否满足了微体系结构覆盖率标准时间错误曲线特性是否达到了目标市场变化导致的设计进度安排的调整,22,掌握验证的基本流程和工作方法,验证的基本流程模拟验证方法(模块级、系统级)覆盖率检验方法断言检测方法形式验证技术,23,模拟验证的构成要件,测试向量生成(StimulusInitiator)参考模型建立(BFM)搭建环境(Testbenchgeneration)响应采集(Responsecollection)正确性检查(Checker,Monitor,ScoreBoard)覆盖率检查(Simulationcoverage)集成验证环境(Integratedverificationenvironment),24,测试向量生成方法示意,0:Deterministic1:specificscenario2:specificscenariowithsomerandomvalues3:Tightlyconstrainedrandomenvironment4:randomenvironment5:Fullyrandom-illegalsequences6:Random,25,参考模型建立参考设计模型建立需要考虑参考模型自身的正确性问题,在简单易检测的模型和复杂模型之间折中。建立模块级参考模型更需要考虑模块功能不独立所造成的完备性问题及模块内时序的复杂性问题。系统级参考模型可能建立在多种设计层次和抽象层次上,甚至存在不同设计层次和抽象层次模型混合验证的状况,时序问题也更为复杂。搭建验证环境BergeronJanick,“WritingTestbench-FunctionVerificationofHDLModels”.BergeronJanick,“WritingTestbencheslogSystemVerilog”.,26,结果正确性检查使用规则进行验证断言(assertion)检测技术自检测(Self-check)技术直接利用已有仿真结果进行验证记分板(Scoreboard)技术自检测(Self-check)技术使用参考设计模型进行验证-直接结果比较与模块级模拟验证相比,系统级验证正确性检查往往需要采用上述所有的方法,由于系统结构和时序的复杂性,测试激励对应的响应的采样往往具有多样性,增加了正确性检查的难度,27,掌握验证的基本流程和工作方法,验证的基本流程模拟验证方法(模块级、系统级)覆盖率检验方法断言检测方法形式验证技术,28,覆盖率检查(Simulationcoverage),覆盖率一般表示一个设计的验证进行到什么程度,也是一个决定功能验证是否完成的重要量化标准之一:结构覆盖(StructuralCoverage)结构覆盖可以在仿真时由仿真器直接给出,主要用来检查RTL代码哪些没有被执行到,使用结构覆盖可以有效地找出冗余代码,但并不能方便地找出功能上的缺陷。包括:行覆盖率、分支覆盖率、翻转覆盖率、状态(机)覆盖率等。EDA仿真工具可支持。功能覆盖(FunctionalCoverage)功能覆盖点既可以是接口上的信号,也可以是模块内部的信号,可用在黑盒验证也可用在白盒验证中。使用功能覆盖可以帮助我们找出功能上的缺陷。虽然EDA工具提供一定的语言和结构支持(例如:Vera、e、SystemVerilog等),大部分工作量仍需要验证工程师在设计者的协助下自定义完成。,29,为什么定义覆盖率标准?,辅助表达设计错误/验证时间/花费代价的关系验证过程本身只能指示设计错误的存在,而不能说明设计错误不存在。因此面临三个重要问题:Howmuchisenough?Whenwillitbedone?Whatshouldwedo?辅助验证过程结束的判断辅助测试向量的生成,30,覆盖率标准是验证结束的重要度量标准之一,根据不同的项目需求,验证结束的准则不尽相同,通常考虑以下因素:静态验证计划是否完成随机验证计划是否达到了足够的仿真节拍是否满足了结构覆盖率标准是否满足了微体系结构覆盖率标准时间错误曲线特性是否达到了目标市场变化导致的设计进度安排的调整,31,如何设计覆盖率?,Measure,CoverageMetrics,CoverageMetrics,FunctionalImplementationCoverageAnalysis,StimulusGeneration,DUV,FunctionalTestCoverageAnalysis,Measure,32,覆盖率的度量,针对测试向量的覆盖类型覆盖交叉覆盖边界覆盖针对待验证设计的覆盖结构覆盖率功能覆盖率,33,针对待验证设计的覆盖,结构覆盖率基于一个给定的系统实现,标示实现被模拟验证的程度。优点:操作具体,易于采集和度量。缺点:不能表示一种实现相对于其规范的正确性,只能说明模拟验证的程度。例子:如果一个64位加法器被错误实现60位加法器,即使达到100%代码覆盖率,实现仍然错误。功能覆盖率基于设计规范,同时依赖于具体设计实现,标示所验证的设计实现的特征和功能的数量。优点:标准客观,可以更直接地体现设计验证的意图。缺点:1)需要从规范中推导和提取,又与具体实现相关,构造和使用困难;2)考虑到规范本身的不确定性和复杂性,难以完整枚举所有的功能。,34,结构覆盖率度量的类型,SourcecodeToggleCoverageVariableCoverageExpressionCoverageLine(statement)CoverageBlockCoverageBranch(condition)CoveragePathCoverageFiniteStateMachineStatesCoverageTransitions(orArc)CoveragePathCoverageTagsComplexStructure,35,功能覆盖率描述的特点,为设计的每一个属性规范定义一个覆盖率模型;每个覆盖率模型包括一系列离散的功能属性的子集;模型内部表示为一系列功能属性、值以及相互关系。每一个模型都有规范推导、设计和实现,并且在仿真过程中被监测和度量。,36,功能覆盖率度量的类型,根据描述方法分为:CoverageBins/SamplesCoverageGroupsCross-productCoverageTransitionCoverageAssertionCoverageComplexSelf-defineScenario根据采样方法分为:CoveragebasedonClockCoveragebasedonEvent,37,覆盖率的采集方法,软件采集针对测试向量的覆盖率仿真工具支持的直接覆盖率采集针对结构覆盖率采用SystemVerilog集成验证环境采集针对功能覆盖率,38,仿真工具支持的直接覆盖率采集,Almostallsimulatorshavebuild-instructualcoveragereportingmechanismNCVerilog(Cadence)VCS(Synopsys)ModelSim(MentorGraphics),39,覆盖率分析,DesignUnderTest,CheckingAssertions,Pass,Fail,CoverageAnalysisTools,CoverageReports,Human,CoverageInformation,40,为什么要进行覆盖率分析?,引入覆盖率处理过程的目的是:量化地监控验证过程的质量帮助识别未验证和较少验证区域帮助理解验证的过程覆盖率分析实现了整个覆盖率处理过程中从覆盖率度量到验证计划&测试向量生成之间的闭环覆盖率分析的目标采集尽可能多的数据(不要错过任何重要事件)根据用户需求,提供简洁、信息充分的覆盖率报告(不关注过多细节),41,达不到覆盖率标准怎么办?,覆盖率标准的相对性“100%converge”maynotbeachievable“100%coverage”!=“100%verification”问题的分析过程处理方法,42,Whataretheproblems?,Gapbetweendesignersandverificationengineers(Fordesigners)IthoughtIhavefixedallthebugs.(Forverificationengineers)Findwaystounderstandthedesignbetter.VerificationmethodologiesarenotoptimalNeedtolearnmorealternatives.Thatiswhyverificationusuallytakesupto70%ofresourceduringthedesignflow.,43,达不到覆盖率标准的处理方法,覆盖率标准可以达到产生更多的测试向量细化覆盖率模型,裁减冗余状态对某些cornercase可采用assertion或形式化方法覆盖覆盖率标准无法达到采用形式化验证方法证明其确实不可达,44,验证的基本流程模拟验证方法(模块级、系统级)覆盖率检测方法断言检测方法形式验证技术,掌握验证的基本流程和工作方法,45,断言是特殊的语言结构用于验证:期望的行为是否发生特定的条件是否为真特定的事件序列的陈述是否为真断言定义在Verilog模块之外断言用于规范设计中的假设断言用于指定非常复杂的条件组合,断言(Assertions),46,为什么使用SystemVerilog断言?,SystemVerilog断言的特点:完美的描述时序相关的状况语言精确易于维护提供搜集覆盖数据的功能,47,SystemVerilog断言类型,即时断言(ImmediateAssertion):即时断言语句是一个表达式的测试,当语句在程序代码中执行的时候完成。表达式是非时序的,并且按一个过程化的if语句的条件表达式相同的方式解释。并发断言(ConcurrentAssertion):并发断言描述了包含时序的行为。与即时断言不同,并发断言仅在一个时钟标记出现的时候被计算。在计算中使用的变量值是采样的值。,48,验证的基本流程模拟验证方法(模块级、系统级)覆盖率检测方法断言检测方法形式验证技术,掌握验证的基本流程和工作方法,49,形式化验证(formalverification)的特点,从数学上证明设计的正确性完备性,完全断定,发现隐含错误需要从设计中提取出模型(过粗,过细)一般用于功能验证处理规模问题(内存爆炸)一般用于对部分设计进行验证,50,形式化验证方法分类,定理证明(theoremproving)模型检验(modelchecking)等价性检查(equivalentchecking),51,了解集成电路验证领域的基础知识掌握验证的基本流程和工作方法具备一定的验证实践能力了解集成电路验证领域的最新发展,52,具备一定的验证实践能力,指令级随机验证方法通用微处理器验证流程商用EDA工具支持功能验证流程(以CadenceIncisiveTMPlatform为例),53,指令级随机验证技术,基本思想问题&研究重点发展历程验证有效性的度量生成算法的效率覆盖率度量动态和静态策略领域研究进展,54,基本思想,指令级随机验证技术是可控的随机验证技术,基本思想是通过约束使生成的指令序列既满足特定的验证条件,又达到充分的随机性。伪随机技术有一系列成熟的算法,能够通过随机种子,改变或重现随机运行过程。所以,运用伪随机技术能够自动生成海量的满足特定条件的随机测试激励,并且通过约束达到测试向量的灵活可控,提高了验证的效率。,55,问题&研究重点,如何生成更高效的随机指令序列?约束规则设定问题约束可满足性求解问题覆盖率度量和分析如何更高效地生成随机指令序列?生成策略的选择时间复杂度空间复杂度比较:SystemVerilog、Vera、SpecmanE都可以提供自动生成测试向量的解决方案,56,验证环境建立,指令模版生成策略参考模型建立搭建testbench,57,指令
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工业自动化中的机器人技术探讨
- 工业自动化技术与应用领域探讨
- 工业自动化技术的未来趋势分析
- 工业设计与品牌建设的策略
- 工业设计与产品设计思路分享
- 工作中的沟通技巧与效率关系
- 工作中的创新方法与实践案例分享
- 工作与生活平衡的实践方法
- 工程机械设备行业发展现状与趋势
- 工厂节能减排技术推广
- 定额〔2025〕3号文-关于发布2023版西藏地区电网工程概预算定额价格水平调整的通知
- 《现场改善案例集》课件
- 医院结核感染培训
- 大学生应急救护知到智慧树章节测试课后答案2024年秋西安欧亚学院
- 临床心内科主任竞聘稿
- 电动工器具安全使用培训
- 防水工程专项施工方案
- 日本建设项目可视化、安全文明、工艺管理总结
- 【MOOC】思想道德与法治-南开大学 中国大学慕课MOOC答案
- 网络管理与维护综合实训课程
- 辽宁大学《材料力学》2021-2022学年第一学期期末试卷
评论
0/150
提交评论