Spartan-6 クロックリソース Proprietary to PALTEK CORPORATION 1
AGENDA はじめに クロックネットワーク クロックマネージメントタイル (CMT) 使用例 2
AGENDA はじめに クロックネットワーク クロックマネージメントタイル (CMT) 使用例 3
高速なクロッキング 新型アプリケーションには複雑なクロック要件が必要 : 高速クロック信号 広い周波数帯域をサポート クロックスキューの調整 データ有効ウィンドウを最大限に維持するための低ジッタおよび厳密なデューティーサイクル 低消費電力 上記クロッキング要件への対応 ザイリンクス FPGA はこれらの要件を満たすさまざまなクロックリソースを提供 妥当なコストで完璧なバランスのリソース 4
クロックリソース 低スキューのクロックライン クロック信号をドライブするためのパスの組み合わせ クロックバッファ 様々なルーティングリソースにクロック信号を接続するためのバッファ 種類はデバイス毎に異なる クロックリージョン 専用リソースを使用したクロックリージョン内へのクロック供給 各リージョンの大きさはデバイス毎に異なる クロックマネージメントタイル (CMT) CMT 内には 2 つの DCM と 1 つの PLL が存在 周波数合成 クロックデスキュー ジッタフィルタリングを実現 ソフトウェア CoreGenerator(Clocking Wizard) を使用して簡単に生成可能 CMT Clock Wizard CMT Clock Buffers Automatic HDL code 5
AGENDA はじめに クロックネットワーク クロックマネージメントタイル (CMT) 使用例 6
Spartan-6 アーキテクチャ LUT6 CLB ブロックRAM DSPスライス高速クロッキングギガビットトランシーバ PCIe インターフェースメモリコントローラ 3.3V I/O LX45T デバイス 7
I/O タイル構成 I/O タイルは 2 つの IOB と ILOGIC OLOGIC IODELAY で構成される 8
IO クロックリージョン Spartan-6 の IO クロックネットワークリージョン 9
クロックリソース全体図 BUFPLL 2 4 4 BUFPLL 2 4 CMT 3 BUFG 8 4 4 CMT 3 BUFG 8 4 BUFPLL 2 4 4 BUFPLL 2 10
クロックリソースピン GCLK ピン 合計 32 本 16 ペアの差動または 32 個のシングルエンド 各辺に 8 本ずつ存在 ドライブ可能リソース BUFG 一般配線 4 クロック (2 ペア ) 4 クロック (2 ペア ) 4 クロック (2 ペア ) 4 クロック (2 ペア ) 4 クロック (2 ペア ) 4 クロック (2 ペア ) 4 クロック (2 ペア ) 4 クロック (2 ペア ) 11
クロックリソース全体図 バッファ配置イメージ IO クロックリージョン グローバルクロックネットワーク I/O クロックネットワーク 12
クロックバッファの種類 グローバルバッファ デバイス全体を駆動可能 BUFG グローバルクロックネットワークを駆動 (MAX:400MHz) リージョナルバッファ デバイス内の特定領域を駆動 I/Oクロックネットワークを駆動 (MAX:540MHz) IOタイル内専用のクロックネットワーク BUFPLL I/Oクロックネットワークを駆動 (MAX:1080MHz) IOタイル内専用のクロックネットワーク 13
BUFG BUFG(MUX) すべてのデバイスに 16 個 デバイス中央に存在 Bank0,1,5 で 8 個を共有 Bank2,3,4 で 8 個を共有 入力可能ソース : GCLK ピン PLL/DCM 出力 BUFG 出力 ドライブ可能リソース : グローバルクロックネットワーク 一般配線 次項参照 I1 I0 S BUFGMUX O 14
BUFG Top 側のバッファ ブロック RAM のリセット / セット信号として使用 スライスへの組み合わせ入力信号 クロックイネーブル BUFG(MUX) 入力 BUFGMUX_X2Y1 BUFGMUX_X2Y2 BUFGMUX_X2Y3 BUFGMUX_X2Y4 BUFGMUX_X3Y5 BUFGMUX_X3Y6 BUFGMUX_X3Y7 BUFGMUX_X3Y8 Bottom 側のバッファ 各スライスのリセット / セット信号として使用 BUFGMUX_X2Y9 BUFGMUX_X2Y10 BUFGMUX_X2Y11 BUFGMUX_X2Y12 BUFGMUX_X3Y13 BUFGMUX_X3Y14 BUFGMUX_X3Y15 BUFGMUX_X3Y16 15
4 辺の各中央に存在 各クロック領域ごとに 4 個 IO タイルを駆動できる 4 本の IO クロックネットワークを駆動 各 IO クロック領域内の IO クロックネットワークのみを駆動 入力可能リソース : GCLK ピン ( 同一エッジ ) IODELAY2 GTPCLKOUT ピン ドライブ可能リソース : IO クロックネットワーク IODDR2,IODELAY2,IOSERDES2 PLL/DCM BUFG クロック分周機能 (1 2 3 4 5 6 7 8) を装備 (BYPASS も可能 ) I N DIVCLK IOCLK SERDESSTROBE 16
ポートリスト 17
入力 18
BUFPLL BUFPLL デバイスの 1 辺に 2 個 IO タイルを駆動できる 2 本の IO クロック ネットワークを駆動 IO バンク全体 (IO クロック領域 2 個分 ) の IO クロックネットワークを駆動 入力可能リソース PLL 出力 BUFG 出力 ドライブ可能リソース IO クロックネットワーク IODELAY2 IOSERDES2,FB クロック分周機能 (1 2 3 4 5 6 7 8) を装備 GCLK PLLIN LOCKED BUFPLL LOCK IOCLK SERDESSTROBE 19
BUFPLL ポートリスト 20
I/O クロックネットワーク GCLK ピンから BUFPLL IOLOGIC IOLOGIC IOLOGIC IOLOGIC ハーフエッジ CMT から ハーフエッジ I/O 論理リソース専用の特別なクロックネットワーク ILOGIC/OLOGIC および ISERDES/OSERDES の高速クロック入力のみを駆動 専用クロックドライバ : GCLK 入力から駆動 BUFPLL : CMT から駆動 21
クロックリソース共有図 22
BUFGMUX 使用時の注意点 BUFGMUXにドライブするSwitch Boxが16 出力しか無く BUFGMUXの入力とシェアしている為に使用制限が発生 ( 例 ) Local Routing Global Routing Switch Box I0 I1 I0 I1 I0 I1 I0 I1 I0 I1 I0 I1 I0 I1 I0 I1 I0 I1 I0 I1 I0 I1 I0 I1 I0 I1 I0 I1 I0 I1 I0 I1 BUFGMUX_X2Y1 BUFGMUX_X2Y2 BUFGMUX_X2Y3 BUFGMUX_X2Y4 BUFGMUX_X3Y5 BUFGMUX_X3Y6 BUFGMUX_X3Y7 BUFGMUX_X3Y8 BUFGMUX_X2Y9 BUFGMUX_X2Y10 BUFGMUX_X2Y11 BUFGMUX_X2Y12 BUFGMUX_X3Y13 BUFGMUX_X3Y14 BUFGMUX_X3Y15 BUFGMUX_X3Y16 BUFGMUX_X2Y1 BUFGMUX_X2Y2 BUFGMUX_X2Y1 を使用した場合 BUFGMUX_X2Y2 は使用できません BUFG(1 入力 1 出力 ) は 16 個使用可能ですが BUFGMUX を使用する場合は BUFGMUX を 2 個分消費するのと同等です 23
AGENDA はじめに クロックネットワーク クロックマネージメントタイル (CMT) 使用例 24
CMT デバイスには最大で 6 個の CMT を搭載 1CMT は 2 つの DCM 1 つの PLL で構成 25
CMT 概要 DCM デジタルロックループ機能 (DLL) デジタル周波数合成機能 (DFS) 位相シフト機能 (PS) ステータス管理 PLL ジッタフィルタ クロックネットワークのスキュー調整 周波数合成 ステータス管理 Function 低周波数入力位相シフトスペクトラム拡散クロック生成クロックスキュー除去デューティーサイクルの調整分周 逓倍クロックジッタの除去高周波数入力 Use DCM DCM DCM DCM or PLL DCM or PLL DCM or PLL PLL PLL 26
CMT のプリミティブ DCM_SP クロックスキュー調整異なる 周波数合成ファンクションに 2 つの 位相シフトプリミティブ DCM_CLKGEN アドバンスクロック管理機能を提供 周波数合成のダイナミックプログラミング (M,D) より広い範囲の M 値および D 値 スペクトラム拡散クロック生成 フリーランニングオシレータ PLL_BASE クロックのデスキュー 周波数合成 位相シフト デューティーサイクル調整 Clocking Wizardにて簡単に生成可能 27
CMT の接続 DCM 入力可能リソース GCLK BUFG (TB ルールあり ) DCM/PLL 出力 ドライブ可能リソース BUFG (TB ルールあり ) PLL 入力可能リソース GCLK BUFG (TB ルールあり ) DCM/PLL 出力 ドライブ可能リソース BUFG (TB ルールあり ) BUFPLL 4 4 4 4 4 BUFG 8 BUFG 8 4 4 4 28
PLL の位置と接続 PLL から BUFPLL への接続 29
AGENDA はじめに クロックネットワーク クロックマネージメントタイル (CMT) 使用例 30
クロック挿入遅延の削除 クロックのデスキューには DCM または PLL を使用可能 から PLL/DCM へのパスは FB から PLL/DCM へのパスと一致 PLL/DCM は IN および FBIN を同相で保持 このため および FB への入力も同相で保持 CLK IBUFG FB 一致 IN FBIN CLK0 PLL/DCM BUFG DATA IBUF D Q FPGA の端 グローバルグローバルクロッククロックネットワークネットワーク FPGA の中央 31
SDR 入力インターフェイス用 I/O クロックの使用 シングルデータレート (SDR) クロックの高速データ信号用 の DIVIDE 属性は ISERDES2 の DATA_WIDTH 属性と同じ値に設定する DIVCLK は直接 BUFG を駆動できる 32
DDR 入力インターフェイス用 I/O クロックの使用 ダブルデータレート (DDR) クロックによる高速データ信号 IOCLK ネットワークが 2 つ必要 : CLK0 用クロック CLK1 (I_INVERT) 用の反転クロック プライマリ には USE_DOUBLER を TRUE に設定 33
クロック転送出力インターフェイス (DDR) 同期したクロック / データを出力する場合 PLL で高速クロックを生成 PLL はユーザーロジックおよび CLKDIV を駆動する低速クロックも生成 DATA CLOCK 34
逓倍クロックによるクロック転送入力インターフェイス ソース同期で低速クロックとともに高速データが FPGA に入力される場合 PLL を使用して高速クロックを生成 FB を使用して位相を入力低速クロックと一致させる 35
参考 UG382: Spartan-6 FPGA Clocking Resources User Guide http://www.xilinx.com/support/documentation/user_guides//ug382. pdf 36