如何指定std_logic_vector的通用数组?

时间:2019-07-31 07:43:55

标签: arrays vhdl

我的模块有两个泛型:A和B
我想生成一个输入,该输入是带有以下参数的std_logic_vectors数组:
数组元素的数量A
元素宽度B的数量

我想在一个包装中创建一个二维数组,同时在两个维度上都具有通用宽度。

是正确的吗?

TYPE t_pos1_in_vec IS ARRAY (NATURAL RANGE <>) OF STD_LOGIC_VECTOR(NATURAL RANGE <>);

1 个答案:

答案 0 :(得分:2)

在您的包裹中,您必须写:

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

请注意,(natural range <>)之后没有std_logic_vector

然后在您的实体中

entity my_entity is 
generic
(
    A : natural := 12;  -- number of elements
    B : natural := 32   -- element width
);
port (
    multidimensional_array : in t_pos1_in_vec(A-1 downto 0)(B-1 downto 0)
);
end entity my_entity;