Я создал банк регистров с двумя портами в VHDL, и я хочу проверить его, чтобы убедиться, что он работает.Как бы я поступил так?Я знаю, что я хочу сделать (установите регистр 2 как константу, прочитайте его в тестовой программе, запишите в регистр 3 и прочитайте его обратно и посмотрите, есть ли у меня такие же результаты).
ТолькоДело в том, что я новичок в VHDL, так что я не знаю, есть ли консоль, или как устроена тестовая программа, или как создать экземпляр файла реестра, или даже что для его компиляции (я использовал quartus, такдалеко).
Вот мой регистрационный файл:
use IEEE.STD_LOGIC_ARITH.all;
use IEEE.STD_LOGIC_UNSIGNED.all;
-- Register File
entity RF is
port(
signal clk, we: in std_logic;
signal ImmediateValue : in std_logic_vector(15 downto 0);
signal RegisterSelectA, RegisterSelectB : in integer range 0 to 15;
signal AOut, BOut : out std_logic_vector(15 downto 0)
);
end RF
architecture behavior of RF is
array std_logic_vector_field is array(15 downto 0) of std_logic_vector(15 downto 0);
variable registers : std_logic_vector(15 downto 0);
process (clk, we, RegisterSelectA, RegisterSelectB, ImmediateValue)
wait until clk'event and clk = '1';
registers(RegisterSelectA) := ImmediateValue when we = '1';
AOut <= registers(RegisterSelectA);
BOut <= registers(RegisterSelectB);
end process;
end behavior;