0
我是VHDL的新手,我刚刚在Quartus II 9.0中搞砸了,并决定创建一个寄存器类型的组件。我认为我的逻辑是正确的,但是当我运行模拟时我没有得到任何输出。我创建了一个波形来测试可能的情况(使用节点查找器列出所有的输入和输出,生成功能模拟网表),但是我没有得到Q的任何输出。即使是clr = 1且所有Q都应该是设置为0。为什么我的代码不生成输出?
library ieee;
USE ieee.std_logic_1164.ALL;
USE ieee.std_logic_arith.ALL;
USE ieee.std_logic_unsigned.ALL;
ENTITY Register32 IS PORT (
d : IN STD_LOGIC_VECTOR(31 DOWNTO 0); -- input.
ld : IN STD_LOGIC; -- load/enable.
clr : IN STD_LOGIC; -- async. clear.
clk : IN STD_LOGIC; -- clock.
Q : OUT STD_LOGIC_VECTOR (31 DOWNTO 0)); -- output.
END Register32;
ARCHITECTURE description OF Register32 IS
BEGIN
process (clk) begin
if (clr = '1') then
Q <= (others => '0');
else
if (rising_edge(clk)) then
if (ld = '1') then
Q <= d;
end if;
end if;
end if;
end process;
END description;