第15章.高级验证技术教学课件PPT.ppt
《第15章.高级验证技术教学课件PPT.ppt》由会员分享,可在线阅读,更多相关《第15章.高级验证技术教学课件PPT.ppt(26页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、完整版教学课件完整版教学课件第15章.高级验证技术EDA技术与Verilog HDL语言第十五章 高级验证技术Page 3本章学习目标本章学习目标 定义传统验证流程的各个组成部分。定义传统验证流程的各个组成部分。 理解体系结构建模的概念。理解体系结构建模的概念。 解释高层次验证语言(解释高层次验证语言(HVL)的使用方法。)的使用方法。 介绍各种不同的高效仿真技术。介绍各种不同的高效仿真技术。 解释分析仿真结果的各种方法。解释分析仿真结果的各种方法。 描述覆盖技术。描述覆盖技术。 理解断言检查技术。理解断言检查技术。 理解形式化验证技术。理解形式化验证技术。 描述半形式化验证技术。描述半形式化
2、验证技术。 定义等价性检查。定义等价性检查。Page 415.1 传统的验证流程传统的验证流程 先要对芯片体系结构进行设计说明。为了制定一个合理的体系结构设计方案,需要对整体结构的各种方案进行分析,以便选出最优的体系结构。这一般是通过对设计的体系结构模型进行仿真来完成的。设计说明在这一步骤结束时完成。 设计说明准备好以后,根据该说明创建一个功能测试计划。这个测试计划构成了功能验证环境的基本框架。根据这个测试计划,对使用Verilog HDL描述的待测设计(Design- Under-Test,即DUT)施加测试向量。需要在功能测试环境中施加这些测试向量。目前有许多种工具可以生成和使用这些测试向
3、量。这些工具也可以高效率地生成测试环境。 DUT在传统的软件仿真器中仿真(DUT通常由逻辑设计工程师完成,由验证工程师对其进行仿真)。 然后分析输出结果,并与预期结果进行对比。这个步骤可以通过使用波形观察器和调试工具手工完成。也可以通过测试环境,自动检查DUT的输出方式或者使用诸如Perl等语言分析日志文件的方式自动完成这种分析。另外,对代码覆盖率进行分析可以保证对设计进行全面验证,以满足验证目标。如果输出与预期结果完全匹配,并且满足了覆盖目标,则验证工作是完整的。 此外还可以采取一些其他步骤来减少将来重复设计的风险。这些步骤包括硬件加速、硬件仿真以及基于断言的验证。Page 515.1 传统
4、的验证流程(续)传统的验证流程(续)Page 615.1.1 体系结构建模体系结构建模 本阶段实际上是结构工程师对设计体系结构所做的一种探索,通常是使用C或C+来描述的,现在又出现了systemC和systemverilog。Page 715.1.2 功能验证环境功能验证环境 对芯片功能的验证可以分为以下三个阶段: 模块级验证。模块级验证。模块级验证通常是由模块的设计者进行的,设计和验证都使用Verilog完成。在这个阶段将会运行大量简单的测试案例,目的是保证该模块可以很好地与其他功能块集成在一个芯片上。 全芯片验证。全芯片验证。全芯片验证的目的在于保证功能测试计划中描述的整个芯片的所有测试目
5、标全部都能被覆盖。 扩展验证。扩展验证。扩展验证的目标是发现设计中所有“角落”里的错误。由于测试向量集不能预先确定,并且可能延续到版图设计阶段,因此这个阶段相对较长。 Page 815.1.2 功能验证环境(续)功能验证环境(续) 典型功能验证环境测试平台(testbench)由HDL过程组成,它们把数据写入DUT或者从DUT读取数据。只对(设计的)功能测试计划中描述的特定功能进行测试,测试时顺序调用测试平台中的过程,手工把选定的输入激励施加到DUT并检查结果。 测试模块因设计可控制性的减少而变得更困难、更耗时。内部设计状态的可观察性的减少而验证变得困难。测试模块变得难以理解和维护。对有限的人
6、手来说,有太多的“角落”情况要测试。没有代码共享,创建和维护多个环境变得很困难Page 915.1.2 功能验证环境(续)功能验证环境(续) 在基于HVL的方法中,验证的各部件在HVL仿真器中仿真,DUT由Verilog仿真器仿真。HVL仿真器和Verilog仿真器交互提供数据,产生仿真结果。下图展示了这种交互的一个示例。HVL仿真器和Verilog仿真器作为两个独立的进程运行,并且通过Verilog PLI接口进行通信。HVL仿真器主要负责所有的验证部件,包括测试生成、输入驱动器、输出接收器、数据检查器、协议检查器和覆盖分析器。Verilog仿真器负责仿真DUT。Page 1015.1.3
7、仿真仿真 有三种方式可以对设计进行仿真:软件仿真软件仿真、硬件加速和硬件仿真硬件加速和硬件仿真。 软件仿真软件仿真 软件仿真一般用于运行基于Verilog HDL的设计。软件仿真器运行在普通计算机或者服务器上,读入Verilog HDL代码并在软件中仿真其行为。当设计超过一百万门时,软件仿真耗费的时间开始大幅度地增加,变成了验证过程中的瓶颈。因此,出现了各种各样的仿真加速技术。其中的两项技术,硬件加速(Hardware Acceleration)和硬件仿真(Hardware Emulation)也应运而生。Page 1115.1.3 仿真(续)仿真(续) 硬件加速硬件加速 在功能验证和扩展验证
8、阶段,硬件加速用于加速现有的仿真,运行冗长的随机事务序列。在该技术中,基于Verilog HDL的设计被映射到可重配置的硬件系统。设计在硬件系统上仿真,产生仿真结果,通常可以把仿真速度提高两到三个数量级。 硬件加速可以基于FPGA或者基于处理器。仿真被分为两部分,其一为软件仿真器,仿真不可综合的Verilog HDL代码;其二为硬件加速器,仿真所有可综合的代码。 可以用Verilog仿真器或HVL仿真器验证部件。仿真器和硬件加速器交互提供数据,产生结果。 硬件加速器可以把仿真时间从大约数天减少为数小时,因此可以大大缩短验证时间。然而,它们价格昂贵,并且需要大量的建立时间。另一个缺点是它们通常需
9、要很长的编译时间,这意味着只对很长的回归(regression)仿真非常有用。因此,小规模设计还是把软件仿真作为仿真技术的首选。 Page 1215.1.3 仿真(续)仿真(续)Page 1315.1.3 仿真(续)仿真(续) 硬件仿真硬件仿真 硬件仿真(Hardware Emulation)又称在电路仿真(In-Circuit Emulation)或在线仿真,是在实际系统软件的真实环境中对设计进行验证的过程。硬件仿真一般用在扩展验证阶段,因为该阶段的验证需要系统已经非常稳定。 硬件仿真的一个主要优点是软硬件的集成可以在实际的硬件出现之前就进行,从而缩短了开发周期。通过运行实际的软件,在软件仿
10、真环境中难以建立的条件也能被测试到。 在设计上运行真实的系统是一个重要的验证步骤,通过该步骤可以减少出错概率和减少设计反复次数。但是,软件仿真器和硬件加速器不能用于该目的,因为它们速度太慢,并且与真实的系统没有必需的连接机制(hook)。例如,在软件仿真器上启动设计项目的UNIX操作系统进行仿真,可能需要花费许多年的运行时间,而采用硬件仿真则可以在数小时之内启动UNIX。 硬件仿真是一种与真实情况非常接近的仿真,应用软件可以在与真实电路几乎完全一样的条件下运行,与在实际芯片中运行应用软件没有差别。应用软件并不能察觉到它实际上是在仿真器上运行的,而不是在真实的芯片上运行的。 硬件仿真器一般运行在
11、MHz速度量级上,它们的价格非常昂贵并且需要很长的配置时间。因此,小规模设计还是把软件仿真作为仿真技术的首选。 Page 1415.1.3 仿真(续)仿真(续)Page 1515.1.4 分析分析 传统验证流程中的一个重要步骤是设计分析,为了分析数据值和数据协议的正确性,可以采用许多种方法,如: 1波形观察器用于观察转储文件。设计者以图形方式查看由各种不同的测试过程产生的转储文件,确保数据值和数据协议都正确。 2日志文件包含仿真运行的记录。设计者查看各种不同的测试日志文件,基于仿真信息判断数据值和数据协议的正确性。 这些方法每次测试完成运行,设计者都不得不人为地检查转储文件和日志文件。建议把测
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 15 高级 验证 技术 教学 课件 PPT
限制150内