EDA技术与VHDL设计 教学课件 作者 黄沛昱 第6 9章第8章.pptVIP

EDA技术与VHDL设计 教学课件 作者 黄沛昱 第6 9章第8章.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
;      8.1 VHDL仿真概述   当一个设计完成后,需要对设计的正确性进行测试和验证。前面的章节都是通过QuartusⅡ软件自带的图形仿真工具进行仿真验证的。但是,当需要测试的向量很多时,如果仅靠画波形的手工方式,会相当耗费精力。实际上,VHDL作为硬件描述语言,既可以用于电路系统的设计,也可以用于电路系统的测试和验证。这时就可以使用测试平台(TB,Test Bench)来完成测试。TB其实就是一个与所设计的电路系统程序相对应的激励程序,用来为设计提供激励。 ;  当然,TB既可以采用VHDL语言,也可以采用Verilog语言来实现。总地来说,VHDL Test Bench就是一段用于验证设计功能正确性的VHDL代码。   一般来说,仿真器通常需要两个输入:设计块(即DUT,Design Unit Test)和激励块(即TB,Test Bench)。TB能够完成以下几点目标:   (1) 在测试中实例化DUT。   (2) 为DUT产生激励。   (3) 产生参考输出,并与DUT的输出进行比较。   (4) 自动提供测试通过或失败的提示。;  下面先以一个简单的实例来感性认识TB的使用。设计一个具有异步清零功能的十进制计数器,能够完成0~9的计数,并能够产生进位信号。第6章中曾采用状态机的方式实现该例,本章采用IF语句实现,具体代码见例8-1。;;;  使用VHDL语言编写TB,由于测试设计只用来进行仿真,不受综合中仅能使用RTL语言子集这样的语法约束。因此它可以使用所有的行为级结构,即所有基本语法都是适用的(包括一些不能被综合的语法)。例8-1的十进制计数器所对应的TB见例8-2。;;;  从例8-2可总结出TB的基本结构:包含一个不需要定义输入/输出端口的空实体和一个带有被测试元件声明、例化、激励产生的结构体。例8-2的L5~L6是TB的实体定义,实体名为cnt_tb,它与外界没有任何接口,只和DUT通过信号进行连接,不需要定义输入/输出端口;L10~L15是被测试元件DUT的声明;L17~L20声明了与DUT相连接的信号;L23是元件例化;L24确定了时钟信号clk的周期为50 ns,每隔25 ns值取反,其初始值为“1”(由L17定义);L25~L27确定了信号reset的取值,初始值为“0”,240 ns后取值为“1”,360ns后取值为“0”。   DUT和TB的结构关系如图8-1所示,它们之间通过内部信号进行交互。;;  从本章开始均采用不再自带图形仿真工具的QuartusⅡ11.1版本,直接调用Modelsim完成仿真的形式。本例需要将设计文件cnt.vhd和测试平台文件cnt_tb.vhd都保存于同一文件夹、同一工程内。设置设计文件cnt.vhd为顶层实体,然后选择菜单Assignments→Settings,打开如图8-2所示对话框。在左边的Category栏中选择EDA Tool Settings→Simulation,即可打开仿真设置对话框。在其中选择Compile test bench,然后单击Test Benches按钮,打开图8-3所示对话框。单击New,添加测试文件,弹出图8-4所示新建测试平台设置对话框。 ;  在Test bench name栏中输入测试平台实体的名称,即cnt_tb,则Top level module in test bench栏也会出现相同的名称。在Use test bench to perform VHDL timing simulation前的方框内打勾,则Design instance name in test bench栏变亮,在其中填入例化名u1。 Simulation period栏可根据需要选择是根据激励变化确定仿真时间还是自定义仿真时间,本例选择Run simulation until all vector stimuli are used。在File name栏右侧单击“…”按钮,添加测试平台文件cnt_tb.vhd。设置完成后,单击OK,会发现图8-3所示的窗口已经包含相关设置信息,如图8-5所示,单击OK返回。;;;;;  将顶层设计文件cnt.vhd进行全程编译,无误后选择菜单Tools→Run Simulation Tool,即可调用Modelsim进行RTL仿真或门级仿真。例8-1的十进制计数器仿真结果见图8-6和图8-7。可以看到,当reset=“1”时,输出立即清零。计数器能够实现0~9的计数,并产生进位信号cout。相关实验步骤或一些细节可参见《EDA技术与VHDL设计实验指导》一书的5.3节。;;;   8.2 几种常见的Test Bench模型   TB产生激励的方式,主要有以下三种:   (1) 激励直接在TB中产

您可能关注的文档

文档评论(0)

时间加速器 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档