web-dev-qa-db-ja.com

ポートマップで出力ポートを無視する方法

VHDLではよく、特定のコンポーネントに複数の出力ポートがあることに気づきます。つまり、私たちの例の1つで、次のコンポーネントが与えられました。

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」かどうかを確認するだけです。もちろん、ダミー信号を追加してポートをこの信号に保存することもできますが、これは不必要に複雑に思われ、合成中にコンポーネントを追加する可能性がありますか?

14
paul23

コンポーネントをインスタンス化するときに、気にしない出力ポートを開いたままにすることができます。以下で注意する唯一の信号は「オーバーフロー」です。

編集:合成ツールは、使用されていない出力を最適化することに注意してください。

EIGHT_BITADDER_INST : eight_bitadder
  port map (
    a => a,
    b => b, 
    f => f, 
    c => open, 
    o => overflow,
    z => open
    );
17
Russell

また、出力を次のように結び付けないようにすることもできます。

EIGHT_BITADDER_INST : eight_bitadder
    port map (
    a => a,
    b => b, 
    f => f, 
    o => overflow
);

ポートマップに出力cおよびzを含めなかったことに注意してください。 (出力cとzが存在することが明確でない場合があるため)これの明快さについて議論する人もいますが、コードを必要なものだけに減らします。

2
codered657