Vector 在vhdl中将数据(i)分配到std_逻辑_向量(0到0)中

Vector 在vhdl中将数据(i)分配到std_逻辑_向量(0到0)中,vector,vhdl,type-conversion,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 &

我有以下问题:

我的代码有这个常量值

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));

dest_vector用户回复1155120 2017年7月16日19:47


使用
dest_vector为原始表达式使用
dest_vector在具有签名[std_ulogic,natural return unsigned]的包numeric_std中找不到函数
to_unsigned
。基类型为std_ulogic的值不能隐式转换为类型natural(to_unsigned[natural,natural return unsigned])。请参阅4.10一致性规则。问题是:为什么要使用
来_unsigned
?多亏了信息和参考资料@user1155120。
(0到0)
工作正常,也为目的地建立了索引。我正在使用
来_unsigned
,因为正常赋值不起作用,编译器消息暗示索引的值应该是整数,一件事导致另一件事。。。主要的问题是分配一个一位的值,但是以一个大小为1的向量的形式。对于有知识的VHDL爱好者,请使用
dest_向量