我有以下代码:
entity test is
end entity;
architecture rtl of test is
type T_TUPLE is record
A : NATURAL;
B : NATURAL;
end record;
type T_VECTOR is array (NATURAL range <>) of T_TUPLE;
constant LIST : T_VECTOR := ((8, 32), (8, 20), (8, 36));
begin
genTests : for i in LIST'range generate
constant LOCAL_A : NATURAL := LIST(i).A;
constant LOCAL_B : NATURAL := LIST(i).B;
begin
-- my tests
end generate;
end architecture;
我的生成语句出现以下错误消息:
...范围必须是静态离散范围
当我将常量更改为约束变量时,它可以正常工作......
constant LIST : T_VECTOR(0 to 2) := ((8, 32), (8, 20), (8, 36));
为什么2.示例更加静态?
修改
链接到GitHub上的GHDL Issue discussion。
答案 0 :(得分:1)
好奇,如果您执行以下操作,它是否仍然会出错:
{{1}}
我玩过类似的游戏来初始化信号以匹配常数的大小。