在vhdl中将数据(i)分配到std_logic_vector(0 downto 0)

时间:2017-07-16 17:02:58

标签: vector vhdl type-conversion

我有以下问题:

我的代码有这个常数值

constant source_vector : std_logic_vector(7 downto 0) := "1011000";

该值需要逐位输入std_logic_vector类型的信号。问题是目标向量具有以常量定义的大小。对于测试,我使用的是1号。

constant k : integer := 1;
dest_vector : in std_logic_vector(k-1 downto 0);

当我尝试分配第一位时:

dest_vector <= std_logic_vector(to_unsigned(source_vector(0), k));

我收到了这个错误: 错误:[VRFC 10-925]索引名称不是自然的

我尝试了几件事,但没有运气。也许我错过了什么......这里有什么建议吗?

1 个答案:

答案 0 :(得分:1)

用户user1155120的回答'17 Jul 16'在19:47

使用dest_vector <= source_vector(0 downto 0);使用切片名称,或者使用dest_vector(0) <= source_vector(0);使用索引名称作为目标位置和右侧。还有dest_vector <= "" & source_vector(0);,它从上下文派生连接结果的类型,同时将空数组连接到元素类型的值。参见IEEE Std 1076-2008 8.4索引名称,8.5切片名称,9.2.5添加运算符(“&”)和12.5过载解析的上下文(“&”)。