17

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

4

2 に答える 2

22

コンポーネントをインスタンス化するとき、気にしない出力ポートを開いたままにしておくことができます。以下で気にする唯一のシグナルは「オーバーフロー」です。

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

EIGHT_BITADDER_INST : eight_bitadder
  port map (
    a => a,
    b => b, 
    f => f, 
    c => open, 
    o => overflow,
    z => open
    );
于 2013-10-16T19:49:10.607 に答える
3

出力を次のように関連付けないことも選択できます。

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

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

于 2013-10-18T08:13:58.960 に答える