Возможно ли в любой версии VHDL, может быть, в 2008 году, использовать тип до его объявления?
Например. У меня есть это объявление массива в архитектуре объекта:
type my_array is array (integer range <>) of my_type;
И все еще в том же разделе архитектуры, но позже в файле у меня есть это:
type my_type is record
my_field: signed(31 downto 0);
end record;
Теперь это дает следующую ошибку в Vivado:
[Synth 8-1031] my_type не объявлен
Решение, конечно же, состоит в том, чтобы переместить объявление записи над объявлением массива. Однако это становится очень сложным и запутанным с увеличением количества типов (поскольку вам в основном нужно топологически сортировать ваши типы с учетом их зависимостей).
Что-то подобное поддерживается во всех основных языках программирования, поэтому я подумал, что, возможно, это будет существовать и в VHDL. Я также смутно припоминаю, что читал об этом добавлении в VHDL 2008, но не могу найти никаких ресурсов по этому поводу, и мой быстрый тест с VHDL 2008 дал отрицательный результат.
Итак, возможно ли использовать тип в VHDL до его объявления, учитывая, что тип объявлен в той же архитектуре, в том же файле, но несколькими строками ниже?