インテルのみ表示可能 — GUID: esc1445881961208
Ixiasoft
インテルのみ表示可能 — GUID: esc1445881961208
Ixiasoft
2.3. Hyper-Pipelining(パイプライン・レジスターの追加)
RTLにレジスターを追加することは、デザインのレイテンシーを追加するために先に計画しておくとはるかに簡単です。最も基本的なレベルでレイテンシーを追加することを計画することは、デザイン内のクロックドメインの入力と出力でパラメータ化可能なパイプラインを使用することを意味します。 Verilog HDL、VHDL、およびSystemVerilogで事前に書かれたパラメーター化可能なパイプライン・モジュールの付録:パイプラインの例を参照してください 。
レイテンシーの変更は、パイプライン・ステージを追加する場合より複雑です。後で到着するデータで適切に動作するように、コントロール・ロジックやデザイン・ソフトウェアやシステム・ソフトウェアの他の部分を修正する必要があります。既存のRTLでこのような変更を加えることはは困難ですが、デザインの新しい部分ではより簡単になる可能性があります。ブロックのレイテンシーをコントロール・ロジックにハード・コーディングせずに、いくつかのレイテンシーをパラメーターとして実装します。いくつかのタイプのシステムでは、データが有効なときの上位レベルの固定概念に信頼の代わりに、さまざまな計算をトリガーするために、処理パイプラインのパイプライン・ステージに「valid data」フラグを追加することができます。
追加レイテンシーには、テストベンチの変更が必要な場合もあります。テストベンチを作成するときは、レイテンシーを考慮しないデザインを作成するのと同じテクニックを使用します。所定のクロックサイクル数で結果が得られることに信頼しないでください。そして、「valid data」または「valid result」フラグをチェックしてください。
レイテンシーを考慮しないデザインは、システムのあらゆる部分に適切ではありません。データが準備完了またはイネーブルになるためのクロックサイクル数を指定するインターフェイス・プロトコルは、これらの要件に準拠する必要があり、遅延の変更に対応できない可能性があります。
RTLを変更し、所定の数のパイプライン・ステージを各クロックドメインの境界に配置すると、Retimeステージはクロックドメイン内のレジスターを最適な位置に自動的に配置してパフォーマンスを最大化します。 Hyper-RetimingとFast-Forwardコンパイルの組み合わせは、従来のパイプライニングと比較してプロセスを自動化するのに役立ちます。