カスケード クロック バッファー - 2023.2 日本語

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

Document ID
UG949
Release Date
2023-11-29
Version
2023.2 日本語

AMDでは、カスケード バッファーを使用して遅延を人工的に増加し、関連しないクロック ツリー分岐間のスキューを削減することは通常お勧めしません。BUFGCTRL 間の接続とは異なり、ほかのクロック バッファーの接続にはアーキテクチャ内に専用パスがありません。このため、クロック バッファーの相対配置は予測できず、すべての配置規則が制約されていないカスケード バッファーの配置よりも優先されます。

ただし、次を達成するためにはカスケード クロック バッファーを使用できます。

  • クロックを異なるクロック領域にある別のクロック バッファーに配線する。

    この方法は、異なるクロック領域にある MMCM で生成されたクロックに対してクロック マルチプレクサーを使用する場合に通常使用します。MMCM の 1 つは BUFGCTRL (BUFGMUX) を直接駆動できますが、もう一方の MMCM はクロック信号をそれ以外の領域に配線するために中間クロックを必要とします。次の図に例を示します。

    図 1. クロックを別のクロック領域に配線

  • 分岐間に同期パスがある場合は、クロック ツリー分岐間でクロック バッファーのレベル数のバランスを調整します。

    たとえば、グループ A (異なるクロック領域にある BUFGCTRL を介して駆動されるシーケンシャル セル) とグループ B (シーケンシャル セル) の両方を駆動する clk0 という MMCM クロックがあるとします。分岐間の遅延をより一致させるには、グループ B に BUFGCE を挿入し、BUFGCTRL と同じクロック領域に配置します。これにより、グループ A とグループ B 間の同期パスのスキューの量が制御されます。次の図に例を示します。

    注記: Vivado ロジック最適化コマンド opt_design では、タイミング クロックとクロック ネットワーク分岐のタイミング関係は認識されません。そのため、opt_design でできるだけ多くのカスケード接続されたクロック バッファーまたは余分なクロック バッファーが削除されます。この例では、opt_design プロパティが設定されていなければ、DONT_TOUCH="TRUE" により BUFGCE_inst_1 が削除されます。クロック ツリー分岐間に非同期パスしかない場合、受信クロック ドメインに適切な同期回路があれば、これらの分岐間でバランスを調整する必要はありません。
    図 2. クロック領域間の同期パスのクロック ツリーのバランス調整

  • クロック マルチプレクサーに示すようにクロック マルチプレクサーを構築する。

カスケード クロック バッファーを使用する場合は、AMDでは挿入遅延とスキューの変動を削減するため次を実行することをお勧めします。

  • カスケード バッファーを同じクロック領域または隣接するクロック領域に配置する。
  • クロック ツリー分岐のバランスが調整されている場合は、同じレベルのクロック バッファーすべてを同じクロック領域に割り当てる。
注記: 絶対に必要な場合は、AMDではカスケード BUFGCE の代わりに 2 つのカスケード BUFGCTRL を使用することをお勧めします。専用配線を使用すると、両方の BUFGCTRL が同じクロック領域内に配置される場合に、最小限の遅延で 2 つの隣接する BUFGCTRL をカスケードできます。