- 1、本文档共39页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
(verilog和vhdl)Testbench编程指南
Testbench 编程指南 Jason.chen@
TestBench 编程指南
如今数字设计的规模变得越来越庞大,设计的复杂程度也越来越
高,这就使得设计的验证变得越来越困难,而且费时费力。为了应对这
种挑战,验证工程师依靠各种验证工具和方法。对于大型设计,如几
百万门的设计,通常采用一整套正式的验证工具。然而,对于小一些
的设计,设计工程师发现往往采用带TestBench 的 HDL仿真工具是最
好的途径。
TestBench 已经变成验证高级语言设计的一种标准的方法。通常,
TestBench 执行以下任务:
例化设计,使其可测试(DUT-design under test);
通过将测试向量应用到模型来仿真例化后的可测试的设计;
将结果输出到终端,或者输出波形窗口;
将真实的结果和期望的结果进行比较;
一般,TestBench采用工业标准的 VHDL 或者Verilog 硬件描述语
言来编写。TestBench 调用功能设计,然后仿真。复杂的测试文件执
行附加功能――例如,他们包含逻辑以决定合适的设计激励或者比较
真实的结果和期望的结果。
以下章节将讨论一个组织良好的测试文件的组成,以及例举了一
个带有自检的测试文件(自动将真实的结果和预期的结果进行比较)。
下图是一个标准的 HDL 验证的流程。自从测试文件可以用 VHDL 或者
Verilog编写以来,测试验证流程就可以在平台和供应商的工具交叉
1
Testbench 编程指南 Jason.chen@
进行。同时,由于 VHDL 和 Verilog 都是标准的公用的语言,所以用
VHDL或者是 Verilog 描述的验证可以很简单的被再使用。
图 1. HDL 验证流程
测试文件构成:
测试文件可以采用VHDL或者 Verilog 语言编写。由于测试文件只
是用来仿真的,他们就不被用于综合的 RTL语言子集的语法所约束。
相反,所有行为结构都可以被使用。这样,测试文件可以被写的更通
用,更易于维护。
所有的测试文件都包含以下基本内容,如表 1。如上所属,测试
文件经常同时包含附加功能,如结果的可视化显示和内建错误检测。
表 1
VHDL Verilog
实体和结构体申明 模块申明
信号申明 信号申明
2
Testbench 编程指南 Jason.chen@
顶层设计实例化 顶层设计实例化
提供激励 提供激励
以下例子展示了一些在测试文件中被频繁使用的结构。
时钟信号发生:
采用系统时钟时序化逻辑的设计需要产生一个时钟。重复时钟在
VHDL 或者 Verilog 源码中可以很简单的发生。以下就是在 VHDL 和
Verilog中的时钟发生例子:
VHDL:
--申明时钟周期常量
Constant clockperiod :time :=10 ns;
--时钟发生方法之一:
Clock=not clock after clockperiod/2;
--时钟发生方法之二:
Generate clock : process
Begin
Wait for (clockperiod/2);
Clock=’1’;
Wait for (clockperi
文档评论(0)