Подтвердить что ты не робот

Как игнорировать выходные порты с картами портов

Часто в 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". Я мог бы, конечно, добавить фиктивный сигнал и сохранить порт на этот сигнал, однако это кажется излишне сложным и может добавить дополнительные компоненты во время синтеза?

4b9b3361

Ответ 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), но он также сводит код только к тому, что необходимо.