VHDL中可变大小的数组

时间:2018-03-20 01:49:35

标签: vhdl hdl

我正在尝试编写使用变量数组进行某些计算的代码。我在为此声明数组时遇到了一些麻烦。目前我有

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

但仍然出错。一些消息来源说我应该使用“”分配,但编译器说它不正确,因为它是一个字符串。我很困惑所以请帮忙!

0 个答案:

没有答案