D触发器用反馈回路清除

时间:2016-01-28 10:43:50

标签: vhdl

这是我的d触发器代码,具有低有效的异步清除和复位功能。 Clear有一个输入,它是q(d ff的输出)和复位信号的组合。我上传了一个图像,向您显示我编写该程序的电路。我没有得到预期的输出;清楚,q总是很低。我在模拟中将reset设置为逻辑1。请帮忙告诉我我的错误:)谢谢。

LIBRARY ieee ;
USE ieee.std_logic_1164.all ;
use ieee.numeric_std.all;


ENTITY d_feedback_clr IS
PORT ( 
       clock, reset, d: IN STD_LOGIC ;  
       q : OUT STD_LOGIC
      ) ;

END d_feedback_clr ;

ARCHITECTURE Behavior OF d_feedback_clr IS
signal state, clear: STD_LOGIC:='0'; -- state implies the output of the d register

BEGIN

    clear <= reset nand state; 

    PROCESS (clock, clear, reset)
        BEGIN

             IF (clear='0') THEN
                state <= '0';
             elsif reset='0' then
                state <= '1'; 
             elsif (clock'event and clock='1') THEN
                state <= d;                                     
             END IF ;

    END PROCESS ;
    q <= state;
END Behavior ;

1 个答案:

答案 0 :(得分:2)

我认为你的问题是明确的信号。如果你的州是'1&#39;并重置是&#39; 1&#39;然后清除信号,因为这两个的nand门的输出将变为&#39; 0&#39; 0并且州立即改为&#39; 0&#39;。所以状态和q总是很低。

我使用了Modelsim Altera来模拟你的设计,它清楚地显示了信号中的毛刺。

Simulation result