模拟是否总是在时钟边沿上显示信号/输出分配?

时间:2017-02-28 01:44:41

标签: process signals vhdl simulation fpga

所以我理解,如果我们在时钟进程中分配信号或输出,即分配在下降沿发生,或者换句话说在进程暂停时发生,但为什么在模拟信号或输出期间在上升期间分配时钟的边缘? 作为一个例子,我有以下代码:

 if(rising_edge(clk)) then
     if(one_second_counter = "10111110101111000001111111")
         one_second_counter <= (others=> '0');
     else
      one_second_counter <= one_second_counter + 1; --
 end if;

我附加了模拟波形: waveform

1 个答案:

答案 0 :(得分:0)

  

所以我理解,如果我们在一个时钟进程中分配一个信号或输出,那么赋值发生在下降沿,或者换句话说,当进程暂停时...

这是不正确的。当满足过程的灵敏度条件时,就会发生分配。在您的示例中,这是rising_edge(clk) - 时钟的上升沿。