2D无约束Nx1阵列(2D Unconstrained Nx1 Array)
我正在尝试创建一个灵活的常量数组。 我想使用2D阵列,有时可能是2x1,2x2,3x2阵列等。例如:
type int_2d_array is array (integer range<>, integer range<>) of integer; constant M : positive := 2; constant nMax : positive := 1; constant n : int_2d_array(M - 1 downto 0, nMax - 1 downto 0) := ( (1) , (2) ); -- wrong error: type int_2d_array does not match with the integer literal如果我这样做,它不会抱怨:
type int_2d_array is array (integer range<>, integer range<>) of integer; constant M : positive := 2; constant nMax : positive := 2; constant n : int_2d_array(M - 1 downto 0, nMax - 1 downto 0) := ( ( 0,1 ) , ( 2,2 )); -- accepted第一个例子是否可以使用2D阵列?
I'm trying to create a flexible array of constants. I want to use a 2D array which may sometimes be for example a 2x1, 2x2, 3x2 array etc. For example:
type int_2d_array is array (integer range<>, integer range<>) of integer; constant M : positive := 2; constant nMax : positive := 1; constant n : int_2d_array(M - 1 downto 0, nMax - 1 downto 0) := ( (1) , (2) ); -- wrong error: type int_2d_array does not match with the integer literalIf I do this, it doesn't complain:
type int_2d_array is array (integer range<>, integer range<>) of integer; constant M : positive := 2; constant nMax : positive := 2; constant n : int_2d_array(M - 1 downto 0, nMax - 1 downto 0) := ( ( 0,1 ) , ( 2,2 )); -- acceptedIs the first example even possible using a 2D array?
最满意答案
我设法以下面丑陋的方式编译第一个例子:
type int_2d_array is array (integer range<>, integer range<>) of integer; constant M : positive := 2; constant nMax : positive := 1; constant n : int_2d_array(M - 1 downto 0, nMax - 1 downto 0) := ( (others => 1) , (others => 2) );确实是奇怪的行为。
I managed to compile the first example in the following ugly way:
type int_2d_array is array (integer range<>, integer range<>) of integer; constant M : positive := 2; constant nMax : positive := 1; constant n : int_2d_array(M - 1 downto 0, nMax - 1 downto 0) := ( (others => 1) , (others => 2) );Strange behavior, indeed.
更多推荐
发布评论