memory - VHDL - 如何优雅地初始化 std_logic_vector 数组?

标签 memory vhdl

我正在尝试连接到经典的 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";
...

但是我收到一个关于合成的错误:

Error (10515): VHDL type mismatch error at display_ber.vhd(74): ram_type type does not match string literal



有没有办法以类似的方式优雅地初始化 ram 块?

也许我应该改用字符串类型?

最佳答案

就在这里。请注意,您对 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");

关于memory - VHDL - 如何优雅地初始化 std_logic_vector 数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37499567/

相关文章:

c - C 中的激活记录是在堆栈还是堆上创建的?

vhdl - 如何实例化一个采用通用包的组件?

hardware - 为什么上升沿优先于下降沿

vhdl 将不受约束的 std_logic_vector - lsb 分配给 msb 或将 msb 分配给 lsb

vhdl - SystemVerilog 相当于 VHDL 记录端口

ios - UIWebView的loadHTMLString函数占用太多内存

c++ - 在 Linux 中监控程序的内存使用情况

c++ - 是否有免费软件实用程序可以监视 C++ 应用程序的内存泄漏?

java - java中的数组实际上是顺序内存数据结构吗?或物理顺序?

vhdl - 如何在VHDL中声明二维数组及其元素