我正在尝试与经典的HD44780 LCD接口。 我已经实现了本地ram,我将其写入我想要显示在显示屏上的数据。
我已经用这种方式定义了ram:
type ram_type is array (0 to (16*2)-1) of std_logic_vector(7 downto 0);
signal lcd_mem : ram_type;
我尝试用这种方式初始化ram:
lcd_mem(0 to 6) <= x"45_72_72_6F_72_73_3A";
...
但是我收到了关于综合的错误:
错误(10515):display_ber.vhd(74)处的VHDL类型不匹配错误:ram_type类型与字符串文字不匹配
有没有办法以类似的方式优化初始化ram块?
也许我应该使用字符串类型?
答案 0 :(得分:4)
是的。请注意,您对ram_type
的定义是std_logic_vector
的数组。 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");