具有动态长度的阵列用于模拟

时间:2015-08-03 12:29:04

标签: vhdl

在VHDL中,有没有办法让动态大小的数组用于模拟?

我想将它用作列表,即,测试平台反复将值附加到末尾,然后遍历列表。数组的长度不是静态知道的。

1 个答案:

答案 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);