マルチクロック バッファー

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

Document ID
AM003
Release Date
2023-05-16
Revision
v1.5 日本語

従来型アーキテクチャの高速デザインの場合、同じ MMCM で 2 のべき乗の比率を使用して生成された複数クロックを使用するのが一般的でした。このような場合、別々の MMCM 出力のクロックを生成し、BUFGCE セルを使用したり、MMCM で最速のクロックを使用して、BUFGCE_DIV セルで分周クロックを生成しました。これらのクロック バッファーはクロック マネージャーの近くに配置されるため、ソース クロックとデスティネーション クロック間のパスにおける不確実性により、タイミングの問題が発生することがよくありました。クロック間で同期パスを使用するデザインでは、クロック乗せ換えのスキューを最小限に抑え、セットアップおよびホールドの修正への影響を抑えるために配線遅延を一致させるインプリメンテーション オプション (CLOCK_DELAY_GROUP) が必要です。大規模なデバイスでは、クロック ドメイン間のタイミング クロージャが難しいため、ロジックや FIFO を追加し、クロック パスを非同期パスとして扱うことがよくあります。

Versal デバイスでは、マルチクロック バッファー (MBUFG) を使用して最大 4 つのクロックを XPLL、MMCM、DPLL ではなくリーフ クロック ピンの近くで生成できます。これにより、同期クロック乗せ換え (CDC) パスのクロック タイミングの不確実性が軽減され、デザインのタイミング問題を効率的に解消できます。基本的に、リーフ ドライバー レベルで分周を実行する BUFDIV_LEAF セルへのパスが 1 つあります。各 MBUFG タイプのバッファーは、対応する BUFG サイトを使用します。たとえば、MBUFGCE は BUFGCE サイトに配置されます。

各タイプの MBUFG クロック バッファーは、対応する BUFG と同じ属性を持ちますが、PERFORMANCE または POWER に設定可能な MODE 属性が追加されています。クロック タイプは、次に説明するようにモード属性 (PERFORMANCE または POWER) に基づいて異なります。

MBUFG タイプのクロック バッファーで MODE 属性を PERFORMANCE に設定した場合、クロック バッファーの出力は次のようになります。

  • 出力 O1 = 入力 I
  • 出力 O2 = 入力 I/2
  • 出力 O3 = 入力 I/4
  • 出力 O4 = 入力 I/8

    MBUFG タイプのクロック バッファーで MODE 属性を POWER に設定した場合、クロック バッファーの出力は次のようになります。

  • 出力 O1 = 入力 I * 2
  • 出力 O2 = 入力 I
  • 出力 O3 = 入力 I/2
  • 出力 O4 = 入力 I/4
注記: XPIO のクロック領域の駆動に使用できるのは、出力 O1 のみです。O2/O3/O4 は使用できません。

次の図に示すように、マルチクロック バッファー MBUFG には 5 つのタイプ (MBUFGCTRL、MBUFGCE、MBUFGCE_DIV、MBUFG_PS、MBUFG_GT) があります。マルチクロック バッファーの入力ピンはそれぞれ前述の BUFGCTRL、BUFGCE、BUFGCE_DIV、BUFG_PS、および BUFG_GT クロック バッファーと同じですが、4 つの異なる出力を持ちます。

マルチクロック バッファーには、同等の BUFG を使用する論理クロック バッファーと、負荷の近くでクロックを分周する物理 BUFDIV_LEAF クロック バッファーがあります。これにより、クロック バッファーからリーフ クロックの挿入遅延が排除され、同期 CDC (クロック ドメイン クロッシング) パスのクロック スキューが減少します。n 分周のシンプルなクロック バッファー (n = 2、4、または 8) を複数使用するデザインはよくありますが、MBUFG を使用すると 1 つのバッファーで複数のバッファーをインスタンシエートできます。MBUFG プリミティブの CLRB_LEAF 入力を使用して、BUFDIV_LEAF 分周器を非同期にリセットします。MBUFG における CLRB_LEAF のリセット要件の詳細は、 『Versal アダプティブ SoC ハードウェア、IP、およびプラットフォーム開発設計手法ガイド』 (UG1387) を参照してください。

図 1. MBUFG のクロック バッファー タイプ

MBUFGCTRL
このプリミティブは、クロック バッファーが 2 つのクロック入力と複数の出力を備えたグリッチのない同期/非同期のマルチプレクサーとして設計されています。クロック マルチプレクサーの機能が不要な場合は、MBUFGCE コンポーネントを使用してください。
MBUFGCE
このプリミティブは、1 つのクロック入力と複数の出力を備え、イネーブル/ディスエーブルが可能なクロック バッファーとして設計されています。
MBUFG_GT
このプリミティブは、ギガビット トランシーバー デバイスによって駆動されるクロック バッファーとして設計されており、不確実なクロック タイミングを最小に抑えてデザインの各部にクロックを分配する目的で使用できます。MODE 属性の設定に加え、出力の動作は DIV[2:0] ピンの値によっても変化します。分周値は (設定値 + 1) です。たとえば 3'b000 に設定すると分周値は 1、3'b111 に設定すると分周値は 8 となります。
MBUFG_PS
このプリミティブは、マルチ出力の高ファンアウト バッファーとして設計されており、PS クロック信号を低スキューで分配できます。
MBUFGCE_DIV
このプリミティブは、イネーブル、クリア、および分周機能を備えたマルチ出力クロック バッファーとして設計されています。MODE 属性の設定に加え、MBUFGCE_DIV は BUFGCE_DIV と同じ BUFGCE_DIVIDE 属性を使用します。この属性を 1 以外の値に設定すると、出力クロックがその値によってさらに分周されます。