インテル® Quartus® Primeプロ・エディション ユーザーガイド: デザインのコンパイル

ID 683236
日付 12/16/2019
Public

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

ドキュメント目次

1.5. Hyper-Awareデザインフロー

インテル® Quartus® Primeプロ・エディション Compilerは、インテルHyperflexアーキテクチャーを インテル® Stratix® 10および インテル® Agilex™ デバイスで最大限に活用するのに役立ちます。Hyper-Awareデザインフローを使用して、デザインサイクルを短縮し、パフォーマンスを最適化します。

Hyper-Awareデザインフローは、自動レジスター・リタイミング (Hyper-Retiming) とターゲットとするタイミング・クロージャーの推奨事項の実装 (Fast Forwardコンパイル) との組み合わせによって、Hyper-Registerを最大限使用し、 インテル® Stratix® 10および インテル® Agilex™ デバイスでの最良のパフォーマンスを実現します。

Hyper-Awareデザインフロー

Hyper-Retiming

インテルHyperflexアーキテクチャーの主な革新は、複数のHyper-Registerをすべての配線セグメントおよびブロック入力へ追加したことです。Hyper-Registersの使用を最大化すると、デザインのパフォーマンスが向上します。Hyper-Registerの普及により、レジスター間の時間遅延のバランスが改善され、クリティカル・パス遅延が緩和されます。 Hyper-Retimingでは、レジスターをALMから移動し、有利な場合はそれをHyper-Registerにリタイミングします。Hyper-Retimingはフィッティング中に自動的に実行されます。作業量は最小限で済み、パフォーマンスが大幅に向上します。

図 22. Hyper-Registerのアーキテクチャー

Fast Forwardコンパイル

Hyper-Retiming以上の最適化が必要な場合は、Fast Forwardコンパイルを実行して、タイミング・クロージャーの推奨事項を生成します。これによって主要なパフォーマンス・ボトルネックを解消します。Fast Forwardコンパイルでは、RTLの変更による影響が最も大きくなる場所を正確に示し、それぞれの変更によって期待できるパフォーマンス上の利点をレポートします。Fitterでは、RAMおよびDSPブロック全体でのレジスターの自動リタイミングはしません。ただし、Fast Forward解析では、この最適化による潜在的なパフォーマンスの利点が示されます。

Fast-Forwardコンパイルでは、パイプライン・ステージ (Hyper-Pipelining) を追加する最適な場所や、それぞれの場合に期待されるパフォーマンス上の利点を特定します。RTLを変更して、パイプライン・ステージを各クロックドメインの境界に配置すると、Hyper-Retimerでは、最適な位置にあるクロックドメイン内のレジスターを自動配置して、パフォーマンスの最大化を図ります。RTLの推奨事項を実装した場合も、同様の結果が達成されます。変更を実装した後、Hyper-Retimerを再実行して、その結果がパフォーマンスおよびタイミング要件を満たすようにします。Fast Forwardは、フルコンパイルの一部として自動的に実行されることはありません。Compilation DashboardでFast Forward compilationをイネーブルまたは実行してください。

表 7.  HyperFlex最適化ステップ
最適化ステップ 手法 説明
ステップ1 Hyper-Retiming リタイマーによって既存のレジスターをHyper-Registerに移動します。
ステップ2 Fast Forwardコンパイル Compilerによってデザイン固有のタイミング・クロージャーの推奨事項を生成し、パフォーマンスの向上を予測します。
ステップ3 Hyper-Pipelining Fast Forwardコンパイルを使用して、新しいレジスターとパイプラインステージを追加するRTL内の場所を特定します。
ステップ4 Hyper-Optimization Hyper-RetimingおよびHyper-Pipelining以外のデザイン (ループの再構築、制御ロジックの制限の削除、長いパスに沿った遅延の削減など) の最適化。

Hyper-Awareのデザインフローには、次のハイレベルの手順が含まれます。この章で詳しく説明します。

  1. RetimeステージをFitter中に実行して、ALMレジスターをHyper-Registerに自動的にリタイムする。
  2. Retiming ResultsをCompilation Reportで確認する。
  3. パフォーマンスの最適化がさらに必要な場合は、Fast Forwardコンパイルを実行する。
  4. Fast Forwardタイミング・クロージャーの推奨事項を確認する。
  5. 適切なFast Forwardの推奨事項をRTLに実装する。
  6. Retimeステージでデザインを再コンパイルする。
図 23. Hyper-Awareデザインフロー