Как игнорировать выходные порты с картами портов
Часто в VHDL я замечаю, что определенный компонент имеет несколько выходных портов. Т.е. в одном из наших примеров нам был дан следующий компонент:
COMPONENT eight_bitadder
PORT ( a, b: in std_logic_vector(7 downto 0);
f: in std_logic;
C: out std_logic_vector(7 downto 0);
o, z: out std_logic);
END COMPONENT;
Где z определяет, равен ли результат 0, и o триггеры при переполнении.
Теперь в моем случае я хочу использовать этот сумматор, однако фактический результат не имеет значения, скорее я хочу только проверить, является ли результат "0". Я мог бы, конечно, добавить фиктивный сигнал и сохранить порт на этот сигнал, однако это кажется излишне сложным и может добавить дополнительные компоненты во время синтеза?
Ответы
Ответ 1
Когда вы создаете экземпляр компонента, вы можете оставить выходные порты, которые вам не нравятся. Единственный сигнал, о котором вы заботитесь ниже, - "переполнение".
EDIT: Обратите внимание, что инструменты синтеза оптимизируют любые выходные данные, которые не используются.
EIGHT_BITADDER_INST : eight_bitadder
port map (
a => a,
b => b,
f => f,
c => open,
o => overflow,
z => open
);
Ответ 2
Вы также можете не привязывать вывод к чему-то вроде этого:
EIGHT_BITADDER_INST : eight_bitadder
port map (
a => a,
b => b,
f => f,
o => overflow
);
Обратите внимание, что я просто не включал выходы c и z в карту порта. Некоторые могут обсуждать ясность этого (поскольку может быть неясно, существуют ли выходы c и z), но он также сводит код только к тому, что необходимо.