コードを最適化してリセットを削除する場合、リセット宣言で条件をコメントアウトするだけでは適切な構造は作成されず、問題が発生します。たとえば、次の図に示すように、3 段のパイプラインでそれぞれに非同期リセットが使用されているとします。リセット条件のコードをコメントアウトしてパイプラインの 2 段でリセット条件を削除しようとすると、非同期リセットがイネーブルになります (rst
の反転ロジック)。
図 1. リセット条件を含むコードをコメントアウト
リセットを削除するには、次の図に示すように、リセット条件用の順序ロジック プロシージャとリセット以外の条件用の順序ロジック プロシージャを作成するのが最適な方法です。
図 2. リセットを含むレジスタとリセットを含まないレジスタのプロシージャ文
ヒント: リセットを使用する場合は、プロシージャ文のすべてのレジスタがリセットであることを確認します。