У меня есть пакет VHDL, который определяет функцию (упреждающее объявление) и константу. Значение константы вычисляется той функцией, тело которой находится в теле пакета.
На данный момент ModelSim/QuestaSim — единственный инструмент, которому не нравится этот код. Ему нужно 2 пакета, чтобы тело было проанализировано до объявления константы.
package test is
function mytest(param : boolean ) return boolean;
constant value : boolean := mytest(TRUE);
end package;
package body test is
function mytest(param : boolean ) return boolean is
begin
return not param;
end function;
end package body;
Разве это не разрешено в VHDL и других инструментах, использующих упрощенные правила синтаксического анализа, или это проблема ModelSim?