微处理器基于功能覆盖率的伪随机验证方法_第1页
微处理器基于功能覆盖率的伪随机验证方法_第2页
微处理器基于功能覆盖率的伪随机验证方法_第3页
微处理器基于功能覆盖率的伪随机验证方法_第4页
微处理器基于功能覆盖率的伪随机验证方法_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、微处理器基于功能覆盖率的伪随机验证方法    本文提出了一种基于功能覆盖率的伪随机验证方法,该方法能根据功能覆盖率的反馈自动生成测试向量进行测试,能提高验证的效率和质量,缩短设计时间,降低验证成本。关键词  覆盖率;伪随机;功能验证;微处理器1引言随着IC设计的复杂度和规模不断增大,现代处理器的复杂性已经使设计验证成为巨大瓶颈。伪随机测试在验证现代处理器和硬件系统时起着非常重要的作用。因为在验证微处理器时面临的最多、最显著的问题是:需要验证巨大的变量空间(比如,由指令集所构成的指令序列空间是一个几乎无限的空间)。这就需要随机地产生均匀分布的测试

2、向量,以期通过有限的指令空间的验证确保无限指令空间的正确性。本文提出了一种基于功能覆盖率的伪随机验证方法。能够通过功能覆盖率的反馈自动生成测试向量进行测试, 能较好地解决上述验证瓶颈。2当前验证微处理器面临的挑战功能验证在现代微处理器的验证中占有比较重要的地位。验证人员需要发现设计中的逻辑错误。这些错误可能导致错误操作或降低处理器的性能。随着设计规模的变大,在微处理器的验证过程中,面临着各种挑战。1)巨大的验证空间随着设计规模和设计复杂性的变大,需要验证的空间成指数级增长。现代处理器的功能越来越复杂,实现的指令也越来越多。由指令集所构成的指令序列空间是一个几乎无限的空间。让测试人员编写如此巨大

3、数量的测试向量是难以完成的。2)验证环境的可重用性传统的验证过程中,模块级建立的验证环境,并不适用于系统级。因此,需要开发不同的验证环境。不但占用验证人员大量的时间用来开发环境,而且也给环境的维护带来不便。3)验证结果的数据一致性检查软件模拟是目前应用最为广泛的一种功能验证方法,需要输入测试向量,并检查其运行结果是否和期望值一致。随着设计的复杂度不断增加,输入的向量将会更复杂,得出的结果可能是测试人员无法预料的,要求测试人员一一检查运行结果,费时费力,容易出错,这显然会阻碍验证流程的进行。4)验证工作结束的标志现代微处理器的验证工作似乎是一个永无结束的过程。巨大的验证空间使得需要测试的项目数量

4、非常巨大。何时才能结束验证工做是每个测试人员最关注的问题。但是,这个量化的目标,很难确定。而且,在验证流程中,验证人员无法掌握已经测试完成了哪些方面,还需要测试那些方面。3功能验证常用的验证方法伪随机测试技术和覆盖率技术能够比较好的解决微处理器验证过程中面临的主要挑战。3.1 伪随机测试技术为了改善功能验证的效率,伪随机测试技术成为近年来的研究重点。伪随机技术是可控的随机技术。伪随机测试技术的核心是通过约束使生成的激励既满足特定条件,又达到充分的随机性。由于伪随机技术有成熟的算法,能够通过随机种子,改变或重现随机运行过程。所以,运用伪随机技术能够自动生成海量的满足特定条件的随机测试激励,并且通

5、过约束达到测试向量的灵活可控,提高了验证的效率。高级硬件验证语言的出现就是验证领域研究的最新成果。Cadence公司的Specman Elite工具和开发的验证语言E就可以提供自动生成测试向量的解决方案。类似的高级验证语言还有JEDA公司的JEDA语言和Synopsys公司的Vera语言。3.2覆盖率技术实际应用中,为了确保验证的充分性和可靠性,一般采用覆盖率技术,量化测试进度。使得测试人员随时都能了解到验证达到了什么程度。覆盖率技术按对验证充分性衡量的不同标准,可分为:代码覆盖率,分支覆盖率,条件表达式覆盖率,路径覆盖率,信号翻转率,功能点覆盖率等;实际验证过程必须满足多种覆盖率要求,才能较

6、客观的控制验证流程。比如,参考验证代码覆盖率和功能覆盖率一起分析验证进度。3.3基于参考模型的正确性检测机制在检验处理器设计正确性时,有两种方式:基于设计规则的验证和基于参考模型的验证。基于设计规则的验证是由设计人员提取设计中具体的信号规则,在验证过程中检测设计模型运行时是否符合相应设计意图。基于参考模型的验证技术是通过在算法级根据设计意图用高级语言描述一个无时序的模型,它能够正确的解释设计意图,并提供各种解释结果用于对RTL级设计进行比较,以验证设计的正确性。在实际的微处理器验证中,通常采用基于参考的验证方式。4 基于功能覆盖率的伪随机验证方法的实现在对微处理器进行功能验证过程中,以功能覆盖

7、率为驱动的伪随机验证是一个高效的验证方法。选用Cadence公司的Specman Elite工具和验证语言E就能搭建一个伪随机的验证环境。本文提出以功能覆盖率为驱动的伪随机验证方法包括与RTL设计相对应的参考模型,灵活可控的伪随机激励的生成,功能覆盖率的收集和统计,结果数据一致性的自动检验。其示意图如图1所示。 图1  基于功能覆盖率的伪随机验证方法示意图4.1定义参考模型开发微处理器的指令级参考模型可以实现自动比较微处理器的执行结果。该参考模型能正确地解释微处理器的指令集,并将指令的解释结果反映为各种状态(如:结构寄存器的状态),所以借助参考模型就能得到随机指令执行后的期

8、望值,将RTL级设计的模拟结果与参考模型输出的期望值相比,就能判断RTL级设计的功能正确性。参考模型模拟了微处理器的外部逻辑,比如主存、高速缓冲处理器、I/0设备等,反映微处理器的基本接口功能。4.2验证环境的开发选用Cadence公司的高级验证语言E就能搭建一个基于参考模型的验证环境。该验证环境能够实时的比较设计和参考模型的运行结果。为了达到较好的验证效果,比较的内容应该包括:指令退出时寄存器的值;指令退出或异常时的程序计数器;内存内容等。运行结果按指令级进行比较,实现起来比按拍比较简单,也能达到较精确的比较结果。而且,很容易实现各种配置参数的随机化。在结果比较不一致时,会自动停止运行。测试

9、人员根据环境输出的一些信息(比如指令退出或异常时的程序计数器等)可以快速的定位错误。而且,对于相同的随机种子,可精确重现错误现象。这对调试错误非常有效。4.3伪随机激励的生成利用sequence开发技术,可以根据测试要求,编写带有约束的可控伪随机序列,或完全随机的序列。一个可重用序列,通过随机种子的变化,可以产生不同的测试激励。混合多种可重用序列,将得到复杂的测试激励,使设计得到比较高效的充分验证。使得验证人员可以把更多的精力放在调试错误上,而不是埋头于手工编写大量测试激励。4.4覆盖率分析定义覆盖点为验证过程确立了目标,使验证人员能了解验证工作的进程。分析覆盖率报告不仅可以了解到验证的充分程

10、度,还能为进一步验证提供方向,避免了无效的穷举测试。根据覆盖率的分析,可以编写有针对性的随机序列,也可以编写焦点测试激励,加快验证周期的收敛。结合代码覆盖率和功能覆盖率分析,一般情况下,代码覆盖率平均达到95%以上,功能覆盖率达到100%,认为整个芯片验证结果是令人满意的。4.5覆盖率结果自动反馈的伪随机验证运用Specman Elite工具的 Coverage API可以实现更高效、自动化的验证。Coverage API技术可以扫描覆盖率数据库,根据收集到的覆盖率信息,程序会自动创建一个新的e语言的测试文件,测试文件是带有权重约束的随机序列。哪个覆盖点覆盖情况越少,相应的测试激励在

11、文件中的权重就越高。自动创建的e语言的测试文件马上就能被加载运行,这样产生的激励将会针对未覆盖到的或覆盖比较少的区域来测试。该程序会一直自动执行,直到覆盖点被覆盖到。5总结如何在有限的时间内充分的验证完一个复杂的设计成为验证人员最为关心的问题。本文结合实际应用,提出了基于功能覆盖率的伪随机验证方法应用于设计的功能验证。该方案用高级验证语言开发高效、可重用的验证环境,能根据功能覆盖率的反馈自动生成测试向量进行测试。不但节约了大量的人力、物力,而且缩短了设计验证的流程。较好的解决了验证的充分性和验证时间之间的矛盾。伪随机测试确保了生成的测试向量能均匀的分布在巨大的验证空间。通过伪随机测试能够挖掘出

12、验证人员没想到的深层错误。以功能覆盖率驱动的伪随机验证,可以加快验证周期的收敛。不过,越来越复杂的设计,使得单一的验证方法无法确保充分验证到微处理器的各个方面。因此,需要结合各种验证技术,比如断言检查等,采取多样的验证方法才能达到令人满意的验证效果。 参考文献:1“SEQUENCE:Constructing Test Scenarios” Verisity2“2004 High level design validation current practices and future directions” Indradeep Ghosh, Rajarshi Mukherjee, Mu

13、kul Prasad, Masahiro Fujita3“validating the Intel Pentium 4 processor” Bob Bentley, Rand Gray4“SPECMAN ELITE Usage and Concepts Guide” Verisity 5“Verification Methodology for a Complex SoC” Akihiro Higashi, Kazuhide Tamaki, Takayuki Sasaki6“Functional Verification of an HW Block using VERA” Marco Brunelli, Luca Battù, Andrea Castelnuovo, Francesco Sforza7“e language reference manual” Verisity8“Function

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论