vhdl преобразует подтип в тип для активного hdl
-
21-12-2019 - |
Вопрос
У меня есть pakcgae, в котором я объявляю множество подтипов и типов.В Active HDL, похоже, возникает проблема всякий раз, когда я пытаюсь создать порт из подтипа, поэтому мне интересно, есть ли способ преобразовать их в типы вместо этого.Следующим будет подтип, который я хотел бы преобразовать:
подтип word_t - это std_logic_vector(от 15 до 0);-- Слово (определение)
Возможно ли это без простого создания типа, который является записью или массивом?спасибо
Решение
Не думаю, что возможно напрямую создать type
основанный на другом subtype
, но без subtype
это можно сделать следующим образом:
type word_t is array (15 downto 0) of std_logic;
Однако создание нового type
для порта использование порта будет громоздким из-за жесткой природы VHDL.
Альтернативным обходным путем может быть создание subtype
с диапазоном для word_t
, как:
subtype word_range_t is natural range 15 downto 0;
а затем используйте это subtype
с std_logic_vector
в port
заявление, подобное:
... std_logic_vector(word_range_t);
В этом случае порт по-прежнему совместим с std_logic_vector
, и тогда размер слова по-прежнему легко поддерживается.