我想要一个矢量,我希望它有一个值2.我尝试了很多东西,但我总是得到一个错误。现在我有了这个:
variable var : bit_vector := B"00000000000000000000000000000100";
我收到这些错误:
无法将整数文字与类型数组类型“bit_vector”
匹配
和
使用无约束数组类型声明变量“var”
我该如何解决这个问题?感谢。
答案 0 :(得分:6)
您必须给var
一个范围(约束它),例如:
variable var : bit_vector(31 downto 0) ...
然后你可以为它分配一个常数,例如:
library ieee;
use ieee.numeric_bit_unsigned.all;
...
variable var : bit_vector(31 downto 0) := to_bit_vector(2, 32);
或初始值为位字符串,如:
variable var : bit_vector(31 downto 0) := "00000000000000000000000000000010";
正如您所看到的,to_bit_vector
的使用不容易出错,因为示例代码中的常量不是2但实际上是4; - )
答案 1 :(得分:4)
更客观,通用的分配如下:
var:=(1 =>'1',其他=>'0');
答案 2 :(得分:3)
添加@ MortenZilmer的答案,请注意:
constant const: bit_vector := b"00000000000000000000000000000100"; -- works OK
variable var: bit_vector(31 downto 0) := 32d"2";