나는 VHDL로 듀얼 포트 레지스터 뱅크를 만들었고 테스트를 통해 작동하는지 테스트하려고합니다. 이 일을 어떻게 하죠? 나는 내가하고 싶은 것을 알고있다. (레지스터 2를 상수로 설정하고, 테스트 프로그램에서 그것을 읽고, 3을 레지스터에 쓰고, 다시 읽어서 같은 결과를 얻는지를 보자.)VHDL 파일을 테스트하는 방법
VHDL을 처음 사용하기 때문에 콘솔이 있는지 또는 테스트 프로그램이 어떻게 구조화되어 있는지 또는 레지스터 파일을 인스턴스화하는 방법 또는 컴파일 할 때 (내가 ' 지금까지 quartus를 사용 해왔음). 당신이 VHDL 설계를 처음 사용하는 경우에는 웹에서 튜토리얼을 시작하거나 "The Designer's Guide to VHDL" 같은 책을 잡는 것이 가장 좋은 선택이 될 수도, 모든
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;
입니까? –