我正在尝试编写使用变量数组进行某些计算的代码。我在为此声明数组时遇到了一些麻烦。目前我有
Generic(Y: integer:= ) ;---enter array width
Z: integer:= );---enter array height
| ----some code left out
|
type test is array(0 to Z-1) of std_logic_vector(Y-1
downto 0 );
问题在于,当Y为1时,程序会收到错误,说明在分配过程中它无法理解'0'和'1'。
signal T: test:=('0','1','0','1'); -----for Y=1 and z=4
我假设这是因为我声明一个只有一位长的STD_logic_vector,因此应该是std_logic?我无法想出一个优雅的方法来消除这个问题,我所有的谷歌搜索“未声明的大小VHDL阵列”只给我一些我现在正在做的事情的例子。我是VHDL的新手,所以请任何帮助将不胜感激。
另外,我不确定如何为数组赋值。我也试过
signal T: test:=(('0'),('1'),('0'),('1'));
但仍然出错。一些消息来源说我应该使用“”分配,但编译器说它不正确,因为它是一个字符串。我很困惑所以请帮忙!