Я новичок в 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;