Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays VHDL中具有泛型的二维信号数组-无约束数组数组_Arrays_Vhdl_Hdl - Fatal编程技术网

Arrays VHDL中具有泛型的二维信号数组-无约束数组数组

Arrays VHDL中具有泛型的二维信号数组-无约束数组数组,arrays,vhdl,hdl,Arrays,Vhdl,Hdl,在vhdl中,是否可以把数组变成无约束数组?我正在使用XCELIUM 18.03-s001 这就是我在pkg_test.vhd中声明信号类型的方式: library ieee; use ieee.std_logic_1164.all; use ieee.numeric_std.all; package pkg_test is type t_data_bus_array is array(natural range <>) of std_logic_vector; end

在vhdl中,是否可以把数组变成无约束数组?我正在使用XCELIUM 18.03-s001

这就是我在pkg_test.vhd中声明信号类型的方式:

library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;

package pkg_test is

   type t_data_bus_array is array(natural range <>) of std_logic_vector;

end pkg_test;
很明显,我犯了一些错误

如果我使用这个声明

type t_data_bus_array is array(natural range <>) of std_logic_vector(DATA_WIDTH-1 downto 0);

没有错误。

如果未使用VHDL2008,则不支持std_逻辑_向量的无约束数组

您可以定义std_逻辑类型的向量数组,如下所示:

type SlVectorArray is array (natural range<>, natural range<>) of std_logic;
型SlVectorArray是std_逻辑的数组(自然范围,自然范围);

在VHDL-2008中可以使用无约束数组。这么说,你的错误可能是由于其他原因。需要做一个调查,唯一的错误是我如何使用无约束数组,或者我的工具不是编译VHDL-2008。您使用的方法是正确的。因此,该工具可能不支持VHDL-2008(或者您需要启用它)。问题标题不正确。类型t_data_bus_数组不是二维数组类型。IEEE Std 1076-2008 5.3.2.1“数组对象以索引数(数组的维数)为特征”;…“其中,您的类型有一个索引,并且有一个元素类型,该元素类型也是一维数组类型和。这样做的好处是,可以对一维数组类型的对象进行切片。(8.1). <代码>po_数据不是有效的标识符(6.5.2接口对象声明,15.4.1)。没有符合-2019(12月23日发布)的VHDL实现。维度的定义没有改变。我在想这个,但是如果我写下下一个块
next\u块
type t_data_bus_array is array(natural range <>) of std_logic_vector(DATA_WIDTH-1 downto 0);
pi_data         : in  t_data_bus_array(NUMBER_OF_INPUTS-1 downto 0);
type SlVectorArray is array (natural range<>, natural range<>) of std_logic;