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

ID 683082
日付 4/13/2020
Public

このドキュメントの新しいバージョンが利用できます。お客様は次のことを行ってください。 こちらをクリック 最新バージョンに移行する。

ドキュメント目次

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

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

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

図 6. 非同期コントロール・ピンを介した組み合わせループ
ヒント: 回復と削除の分析を使用して、 インテル® Quartus® Primeソフトウェアのclearresetなどの非同期ポートでタイミング分析を実行します。

組み合わせループは、以下の理由から本質的に危険性の高いデザイン構造です。

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