制御セットの削減 - 2023.2 日本語

FPGA および SoC 用 UltraFast 設計手法ガイド (UG949)

Document ID
UG949
Release Date
2023-11-29
Version
2023.2 日本語
注記: この最適化手法は、report_qor_suggestions Tcl コマンドにより自動的に適用されます。

通常、リセットやクロック イネーブルなどの制御信号についてはそれほど考慮されません。リセットが必要かどうかを判断せずに、HDL コードを if reset 文で開始する例がよく見られます。リセットおよびクロック イネーブルはすべてのレジスタでサポートされますが、これらの使用が最終的なインプリメンテーションの最大クロック周波数、使用率、および消費電力に大きく影響します。

考慮すべき第一の要素は、制御セットです。制御セットは、1 つのシーケンシャル セルで使用されるクロック、イネーブル、およびセット/リセットのグループです。たとえば、同じクロックに接続されている 2 つのセルであっても、1 つのセルのみがリセットまたはクロック イネーブルに接続されている場合は、2 つのセルの制御セットは異なるものになります。定数または未使用のイネーブルおよびセット/リセット レジスタも、制御セットを形成します。

考慮すべき 2 つ目の要素は、ターゲット アーキテクチャです。一緒にパックできる制御セットの数は、アーキテクチャによって異なります。

  • 7 シリーズ デバイスのスライス (CLB の半分) は 8 つのレジスタで構成され、これらすべてのレジスタで 1 つのクロック、1 つのセット/リセット、および 1 つのクロック イネーブルが共有されます。8 つのレジスタのグループごとに使用できる制御セットは 1 つのみです。
  • UltraScale デバイスの CLB の半分は 4 つのレジスタのグループ 2 つで構成され、これらすべてのレジスタで 1 つのクロック、1 つのセット/リセットが共有されます。4 つのレジスタの各グループには 1 つのクロック イネーブルがあり、セット/リセットは無視できます。定数セット/リセット信号は配線されず、無視できます。定数イネーブル信号はダイナミック イネーブル信号と同様に扱われ、配線される必要があります。最適な状況では、8 つのレジスタのグループごとに 2 つの制御セットを使用できます。

制御セットにより CLB へのパックが制限される場合、一部のレジスタ (入力 LUT を含む) が移動されます。レジスタが最適でない場所に移動されることもあります。距離が長くなると、ロジックの分散 (長いネット遅延) および高いインターコネクト リソース使用率のため、使用率だけでなく配置 QoR にも悪影響が出ます。これは主に、クロック イネーブルが 1 つのレジスタに供給されるなど、ファンアウトが小さい制御信号が多数あるデザインで考慮する必要があります。

UltraScale デバイスでは CLB で使用可能な制御セットの数は多くなりますが、一般的なデザインでは制御セットの使用量は 7 シリーズ デザインと同様です。そのため、AMD の推奨事項は両方のアーキテクチャで同じです。