スキュー調整の動作

Versal アダプティブ SoC クロッキング リソース アーキテクチャ マニュアル (AM003)

Document ID
AM003
Release Date
2023-05-16
Revision
v1.5 日本語
図 1. クロック出力が 1 つの場合の MMCM のスキュー調整ロジック使用例

  1. 参考資料 に示した Versal アダプティブ SoC のデータシートの最大値と最小値の条件を満たした任意の周波数のクロックを、MMCM の入力の 1 つ (3) とします。この 1 つのクロックを両方のクロック入力に接続します。CLKINSEL 入力が High の場合、CLKIN1 が使用されます。
  2. CLKFB*_DESKEW (CLKOUT からのフィードバックに使用される入力クロック) と同じ周波数のクロックを、CLKIN*_DESKEW の入力 (2) とします。両方のクロックが同じ PLL の CLKOUT から出力された同じ周波数のクロックである場合、両方の CLKOUT は同じ VCO から得られるため、PPM の差はありません。
  3. CLKFBOUT (4) と CLKFBIN (7) 間に必要なフィードバック ネットワークを配線します。
  4. VCO の動作周波数が最大となるように M および D 値を計算します。フィードバック カウンターが MMCM 入力クロック (CLKIN1) と同じ周波数で動作し、かつ式 Fin/D = Ffb = Fvco/M が成り立つように M 値を求めます。VCO の 32 の出力位相 (8 つの位相を PI で 32 の位相に変換したもの) の 1 つを出力カウンター (この例では CLKOUT4 を生成するカウンター) の入力クロックとして選択します。このカウンターで、VCO クロックを CLKOUT4 で必要なクロック周波数まで分周します。
  5. MMCM の CLKOUT4 は、FPGA 内の専用クロック配線に分配されるように、クロック バッファー (BUFG またはその派生バッファー) に入力する必要があります。この例では、クロック出力 (6) もクロック バッファーを経由して CLKFB_DESKEW 入力 (8) へフィードバックされます。「2.」に示した CLKINx_DESKEW ピンに入力されるクロック周波数が、計算で求めた CLKOUT4 で生成される周波数と同じである必要があります。これら 2 つのクロックのデューティ サイクルは、仕様の範囲内であれば同一でなくてもかまいません。
  6. MMCM の通常の動作モードでは、出力クロックのスキューを調整して入力クロックと位相を揃えるため、位相周波数検出器 (PFD) ブロックは入力クロック (3) とフィードバック クロック (7) の周波数を一致させます。
  7. この例では、通常の位相アライメントよりも優先的にスキュー調整ロジックを使用しています。この場合、CLKOUT4 (6) の位相は、CLKIN_DESKEW (2) へのクロックの位相に揃えられます。
    1. スキュー調整回路のこの PD は、通常の PFD 回路と動作が類似しています。ただし、PD は VCO 周波数を変更せず、位相インターポレーター (PI) と共に使用されて 32 のクロックのうち 1 つを選択し、これを出力カウンターのクロック入力として使用します。
    2. CLKIN_DESKEW クロックと CLKFB_DESKEW クロックは同じ周波数で、立ち上がりエッジの位相が互いに比較されます。これらの位相が同じでない場合、MMCM のセットアップ中に信号が選択した PI を動作させます。PI ブロックは VCO 出力の 32 のクロック位相 (11.25° 刻み) の 1 つを選択し、接続された出力カウンターへ入力します。このようにしてクロック出力をいずれかの方向へ移動することにより、MMCM 出力クロックと外部クロックの位相を揃えます。ここでもう一度位相を比較し、スキュー調整 PD が選択した PI を必要に応じて制御します。これらはすべて動的に実行されるため、出力クロック (この例では CLKOUT4) と外部クロックの位相が常に揃います。
    3. CLKOUT4 は MMCM のほかの出力クロックとは位相が揃わず、MMCM のクロック入力とも位相が揃いませんが、CLKIN_DESKEW 入力へのクロックとは位相が揃います。
  8. MMCM および XPLL では、CLKINx_DESKEW は、CLKFBx_DESKEW に接続される CLKOUTx と同じクロック周波数で PPM (parts-per-million) の差がないことが必要です。この条件を確実に満たすには、CLKINx 入力と CLKINx_DESKEW 入力は、水晶振動子などの同じソースを基準とする必要があります。DPLL では、ZHOLD モードかどうかにかかわらず、CLKINx_DESKEW には CLKIN 入力を接続する必要があります。CLKOUT からのフィードバックは接続できません。
  9. 通常、CLKFB_DESKEW には任意の CLKOUT から BUFG またはその派生バッファーを経由したフィードバックを入力します。DPLL では、すべての CLKOUT に ZHOLD モードが適用されます。ZHOLD 属性の説明は、DPLL の属性 を参照してください。
  10. CLKOUTx_DIVIDE の設定が同じであれば、複数の出力の位相制御設定を 01 にできます。位相制御設定 11 の場合も同様です。
    1. CLKOUTx_PHASE で定義された位相関係が、複数の出力間で維持されます。
    2. CLKOUTx_DIVIDE 設定の異なる出力が複数存在することは、Vivado ツール 2022.1 のデザイン ルール チェックで禁止されています。この場合、CLKOUTx_DIVIDE 設定が異なる出力のうち、CLKFBx_DESKEW 入力を駆動していない方の CLKOUTx_PHASE_CTRL を 00 または 10 に設定する必要があります。
  11. PD を使用したスキュー調整を有効にするには、対応する CLKFBx_DESKEW を駆動する CLKOUTx の CLKOUTx_PHASE_CTRL を 01 (CLKFB1_DESKEW に接続されている場合) または 11 (CLKFB2_DESKEW に接続されている場合) に設定する必要があります。次の図に、CLKOUTx と CLKFBx_DESKEW の接続、および CLKOUTx_PHASE_CTRL の設定を示します。
注記: このセクション冒頭の図は、アナログ補正とデジタル スキュー調整の接続を示しています。アナログ補正とデジタル スキュー調整の両方を同時に接続することはできません。
図 2. PD 接続を使用した MMCM のスキュー調整と CLKOUTn_PHASE_CTRL の設定