我有以下问题:
我的代码有这个常数值
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]索引名称不是自然的
我尝试了几件事,但没有运气。也许我错过了什么......这里有什么建议吗?
答案 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过载解析的上下文(“&”)。