10 RocketIO GTP ( 3.125Gbps 内蔵 トランシーバ )
10.2 Clock Distribution from / to GTP
GTP には、複数のクロック入出力ポートが用意されています。ここでは、各入出力クロックについて記載いた します。
■ リファレンスクロック入力
! GTP内部のPLLを駆動するためのクロック入力
! リファレンスクロックは、MGTREFCLK( リファレンスクロック入力専用端子 )から入力
# CLK00 / CLK01 / CLK10 / CLK11を使用
! 「GTP_Tile」内のGTPは、同じ「GTP_Tile」内のPLLのどちらからでも駆動可能
# 「PLL_SOURCE_0/1」属性を使用して、どちらのPLLからの出力を使用するかを設定
" 「PLL_SOURCE_0/1 = PLL0」 : PLL0の出力クロックを使用
" 「PLL_SOURCE_0/1 = PLL1」 : PLL1の出力クロックを使用
" 未使用となった PLLを Powerdownするため、PLLPOWERDOWN0/1 ポートをHigh
に固定
! 「GTP_Bank」内のGTPは、MGTREFCLKを共有可能( 下図10-2-1参照 )
# CLKINEAST0 / CLKINWEST0 / CLKINEAST1 / CLKINWEST1を使用
! MGTREFCLK端子以外(図10-2-1中のGCLK##やPLLCLK##)からのクロック入力は非推奨
# GCLK## = Global Bufferを介したクロックを入力するポート
# PLLCLK## = Fabric PLLからの出力クロックを入力するポート( BUFPLLを介して入力 )
! どのリファレンスクロック入力を使用するかは、REFSELDYPLL0/1ポートを使用して選択
図10-2-1 : リファレンスクロック入力
■ GTPCLKOUT0/1[1:0]出力クロック
! GTPCLKOUT[1:0] = リファレンスクロック入力を基にした、FPGA Fabric用のクロック出力ポート
! GTPCLKOUT [0] = 「CLK_OUT_GTP_SEL」属性で出力クロックを選択
# CLK_OUT_GTP_SEL = TXOUTCLK
" GTP内部のPLLからのパラレルデータ用のクロックを出力
" TXUSRCLKに入力すべき周波数と同じ周波数のクロックを出力
" GTP内部のPLLがリセットされると、出力は停止する
# CLK_OUT_GTP_SEL = REFCLKPLL
" リファレンスクロック入力をそのまま出力
! GTPCLKOUT[1] = CDRのRecovery Clockを出力
! GTPCLKOUT[1:0]はBUFIO2を使用し、PLLやDCMに入力、その後BUFGを介し、FPGA ロ
ジックで使用 ( 必ずしも、PLLやDCMを使用する必要は無く、BUFIO2 → BUFGでも可 )
■ TXUSRCLK / TXUSRCLK2入力クロック
! GTP内部のTransmitterのパラレルデータを駆動するためのクロック入力ポート
! TXUSRCLK / TXUSRCLK2が駆動するGTP内部の回路は下図10-2-2参照
図10-2-2 : Transmitter Clock Domain
! TXUSRCLKの周波数 ( GTP内部のデータ幅に依存 )
# 8 bit ( INTDATAWIDTH = Low ) : TXUSRCLK = Line Rate / 8
# 10 bit ( INTDATAWIDTH = High ) : TXUSRCLK = Line Rate / 10
! TXUSRCLK2の周波数 ( FPGAファブリックとの接続データ幅に依存 )
# 1 Byte or 10bit ( TXDATAWIDTH= 0 ) : TXUSRCLK2 = TXUSRCLK
# 2 Byte or 20bit ( TXDATAWIDTH= 1 ) : TXUSRCLK2 = TXUSRCLK / 2
# 4 Byte or 40bit ( TXDATAWIDTH= 2 ) : TXUSRCLK2 = TXUSRCLK / 4
! TXUSRCLK / TXUSRCLK2の生成方法例 ( 2Byte or 20bit Interface )
# INTDATAWIDTH = Low or High 、TXDATAWIDTH = 1
# CLK_OUT_GTP_SEL = TXOUTCLKの場合
図10-2-3 : TXUSRCLK / TXUSRCLK2 Generation
他の、インターフェース幅を選択した場合の構成に関しては、Spartan-6 GTP ユーザガイド参照
【参考】 Spartan-6 GTP ユーザガイド–英語版v2.0 [ p.70~ : Connecting TXUSRCLK and TXUSRCLK2 ]
http://www.xilinx.com/support/documentation/user_guides/ug386.pdf
■ RXUSRCLK / RXUSRCLK2入力クロック
! GTP内部のReceiverのパラレルデータを駆動するためのクロック入力ポート
! RXUSRCLK / RXUSRCLK2が駆動するGTP内部の回路は下図1-2-4参照
! RXUSRCLKの周波数 ( GTP内部のデータ幅に依存 )
# 8 bit ( INTDATAWIDTH = Low ) : RXUSRCLK = Line Rate / 8
# 10 bit ( INTDATAWIDTH = High ) : RXUSRCLK = Line Rate / 10
! RXUSRCLK2の周波数 ( FPGAファブリックとの接続データ幅に依存 )
# 1 Byte or 10bit ( RXDATAWIDTH= 0 ) : RXUSRCLK2 = RXUSRCLK
# 2 Byte or 20bit ( RXDATAWIDTH= 1 ) : RXUSRCLK2 = RXUSRCLK / 2
# 4 Byte or 40bit ( RXDATAWIDTH= 2 ) : RXUSRCLK2 = RXUSRCLK / 4
! RXUSRCLK / RXUSRCLK2の生成方法
# プロトコル上、周波数偏差を許容する機能が規定されている( Clock Correctionの機能を使
用する )場合は、TXUSRCLK / TXUSRCLK2と同じクロックを使用可能
# プ ロ ト コ ル 上 周 波 数偏差を許 容す る 機 能 が 規定さ れ て い な い場合 は 、Recovery Clock( GTPOUTCLK[1] )を使用して、生成
" 生成方法は、「TXUSRCLK / TXUSRCLK2の生成方法」と同一
# Elastic BufferをBypassする場合は、別途Spartan-6 GTP ユーザガイドを参照
その他、RXUSRCLK / RXUSRCLK2を生成する際の注意点なども、別途Spartan-6 GTP ユーザガイド
をご確認ください。
以上のとおり、GTPで使用するクロックの構成は、設定などに依存して複数の構成が存在します。
どの様にクロックを構成するかは、Spartan-6 FPGA GTP Transceiver Wizard から生成された Example
Designをご参考ください。
Spartan-6 FPGA GTP Transceiver Wizardは、COREGeneratorより起動することができます。
図10-2-5 : Spartan-6 FPGA GTP Transceiver Wizardの起動
【 参考 】 Spartan-6 GTP ユーザガイド–英語版v2.0
[ p.135~ : Using the RX Phase-Alignment Circuit to Bypass the RX Elastic Buffer ] [ p.157~ : Connecting RXUSRCLK and RXUSRCLK2 ]
http://www.xilinx.com/support/documentation/user_guides/ug386.pdf
Example Designのクロックの構成は、以下の設定に依存して変更されます。
・ Page1 : 「Select Tiles and Reference Clocks」
! 使用する「GTP_Tile」、PLLを選択
図10-2-6 : Spartan-6 FPGA GTP Transceiver Wizard Page 1
・ Page2 : 「Target Line Rate」、「Reference Clock ### MHz」、「Encoding」、「Data Path Width」
! ラインレート、リファレンスクロック入力周波数、および8B10Bの使用有無、FPGA Fabricと の接続データ幅を選択
図10-2-7 : Spartan-6 FPGA GTP Transceiver Wizard Page 2
・ Page4 「Enable TX Buffer」、「TXUSRCLK Source」、「Enable RX Buffer」、「RXUSRCLK Source」
! TX / RX Bufferの使用有無、TX/RXUSRCLKのソースクロックを選択
図10-2-8 : Spartan-6 FPGA GTP Transceiver Wizard Page 4