Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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 一维中的二维指令数组_Arrays_Vhdl_Xilinx Ise_Digital Logic - Fatal编程技术网

Arrays 一维中的二维指令数组

Arrays 一维中的二维指令数组,arrays,vhdl,xilinx-ise,digital-logic,Arrays,Vhdl,Xilinx Ise,Digital Logic,我试图用VHDL制作一个std_逻辑_向量数组。该数组在generate语句中用于生成桶移位器。数组的每个元素(数组、向量)都应该是一个单独的可寻址位。这是我的一些代码 信号声明: 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

我试图用VHDL制作一个std_逻辑_向量数组。该数组在generate语句中用于生成桶移位器。数组的每个元素(数组、向量)都应该是一个单独的可寻址位。这是我的一些代码

信号声明:

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

这发生在我读取或写入stages数组的任何地方。如何处理其中一个向量的位?

我通过遵循@user1155120的第二个解决方案解决了我的问题。
stage\t
是一个向量数组,每个维度都喜欢自己处理
stages(st)
st
索引整个向量<代码>阶段(st)(st_位)与
(阶段(st))(st_位)

您也可以将类型阶段声明为
类型阶段是标准逻辑的数组(4到0,15到0)并使其成为二维数组,在端口映射中保留您的关联。如果没有一个模型,你很难准确地预测你将遇到的下一个问题。阶段是一个一维类型(stage\t)。尝试沿着
M0=>stages(st)(st_位)的思路进行操作,
其中,在维度索引中,stages(st)是一个索引名,指定stage(t)的哪个元素,并且是使用st_位作为std_逻辑向量元素的索引名的前缀。您试图将阶段作为多维数组来处理,但事实并非如此。它的元素恰好是数组类型。@J.H.Bonarius是的,一些用户坚持回答评论中的问题:/