2.4.2.1. 高速クロック・ドメイン
2.4.2.2. ループの再構築
2.4.2.3. コントロール信号のバックプレッシャー
2.4.2.4. FIFOステータス信号によるフロー・コントロール
2.4.2.5. スキッドバッファーを使用したフロー制御
2.4.2.6. リードモディファイライトメモリー
2.4.2.7. カウンターとアキュムレーター
2.4.2.8. ステートマシン
2.4.2.9. メモリー
2.4.2.10. DSPブロック
2.4.2.11. 一般ロジック
2.4.2.12. モジュラスと除算
2.4.2.13. リセット
2.4.2.14. ハードウェアの再利用
2.4.2.15. アルゴリズム要件
2.4.2.16. FIFO
2.4.2.17. 三進加算器
8.2.1.1. 非同期リセット入力。
同期クリアにより、リタイミングの量を制限することができます。リタイミングの問題を引き起こす同期クリアには2つの問題があります。
- ショートパスです。通常、ソースレジスターからデスティネーション・レジスターへの直接のロジックはありません。ショートパスは、通常、問題にはなりません。ポジティブなスラックをロングパスにリタイムアウトできるためです。これにより、デザイン全体がより高速に実行されます。しかし、通常、ショートパスは、リタイミングを必要とする長いデータパスに接続します。ロングパスに沿って多くのレジスターをリタイミングすることにより、レジスターはプッシュダウンされるか、またはこのショートパスにプルアップされます。この問題は通常のロジックでは重要ではありませんが、同期消去では一般的にファンアウトが大きいために悪化します。
- 同期クリアには大きなファンアウトがあります。アグレッシブなリタイミングでレジスターを同期クリア・パスの上または下にプッシュする必要がある場合、パスはもはや多くのレジスターを受け入れることができなくなるまで乱雑になることがあります。この状況により、パス長不均衡が発生したり、Compilerは期クリアパスからそれ以上のレジスターを引き出すことができません。
積極的なリタイミングは、ALMレジスターを介して第2のレジスターをリタイムする必要がある場合に発生します。
図 136. 積極的なリタイミング
インテル® Hyperflex™ アーキテクチャーFPGAは、SCLRパスに専用のHyper-Registerを備えており、ALMレジスターをバイパスモードに設定できます。この機能により、このレジスターをプッシュおよびプルできます。レジスターを前方にプッシュする場合、SCLRパスでレジスターをプルダウンし、2つをマージする必要があります。レジスターをプッシュバックする場合、SCLRパスに重複するレジスターをプッシュする必要があります。これらのオプションの両方を使用できます。ただし、複数のレジスターが同期クリアルーティングを上下にプッシュおよびプルすると、ボトルネックが発生します。
リセットを使用する位置については実用的です。コントロール・ロジックは主に同期リセットが必要です。同期リセットを必要としないロジックは、タイミングに役立ちます。同期リセットを扱うための次のガイドラインを参照してください。
- 高速で実行する必要がある新しいコードでの同期リセットは避けてください。この制限は通常、システムのリセット中にフラッシュアウトするデータパスロジック、またはリセットからの復帰時にシステムが無視する値を持つロジックに適用されます。
- コントロール・ロジックは、しばしば同期リセットを必要とするため、その状況で回避することはできません。
- 高速で実行される既存のロジックの場合、可能な限りリセットを削除します。リセット時のロジックの動作がわからない場合は、同期リセットをリテールしてください。タイミングの問題が発生した場合にのみ、同期クリアを削除してください。
- 同期クリアをパイプライン化します。これは、レジスターをプッシュバックする必要がある場合に役立ちませんが、レジスターをデータパスに引き込む必要がある場合に役立ちます。
- 異なる階層に対して重複する同期クリアロジックです。これにより、ローカルロジックでリタイミングすることができるように、同期クリアのファンアウトが制限されます。ここでも、ファンアウトを大きくして既存の同期クリアを決定した後で、デザインをリタイムする方法を制限した後でのみ、これを行うことができます。デザイン機能を変更しないため、バックエンドで行うことは困難ではありません。
- 異なるクロックドメインと反転クロックのための重複した同期クリアです。これは、境界条件または複数期間要件の問題によるリタイミング制限を克服することができます。