向量的整数范围

时间:2017-04-08 15:25:40

标签: vhdl

我在代码中将向量输入转换为整数时遇到了问题。我是VHDL的新手,但下面的代码使用整数RANGE注释掉代码,但是当我尝试将向量值转换为整数时出现错误。这是我的代码和错误的副本:

screenshot

UPDATE1: 我已尝试过您的修复程序并处理其中一个错误,但新的错误消息和代码如下所示:

screenshot

1 个答案:

答案 0 :(得分:1)

根据您在跟进行type mem is array (...) of std_logic_vector(...)中的声明,您的记忆会在作业std_logic_vector中等待unsigned类型而不是RAMArray(unsigned(addr)) <= unsigned(din)

仅仅使用unsigned的类型转换是不够的,但您必须在参数中添加类型转换函数to_integer。换句话说

RAMArray(to_integer(unsigned(addr))) <= din

第二个错误出现在以下行qout <= RAMArray(addr)中。在这里,您还应该使用类型转换为unsigned以及类型转换函数to_integer。 location参数将是整数类型。例如:

qout <= RAMArray(to_integer(unsigned(addr)))

尝试使用我的建议来修复您的代码,我认为它会起作用。

相关问题