Memory VHDL-如何优雅地初始化std_逻辑_向量数组?

Memory VHDL-如何优雅地初始化std_逻辑_向量数组?,memory,vhdl,Memory,Vhdl,我正在尝试接口到一个经典的HD44780液晶显示器。 我已经实现了本地ram,我将希望显示在显示器上的数据写入其中 我以这种方式定义了ram: type ram_type is array (0 to (16*2)-1) of std_logic_vector(7 downto 0); signal lcd_mem : ram_type; lcd_mem(0 to 6) <= x"45_72_72_6F_72_73_3A"; ... 我尝试过以这种方式初始化ram: type ram_

我正在尝试接口到一个经典的HD44780液晶显示器。 我已经实现了本地ram,我将希望显示在显示器上的数据写入其中

我以这种方式定义了ram:

type ram_type is array (0 to (16*2)-1) of std_logic_vector(7 downto 0);
signal lcd_mem : ram_type;
lcd_mem(0 to 6) <= x"45_72_72_6F_72_73_3A";
...
我尝试过以这种方式初始化ram:

type ram_type is array (0 to (16*2)-1) of std_logic_vector(7 downto 0);
signal lcd_mem : ram_type;
lcd_mem(0 to 6) <= x"45_72_72_6F_72_73_3A";
...

lcd\u mem(0到6)是的。请注意,
ram\u type
的定义是
std\u逻辑\u向量的数组。而
x“45_72_72_6F_72_73_3A”
是一个十六进制字符串文本。这些类型不同,因此您会出错

所以,你必须把这个值放到一个向量数组中。例如:

lcd_mem(0 to 6) <= (0 => x"45", 1 => x"72", 2 => x"72", 3 => x"6F", 4 => x"72", 5 => x"73", 6 => x"3A");
lcd_mem(0到6)x“45”,1=>x“72”,2=>x“72”,3=>x“6F”,4=>x“72”,5=>x“73”,6=>x“3A”);