2

コンポーネントを VHDL の親階層の 2 つの出力ポートに接続しようとすると、問題が発生しました。物理的な接続は「ポート マップ」ステートメントを介してのみ行うことができるため、ローカル信号を複数の出力ポートに接続する方法はありません。次に例を示します。

ここに画像の説明を入力

上記の回路の説明は簡潔にする必要があります。このような:

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;

ただし、VHDL では禁止されているため、出力ポート "o" を OUT1 と OUT2 の両方に二重に割り当てることはできません。

4

1 に答える 1

9

内部信号を作成し、その信号を使用してこのように 2 つの出力ポートを駆動できない理由はありますか?

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;
于 2012-08-27T14:50:58.267 に答える