VHDL установка постоянных данных в оперативной памяти - PullRequest
2 голосов
/ 10 марта 2012

В последнее время я использую VHDL для записи 16-но ОЗУ. Мой код:

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
use IEEE.Numeric_Std.all;

entity RAM is
port(
PC_in: in std_logic_vector (5 downto 0);
EN_WR_in: in std_logic_vector (1 downto 0);
RAM_in : in std_logic_vector(15 downto 0);
RAM_out : out std_logic_vector(15 downto 0);
test : out integer
);


end RAM;

architecture Behavioral of RAM is
type ram_t is array (63 downto 0) of std_logic_vector(15 downto 0);
signal ram : ram_t;
begin
PROCESS (EN_WR_in)
BEGIN
        if (EN_WR_in(1)='1') then

        IF (EN_WR_in(0) = '1') THEN
            ram(conv_integer(unsigned(PC_in))) <= RAM_in;
             else
        RAM_out <= ram(conv_integer(unsigned(PC_in)));
        end if;

        else

        RAM_out <="ZZZZZZZZZZZZZZZZ";

        end if;

END PROCESS;
     ram(20) <= "0000100010010000";
end Behavioral;

Проблема, с которой я сталкиваюсь, заключается в том, что мне нужно установить некоторые постоянные данные в оперативной памяти, как

ram(20) <= "0000100010010000";

Но постоянные данные не существовали во время моделирования. Есть ли способ ее решить?

Спасибо.

1 Ответ

5 голосов
/ 10 марта 2012

Вы можете инициализировать оперативную память при объявлении:

signal ram : ram_t := ( "0000100010010000", x"1234", ... );

или, возможно,

signal ram : ram_t := ( 20 => "0000100010010000", others => (others=>'0') );
...