Vhdl 用于模拟的动态长度阵列

Vhdl 用于模拟的动态长度阵列,vhdl,Vhdl,在VHDL中,有没有一种方法可以拥有一个用于模拟的动态大小的数组 我想将它用作一个列表,也就是说,testbench重复地在末尾追加值,然后在列表上迭代。数组的长度不是静态已知的。VUnit()的数组实用程序提供了您需要的功能。它提供了一个受保护的类型array\u t,该类型具有一个执行动态大小调整的方法append。下面是这个实用工具()的测试台上的一些代码,举例说明了append方法 variable arr : array_t; ... arr.init; ... arr.append(

在VHDL中,有没有一种方法可以拥有一个用于模拟的动态大小的数组


我想将它用作一个列表,也就是说,testbench重复地在末尾追加值,然后在列表上迭代。数组的长度不是静态已知的。

VUnit()的数组实用程序提供了您需要的功能。它提供了一个受保护的类型
array\u t
,该类型具有一个执行动态大小调整的方法
append
。下面是这个实用工具()的测试台上的一些代码,举例说明了
append
方法

variable arr : array_t;
...
arr.init;
...
arr.append(11);
check_equal(arr.length, 1);
check_equal(arr.get(0), 11);

arr.append(7);
check_equal(arr.length, 2);
check_equal(arr.get(1), 7);

对最简单的方法是在运行时确定长度,通过访问类型(指针)引用数组,并使用
new
分配它。如果它需要不断增长,你需要重新分配,复制旧的atd-free。但是请注意,你不能用这种方式创建信号-只有变量。