Как записать на два выходных порта изнутри архитектуры в VHDL?

Я столкнулся с проблемой при попытке подключить компонент к двум выходным портам родительской иерархии в VHDL. Поскольку физическое соединение может быть выполнено только с помощью оператора "port port", нет возможности подключить локальный сигнал к более чем одному выходному порту. Вот пример:

Описание вышеуказанной схемы должно быть чем-то. как это:

entity HIER is
port (
    IN1 : in bit;
    OUT1, OUT2 : out bit);
end hier;

architecture HIER_IMPL of HIER is 
   component BUF is 
      port (a : in bit; o : out bit);
   end component;
begin
   BUF1 : BUF port map (a => IN1, o => OUT1, o => OUT2);
end HIER_IMPL;

Однако двойное назначение выходного порта "o" для OUT1 и OUT2 не будет работать, поскольку это запрещено в VHDL.

1 ответ

Есть ли причина, по которой вы не можете создать внутренний сигнал и использовать этот сигнал для управления двумя выходными портами, как это?

entity HIER is
port (
    IN1 : in bit;
    OUT1, OUT2 : out bit);
end hier;

architecture HIER_IMPL of HIER is 
   signal temp : bit;
   component BUF is 
      port (a : in bit; o : out bit);
   end component;
begin
   BUF1 : BUF port map (a => IN1, o => temp);
   OUT1 <= temp;
   OUT2 <= temp;

end HIER_IMPL;

Если это невозможно, как насчет этого?

entity HIER is
port (
    IN1 : in bit;
    OUT1, OUT2 : out bit);
end hier;

architecture HIER_IMPL of HIER is 
   component BUF is 
      port (a : in bit; o : out bit);
   end component;
begin
   BUF1 : BUF port map (a => IN1, o => OUT1);
   BUF2 : BUF port map (a => IN1, o => OUT2);
end HIER_IMPL;
Другие вопросы по тегам