带反馈环路的 D 型触发器
D flip flop with a feedback loop to clear
这是我的代码,用于具有低电平有效异步清除和复位功能的 d 触发器。 Clear 有一个输入,它是 q(d ff 的输出)和复位 signal.I 的组合,已上传图像向您展示我为其编写此程序的电路。我没有得到预期的输出;清晰且 q 始终很低。我在模拟中将重置设置为逻辑一。请帮助并让我知道我的错误:) 谢谢。
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”且重置为“1”,则清除信号作为这两者的与非门的输出将变为“0”,并且状态将立即变为“0”。所以状态和q会一直很低。
我已经使用 Modelsim Altera 来模拟您的设计,它清楚地显示了信号中的毛刺。
这是我的代码,用于具有低电平有效异步清除和复位功能的 d 触发器。 Clear 有一个输入,它是 q(d ff 的输出)和复位 signal.I 的组合,已上传图像向您展示我为其编写此程序的电路。我没有得到预期的输出;清晰且 q 始终很低。我在模拟中将重置设置为逻辑一。请帮助并让我知道我的错误:) 谢谢。
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”且重置为“1”,则清除信号作为这两者的与非门的输出将变为“0”,并且状态将立即变为“0”。所以状态和q会一直很低。
我已经使用 Modelsim Altera 来模拟您的设计,它清楚地显示了信号中的毛刺。