Мне нужна помощь с тестовым стендом для Dualport RAM с 2 часами, где адрес A (запись) синхронизируется с CLK A, а адрес B (чтение) с CLK B. Вот код в ModelSim:
library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
use ieee.std_logic_unsigned.all;
entity RAM is
port(
d_in : in
std_logic_vector(7 downto
0);
ADDRA : in
std_logic_vector(2 downto
0);
ADDRB : in
std_logic_vector(2 downto
0);
WEA : in std_logic ;
REA : in std_logic ;
CLKA : in std_logic ;
CLKB : in std_logic ;
d_out : out std_logic_vector(7 downto 0)
);
end RAM ;
Architecture behav of RAM is
type Memory is ARRAY(7 downto 0) of std_logic_vector(7 downto 0);
signal mem : Memory;
BEGIN
process(CLKA)
begin
if(rising_edge(CLKA)) then
if(WEA = '1') then
mem(to_integer(signed(ADDRA))) <= d_in;
end if;
end if;
end process;
process(CLKB)
begin
if(rising_edge(CLKB)) then
if ( REA = '1') then
d_out <= mem(to_integer(signed(ADDRB))) ;
end if;
end if;
end process;
end behav ;
Я пытался создать файл тестовой среды, используя разные стратегии, но он никогда не работал должным образом и продолжает выдавать ошибки.