VHDL硬件描述语言与数字逻辑电路设计 第三版 侯伯亨7 13 第9章.pptVIP

VHDL硬件描述语言与数字逻辑电路设计 第三版 侯伯亨7 13 第9章.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文档。上传文档
查看更多
     在前面几章已经详细地介绍了VHDL语言的基本语句及其使用方法,同时还列举了许多利用VHDL语言设计一般逻辑电路的实例。为了验证这些设计模块是否正确,还需对这些设计模块进行仿真。目前,各国的相关公司和厂商已为设计者提供了众多的仿真工具,如Synopsys公司的VHDL System Symulator、Model Technology公司的SYNARIO VHDL Simulator、VEDA Design Automation公司的VULCAL等。 通过这些仿真工具,设计者可对各设计层次的设计模块进行仿真,以确定这些设计模块的功能、逻辑关系及定时关系是否满足设计要求。所以,仿真是利用VHDL语言进行硬件设计的一个必不可少的步骤,它贯穿设计的整个过程。   如第1章所述,在硬件系统设计过程中一般要进行3次仿真:行为级仿真、RTL级仿真和门级仿真。各级所要达到的仿真目的是不一样的,同时对VHDL语言的描述要求也有所不同。下面就仿真中的几个主要问题作一介绍。 图9-1 带允许端的十二进制计数器的仿真输入信号 9.1.1 仿真输入信息的产生   硬件系统通常是通过输入信号来驱动的,在不同输入信号的情况下其行为表现是产生不同的输出结果。因此仿真输入信息的产生是对系统进行仿真的重要前提,也是必须进行的步骤。仿真信息的产生通常有三种方法:程序直接产生法、读TEXIO文件产生法和仿真波形输入法。   1.程序直接产生法   所谓程序直接产生法,就是由设计者设计一段VHDL语言程序,由该程序直接产生仿真的输入信息。例如要对例8-41带允许端的十二进制计数器进行仿真。该计数器有3个输入端,仿真时要产生clr、en和clk 3个输入信号,如图9-1所示。   3个输入信号之间有严格的定时关系。这些定时波形可以用进程来产生。例如:   …   CONSTANT clk_cycle:TIME:=20 ns;   …   PROCESS   BEGIN   test_clk=1;   WAIT FOR clk_cycle/2;   test_clk=0;   WAIT FOR clk_cycle/2;   END PROCESS;   PROCESS   BEGIN   test_clr=0;   test_en=1;   WAIT FOR clk_cycle/4;   test_clr=1;   WAIT FOR clk_cycle;   test_clr=0;   WAIT FOR clk_cycle*10;   test_en=0;   WAIT FOR clk_cycle*3;   test_en=1;   WAIT;   END PROCESS;   上例中的第一个进程产生周期为20?ns的时钟脉冲test_clk。开始,test_clk=1,保持10?ns。然后,test_clk=0,再保持10?ns,得到一个时钟周期。该进程没有指定敏感量,因此当进程执行到最后一条语句后又返回到最前面,开始执行进程的第一条语句。如此循环往复,就能产生出一串周期为20 ns的时钟脉冲。   上例中的第二个进程用来产生初始的复位(清除)信号和计数允许信号。该进程可产生宽20?ns的复位信号,复位260?ns后再使test_en有效(置为“1”),从而使计数器进入正常的计数状态。该进程的最后一条语句是WAIT语句,它表明该进程只执行一次,进程在WAIT语句上处于无限制的等待状态。   【例9-1】 利用程序直接产生输入信号。   LIBRARY IEEE;   USE IEEE.STD_LOGIC_1164.ALL;   USE IEEE.STD_LOGIC_UNSIGNED.ALL;   ENTITY test_count12en IS   END ENTITY test_count12en;   ARCHITECTURE siml OF test_count12en IS   COMPONENT count12en IS   PORT (clk,clr,en:?IN STD_LOGIC;   ?qa,qb,qc,qd:?OUT STD_LOGIC);   END COMPONENT count12en;   CONSTANT clk_cycle:TIME:=20 ns;   SIGNAL test_clk,test_clr,test_en:STD_LOGIC;   SIGNAL t_qa,t_qb,t_qc,t_qd:STD_LOGIC;   BEGIN   U0: count12en PORT MAP (clk=test_clk,clr= test_clr,en =test_en,qa=t_qa,qb=t_qb,

您可能关注的文档

文档评论(0)

118压缩包课件库 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档