インテル® Hyperflex™ アーキテクチャー高性能デザイン・ハンドブック

ID 683353
日付 10/04/2021
Public
ドキュメント目次

2.3. Hyper-Pipelining(​​パイプライン・レジスターの追加) 

Hyper-Pipeliningは、ALM間の相互接続にパイプライン・ステージを追加することにより、長いルーティング遅延を排除するデザインプロセスです。この技術により、より高速なクロック周波数でデザインを実行することができます。最初にFast-Forwardコンパイルを実行して、パイプライン・ステージを追加することで期待できる最高の位置と予想されるパフォーマンスを判断します。このプロセスは最小限の労力しか必要とせず、従来の高性能FPGAと比較して、 インテル® Hyperflex™ アーキテクチャーFPGAの1.3〜1.6倍の性能向上をもたらします。

RTLにレジスターを追加することは、デザインのレイテンシーを追加するために先に計画しておくとはるかに簡単です。最も基本的なレベルでレイテンシーを追加することを計画することは、デザイン内のクロックドメインの入力と出力でパラメータ化可能なパイプラインを使用することを意味します。 Verilog HDL、VHDL、およびSystemVerilogで事前に書かれたパラメーター化可能なパイプライン・モジュールの付録:パイプラインの例を参照してください 。

レイテンシーの変更は、パイプライン・ステージを追加する場合より複雑です。後で到着するデータで適切に動作するように、コントロール・ロジックやデザイン・ソフトウェアやシステム・ソフトウェアの他の部分を修正する必要があります。既存のRTLでこのような変更を加えることはは困難ですが、デザインの新しい部分ではより簡単になる可能性があります。ブロックのレイテンシーをコントロール・ロジックにハード・コーディングせずに、いくつかのレイテンシーをパラメーターとして実装します。いくつかのタイプのシステムでは、データが有効なときの上位レベルの固定概念に信頼の代わりに、さまざまな計算をトリガーするために、処理パイプラインのパイプライン・ステージに「valid data」フラグを追加することができます。

追加レイテンシーには、テストベンチの変更が必要な場合もあります。テストベンチを作成するときは、レイテンシーを考慮しないデザインを作成するのと同じテクニックを使用します。所定のクロックサイクル数で結果が得られることに信頼しないでください。そして、「valid data」または「valid result」フラグをチェックしてください。

レイテンシーを考慮しないデザインは、システムのあらゆる部分に適切ではありません。データが準備完了またはイネーブルになるためのクロックサイクル数を指定するインターフェイス・プロトコルは、これらの要件に準拠する必要があり、遅延の変更に対応できない可能性があります。

RTLを変更し、所定の数のパイプライン・ステージを各クロックドメインの境界に配置すると、Retimeステージはクロックドメイン内のレジスターを最適な位置に自動的に配置してパフォーマンスを最大化します。 Hyper-RetimingとFast-Forwardコンパイルの組み合わせは、従来のパイプライニングと比較してプロセスを自動化するのに役立ちます。