期望1维的2维数组

时间:2017-04-08 05:44:31

标签: arrays vhdl xilinx-ise digital-logic

我正在尝试在VHDL中创建一个std_logic_vectors数组。该数组用于生成语句以生成桶形移位器。数组的每个元素(数组,向量)应该是一个可单独寻址的位。这是我的一些代码。

信号声明:

type stage_t is array( 4 downto 0 ) of std_logic_vector ( 15 downto 0);
signal stages: stage_t;

在架构中:

test_stage: for st in 0 to 4 generate
        test_bit_assign: for st_bit in 0 to 15 generate 
            test_stagemux: entity work.mux2_1 port map (
                S => amt(st),
                M0 => stages(st,st_bit), M1 =>  stages(st,st_bit+log_w),
                O => stages(st+1,st_bit)
        );
end generate;

2:1 mux的实体:

entity mux2_1 is
   generic ( n : INTEGER := 8);
   port (
       S : in std_logic; -- select
       M0, M1   : in std_logic;
       O        : out std_logic
    );
end mux2_1;

我得到的错误:

Indexed name prefix type stage_t expects 1 dimensions

这种情况发生在我正在阅读或写入舞台阵列的任何地方。如何处理其中一个向量的位?

1 个答案:

答案 0 :(得分:2)

我通过关注@ user1155120的第二个解决方案解决了我的问题。 stage_t是一个向量数组,每个维度都喜欢自己解决。 stages(st)st处的整个向量编制索引。 stages(st)(st_bit)( stages(st) )(st_bit)相同。