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」かどうかを確認するだけです。もちろん、ダミー信号を追加してポートをこの信号に保存することもできますが、これは不必要に複雑に思われ、合成中にコンポーネントを追加する可能性がありますか?
コンポーネントをインスタンス化するときに、気にしない出力ポートを開いたままにすることができます。以下で注意する唯一の信号は「オーバーフロー」です。
編集:合成ツールは、使用されていない出力を最適化することに注意してください。
EIGHT_BITADDER_INST : eight_bitadder
port map (
a => a,
b => b,
f => f,
c => open,
o => overflow,
z => open
);
また、出力を次のように結び付けないようにすることもできます。
EIGHT_BITADDER_INST : eight_bitadder
port map (
a => a,
b => b,
f => f,
o => overflow
);
ポートマップに出力cおよびzを含めなかったことに注意してください。 (出力cとzが存在することが明確でない場合があるため)これの明快さについて議論する人もいますが、コードを必要なものだけに減らします。