Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vhdl 整数范围到向量_Vhdl - Fatal编程技术网

Vhdl 整数范围到向量

Vhdl 整数范围到向量,vhdl,Vhdl,我在代码中将向量输入转换为整数时遇到问题。我不熟悉VHDL,但下面的代码适用于整数范围注释掉的代码,但当我尝试将向量值转换为整数时出现错误。这是我的代码和错误的副本: 更新1: 我已经尝试了您的修复,它会处理其中一个错误,但新的错误消息和代码如下所示: 根据您在以下行中的声明type mem是std_logic_vector(…)的数组(…)您的内存等待std_logic_vectortype,而不是unsigned像您的作业中那样RAMArray(unsigned(addr))尝试了此修复,

我在代码中将向量输入转换为整数时遇到问题。我不熟悉VHDL,但下面的代码适用于整数范围注释掉的代码,但当我尝试将向量值转换为整数时出现错误。这是我的代码和错误的副本:

更新1: 我已经尝试了您的修复,它会处理其中一个错误,但新的错误消息和代码如下所示:


根据您在以下行中的声明
type mem是std_logic_vector(…)的数组(…)
您的内存等待
std_logic_vector
type,而不是
unsigned
像您的作业中那样
RAMArray(unsigned(addr))尝试了此修复,并消除了错误,不必要地转换为din。但现在它给了我一个错误。错误(10409):在dataRAM处发生VHDL类型转换错误。vhd(26):文本或符号“UNSIGNED”附近转换的对象类型必须与目标对象的整数类型匹配可能这是因为您对
ASIZE
DSIZE
使用了
positive
类型。尝试使用强制转换为整数,如下
RAMArray(to_integer(unsigned(addr)))to_integer修复程序似乎已经工作了。。。。。。我在这方面是新手,接下来的几个小时我会花在思考和阅读你的答案上。。。感谢您的帮助。如果您有一些问题,请随时提问。请编辑您的答案,将
添加到\u integer
类型转换函数调用中,而不是期望未来的读者在评论中进行对话。您可能还想强调类型转换和类型转换函数之间的区别,而不是将其称为“casting”,这不是VHDL中使用的术语。仍然有一个错误看起来像这样:error(10409):dataRAM_推断的VHDL类型转换错误。vhd(26):文本或符号“UNSIGNED”附近转换的对象类型必须与目标对象的整数类型匹配。请将代码和错误消息粘贴到问题中。链接有断开的习惯。@CedrickBaker您应该真正复制并粘贴代码和错误消息,而不是发布它们的屏幕截图。图像是不好的,因为a)任何想要调试代码的人都必须从屏幕截图中键入代码,这是一件可怕的事情(而且容易出错);b)图像使搜索引擎无法以有意义的方式为您的文章编制索引。范围
整数范围0到ASIZE-1
标准逻辑向量不同(ASIZE-1向下到0)
。它需要是0到2的整数范围**ASIZE-1
RAMArray(to_integer(unsigned(addr))) <= din
qout <= RAMArray(to_integer(unsigned(addr)))