【发布时间】:2015-05-10 12:07:44
【问题描述】:
我想使用 D FlipFlop 构建一个 4 位移位寄存器,但我不明白这个图。
这个代码是给我的移位寄存器
ENTITY shift4 IS
PORT ( D : IN STD_LOGIC_VECTOR(3 DOWNTO 0) ;
Enable : IN STD_LOGIC;
Sin : IN STD_LOGIC;
Clock : IN STD_LOGIC;
Q : OUT STD_LOGIC_VECTOR(3 DOWNTO 0) ) ;
END shift4 ;
我为触发器编写了这段代码
entity flipflop is
port ( D_in : in std_logic;
CLK : in std_logic;
CLR : in std_logic;
Q_out : out std_logic
);
end flipflop;
architecture behavior of flipflop is
begin
process(CLK)
begin
if CLR='0' then null;
elsif RISING_EDGE(CLK) then
Q_out <= D_in;
end if;
end process ;
end behavior ;
我没有从这张图中得到的是我应该如何使用 D 以及如何用这个输入和输出移植映射触发器。我试过这个
FF1: flipflop port map(Sin,Clock,Enable, Q(3));
FF2: flipflop port map(Sin,Clock,Enable, Q(2));
FF3: flipflop port map(Sin,Clock,Enable, Q(1));
FF4: flipflop port map(Sin,Clock,Enable, Q(0));
但显然情况并非如此,因为我也必须使用 D,但我找不到使用所有变量的方法。
【问题讨论】:
-
要理解电路图,请考虑在 D 触发器中,输入“D”的状态在 CLK 的上升沿传递到输出 Q。当 D 随后发生变化时,这对 Q 没有影响,直到 CLK 的下一个上升沿...所以如果您将“1”置于 Sin,在 CLK 的第一个上升沿它到达 Q3(这也是下一个 D 触发器 ...在第二个上升沿到达 Q2 ...等等等等
标签: vhdl flip-flop shift-register