在VHDL中,有没有办法让动态大小的数组用于模拟?
我想将它用作列表,即,测试平台反复将值附加到末尾,然后遍历列表。数组的长度不是静态知道的。
答案 0 :(得分:3)
VUnit(https://github.com/VUnit/vunit/tree/master/vunit/vhdl/array)的数组实用程序提供了您正在寻找的功能。它提供了一个受保护的类型array_t
,它有一个方法append
来执行动态调整大小。以下是该实用程序(https://github.com/VUnit/vunit/blob/master/vunit/vhdl/array/test/tb_array.vhd)的测试平台中的一些代码,用于举例说明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);