首页 文章

VHDL中的敏感列表

提问于
浏览
1

我有一个D触发器的VHDL程序如下

LIBRARY ieee;
USE ieee.std_logic_1164.ALL;

ENTITY ff2 IS

  PORT (
    clk   : IN  STD_LOGIC;
    rst_n : IN  STD_LOGIC;
    d     : IN  STD_LOGIC;
    q     : OUT STD_LOGIC
    );

END ff2;

ARCHITECTURE beh OF ff2 IS

BEGIN  -- beh

  ff2_proc: PROCESS (clk, rst_n)
  BEGIN  -- PROCESS ff2_proc
    IF rst_n = '0' THEN     
      q <= '0';
    ELSIF falling_edge(clk) THEN  
      q <= d;
    END IF;
  END PROCESS ff2_proc;

END beh;

我不明白为什么敏感列表只包含信号clk和rst_n . 如果我将d信号添加到敏感列表,会发生什么?我希望你的帮助 . 谢谢 .

1 回答

  • 4

    如果将 d 添加到灵敏度列表中,模拟器可能需要做更多工作,但输出将是相同的 .

    有人说......

    让我们独立地看一下3个变量,然后问一个问题:“如果这个变量发生变化,这个过程的输出会改变吗?

    • clk :好吧,如果 clk 发生变化, d 可能会有一个我们需要存储到 q 的新值 . 所以这是必要的 .

    • rst_n :好吧,如果这个改变了,我们可能会将 q 设置为0.所以这是必要的 .

    • d :好吧,如果 d 发生了变化,而没有其他变化,则该过程的输出在灵敏度列表中不需要此信号 .

相关问题