[an error occurred while processing this directive]
|
Ни XST 4.2, ни Synplify 7.3 не распознали BRAM.
Делают память или на логике или на регистрах.
Хотя запись предельно простая.
Если Вам не трудно, напишете свое описание.
Здесь описан один порт (для простоты, второй - аналогичен);
entity BUFRAM is
generic(data_range : integer := 8;
mem_range : integer := 9);
port(
CLK, RST, WE, EN : in STD_LOGIC;
ADDR : in STD_LOGIC_VECTOR(mem_range -1 downto 0);
D_IN : in STD_LOGIC_VECTOR(data_range - 1 downto 0);
D_OUT : out STD_LOGIC_VECTOR(data_range - 1 downto 0)
);
end BUFRAM;
architecture BUFRAM of BUFRAM is
type ram_type is array (2**mem_range - 1 downto 0)of std_logic_vector (data_range - 1 downto 0);
constant zero : std_logic_vector (data_range - 1 downto 0) := (others => '0');
signal RAM : ram_type := (others => zero);
begin
process(clk,rst,en)
begin
-- if en = '1' then
if (clk'event and clk = '1') then
if rst = '1' then
d_out <= (others => '0');
else
d_out <= RAM(conv_integer(addr));
if we = '1' then
RAM(conv_integer(addr)) <= d_in;
end if;
end if;
end if;
-- end if;
end process;
end BUFRAM;
E-mail: info@telesys.ru