ローカル クロックは、専用グローバル クロック リソースではなく通常のファブリック リソースを使用して配線されるクロック ネットです。ほとんどの場合、Vivado 合成および Vivado ロジック最適化により、アーキテクチャで必要な位置またはクロック ロードが 30 を超えるクロック ネットにクロック バッファーが挿入されます。ローカル クロックは、次のような場合に使用されます。
- グローバル クロックがファブリック ロジックにインプリメントされたカウンターにより分周される
- クロック ゲーティング変換でクロック パスからすべての LUT を削除できない
通常は、ローカル クロックの使用は避けてください。ローカル クロックを使用すると、インプリメンテーションで次のような問題が発生する可能性があります。
- クロック スキューが予測不可能になり、タイミング クロージャを達成するのが困難になる
- 配線で特別な配慮が必要なファンアウトが小から中のネットが増加し、配線性の問題が発生する可能性がある ヒント: ローカル クロックによりタイミング QoR の問題が発生する場合は、Pblock を使用してクロック ドライバーとロードをフロアプランしてみてください。
report_clock_utilization
を使用してローカル クロックの位置を特定し、クロック配置を確認して、その数を削減するか影響を低減する方法を決定します。
Versal デバイスには BUFG_FABRIC セルが含まれており、通常のファブリック リソースからのネットを専用グローバル クロッキング リソースに配線するのに使用できます。BUFG_FABRIC サイトは、デバイス全体の NoC 列にあり、グローバル クロッキング リソースのリセットやクロックイネーブルなどのファンアウトの大きいネットを配線するために使用されます。
注意:
BUFG_FABRIC セルは、クロック ネットがグローバル ネット リソースにアクセスするためのものではありません。グローバル クロック ネットワークを使用する必要のあるローカル クロックがあり、グローバル クロック リソースに直接アクセスできない場合、BUFG_FABRIC を使用してローカル クロックをグローバル クロック ネットワークに配線できます。その結果のクロックは、グローバル クロッキング リソースに直接アクセスするクロックと比較すると、タイミング特性が最適なものになりません。