【发布时间】:2020-03-27 11:52:33
【问题描述】:
我正在尝试为测试平台实现一个通用的 std_logic_vector 数据记录器。该组件将为记录的每个信号生成一个输出信号。
每个信号都应该是 t_probe 类型
type t_probe is record:
min_delay : time;
max_delay : time;
num_exp_words : integer;
trig_lvl : std_logic;
data: std_logic_vector;
done : std_logic;
end record;
想要一个探针数组记录类型:
type t_probe_array is array(0 to c_n_probes - 1) of t_probe;
现在,我有声明一个 st_probe 信号类型的问题,该类型的“数据”字段受到限制:
signal coarse_probe : t_probe
启动模拟时显然会崩溃。谁能指出如何定义和初始化这样一个数组?
谢谢!
【问题讨论】:
-
它不会崩溃。它不会编译。在 VHDL 中,所有对象在声明时都必须受到约束。并且数组的所有元素必须具有相同的子类型。必须是信号吗?如果您可以使用变量,这里有一个解决方法...
-
不确定我是否理解您的问题。是记录中的数组大小不受限制吗?如果是这样,VHDL 2008 确实支持...
-
@mbrandalero 他希望它在一个数组中,每个元素都有不同的大小。这是不可能的。
-
您能否将
data设置得适当大,以便在您的系统中用于任何用途? -
谢谢scarry_jeff。这可能是最简单的。
标签: vhdl test-bench