インテル® Quartus® Prime プロ・エディションのユーザーガイド: デザインの推奨事項

ID 683082
日付 8/03/2023
Public
ドキュメント目次

2.2.2.1. 組み合わせループの回避

組み合わせループは、デジタルデザインにおいて安定性と信頼性を低下させる最も一般的な原因の1つです。組み合わせループは通常、同期デザインの原則に違反しており、レジスターを含まない直接フィードバック・ループが確立されます。

組み合わせループは可能な限り避けるようにします。同期デザインでは、フィードバック・ループにはレジスターが含まれます。例えば、組み合わせループは、HDLコードで算術式の左側が右側にも見られる場合に発生します。また、組み合わせループは、組み合わせロジックを介してレジスターの出力を同じレジスターの非同期ピンにフィードバックしている場合にも発生します。

図 8. 非同期コントロール・ピンを介しての組み合わせループ
ヒント: リカバリーおよびリムーバル解析を使用して、非同期ポート ( インテル® Quartus® Prime開発ソフトウェアの clearreset など) でタイミング解析を実行します。

組み合わせループは、次に示されている理由から、本質的にリスクの高いデザイン構造です。

  • 組み合わせループの動作は通常、ループに関係するロジックでの相対的な伝播遅延に依存します。このドキュメントでも説明しているとおり、伝播遅延は変化する可能性があります。つまり、ループの動作は予測不可能です。
  • 多くのデザインツールでは、組み合わせループによって無限の計算ループが発生する可能性があります。ほとんどのツールでは、組み合わせループを開いてデザインを処理します。デザインフローで使用されるさまざまなツールは、特定のループを異なる方法で開き、元のデザインの意図とは矛盾する方法で処理する場合があります。