为什么GHDL中的无约束常数向量不被认为是静态的?

时间:2016-01-02 13:35:43

标签: vhdl simulation ghdl

我有以下代码:

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

1 个答案:

答案 0 :(得分:1)

好奇,如果您执行以下操作,它是否仍然会出错:

{{1}}

我玩过类似的游戏来初始化信号以匹配常数的大小。