教学课件 EDA技术与VHDL设计(黄沛昱).pptVIP

  • 37
  • 0
  • 约11.15万字
  • 约 821页
  • 2021-01-16 发布于江苏
  • 举报
  【例8-4】   例8-4的仿真结果见图8-9和图8-10。从图8-9中可以明显观察到din变化的时间;图8-10显示在时钟clk的上升沿时,数据依次左移,最右位补“1”的过程。 图8-10 例8-4TB移位寄存器仿真结果(2) 图8-9 例8-4TB移位寄存器仿真结果(1)   2.直接产生激励信号的各种方式   激励信号一般可分为两类:周期性的激励信号和时序变化的激励信号。周期性的激励信号最典型的代表就是时钟信号,而时序变化的激励信号包括复位信号reset、清零信号clear以及其他一些输入信号等。   (1) 周期性激励信号的产生。时钟信号是最典型的周期性信号,既可以使用并行信号赋值语句来产生,也可以在进程中产生;既可以产生占空比是50%的时钟信号,也可以产生占空比任意的时钟信号。例8-5采用并行信号赋值语句中的条件信号赋值语句建立了一个占空比是75%的时钟信号clk。   【例8-5】   …   CONSTANT period : TIME := 50 ns;   …   clk = ‘0’ AFTER 3*period/4 WHEN clk = ‘1’ ELSE    ‘1’ AFTER period/4 WHEN clk = ‘0’ ELSE    0;   将例8-5改为在进程中实现,见例8-6。   【例8-6】   …   CONSTANT period : TIME := 50 ns;   …   PROCESS   BEGIN     clk = ‘1’;     WAIT FOR 3*period/4;     clk = ‘0’;     WAIT FOR period/4;   END PROCESS;   仍然以移位寄存器为例,二者仿真结果相同,见图8-11,所不同的是时钟信号clk的占空比由50%变为75%。需要注意的是,如果采用例8-4所示并行信号赋值语句,则时钟信号的初值必须明确声明为“1”或者“0”。   例8-7显示了一个周期性的信号,其周期为70 ns,波形见图8-12。一般来说,为实现信号的周期性变化,一般采用WAIT语句。 图8-11 时钟信号占空比为75%   【例8-7】   PROCESS   BEGIN   s = ‘0’ , ‘1’ AFTER 10ns, ‘0’ AFTER 20ns, ‘1’ AFTER 40ns, ‘0’ AFTER 45ns;   WAIT FOR 70ns;   END PROCESS;   (2) 时序变化的激励信号的产生。时序变化的激励信号也可以通过并行赋值语句和进程两种方式产生。例8-8采用并行赋值语句显示了一个复位信号reset的变化,仿真开始时,其值为“0”;60?ns后,其值变为“1”;再经过30?ns后,其值变为“0”。例8-9在进程中定义复位信号reset,采用WAIT语句来实现。二者仿真结果完全一致,如图8-13所示。需要注意的是,例8-9中最后一句WAIT语句的作用,如果不加该条语句,仿真结果又会如何变化,请读者自行分析。   【例8-8】   reset = ‘0’,     1 AFTER 60ns,     0 AFTER 90ns;   【例8-9】   PROCESS   BEGIN     reset = 0 ;     WAIT FOR 60ns;     reset = 1;     WAIT FOR 30ns;     reset = 0;     WAIT; --一直等待     END PROCESS; 图8-13 例8-8和例8-9复位信号reset仿真结果   例8-10显示了使用预定义属性DELAYED来产生一个延时一定时间的激励信号。信号s较信号reset延时50 ns,仿真波形见图8-14。   【例8-10】   s = reset‘DELAYED(50ns);   还有一类比较特殊的激励信号,称为动态激励信号,即输入的激励信号与DUT的行为相关,受其影响或由其决定。例8-11仍然以例8-3中的移位寄存器为DUT,置数信号load由移位结果控制,当移位结果全1时,load=“1”允许置数。 图8-14 使用预定义属性产生延时一定时间的激励信号   【例8-11】   例8-11的仿真结果见图8-15。可以看到,当q移位为时,延时60 ns后,load由“0”变为“1”,允许置数,重新将置入;q置数成功后,再次触发进程,此时由于q不等于,则执行L32,延时60 ns后,load由“1”变为“0”。   【例7

文档评论(0)

1亿VIP精品文档

相关文档