编写测试平台-HDL模型的功能验证.pdf

编写测试平台-HDL模型的功能验证.pdf

ID:52435579

大小:775.86 KB

页数:85页

时间:2020-03-27

编写测试平台-HDL模型的功能验证.pdf_第1页
编写测试平台-HDL模型的功能验证.pdf_第2页
编写测试平台-HDL模型的功能验证.pdf_第3页
编写测试平台-HDL模型的功能验证.pdf_第4页
编写测试平台-HDL模型的功能验证.pdf_第5页
资源描述:

《编写测试平台-HDL模型的功能验证.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第1章什么是验证验证不是一个测试平台,也不是一系列测试平台的集合。验证是一个证明设计思路如何实现的过程。验证贯穿于我们的日常生活中:支票簿的结算、品尝食物、在地图上寻找用标记标出的特定目标,这些都是验证的过程。本章将从重要性和代价的角度介绍验证的基本概念,以及如何确认验证的内容。我们将讨论不同的验证方法之间的差异、测试和验证之间的差异。也将介绍验证在设计复用中的重要性,以及验证复用时所面临的挑战。1.1什么是测试平台术语“测试平台”(Testbench)通常指一段仿真代码,用来为设计产生特定的输入序列,也用来观测设计输出的响应。测试平台常常采用VHDL、Verilog、e或OpenVera语

2、言编写,有时也会调用一些外部的数据文件或C函数。图1.1是一个测试平台和待测设计(DUV)之间相互关系的示意图。测试平台为设计提供输入信号,并监视设计的输出信号。注意,这个系统是一个完全封闭的系统:系统没有来自外部的输入信号,也没有输出信号。测试平台是系统的控制核心。验证的任务就是确定产生什么样的输入模式,以及期望的设计输出。测试平台待测设计图1.1一种常见的测试平台和待测设计的结构1.2验证的重要性大多数书籍关注语法、语义和语言的RTL子集典型的VHDL和Verilog书籍的大多数章节都在介绍语言的语法和语义,通常也会用两三章的篇幅介绍可综合性编码风格或寄存器传输级(RTL)语言子集。2编

3、写测试平台—HDL模型的功能验证(第二版)这些书籍通常只用一章的内容来介绍测试平台。但是一章的内容不足以解释清楚与测试平台有关的知识,并且这些解释常常是非常简单的。几乎所有的书籍都把测试平台用到的技术局限于产生同步方式的激励矢量,用波形浏览工具检测输出信号。大多数书籍介绍语言的文件输入功能,把更多的内容安排在语法和语义方面。这些书籍中大部分的内容是在讲述如何编写可综合的VHDL或Verilog代码,而不是强调如何编写验证功能正确性的测试平台,因此读者会得出前者比后者更重要的结论。事实上,这与所有的硬件设计队伍的结论相悖。验证工作占设计工作量的70%在这个设计规模达数百万门ASIC、可复用的知

4、识产权(IP)和系统芯片(SoC)的时代,验证占到了设计工作量的70%。设计团队应该配备能够正确描述验证需求的工程师和专门进行验证的工程师。验证工程师的数量甚至应该是RTL设计人员的两倍。验证是必不可少的由于验证的工作量巨大,以及缺乏合格的硬件设计和验证工程师,因此几乎所有项目的验证都不能及时完成就不足为奇了。事实上,我们经常在设计完成后才考虑验证工作。当设计进度受到影响时,问题就会产生。这也是现在的新工具和方法学把验证作为研究目标的原因,它们试图通过并行化、更高层次的抽象和自动化来缩短验证需要的时间。并行化可以缩短验证所需的时间如果验证工作可以并行进行,那么就可以使用更多的资源来缩短验证所

5、需的时间。这就好比在地上挖一个坑,可以让很多拿着铁锹的工人一起来挖。为了让验证工作得以并行进行,必须让编写代码、调试、验证以及设计的实现过程都并行化。抽象可以缩短验证所需的时间采用更高层次的抽象使我们可以不关心底层的细节,从而提高工作效率,这就好像在上面的例子里使用挖土机来挖坑。抽象减少了对底层细节的控制高层次的抽象通常伴随着对底层控制的减少,因此必须仔细选择。高层次的抽象要求额外的训练以理解抽象的机制及其后果。使用挖土机挖坑会遇到同样的失去控制的问题:工人不再直接和泥土打交道,而是操作操作杆和踏板。挖掘的工作更快,但精度降低了,并且只有受过训练的工人才能工作。验证工作可以在更高的抽象层次完

6、成,例如事务级、总线周期级甚至更高的层次,而不是在底层直接和0、1打交道。第1章什么是验证3自动化可以缩短验证所需的时间自动化可以让我们在机器自主地、快速地完成任务的同时做别的事情,得到可预测的结果。自动化需要编写定义好输入和输出的标准进程。并不是所有的过程都可以自动化,这就好像使用通用的机械不可能挖各种不同形状、尺寸、深度、位置和土质的坑一样。验证面临着同样的问题。由于要验证各种不同的功能、接口、协议和变换,现在的技术无法采用一种通用的自动化解决方案来进行验证,而只能将某些验证过程自动化,特别是在一些专业的应用领域。这就好像挖沟机可以自动挖出放置管道和电缆的浅沟。用来自动化各种验证过程的工

7、具正在不断出现,例如,有些工具可以从高层次抽象的规范自动产生总线功能模型。随机化可以作为一种自动化工具在一些特殊领域,随机化可以用来模拟自动化。通过构造一个随机发生器来产生在特定范围内的有效输入,就有可能自动产生所有感兴趣的输入状态。例如,打扫一个池塘底部的过程可以由以下自动化过程实现:用一个扫帚在池底部自动地随机移动,池的四壁对移动的范围加以限制。几个小时后,可能只剩下角落和几小块地方需要手工清扫了。要取得

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。