arrays - 创建一个不受约束的非对称数组数组

标签 arrays vhdl

我正在尝试创建动态大小的嵌套生成语句,以便非固件人员可以更改常量的值。

我想创建类似 C++ 向量的东西,它在编译时将具有定义的大小并包含整数常量。例如,我想要一个看起来像这样的 2D 向量:

a = < <1,2> , <1,3> , <3,4,5> >

所以我可以这样访问它:

a[0,0] = 5
a[1,0] = 3
a[2,1] = 1

到目前为止我已经试过了:

type int_array is array (integer range<>) of integer;
type int_array_array is array (integer range<>, integer range<>) of integer;

constant nOuter : positive := 2;
constant nInner : int_array := (2 , 2 , 3);
constant vals : int_array_array(nOuter - 1 downto 0 , ???) := ( (1,2) , (1,3) , (3,4,5) );

我不完全确定这将如何编写,或者这是否可能?

然后我的想法是可以像这样创建动态大小的 block :

nOuters: for i in 0 to nOuters -1 generate:
    nInners: for j in 0 to nInner(i) generate:
        nVals: for inner k in 0 to vals(i,j) -1 generate:

最佳答案

我糟糕的解决方案,我添加了另一个常量:

constant nMaxInner : positive := 3;

constant vals : int_array_array(nOuter - 1 downto 0 , nMaxInner - 1 downto 0) := ( (0,1,2) , (0,1,3) , (3,4,5) );

但这并不优雅。

关于arrays - 创建一个不受约束的非对称数组数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35292784/

相关文章:

C++ 重组数组以填补空白?

php - 我可以将数组绑定(bind)到 PDO 查询中的 IN() 条件吗?

python - 如何使用Python定义二维数组划分的节号?

javascript - 如何获取文本框组的值并将它们放入 ( key : Value ) array with jquery?

VHDL 计数器结果给出 X

vhdl - 了解这个 T 触发器示例吗?

concatenation - 与变量串联相关的 VHDL 错误

syntax - VHDL If语句语法错误

c - 从不兼容的指针类型(指向函数的指针)初始化

typedef - 如何做 VHDL "typedef"