ネイティブ モードの高速 i/o インターフェイス …...xapp1274 (v1.0) 2016 年 6 月...
TRANSCRIPT
XAPP1274 (v1.0) 2016 年 6 月 1 日 1japan.xilinx.com
概要
このアプリ ケーシ ョ ン ノートおよび関連する リ ファレンス デザインは、UltraScale™ および UltraScale+™ デバイスのネイティブ モード I/O を使用して高速 I//O インターフェイスを構築する方法を示すこ とを目的と しています。
こ こでは、 『UltraScale アーキテクチャ SelectIO リ ソース ユーザー ガイ ド』 (UG571) [参照 1] の第 2 章の内容を補足する、高速 I/O インターフェイスの構築方法について詳し く説明します。 2 つ目のセクシ ョ ンでは、 UltraScale アーキテクチャの説明と 「High Speed SelectIO Wizard」 を使用してインターフェイスを構築する方法について説明します。
このアプリ ケーシ ョ ン ノートの リ ファレンス デザイン ファ イルは、 ザイ リ ンクスのウェブサイ トからダウンロードできます。 デザイン ファ イルの詳細は、 「 リ ファレンス デザイン」 を参照して ください。
はじめに
「ネイティブ I/O の詳細」 では、 I/O プリ ミ ティブのネイティブ モードの使用方法および接続方法について詳し く説明しています。
「High Speed SelectIO Wizard」 はク イ ッ クスタート ガイ ド と して利用できます。 ソース同期の 8 チャネル送信および受信インターフェイスの構築方法を説明しています。 ループバッ ク デザインでは、 ループバッ ク FMC ボードを備えた KCU105/VCU108 開発ボード向けのこれらのインターフェイスを使用します。
「 リ ファレンス デザイン」 では、 高速 SelectIO インターフェイスのさまざまな使用法を示したデザイン ファ イルを提供しています。
• 「High Speed SelectIO Wizard のクロ ッキング構造」
• 「High Speed SelectIO Wizard のリセッ ト シーケンス」 : リセッ ト シーケンスについて説明し、 例を示しています。
• 「BitSlip」
アプリケーシ ョ ン ノート : UltraScale および UltraScale+ デバイス
XAPP1274 (v1.0) 2016 年 6 月 1 日
ネイテ ィブ モードの高速 I/O インターフェイス
機能
XAPP1274 (v1.0) 2016 年 6 月 1 日 2japan.xilinx.com
機能
このアプリ ケーシ ョ ン ノートは、 『UltraScale アーキテクチャ SelectIO リ ソース ユーザー ガイ ド』 (UG571) [参照 1] の補足と して、 UltraScale デバイスのネイティブ高速 I/O プリ ミ ティブについて詳し く説明しています。 広範な高速アプリ ケーシ ョ ンに対応できる リ ファレンス デザインも提供しています。 これらのリ ファレンス デザインは、 ザイ リ ンクスの開発ボード向けに設計されているため、 独自のシステム デザインを簡単に構築できます。
ネイテ ィブ I/O の詳細
このセクシ ョ ンでは、 『UltraScale アーキテクチャ SelectIO リ ソース ユーザー ガイ ド』 (UG571) [参照 1] の補足と して、 ネイティブ モードの I/O プリ ミ ティブの使用および動作について詳し く説明し、 基本的なデータ処理インターフェイス とそれらの設定値について説明しています。
ネイティブ I/O プリ ミ ティブ (RX_BITSLICE、 TX_BITSLICE、 RXTX_BITSLICE、 TX_BITSLICE_TRI、 および BITSLICE_CONTROL) は、 ニブルで提供されます ( 「付録 A」 の図 31 参照)。 1 つのニブルには、 最大 6 個 (下位ニブル) または最大 7 個 (上位ニブル) の BITSLICE があ り、 BITSLICE_CONTROL プリ ミ ティブに接続されています。 各ニブルの位置 0 の BITSLICE (BITSLICE0) は、 データ、 ク ロ ッ ク、 またはス ト ローブ入力と して使用できます ( 「付録 A」 の図 32 参照)。 各ニブルを使用して、 1 バイ トの異なるレシーバーまたはト ランス ミ ッ ター インターフェイスを作成できます。
BITSLICE および BITSLICE_CONTROL の機能は属性で管理されます。
属性
FPFA に接続されるさまざまなインターフェイスのネイティブ モード I/O プリ ミ ティブは、 一連の属性を使用して定義/設定されます。 表 1 に、 多様なインターフェイスに共通する属性とそれらの有効な設定値を示します。
表 1 :データ インターフェイス用の共通する属性
属性 有効な設定値
TX_BITSLICE または RXTX_BITSLICE
TX_DATA_WIDTH 4 または 8 に設定可能
TBYTE_CTL TBYTE_IN、 T
TX_DELAY_TYPE FIXED、 VARIABLE、 VAR_LOAD
TX_DELAY_VALUE 出力遅延時間を定義 (0 または 0 以外の値)
TX_REFCLK_FREQUENCY DELAY_VALUE = 0 の場合、 デフォルト値を使用。 その他の場合は、 PLL の CLKOUTPHY ク ロ ッ クの周波数を参照。
TX_DELAY_FORMAT TIME
TX_UPDATE_MODE ASYNC
ENABLE_PRE_EMPHASIS FALSE
RX_BITSLICE または RXTX_BITSLICE
RX_DATA_WIDTH 4 または 8 に設定可能
RX_DATA_TYPE データのみを受信する BITSLICE の場合は DATA。
ク ロ ッ クを受信する BITSLICE_0 の場合は DATA_AND_CLOCK。
RX_DELAY_TYPE FIXED、 VARIABLE、 VAR_LOAD
RX_DELAY_VALUE 出力遅延時間を定義 (0 または 0 以外の値)
RX_DELAY_FORMAT TIME
ネイテ ィブ I/O の詳細
XAPP1274 (v1.0) 2016 年 6 月 1 日 3japan.xilinx.com
次のセクシ ョ ンでは、 データを生成/受信するためにネイティブ I/O プリ ミ ティブを用いて専用インターフェイスを構築する際に使用するインターフェイスのタイ ミ ング図 (図 1 ~ 図 4) と属性 (表 2 ~ 表 5) を示しています。ネイティブ I/O プリ ミ ティブを使用するクロ ッ クやデータの自動処理は、各 BITSLICE_CONTROL プリ ミ ティブに統合されている内蔵自動キャ リブレーシ ョ ン (BISC) を使用します。 詳細は、 「内蔵自動キャ リブレーシ ョ ン」 を参照してください。
TX/RX SDR のエッジに揃えられたインターフェイス
TX/RX SDR の中央に揃えられたインターフェイス
RX_REFCLK_FREQUENCY DELAY_VALUE = 0 の場合、 デフォルト値を使用。 その他の場合は、 PLL の CLKOUTPHY ク ロ ッ クの周波数を参照。
RX_UPDATE_MODE ASYNC
FIFO_SYNC_MODE FALSE
BITSLICE_CONTROL
RX_GATING DISABLE
TX_GATING ENABLE
INV_RXCLK FALSE、 TRUE (受信するクロ ッ ク とデータのタイ ミ ング関係に依存)
SERIAL_MODE FALSE、 TRUE
LOOPBACK FALSE
表 1 :データ インターフェイス用の共通する属性 (続き)
属性 有効な設定値
X-Ref Target - Figure 1
図 1 : TX/RX SDR のエッジに揃えられたインターフェイス
X15799-010416
表 2 : SDR のエッジに揃えられたインターフェイスの属性設定
属性 有効な設定値
TX_BITSLICE または RXTX_BITSLICE
TX_OUTPUT_PHASE_90 FALSE (データ と ク ロ ッ クの両方)
BITSLICE_CONTROL
INV_RXCLK TRUE
RX_CLK_PHASE_P SHIFT_0
RX_CLK_PHASE_N SHIFT_0
X-Ref Target - Figure 2
図 2 : TX/RX SDR の中央に揃えられたインターフェイス
X15798-010416
ネイテ ィブ I/O の詳細
XAPP1274 (v1.0) 2016 年 6 月 1 日 4japan.xilinx.com
TX/RX DDR のエッジに揃えられたインターフェイス
TX/RX DDR の中央に揃えられたインターフェイス
表 3 : SDR の中央に揃えられたインターフェイスの属性設定
属性 有効な設定値
TX_BITSLICE または RXTX_BITSLICE
TX_OUTPUT_PHASE_90 FALSE (データ と ク ロ ッ クの両方)
BITSLICE_CONTROL
INV_RXCLK FALSE
RX_CLK_PHASE_P SHIFT_0
RX_CLK_PHASE_N SHIFT_0
X-Ref Target - Figure 3
図 3 : TX/RX DDR のエッジに揃えられたインターフェイス
X15797-010416
表 4 : SDR のエッジに揃えられたインターフェイスの属性設定
属性 有効な設定値
TX_BITSLICE または RXTX_BITSLICE
TX_OUTPUT_PHASE_90 FALSE (データ と ク ロ ッ クの両方)
BITSLICE_CONTROL
INV_RXCLK FALSE
RX_CLK_PHASE_P SHIFT_90
RX_CLK_PHASE_N SHIFT_90
X-Ref Target - Figure 4
図 4 : TX/RX DDR の中央に揃えられたインターフェイス
X15796-010416
表 5 : DDR の中央に揃えられたインターフェイスの属性設定
属性 有効な設定値
TX_BITSLICE または RXTX_BITSLICE
TX_OUTPUT_PHASE_90 データの場合は FALSE、 インターフェイス ク ロ ッ クの場合は TRUE
BITSLICE_CONTROL
INV_RXCLK FALSE
RX_CLK_PHASE_P SHIFT_0
RX_CLK_PHASE_N SHIFT_0
ネイテ ィブ I/O の詳細
XAPP1274 (v1.0) 2016 年 6 月 1 日 5japan.xilinx.com
クロッキング手法
「付録 A」 で説明している とおり、複数の BITSLICE と BITSLICE_CONTROL プリ ミ ティブを組み合わせて 1 つのニブルを形成しています。 各ニブルの位置 0 にある BITSLICE は、 データ、 ク ロ ッ ク、 またはス ト ローブ入力と して使用できます。 ク ロ ッ クまたはス ト ローブ ク ロ ッ ク と して使用される場合、 これらの入力はその I/O バンク全体に別々の機能をもたらします。
ク ロ ッ ク と ス ト ローブの違いを次に示します。
• ク ロ ッ ク : 位置 0 の BITSLICE に接続できる規則的な反復サイクルの入力信号で、 同時に PLL/MMCM 入力と しても使用されます。 PLL/MMCM に使用される場合は、 PLL が動作中にロッ ク状態を維持できるよ うに追加の制約事項が適用されます。
• ス ト ローブ : 規則的な反復サイクルの信号と して使用できますが、 断続的に繰り返される入力信号と しても使用できます。 この信号は通常、 位置 0 の BITSLICE にのみ接続されます。
さまざまなクロ ッ ク入力機能を次に示します。
• 専用バイ ト ク ロ ッ ク (DBC) : I/O バンクにある byte_0 と byte_3 の上位ニブルおよび下位ニブルの BITSLICE_0 ス トローブ入力の機能です。 これを使用する場合、 ス ト ローブ入力はバイ ト内の 2 つのニブル間のクロ ッ ク リ ソースを使用できます。 「ニブル間クロ ッキング」 で詳し く説明されている とおり、 DBC 機能を実行する BITSLICE 内のクロ ッ ク ネッ ト ワークは、 ニブル間クロ ッ ク と呼ばれています。
• クワ ッ ドバイ ト ク ロ ッ ク (QBC) : I/O バンクにある byte_1 と byte_2 の上位ニブルおよび下位ニブルの BITSLICE_0 クロ ッ ク入力です。 これを使用する場合、 このクロ ッ ク入力は 1 つの I/O バンク内のすべてのバイ トの リ ソースにクロ ッ クを供給できます。 「バイ ト間クロ ッキング」 で詳し く説明されている とおり、 QBC 機能を実行する BITSLICE 内のクロ ッ ク ネッ ト ワークは、 バイ ト間クロ ッ ク と呼ばれています。
• QBC ク ロ ッ ク入力は、 DBC ク ロ ッ ク と しても機能できます。
• グローバル ク ロ ッ ク (GC) : 一部の QBC ク ロ ッ ク入力は、 グローバル ク ロ ッ ク入力と して使用できます。 これらの入力には、 I/O バンクの MMCM/PLL ク ロ ッ ク入力へ接続される専用の配線パスがあ り ます。 グローバル ク ロ ッ ク入力と して使用する場合は、 QBC の機能も備えるこ とができます。
ネイテ ィブ I/O の詳細
XAPP1274 (v1.0) 2016 年 6 月 1 日 6japan.xilinx.com
ニブル間クロッキング
ニブル間クロ ッキングは、 同じバイ ト内のニブル間の DBC または QBC ピンに供給するクロ ッ クを伝搬します。 各ニブルには、 2 つの入力ピン (PCLK_NIBBLE_IN/NCLK_NIBBLE_IN) と 2 つの出力ピン (PCLK_NIBBLE_OUT/NCLK_NIBBLE_OUT) を備えた自身の BITSLICE_CONTROL があ り ます。 一方のニブルのクロ ッ ク入力が、 も う一方のニブルのデータ入力にクロ ッ クを供給します。 図 5 に示すとおり、 1 バイ ト を形成する 2 つのニブルでは、 一方のニブルの P/NCLK_NIBBLE_IN ピンがも う一方のニブルの P/NCLK_NIBBLE_OUT へ接続されます。
ニブル間クロ ッキングの推奨手順を次に示します。
• 1 バイ ト内の 2 つのニブルを使用する場合には、 一方のニブルの PCLK_NIBBLE_OUT をも う一方のニブルの PCLK_NIBBLE_IN へ接続します。 NCLK_NIBBLE_OUT および NCLK_NIBBLE_IN も同様に接続します。
• EN_OTHER_nCLK 属性の使用は相互排他的です。 一方を TRUE に設定した場合は、 対応するも う一方のニブルを FALSE に設定する必要があ り ます。 一部の使用事例では、 一方のニブルには EN_OTHER_nCLK を {TRUE, FALSE} に設定し、 も う一方のニブルには {FALSE, TRUE} を設定できます。
• 上位ニブルの BITSLICE_0 が CLOCK または DATA_AND_CLOCK のいずれかに設定されている場合は、 も う一方のニブルの EN_OTHER_PCLK および EN_OTHER_NCLK 属性を TRUE に設定して ください。 ク ロ ッ ク入力を伝搬するニブルの EN_OTHER_PCLK および EN_OTHER_NCLK 属性は FALSE に設定します。 この手順の例外については、 前の使用事例を参照して ください。 両ニブルを使用する場合は、 常に両ニブルの入力と出力を接続して、 属性設定を使用して一方から他方へのクロ ッキングを有効にして ください。
X-Ref Target - Figure 5
図 5 : 1 バイ ト内のニブル間の接続
The clock carrying BITSLICE_0 must have DATA_TYPE: DATA_AND_CLOCK
BitSlice 0 DBC/QBC
BITSLICE_CONTROL
Upper Nibble
BitSlice 0 DBC/QBC
BITSLICE_CONTROL
Lower Nibble
PCLK_NIBBLE_INNCLK_NIBBLE_INNCLK_NIBBLE_OUTPCLK_NIBBLE_OUT
PCLK_NIBBLE_INNCLK_NIBBLE_INNCLK_NIBBLE_OUTPCLK_NIBBLE_OUT
Byte 3, 2, 1, and/or 0
X15793-011016
ネイテ ィブ I/O の詳細
XAPP1274 (v1.0) 2016 年 6 月 1 日 7japan.xilinx.com
次に例では、 上位ニブル (BITSLICE_0) を CLOCK に設定した場合の属性を示します。
次に例では、 下位ニブル (BITSLICE_0) を CLOCK に設定した場合の属性を示します。
上位ニブルの属性
EN_OTHER_P CLK : FALSEEN_OTHER_N CLK : FALSE
下位ニブルの属性
EN_OTHER_P CLK : TRUEEN_OTHER_N CLK : TRUE
上位ニブルの属性
EN_OTHER_P CLK : TRUEEN_OTHER_N CLK : TRUE
下位ニブルの属性
EN_OTHER_P CLK : FALSEEN_OTHER_N CLK : FALSE
ネイテ ィブ I/O の詳細
XAPP1274 (v1.0) 2016 年 6 月 1 日 8japan.xilinx.com
バイ ト間クロッキング
バイ ト間クロ ッキングは、 QBC ピンに到達するクロ ッ クをバンク内のバイ ト間で伝搬します。 バイ ト間クロ ッキングの推奨手順を次に示します。
• 2 つの中央バイ トの 4 のクロ ッ クまたはス ト ローブ ペアが 4 つすべてのバイ ト グループを駆動できます。 これらのピンは、 クワ ッ ドバイ ト ク ロ ッ ク (QBC) と呼ばれています。
• QBC ピンは、 常に 1 つのニブルのビッ ト 0 を共有します。
• バイ ト間のクロ ッ ク接続 (図 6 参照) は、 BITSLICE_CONTROL ピンを使用して制御され、 機能は属性を使用して有効化されます。
• EN_CLK_TO_EXT_NORTH 属性および EN_CLK_TO_EXT_SOUTH 属性によって、 一方の BITSLICE_CONTROL の CLK_TO_EXT_xxxxx 出力からも う一方の BITSLICE_CONTROL の CLK_FROM_EXT 入力へのクロ ッ ク配線が有効になり ます。
ヒン ト : BITSLICE_CONTROL ピンの CLK_FROM_EXT を使用しない場合、 High に接続する必要があ り ます。
X-Ref Target - Figure 6
図 6 : BITSLICE_CONTROL バイ ト間接続
CLK_FROM_EXT
CLK_TO_EXT_NORTHCLK_TO_EXT_SOUTH
PCLK_NIBBLE_INNCLK_NIBBLE_INNCLK_NIBBLE_OUTPCLK_NIBBLE_OUT
Inter-byte clocking
Inter-nibble clocking
X15794-011316
ネイテ ィブ I/O の詳細
XAPP1274 (v1.0) 2016 年 6 月 1 日 9japan.xilinx.com
• 図 7 に、 1 つの I/O バンク全体で有効なバイ ト間クロ ッキングを示します。
X-Ref Target - Figure 7
図 7 : 1 つの I/O バンクで有効なバイ ト間クロッキング
BitSlice 0
BITSLICE_CONTROL
CLK_FROM_EXTCLK_TO_EXT_NORTH
CLK_TO_EXT_SOUTH
Upper Nibble
BitSlice 0
BITSLICE_CONTROL
CLK_FROM_EXTCLK_TO_EXT_NORTH
CLK_TO_EXT_SOUTH
Lower Nibble
Page 1,
BitSlice 0 QBC
BITSLICE_CONTROL
CLK_FROM_EXTCLK_TO_EXT_NORTH
CLK_TO_EXT_SOUTH
Upper Nibble
BitSlice 0 QBC
BITSLICE_CONTROL
CLK_FROM_EXTCLK_TO_EXT_NORTH
CLK_TO_EXT_SOUTH
Lower Nibble
BitSlice 0
BITSLICE_CONTROL
CLK_FROM_EXTCLK_TO_EXT_NORTH
CLK_TO_EXT_SOUTH
Upper Nibble
BitSlice 0
BITSLICE_CONTROL
CLK_FROM_EXTCLK_TO_EXT_NORTH
CLK_TO_EXT_SOUTH
Lower Nibble
Byte 3
Byte 2
Byte 1
Byte 0
QBC Byte 2QBC Byte 1
BLUE = Lower nibble is clock origin.BLACK = Upper nibble is clock origin.
BitSlice 0 QBC
BITSLICE_CONTROL
CLK_FROM_EXTCLK_TO_EXT_NORTH
CLK_TO_EXT_SOUTH
Upper Nibble
BitSlice 0
BITSLICE_CONTROL
CLK_FROM_EXTCLK_TO_EXT_NORTH
CLK_TO_EXT_SOUTH
Lower Nibble
QBC/GC
X15795-011516
ネイテ ィブ I/O の詳細
XAPP1274 (v1.0) 2016 年 6 月 1 日 10japan.xilinx.com
I/O またはグローバル クロック
各 BITSLICE_CONTROL には 2 つのクロ ッ ク入力 (REFCLK および PLL_CLK) があ り ます。 これらのクロ ッ クは相互排他的であ り、 いずれか一方の使用は可能ですが、 両方を使用するこ とはできません。
• BITSLICE_CONTROL のクロ ッ ク ソースが MMCM から供給される場合は、 REFCLK を使用する必要があ り ます。
• BITSLICE_CONTROL のクロ ッ ク ソースが PLL から供給される場合は、 PLL_CLK を使用する必要があ り ます。 これは、 ネイティブ I/O モードを使用する場合に推奨されるクロ ッキング モードです。
MMCM からの REFCLK を使用する場合は、 クロ ッ ク バッファーを使用して、 通常のクロ ッ ク ネッ ト経由でクロ ッ クを供給します。 たとえば、 MMCM の最大クロ ッ ク レート ( 『Kintex UltraScale+ FPGA データシート : DC 特性および AC スイ ッチ特性』 (DS892) [参照 2] 参照) は、 -3 スピード グレード デバイスの場合に 850MHz であ り、 つま り ソース同期のレシーバーおよびト ランシーバーの最大データ レートは 850Mb/s とな り ます。
PLL からの PLL_CLK を使用する場合は、 PLL と BITSLICE_CONTROL の PLL_CLK ピン間で専用のクロ ッ ク配線を使用します。 PLL には、 最大で 2670MHz に対応できる BITSLICE_CONTROL 専用クロ ッ ク出力があ り ます (『Kintex UltraScale+ FPGA データシート : DC 特性および AC スイ ッチ特性』 (DS892) [参照 2] 参照)。 PLL_CLK のクロ ッ ク パスには、 MMCM のクロ ッ ク パスよ り優れたコア ジッター分離回路があ り ます。
ネイテ ィブ I/O の詳細
XAPP1274 (v1.0) 2016 年 6 月 1 日 11japan.xilinx.com
図 8 に、 RX_BITSLICE と TX_BITSLICE のクロ ッキング設定例を示します。
レシーバー
データ ソースがデータおよびクロ ッ ク /ス ト ローブを提供する と き、 そのクロ ッ クを使用して、 伝搬されたデータをキャプチャできます (SERIAL_MODE = FALSE)。 BITSLICE_CONTROL (BISC) によって、 受信したクロ ッ クは対応するデータ信号のエッジまたは中央に位相が揃い、 動作中はその状態が維持されます (VT ト ラ ッキング)。 BISC コン ト ローラーは、この REFCLK または PLL_CLK を使用して、遅延ラインのキャ リブレート、データに対するクロ ッ クの位相調整、 さ らに VT ト ラ ッキングを実行します。 REFCLK または PLL_CLK 入力に接続されている REFCLK または PLL_CLK ク ロ ッ クの周波数は、 受信するデータ レート と同じになる必要があ り ます。
ク ロ ッ クが QBC/GC 入力ピンに接続されている場合、 データ と共に供給されるクロ ッ クを PLL に供給するこ と も可能です。 クロ ッ クが QBC または DBC ピン (GC 以外) に接続されている場合、 PLL はインターコネク ト ロジッ クのクロ ッ ク ソースから供給される必要があ り ます。 データがス ト ローブと共に伝搬される場合、 PLL はインターコネク ト ロジッ ク ク ロ ッ ク ソースから供給される必要があ り ます。 インターコネク ト ロジッ クからのクロ ッ ク ソースは、 MMCM または PLL の CLKIN 入力へ接続可能です。
例 1 : ソース同期インターフェイスのセッ トアップ
• データ と ク ロ ッ クが UltraScale デバイスに供給されます。 データ受信レートが 1250Mb/s で、 受信 DDR ク ロ ッ クが 625MHz であるこ とを前提と しています。
X-Ref Target - Figure 8
図 8 : グローバル クロッキングの設定例
Clock Input CLKOUT1
CLKOUTPHYCLKOUTPHYEN
CLKOUT0PLL
TX = BlackRX = Blue
DBC QBC GCRXTX_BITSLICE_0
BITSLICE_C
ON
TRO
L RXTX_BITSLICE_1
RXTX_BITSLICE_4
RXTX_BITSLICE_5
RXTX_BITSLICE_2
RXTX_BITSLICE_3
RXTX_BITSLICE_0
BITSLICE_C
ON
TRO
L
RXTX_BITSLICE_1
RXTX_BITSLICE_4
RXTX_BITSLICE_5
RXTX_BITSLICE_2
RXTX_BITSLICE_3
RXTX_BITSLICE_6
II
BO
IBUFDS
II
BO
IBUFDS
PLL_CLK
PLL_CLK
I
OBUFDSO
OB
DBC QBC GC
2
2
3
3
DBC QBC
DBC QBC
4
4
5
5
6
6
1
1
I
OBUFDSO
OB
Clock path used to capture data/clock in
BITSLICEs 0 and 2
High-speed clock used as transmit clock and receive
calibration clock
OR
BITSLICEs 1, 3, 5 cannot be used because the IOB is used by the differential input/output buffer
X15886-040516
ネイテ ィブ I/O の詳細
XAPP1274 (v1.0) 2016 年 6 月 1 日 12japan.xilinx.com
• ク ロ ッ クは QBC/GC ピンに接続され、 BITSLICE 入力と して使用されて PLL に供給されます。
ヒン ト : すべての RX_BITSLICE を同期させるには、 RX VTC_RDY 信号がアサート されるまで RXCLK を停止する必要があ り ます。 RX のリセッ ト リ リースをユーザーが TX で制御できる場合は、 RX VTC_RDY 信号がアサート されるまで RX 部への CLK の供給を停止してください。 ユーザーが TX 側で制御できない場合は、 すべてのチャネルが確実にアラインするよ うに、 bitslip モジュールを RX 側にインプリ メン トする必要があ り ます。
• RX_BITSLICE が 8 ビッ ト モードで使用される場合、 パラレル データ ク ロ ッ クまたは FIFO_RD_CLK は、 入力クロ ッ クの 1/4 である必要があ り ます (例 : 625MHz/4 = 156.25MHz)。 このク ロ ッ クは、 PLL_CLK に使用するものと同じ PLL で生成するこ と も可能です。
• BITSLICE_CONTROL の属性を次に示します。
° DIV_MODE = DIV4
° SELF_CALIBRATE = ENABLE
° SERIAL_MODE = FALSE
° REFCLK_SRC = PLLCLK
• RX_BITSLICE の属性を次に示します。
° DATA_WIDTH = 8
° REFCLK_FREQUENCY = 1250
• CLKOUTPHY ク ロ ッ ク (PLL で生成) は、 BITSLICE_CONTROL および BISC コン ト ローラー用の PLL_CLK 入力です。 PLL_CLK を使用して、 データ ビッ トに対してクロ ッ クを調整します。 データ が 1250Mb/s で到達する場合、ビッ ト時間は 800ps です。 データに対してクロ ッ クの位置を正し く調整するには、 BITSLICE_CONTROL で使用されるクロ ッ クを 1250MHz にする必要があ り ます。
• 入力されるクロ ッ クが GC 入力ピンに接続されている場合、 このクロ ッ クはデータ サンプル ク ロ ッ ク と して使用され、 PLL のソース と しても使用できます。 入力されるクロ ッ クがデータ サンプル ク ロ ッ ク と して使用されている間、PLL 用には独立したクロ ッ クを使用するこ と も可能です。
• この例では、 受信クロ ッ クをデータ サンプル ク ロ ッ クおよび PLL の入力クロ ッ ク と して使用します。
• この例では、 受信したクロ ッ クをデータ サンプル ク ロ ッ ク と して使用し、 また PLL の入力クロ ッ ク と しても使用して、 必要な BITSLICE_CONTROL のクロ ッ クや場合によっては 1 つまたは 2 つのアプリ ケーシ ョ ン ク ロ ッ ク (例 : FIFO_RD_CLK) を生成します。
° 入力クロ ッ クは 625MHz で、 CLOCK_PERIOD = 1.600 です。
° PLL は、 CLKOUTPHY または BITSLICE_CONTROL 用の PLL_CLK を生成する必要があ り ます。 このクロ ッ クは、 BITSLICE_CONTROL の BISC コン ト ローラーがデータ ビッ トの中央にクロ ッ ク位置を揃えるよ うに調整し、 それを維持できるよ うに 1250MHz で動作する必要があ り ます。
° 最良の (ジッターが最も少ない) 結果を達成するには、 PLL VCO ができるだけ高速動作する必要があ り ます。 最大の VCO 周波数については、 UltraScale デバイス データシート [参照 2] を参照してください。
° PLL の属性を次に示します。
- DIVCLK_DIVIDE = 1
- CLKFBOUT_MULT = 2
- CLKOUTPHY_MODE = VCO
- CLKOUT0_DIVIDE または CLKOUT1_DIVIDE = 8
° VCO が 1250MHz で動作するよ うに DIVCLK_DIVIDE と CLKFBOUT_MULT が設定されています。
° CLKOUTPHY_MODE = VCO によって、 VCO ク ロ ッ クが確実に BITSLICE_CONTROL の PLL_CLK ク ロ ッ ク と して使用されます。
° CLKOUTn_DIVIDE を使用して、 PLL ク ロ ッ ク出力のいずれか一方または両方をアプリ ケーシ ョ ン (FIFO_RD_CLK) ク ロ ッ ク と して使用可能なクロ ッ ク レート (156.25MHz) に設定します。
• その他にも、 UltraScale デバイスで設定が必要な属性があ り ますが、 このアプリ ケーシ ョ ン ノートに関連する内容ではないため、 この例では省略しています。
ネイテ ィブ I/O の詳細
XAPP1274 (v1.0) 2016 年 6 月 1 日 13japan.xilinx.com
ト ランスミ ッ ター
パラレル側からシ リ アル出力ス ト リームへデータを渡すためのクロ ッ ク と して、 PLL REFCLK または PLL_CLK を使用します。 生成される REFCLK または PLL_CLK の周波数は、 必要な ト ランス ミ ッ ターのシ リ アル データ ス ト リームと同じになる必要があ り ます。 REFCLK または PLL_CLK は BITSLICE_CONTROL で使用され、 インターコネク ト ロジッ クから提供されるパラレルの 4 または 8 ビッ ト データをキャプチャしてシ リ アライズするために必要なすべてのクロ ッ クが生成されます。
TX_BITSLICE.D[7:0] 入力が一定のパターンに接続されている場合、 ト ランス ミ ッ ターの TX_BITSLICE をクロ ッ ク ジェネレーターと して使用できます。 PLL_CLK が 1250MHz の場合、 パターン 01010101 は、 625MHz のクロ ッ ク信号を生成します。 このセッ ト アップで、 完全に同期化されたクロ ッ ク /データ インターフェイスが生成されます。 TX_BITSLICE の属性 OUTPUT_PHASE_90 を使用した場合、対応するデータに 90° (つま りその周期の 1/4 分) 位相がシフ ト されたクロ ッ クを自動生成できます。
ヒン ト : 受信側での不要なビッ ト ス リ ップを回避するために、 正しいクロ ッ ク パターン 01010101 (10101010 ではない) を適用する必要があ り ます。
例 2 : データエンド クロックを提供する ト ランスミ ッ ター
• TX_BITSLICE は 8 ビッ ト モードで動作するこ とを前提と します。 TX_BITSLICE の D 入力にデータを提供する場合のクロ ッ ク周波数を計算できます。
(PLL_CLK/2)/DIVn、 8 ビッ トの場合は DIVn = 4、 4 ビッ トの場合は DIVn = 2
(1250MHz/2)/4 = 156.25MHz
• BITSLICE_CONTROL の属性を次に示します。
° DIV_MODE = DIV4
° REFCLK_SRC = PLLCLK
• TX_BITSLICE の属性を次に示します。
° DATA_WIDTH = 8
° REFCLK_FREQUENCY = 1250
• PLL は、 CLKOUTPHY または BITSLICE_CONTROL 用の PLL_CLK を生成する必要があ り ます。 このクロ ッ クは、1250Mb/s のシ リ アル データ /ク ロ ッ ク ス ト リームを生成するために 1250MHz で動作する必要があ り ます。
• 最良の (ジッターが最も少ない) 結果を達成するには、 PLL VCO ができるだけ高速動作する必要があ り ます。 最大の VCO 周波数については、 『Kintex UltraScale+ FPGA データシート : DC 特性および AC スイ ッチ特性』 (DS892) [参照 2] を参照して ください。
• PLL の属性を次に示します。
° 入力クロ ッ クは 625MHz で、 CLOCK_PERIOD = 1.600 とな り ます。
° DIVCLK_DIVIDE = 1
° CLKFBOUT_MULT = 2
° CLKOUTPHY_MODE = VCO
° CLKOUT0_DIVIDE または CLKOUT1_DIVIDE = 8
• DIVCLK_DIVIDE と CLKFBOUT_MULT を設定して、 VCO を 1250MHz で動作させます。
• CLKOUTPHY_MODE = VCO によって、 VCO ク ロ ッ クは確実に BITSLICE_CONTROL の PLL_CLK ク ロ ッ ク と して使用されます。
• CLKOUTn_DIVIDE は、 PLL ク ロ ッ ク出力のいずれか一方または両方をアプリ ケーシ ョ ン ク ロ ッ ク (156.25MHz) と して使用可能なクロ ッ ク レートに設定します。
• ほかにも、 UltraScale デバイスで設定が必要な属性があ り ますが、 このアプリ ケーシ ョ ン ノートに関連する内容ではないため、 この例では省略しています。
ネイテ ィブ I/O の詳細
XAPP1274 (v1.0) 2016 年 6 月 1 日 14japan.xilinx.com
内蔵自動キャリブレーシ ョ ン
I/O プリ ミ ティブには内蔵自動キャ リブレーシ ョ ン (BISC) コン ト ローラーが実装されているため、 データに対してクロ ックを調整および維持するためのインターコネク ト ロジッ クを追加する必要があ り ません。 BITSLICE_CONTROL プリ ミティブの BISC コン ト ローラーは、 SELF_CALIBRATE 属性 (デフォルト値 = TRUE) で調整可能です。 この属性は、 使用する I/O インターフェイスで必要となるすべての属性と共に設定される必要があ り ます。
BISC コン ト ローラーは、 TIME モードの遅延ラインを使用するデザインでのみ使用されます。 TIME モードの場合、 いかなるシステム プロセス、 電圧、 温度 (PVT) の変動を受けても、 ク ロ ッ クの設定ポイン トは変動しません。
BISC コン ト ローラーによって、 次のこ とが確実になり ます。
• ト ランス ミ ッ ター インターフェイスの出力位相
• レシーバー インターフェイスの入力位相シフ ト (SHIFT_0、 SHIFT_90)
• すべてのレシーバー データ パスと ク ロ ッ ク パスのスキュー調整
• BITSLICE 内のすべてのクロ ッ クの関係を維持
BISC コン ト ローラーは、 BITSLICE_CONTROL の DLY_RDY をアサート して、 インターコネク ト ロジッ クのキャ リブレーシ ョ ンが完了したこ とを示します。 キャ リブレーシ ョ ン完了後、 BITSLICE_CONTROL の EN_VTC 入力が High にアサート される必要があ り ます。 これによって、 BISC コン ト ローラーは電圧や温度に対する内部キャ リブレーシ ョ ン ポイン ト を維持し、 また内部サンプリ ング レジスタで見られるよ うなデータ と ク ロ ッ クの相対的な位置を維持します。 BISC コン ト ローラー信号は、 BITSLICE_CONTROL の VTC_RDY をアサート して、 この手順が完了したこ とをインターコネクト ロジッ クに通知します。 DLY_RDY および VTC_RDY 信号が High に遷移する と、 インターコネク ト ロジッ クはファンクシ ョ ン モードになり ます。
RX_BITSLICE に統合されている FIFO
RX_BITSLICE に統合されている FIFO の FIFO_SYNC_MODE 属性の値は FALSE に設定されている必要があ り ます。 その他の値はサポート されていません。
この FIFO によ り、 インターフェイス ク ロ ッ ク ド メ インからキャプチャしたデータをインターコネク ト ロジッ クのクロ ッ ク ド メ インへクロスオーバーできます。 FIFO はデザイン内のクロ ッ ク ド メ イン ク ロ ッシング (CDC) エレ メン ト として機能します。 FIFO のクロ ッ ク信号と制御入力信号を次に示します。
• FIFO_WRCLK_OUT : すべてのキャプチャ ク ロ ッ クは、 BITSLICE_CONTROL プリ ミ ティブ内で生成されて、 接続されているすべての RX_BITSLICE へ割り当てられます。 内部生成されるク ロ ッ クの 1 つは、 RX_BITSLICE 内の FIFO にデータを書き込むために使用されるパラレルデータ ク ロ ッ クです (FIFO_WRCLK)。 このクロ ッ クの複製が、 ニブル内の位置 0 の BITSLICE 出力と して提供されます。FIFO_WR_CLK_OUT の周波数は、DIV2 (4 ビッ ト ) または DIV4 (8 ビッ ト ) で分周された入力クロ ッ ク と同じにな り ます。
• FIFO_RD_EN : このピンは、 FIFO の読み出しを有効にするために High に接続される必要があ り ます。 この入力ピンが Low に接続されている場合、 8 ビッ ト モードでは FIFO 出力が FIFO_WRCLK_OUT の 8 サイ クルごとに新しいデータを示し、 4 ビッ ト モードでは FIFO_WRCLK_OUT の 4 サイ クルごとに新しいデータを示します。 これは、 書き込みポインターは RX_BITSLICE 内の書き込み動作のたびに前進しますが、 FIFO_RD_EN によって FIFO の読み出しポインターはロ ッ ク されるためです。 書き込みポインターが 8 番目のポインター位置に到達する と、 0 にループバッ ク して継続します。 読み出しポインターはロ ッ ク されるため、 EMPTY パルス (FIFO_EMPTY 出力) が生成されて、 新しいデータが出力ピンに到達します。 8 つまたは 4 つのパラレル データ バイ トの 1 つが、 RX_BITSLICE の Q 出力に現われます (図 9)。
• FIFO_EMPTY : FIFO が空になる と、 この出力が High になり ます。 FIFO にデータが書き込まれる とすぐに Low になり、 書き込み FIFO ポインターと読み出し FIFO ポインターが同じにならない限り Low を維持します。 データが書き込まれる と、 内部の FIFO の書き込みポインターがインク リ メン ト します。 読み出しポインターから書き込みポインターが離れたこ とを検知する とすぐに、 FIFO_EMPTY ピンはディアサート されます。 同期に必要な時間は、 最初の書き込みから FIFO_RD_CLK の 1 サイ クルまたは 2 サイ クル分とな り ます。 書き込みポインターと読み出しポインターが同じ場合は、 FIFO が空であるこ とを意味します。
• FIFO_RD_CLK : FIFO の読み出しクロ ッ クは、 BITSLICE_0 の FIFO_WRCLK_OUT で供給、 または BITSLICE の内部 FIFO_WRCLK と同じ周波数を使用して PLL で生成されたクロ ッ クで供給されます。
ネイテ ィブ I/O の詳細
XAPP1274 (v1.0) 2016 年 6 月 1 日 15japan.xilinx.com
キャプチャしたデータは、 シ リ アル入力チャネルと位相が揃う必要があ り ません。 各 FIFO には、 ニブルの位置 0 にある RX_BITSLICE の FIFO_WRCLK_OUT でクロ ッ ク供給できます。 PLL で生成されたクロ ッ クを使用して、 各 FIFO にクロ ッ クを供給するこ と も可能です。 各 FIFO では、 FIFO_EMPTY (反転) を FIFO_RD_EN に接続します。 空の FIFO に書き込みが実行される とすぐに FIFO が有効になり、 ニブル FIFO_WRCLK_OUT または PLL で生成されたパラレル データ クロ ッ クを使用してデータの読み出しが可能になり ます。
インターフェイスの各 RX_BITSLICE の FIFO から出力されるデータの位相が揃う必要がある場合は、 次のいずれかの方法を使用します。
• シングルクロ ッ クのソース同期インターフェイス
° FIFO_WRCLK ク ロ ッ クの PLL で生成されたクロ ッ ク、 または FIFO_RD_CLK ク ロ ッ クを受信する BITSLICE の FIFO_WRCLK_OUT です。
° (フ リ ップフロ ップ経由で) ク ロ ッ ク入力を受信する BITSLICE から最も離れた BITSLICE の反転された FIFO_EMPTY 信号をすべての FIFO_RD_EN 入力へ接続します (図 10)。
° 高クロ ッ ク レート を使用している と タイ ミ ングを満たすこ とが難しい場合があ り、 このパスにパイプライン段数を追加する とレイテンシが増加します。 注意点と して、 インターコネク ト ロジッ クは VTC_RDY が High に遷移した後にのみ動作可能です。
° FIFO_WRCLK_OUT または PLL で生成されたクロ ッ クは、 BUFG ク ロ ッ ク バッファーが必要です。 HDL では、FIFO_WRCLK_OUT ク ロ ッ クを FIFO_RD_CLK へそのまま接続できますが、 Vivado ツールでは BUFG ク ロ ッ ク バッファーを自動的に挿入します。
X-Ref Target - Figure 9
図 9 : RX_BITSLICE FIFO の回路図
DATA
WRCLK
Q[7:0]
Write Pointer
Read Pointer
0 7
0 7
FIFO_RD_CLK
FIFO_RD_EN
Write Pointer = Read Pointer FIFO_EMPTYX15779-010416
ネイテ ィブ I/O の詳細
XAPP1274 (v1.0) 2016 年 6 月 1 日 16japan.xilinx.com
• マルチクロ ッ クのソース同期インターフェイス
° マルチクロ ッ クのソース同期インターフェイスは複数の I/O バンクに広がり、 各 I/O バンクでは独自のクロ ッ クを受信します。
° 基本的には、 シングルクロ ッ クのソース同期インターフェイス と同じセッ ト アップを使用しますが、 次の点が異なり ます。
- 使用されている各 RX_BITSLICE の FIFO_EMPTY 信号を結合するフ リ ップフロ ップ用の入力と して NOR ゲート を使用します。 NOR ゲートは、 最後の FIFO_EMPTY 信号が到達するまで待機してから Low に遷移し、 その後フ リ ップフロ ップを介して FIFO_RD_EN を ト リガーします。
- FIFO_RD_CLK は、 入力クロ ッ クの 1 つを使用した PLL 生成クロ ッ ク、 またはいずれかのインターフェイスの FIFO_WRCLK_OUT が可能です。 また、 FIFO_WRCLK からのクロ ッ ク と同じ クロ ッ ク (メ ソ同期または同じクロ ッ ク ) である限り、 任意のソースを使用した PLL 生成クロ ッ クが可能です。
° FIFO_WRCLK_OUT を使用する場合または PLL で生成されたクロ ッ クを使用する場合は、 BUFG ク ロ ッ ク バッファーが必要です。 FIFO_WRCLK_OUT ク ロ ッ クは、 FIFO_RD_CLK へ直接接続可能です (HDL を使用)。 Vivado ツールを使用した場合は、 BUFG ク ロ ッ ク バッファーが自動的に挿入されます。
詳細は、 「High Speed SelectIO Wizard — 既知の問題リ ス ト 」 [参照 7] を参照して ください。
X-Ref Target - Figure 10
図 10 : シングル クロック インターフェイスの FIFO 処理
FIFO_WRCLK_OUT
Q[7:0]
FIFO_RD_CLKFIFO_RD_EN
FIFO_EMPTY
RXTX_BITSLICE_0
Q[7:0]
FIFO_RD_CLKFIFO_RD_EN
FIFO_EMPTY
RXTX_BITSLICE
Q[7:0]
FIFO_RD_CLKFIFO_RD_EN
FIFO_EMPTY
RXTX_BITSLICE
I/O Bank
Clock Input
Clock to PLL
Q[7:0]
FIFO_RD_CLKFIFO_RD_EN
FIFO_EMPTY
RXTX_BITSLICE
DQ
CLR
CEC
INIT = 0
FDCE
Clock from PLL orFIFO_WRCLK_OUT
Black = Output
Blue = Input
X15780-011516
I/O の開始シーケンス
XAPP1274 (v1.0) 2016 年 6 月 1 日 17japan.xilinx.com
I/O の開始シーケンス
ネイティブ SelectIO プリ ミ ティブを使用する UltraScale デバイスのデザインを開始するには、 決められた手順でリセッ トを リ リースする必要があ り ます。 このセクシ ョ ンでは、 リセッ ト を適用またはリ リースする前に必要な手順について説明します (図 11)。
リセッ トの適用
1. 使用するすべての RX_BITSLICES、TX_BITSLICES、および RXTX_BITSLICES に対して EN_VTC が High になっています。
2. SELF_CALIBRATE 属性は ENABLE に設定されています。
3. PLL に対して リセッ ト をアサート します。
4. RXTX_BITSLICE.TX_RST_DLY、 RXTX_BITSLICE.RX_RST_DLY、 TX_BITSLICE_TRI.RST_DLY、RXTX_BITSLICE.TX_RST、 RXTX_BITSLICE.RX_RST、 TX_BITSLICE_TRI.RST、 および BITSLICE_CONTROL.RST にリセッ ト を適用します。
5. 最小限の PLL リセッ ト アサート時間が経過するまで待機し、 その後リセッ ト を リ リースします。 このタイ ミ ングの詳細は、 『UltraScale デバイス データシート 』 [参照 2] の 「PLL」 を参照してください。
リセッ トのリ リース
1. 使用するすべての RX_BITSLICES、TX_BITSLICES、および RXTX_BITSLICES に対してすべての EN_VTC を High に維持す。
2. SELF_CALIBRATE 属性が ENABLE に設定されているこ とを確認します。
3. 次の順序に従って I/O を リセッ トから リ リースします。
a. インターフェイスのクロ ッ クを生成する PLL のリセッ ト を リ リースする。
b. PLL が LOCKED ステートに到達するまで待機する。
c. 次のプリ ミ ティブ (RXTX_BITSLICE.TX_RST_DLY、 RXTX_BITSLICE.RX_RST_DLY、TX_BITSLICE_TRI.RST_DLY、 RXTX_BITSLICE.TX_RST、 RXTX_BITSLICE.RX_RST、 TX_BITSLICE_TRI.RST、および BITSLICE_CONTROL.RST) のリセッ ト を リ リースする。
d. 少なく と もアプリ ケーシ ョ ン ク ロ ッ クの 64 サイクル以上 (PLL の仕様に基づく) 待機する。
e. CLKOUTPHYEN 信号を High にアサート して、 高速 PLL 出力の CLKOUTPHY を有効にする。
4. 次に示すリセッ ト後のシーケンスがこれに続きます。
X-Ref Target - Figure 11
図 11 : PLL およびリセッ ト ブリングアップ シーケンス
PLL.CLKOUTPHY = BITSLICE_CONTROL.PLL_CLK
PLL.CLKOUTPHYEN
PLL.LOCKED
BITSLICE_CONTROL.RST,RXTX_BITSLICE.TX_RST, TX_RST_DLY, RX_RST, and/or RX_RST_DLY
PLL.RST
PLL.CLKOUT0(interconnect DIV_CLK)
PLL.CLKIN
PLL Lock Time
X15912-032116
High Speed SelectIO Wizard
XAPP1274 (v1.0) 2016 年 6 月 1 日 18japan.xilinx.com
a. 使用するすべての BITSLICE_CONTROL プリ ミ ティブの DLY_RDY が High にアサート されるまで待機する。
b. すべての DLY_RDY が High にアサート された後、使用するすべての BITSLICE_CONTROL の EN_VTC を High にアサートする。 この機能を実行するには、 2 つのフ リ ップフロ ップを同期させる回路でレジスタ インターフェイス ユニッ ト (RIU) の RIU_CLK を使用する必要がある。
c. 使用するすべての BITSLICE_CONTROL の BITSLICE_CONTROL VTC_RDY ステータス出力が High にアサートされるまで待機する。
d. これで、 インターコネク ト ロジッ クのアプリ ケーシ ョ ンが リセッ トから リ リースされる。
5. ト ランス ミ ッ ターのファンクシ ョ ン モード ガイ ド ラインでは、 BITSLICE_CONTROL の TBYTE_IN[3:0] 入力を High にアサートするこ とが要求されています。 この場合、 VTC_RDY 信号とアプリ ケーシ ョ ン ク ロ ッ クで動作する 2 つのレジスタ同期化回路を使用します。
6. レシーバーのファンクシ ョ ン モード ガイ ド ラインでは、 BITSLICE_CONTROL の PHY_RDEN[3:0] 入力を High にアサートするこ とが要求されています。 この場合、 VTC_RDY 信号とアプリ ケーシ ョ ン ク ロ ッ クで動作する 2 つのレジスタ同期化回路を使用します。 FIFO のデータ読み出しについては、 「RX_BITSLICE に統合されている FIFO」 で説明する手順に従ってください。
注記 :送信専用インターフェイスでは、 PHY_RDEN[3:0] が Low にディアサート されている必要があ り ます。
High Speed SelectIO Wizard
『UltraScale アーキテクチャ SelectIO リ ソース ユーザー ガイ ド』 (UG571) [参照 1] の第 2 章および 「ネイティブ I/O の詳細」で説明したとおり、 ネイティブ I/O プリ ミ ティブを使用して高速 I/O インターフェイス (PHY) を構築できます。 ザイ リ ンクスでは、 UltraScale や UltraScale+ デバイスを使用する高速システム デザインにこれらの SelectIO プリ ミ ティブを統合する作業を簡潔にするため、 High Speed SelectIO Wizard の使用を推奨しています。 このウ ィザードは、 CORE Generator で提供されています [参照 6]。
GUI のコンフ ィギュレーシ ョ ン ツールによって、 High Speed SelectIO Wizard は最上位の Verilog ファ イルを作成し、 この中にはインスタンシエートおよび設定された I/O、 および UltraScale アーキテクチャの物理インターフェイスにあるネイティブ プリ ミ ティブ (RX_BITSLICE、 TX_BITSLICE、 RXTX_BITSLICE、 BITSLICE_CONTROL など) や PLL に関するピンの固定情報 (XDC) が含まれます。
このセクシ ョ ンでは、 High Speed SelectIO Wizard を使用して ト ランス ミ ッ ターおよびレシーバー インターフェイスを生成する方法を説明し、 またインターフェイスの制約をカスタマイズ、 生成、 セッ ト アップする方法とガイ ド ラインを示します。 インターフェイスのシ ミ ュレーシ ョ ン、 合成、 およびインプリ メンテーシ ョ ンに関わるさまざまな手順について説明します。
High Speed SelectIO Wizard を使用する場合、 インターフェイス要件 (インターフェイス スピード、 ク ロ ッ ク とデータの関係、 システム ク ロ ッ クの構造) や I/O プリ ミ ティブを I/O バンクへどのよ うに割り当てるべきかを把握している必要があり ます。 インターフェイス要件はデザインによって異なり、 プ リ ミ ティブに関する情報は 「付録 A」 で詳し く説明しています。
インターフェイスの設定および生成
High Speed SelectIO Wizard を使用してインターフェイスを設定および生成する場合は、 次の手順に従います。
コア生成前のセッ トアップ
1. デザインを格納するフォルダーを参照して、 リ ファレンス デザインと して ZIP ファ イルで提供されている ProjectGen.bat を実行します。 BAT ファ イルは、 この リ ファレンス デザインの作成に使用する IDE ツールのよ うなディ レク ト リ構造を作成します (図 12)。
2. エクスプローラー (Windows)、 Nautilus、 またはその他の機能 (Linux) を使用して、 デザイン プロジェク トが生成されるディ レク ト リの /Libraries フォルダーを参照します。 同様に、 コマンド ウ ィンド ウ (Windows またはターミナル ウ ィンド ウ (Linux)) を開いて、 このフォルダーを参照します。
High Speed SelectIO Wizard
XAPP1274 (v1.0) 2016 年 6 月 1 日 19japan.xilinx.com
ヒン ト : Windows の場合、 エクスプローラーで必要なフォルダーを検索し、 アドレス バーで右ク リ ッ ク して [コピー ] をク リ ッ ク します。 コマンド ウ ィンド ウをク リ ッ ク して 「cd」 と入力し、 右ク リ ッ クで [貼り付け] をク リ ッ ク します。 その後、 Enter キーを押します。
3. 新しいオリジナル デザインを生成する場合、 コマンド ウ ィンド ウ /ターミナルは空の /Libraries フォルダーを示します。 リ ファレンス デザインを使用する場合、 /Libraries フォルダーにはサブフォルダーが含まれており、 その中にデザイン ライブラ リ エレ メン トがすでに作成されています。
このアプリ ケーシ ョ ン ノートで説明するプロセス例では、 新しいオリジナル デザインの使用を前提と しています。
4. /Libraries フォルダーに、 /RxTx_Intrfce_Lib という名前のフォルダーを作成します。 リ ファレンス デザインでは、 すでにこのフォルダー名を使用しています。 オリジナルの ト ランス ミ ッ ター /レシーバーを作成するため、 別のサブディ レク ト リ名を選択します。 このフォルダーに、 High Speed SelectIO Wizard で作成された ト ランス ミ ッ ターやレシーバーのデザインを格納します。
5. コマンド ウ ィンド ウ /ターミナルで、 ディ レク ト リ を /RxTx_Intrfce_Lib フォルダーに移動します。
6. コマンド ウ ィンド ウ /ターミナルから Vivado ツールを起動 (Vivado と入力して Enter キーを押す) します。
7. [Manage IP] アイコンをク リ ッ ク してメニューから [New IP Location] をク リ ッ ク します。
8. [Create a New Customized IP Location] ウ ィンド ウが表示されます。 [Next] をク リ ッ ク します。
9. このウ ィンド ウで、 例と して次の情報を入力します。
° Part : xcvu095-ffva2104-2-e (active)
° Target Language : VHDL (High Speed SelectIO Wizard は Verilog コアしか生成しないが、 このオプシ ョ ンを使用する)
° Target Simulator :
° Simulator Language : Mixed
° IP Location : <Path_To_Core>/IoWizard_RxTxInterface/Libraries/RxTx_Intrfce_Lib/<sub-folder>。<sub-folder> の場所は次のとおりです。
- Rx_8Ch8b_Ssync_Intrfce : 8 チャネル、 8 ビッ ト レシーバーの場合
- Tx_8Ch8b_Ssync_Intrfce : 8 チャネル、 8 ビッ ト ト ランス ミ ッ ターの場合
図 12 に、 /Libraries に作成したフォルダーを示します。
10. [Finish] をク リ ッ ク します。 フォルダーがない場合は、 ダイアログ メ ッセージが表示されて作成するかど うか質問されます。 [OK] をク リ ッ ク します。
11. これで、 IP カタログが起動して、 作成されたすべてのファイルとフォルダーが Vivado ツールのサブフォルダー (開始した場所) に生成されます。
12. [Cores] タブの下で、 次を選択してダブルク リ ッ ク します。
[FPGA Features and Design] [IO Clocking] [High Speed SelectIO Wizard]
13. CORE Generator が開始します。
X-Ref Target - Figure 12
図 12 : /Libraries フォルダーに生成されたコア
X15782-010416
High Speed SelectIO Wizard
XAPP1274 (v1.0) 2016 年 6 月 1 日 20japan.xilinx.com
14. コアを設定する場合は、 「High Speed SelectIO Wizard コアの設定と生成」 へ進みます。
15. 設定完了後、 Vivado ツール ウ ィンド ウのタスク バーで次をク リ ッ ク します。
[File] [Close Project]
16. 新しいコアは同じライブラ リ フォルダーの下に生成できます。 最初のコアが ト ランス ミ ッ ターの場合、 次はレシーバー コアを生成します。
17. 手順 7 から再び開始して、 手順 15 まで完了します。
最初のプロジェク ト フォルダーは図 13 のよ うになり ます。
同じラ イブラ リ フォルダーに別のコアを作成する場合は、 生成するコアに対して手順 7 ~手順 15 を繰り返します。 異なるラ イブラ リにコアを生成する場合 (たとえば、 このデザインの VIO コア) は、 Vivado ツールを終了して、 手順 2 から開始します。 すでに生成されているコアには一連のフォルダーとファ イルがあ り ますが、 コアを生成する方法は複数あり ます。
このリ ファレンス デザインで使用する VIO コアを生成/再生成する場合は、 Vivado ツールを終了して、 手順 2 から開始します。 独自のライブラ リ フォルダー (Vio_Lib) に VIO コアを保存して、 VioCore という コア名を使用します。 VIO コアの詳しいガイ ド ラインは、 次の資料を参照して ください。
• 『Virtual Input/Output (VIO) v3.0 製品ガイ ド』 (PG159) [参照 3]
• 『ChipScope Pro 仮想 I/O (1.04a)』 (DS284) [参照 4]
• 『Vivado Design Suite ユーザー ガイ ド : プログラムおよびデバッグ』 (UG908) [参照 5]
X-Ref Target - Figure 13
図 13 :最初のプロジェク ト フォルダー
X16315-030616
High Speed SelectIO Wizard
XAPP1274 (v1.0) 2016 年 6 月 1 日 21japan.xilinx.com
既存コアの変更
1. Vivado ツールのメ イン ウ ィンド ウで [Manage IP] をク リ ッ ク してメニューから [Open IP Location] をク リ ッ ク します。
2. 変更が必要な IP コアがあるフォルダーを参照します。 このリ ファレンス デザインの場合は、 次のパスを使用します。
° <Path>\IoWizard_RxTxInterface\Libraries\RxTx_Intrfce_Lib\Rx_8Ch8b_Ssync_Intrfce\Rx_8Ch8b_Ssync_Intrfce
° <Path>\IoWizard_RxTxInterface\Libraries\RxTx_Intrfce_Lib\Tx_8Ch8b_Ssync_Intrfce\Tx_8Ch8b_Ssync_Intrfce
3. [Select] をク リ ッ ク します。
4. 変更するコアが左側の [Sources] ウ ィンド ウに表示されます。
5. コア名をダブルク リ ッ ク して、 High Speed SelectIO Wizard を開いて変更を開始します。
6. すべての変更が完了したら [OK] をク リ ッ ク して、 ツールによるコア生成を許可します。 この手順では、 [OK] を複数回ク リ ッ クする必要があ り ます。
High Speed SelectIO Wizard コアの設定と生成
「コア生成前のセッ ト アップ」 の手順 14 が完了した後、 High Speed SelectIO Wizard を使用して、 ト ランス ミ ッ ターまたはレシーバーを設定します。
High Speed SelectIO Wizard が画面に表示されているこ とを前提に説明します。
1. コアに有効な名前を与えます。 [Component Name] をク リ ッ ク して、 名前を入力します。 たとえば、 Component Name : Rx_8Ch8b_Ssync_Intrfce
2. High Speed SelectIO Wizard の最初のタブ シートで有効な選択項目については、 次のセクシ ョ ン (図 14 および図 15 を含む) を参照してください。 有効なオプシ ョ ンおよびそれらの機能について簡潔に説明しています。 これらの詳細は、 前のセクシ ョ ンまたは 『UltraScale アーキテクチャ SelectIO リ ソース ユーザー ガイ ド』 (UG571) [参照 1] を参照して ください。
3. [Configuration] タブでコアに関するすべての項目を選択した後、 [Pin Selection] タブへ移動します。
4. [Pin Selection] (タブ シート ) では、設定されたインターフェイス チャネルが選択した I/O バンクに配置/固定され、 「付録 A」 の図 30 のよ うに構造化されます。 背景情報およびデザインの最適なピン配置を実現するためのガイ ド ラインと して、 「付録 A」 を参照してください。
High Speed SelectIO Wizard
XAPP1274 (v1.0) 2016 年 6 月 1 日 22japan.xilinx.com
ウ ィザードにあるほかの GUI オプシ ョ ンを使用して生成できるクロ ッキング構造については、 「High Speed SelectIO Wizard のクロ ッキング構造」 で説明しています。
X-Ref Target - Figure 14
図 14 : High Speed SelectIO Wizard の設定画面 : 最初のタブの左側のパラメーター
X15783-040516
High Speed SelectIO Wizard
XAPP1274 (v1.0) 2016 年 6 月 1 日 23japan.xilinx.com
表 6 :図 14 のプルダウンおよびクリ ック ボックスの説明
選択項目 説明
クロッキング
Bus Direction
TX ONLY デザインには TX ピンのみ含まれます。
RX ONLY デザインには RX ピンのみ含まれます。
BIDIR、 TX + RX、TX + RX + BIDIR デザインには、 TX、 RX、 および双方向ピンが含まれます。
RX External Clock and Data
Edge DDR フ リーランニング ク ロ ッ ク とデータの位相が揃い、 クロ ッ クは GC/QBC ピンにのみ接続可能です。 到達するクロ ッ クは、 PLL 用のクロ ッ ク と して使用されます。
Center DDR Edge DDR と同じですが、 クロ ッ クはデータに対して 90°シフ ト されます。
ASYNC、 NONE、Fractional
データ と共に供給されるクロ ッ クはあ り ません。 現在サポート されているモードの詳細は、 『High Speed SelectIO Wizard 製品ガイ ド』 (PG188) [参照 6] を参照してください。
Edge DDR Strobe/Clock
供給されるデータ と ク ロ ッ クの位相が揃い、 そのクロ ッ クはデータ キャプチャに使用されますが、 PLL には使用されません。 クロ ッ クは、 I/O バンク内の任意の QBC/DBC ピンに適用されます。
Center DDR Strobe/Clock Edge DDR strobe と同じですが、 データに対してクロ ッ クの位相が 90°シフ ト されます。
PLL Clock Source
GC pinク ロ ッ クは GC ピンに到達し、 PLL 用の入力クロ ッ ク と して使用されます。 レシーバーで、 Edge DDR または Center DDR が外部クロ ッ ク と して選択されている場合、 このオプシ ョ ンはグレイアウ ト表示されます。
Fabric (BUFG で駆動)インターコネク ト ロジッ ク内の PLL 用クロ ッ クを生成し、 BUFG を介して PLL ク ロ ック入力に供給されます。
Interface Speed インターフェイスのデータ レート (Mb/s) を指定します。
PLL CLK Input Frequency (MHz)リ ス トの中から PLL 入力クロ ッ クを選択します。 通常は自動的に適切な値が入力されます。 Edge DDR または Center DDR が選択されている場合、 選択されるクロ ッ クはデータ レートの 1/2 になり ます。
PLL0 CLKOUT0 (MHz) PLL0 の CLKOUT0 の周波数を選択します。 このクロ ッ クの周波数は、 data_rate/シ リ アライズ係数とな り ます。
PLL がコア内またはサンプル デザイン内のいずれに含まれるかを選択します。
Generate RIU Clock for PLL
RIU ク ロ ッ クは異なるソースから供給可能です。RIU ク ロ ッ ク入力の有効なソースの 1 つに、 BITSLICE.CONTROL.PLL_CLK ク ロ ッ クを生成する PLL を使用する方法があ ります。 このオプシ ョ ンをオンにする と、 PLL がコアまたはサンプル デザインのいずれに含まれるかを選択するオプシ ョ ンが有効になり ます。
Enable PLL0 CLKOUT1 (MHz)インターコネク ト ロジッ クで利用できる PLL の 2 つ目のクロ ッ ク出力を有効にします。 ド ロ ップダウン リ ス トから ク ロ ッ ク周波数を選択、 または自動的に計算された周波数 (データ レートの 1/4) を使用します。
Enable FIFO WRITE CLKOUT インターコネク ト ロジッ クへの出力と して、 内部の RX_BITSLICE の FIFO 書き込みクロ ッ クを提供します。
その他
FIFO Read Enable User Control
このオプシ ョ ンは、 各チャネルで使用される BITSLICE に対してユーザーが制御できる FIFO イネーブル ピンを 1 つ提供します。
このオプシ ョ ンがオフの場合、 コアは FIFO_EMPTY が解除される とすぐに、 使用されている FIFO を有効にします。
オンの場合、 生成されたインターフェイスの 1 つまたは複数の FIFO の有効または無効をユーザーが判断します。
High Speed SelectIO Wizard
XAPP1274 (v1.0) 2016 年 6 月 1 日 24japan.xilinx.com
Append Pin Numbers to I/Os オンの場合、 生成されたコアのピン名にニブル内の BITSLICE 位置の値が追加されます。
RIU Interfaceレジスタ インターフェイス ユニッ ト (RIU) を有効にします。マイ クロコン ト ローラー /ステート マシンのアクセス ポートの詳細は、 『UltraScale アーキテクチャ SelectIO リソース ユーザー ガイ ド』 (UG571) [参照 1] を参照して ください。
Enable BitSlip レシーバーでのみ有効です。 ロジッ クに実装されたビッ ト単位ス リ ップと して動作するビッ ト ス リ ップ ステート マシンを有効にします。
Bitslip Mode [Enable BitSip] がオンの場合のみ有効です。
Bitslip Training Pattern
[Enable BitSip] がオンの場合のみ有効です。
受信した BITSLICE 出力内で、 ビッ ト ス ト リーム ステート マシンが検出すべき値を入力します。 パターンが検出される と、 ビッ ト ス リ ップの出力がパターンにロ ッ ク され、新し く受信するデータが確実にニブルまたはバイ ト アラインされます。
Data 3-State
双方向データ ピン用の ト ライステート制御を設定します。
Combinatorialト ランス ミ ッ ター コアでのみ有効です。
BITSLICE の T ピンを使用します。 このピンは、 IOBUF の T ピンをデバイス ロジッ クに直接接続して、 ト ラ イステート ブロ ッ ク と して機能します。
Serialized
ト ランス ミ ッ ター コアでのみ有効です。
TBYTE_IN[3:0] バスを使用して、 シ リ アル出力ス ト リームでビッ ト単位の ト ライステート制御を実行します。 この機能の詳細は、 『UltraScale アーキテクチャ SelectIO リソース ユーザー ガイ ド』 (UG571) [参照 1] を参照して ください。
Strobe 3-State
ス ト ローブ ピンの ト ライステート制御を設定します。
Combinatorialト ランス ミ ッ ター コアでのみ有効です。
BITSLICE の T ピンを使用します。 このピンは、 IOBUF の T ピンをインターコネク ト ロジッ クに直接接続して、 ト ラ イステート ブロ ッ ク と して機能します。
Serialized
ト ランス ミ ッ ター コアでのみ有効です。
TBYTE_IN[3:0] バスを使用して、 シ リ アル出力ス ト リームでビッ ト単位の ト ライステート制御を実行します。 この機能の詳細は、 『UltraScale アーキテクチャ SelectIO リソース ユーザー ガイ ド』 (UG571) [参照 1] を参照して ください。
表 6 :図 14 のプルダウンおよびクリ ック ボックスの説明 (続き)
選択項目 説明
High Speed SelectIO Wizard
XAPP1274 (v1.0) 2016 年 6 月 1 日 25japan.xilinx.com
X-Ref Target - Figure 15
図 15 : High Speed SelectIO Wizard の設定画面 : 最初のタブの右側のパラメーター
X15784-040516
High Speed SelectIO Wizard
XAPP1274 (v1.0) 2016 年 6 月 1 日 26japan.xilinx.com
表 7 :図 15 のプルダウンおよびクリ ック ボックスの説明
選択項目 説明
データおよび遅延
BITSLICE Serialization Factor
汎用インターコネク トへのパラレル データ入力、 または汎用インターコネク トからのパラレル データ出力です。 有効な値は 4 および 8 です。 インターコネク ト ロジッ クのクロ ッ ク周波数を指定します。
4 ビッ ト レシーバー = キャプチャ ク ロ ッ クの 1/28 ビッ ト レシーバー = キャプチャ ク ロ ッ クの 1/4
4 ビッ ト ト ランス ミ ッ ター = CLKOUTPHY の 1/48 ビッ ト ト ランス ミ ッ ター = CLKOUTPHY の 1/8
RX Delay CascadeIDELAY 遅延ラインのカスケード接続を有効にします。 双方向インターフェイスの場合はサポート されていません。 遅延カスケード接続は、 500Mb/s またはそれ以上で動作するインターフェイスには推奨していません。
RX Delay Type
FIXED 固定の遅延値が RX データに適用されます。
VARIABLE 与えられた遅延値は、 遅延制御入力 CE、 CLK、 LD、 および INC を使用してインク リメン ト /デク リ メン ト可能です。
VAR_LOAD 与えられた遅延値は、 CNTVALUEIN に指定した値および制御入力 CE、 CLK、 LD、 および INC を使用してインク リ メン ト /デク リ メン ト可能です。
RX Delay Value (ps)
入力遅延ラインに適用される固定値です。 1.250ns まではカスケード接続されず、 最大 2.5ns までカスケード接続されます。
双方向インターフェイスの場合は、 入力遅延ラインの種類と出力遅延ラインの種類が同じになる必要があ り ます。
TX Delay Type
FIXED TX データに適用される固定値です。
VARIABLE 与えられた遅延値は、 遅延制御入力 CE、 CLK、 および INC を使用してインク リ メン ト/デク リ メン ト可能です。
VAR_LOAD 与えられた遅延値は、 CNTVALUEIN に指定した値および制御入力 CE、 CLK、 LD、 および INC を使用してインク リ メン ト /デク リ メン ト可能です。
TX Delay Value (ps)入力遅延ライン (最大 1.250ns) に適用される固定値です。 この値は、 デフォルトで 1 に設定されています。 1 に設定されている場合、 すべての出力の同期ト グルが揃えられます。
Clock Forward Phase TX ピンでのみ有効です (有効値 : 0、 90)。 ク ロ ッ ク フォワード と TX データ間の位相を設定します。
I/O Standard
Bank 選択したデバイスで有効なすべての HP (High Performance) バンク と HR (High Range) バンクのリ ス トから I/O バンクを 1 つ選択します。
Differential I/O Std XDC ファ イルに I/O 規格の制約を設定します。
Differential Termination
リ ス トから値を選択します。 選択した I/O 規格の有効な値は、 『UltraScale アーキテクチャ SelectIO リ ソース ユーザー ガイ ド』 (UG571) [参照 1] を参照してください。
Differential TX Pre-Emphasis
Differential RX Equalization
Single IO Std XDC ファ イルに I/O 規格の制約を設定します。
Single Ended Termination
リ ス トから値を選択します。 選択した I/O 規格の有効な値は、 『UltraScale アーキテクチャ SelectIO リ ソース ユーザー ガイ ド』 (UG571) [参照 1] を参照してください。
Single Ended TX Pre-Emphasis
Single Ended RX Equalization
High Speed SelectIO Wizard
XAPP1274 (v1.0) 2016 年 6 月 1 日 27japan.xilinx.com
このセクシ ョ ンでは、 High Speed SelectIO Wizard の GUI を使用して、 ト ランス ミ ッ ター コアとレシーバー コアのインターフェイスを設定するオプシ ョ ンについて説明します。 図 16 に、 次の要件を満たすレシーバー / ト ランス ミ ッ ター インターフェイスの構築に必要な情報を示しています。
• 8 ビッ トのデータ チャネルが 8 本と 90°位相シフ ト したフ リー ランニング ク ロ ッ クを使用する 1250Mb/s ソース同期レシーバー。
• 8 ビッ トのデータ チャネルが 8 本と 90°位相シフ ト したフ リー ランニング ク ロ ッ クを使用する 1250Mb/s ト ランスミ ッ ター。
• RIU インターフェイス と CLKOUT1 がある。
• レシーバーと ト ランス ミ ッ ターは同じ I/O バンクに配置される必要がある。
• ト ランス ミ ッ ターは、 インターコネク ト ロジッ ク内から供給されるクロ ッ クで駆動される。
• レシーバー (表 8) と ト ランス ミ ッ ター (表 9) が異なるデータ レートで動作できる。 この最後の要件は、 生成された HDL コードを使用して、 1 つの I/O バンクにある両方の PLL を使用するよ うに変更する必要がある。
• 生成された リ ファレンス デザインでは、 リ ス ト されているすべてのオプシ ョ ンが使用されるわけではない。
X-Ref Target - Figure 16
図 16 : レシーバーおよびト ランスミ ッ ター インターフェイスの要件
表 8 : レシーバーの要件
Component Name Wix_8ch8b_Rx_Intrfce
Bus Direction RX_ONLY
Serialization Factor 8
RX External Clock and Data Center DDR Strobe です。 入力されるクロ ッ クを使用してデータをキャプチャします。
PLL Clock Source GC ピン (PLL 用のクロ ッ ク入力)
Interface Speed 1250Mb/s
PLL Clock Input 625MHz (自動選択のため、 グレイアウ ト されている )
PLL0 CLKOUT0 156.25MHz (自動計算)
Enable PLL0 CLKOUT1 オンにして、 ク ロ ッ ク スピード (312.5MHz) を入力します。
RIU Interface オンにします。
RX Delay Type FIXED
RX Delay Value 0
Bank 68
Data[7:0]
Clock
Data[7:0]
Clock
Receiver
RxClkIn
DO[63:0]
RIU port
ClkOut
Transmitter
TxClkOut
DI[63:0]
RIU port
ClkIn
ClkOut
Logic Implemented in
Interconnect Logic
ClkOut = CLKOUT of PLL
QO(7)QO(6)QO(5)QO(4)QO(3)QO(2)QO(1)QO(0)
DI(7)DI(6)DI(5)DI(4)DI(3)DI(2)DI(1)DI(0)
X15785-012516
High Speed SelectIO Wizard
XAPP1274 (v1.0) 2016 年 6 月 1 日 28japan.xilinx.com
すべてのデータを入力後、 [OK] をク リ ッ ク して、 Vivado ツールによるインターフェイスの HDL 生成を許可します s 。 新しいポップアップ メニューで [Generate] をク リ ッ ク します。
すべてのデータを入力後、 [OK] をク リ ッ ク して、 Vivado、 Vivado ツールによるインターフェイスの HDL 生成を許可します。 新しいポップアップ メニューで [Generate] をク リ ッ ク します。
ト ラス ミ ッ ターとレシーバーの両方に対して、 このプロセスを行ってください。 必要な場合には、 VIO コアに対しても このプロセスを行ってください。 この段階ですべての IP コアが生成されますが、 こ こでは上記のコアを使用するデザインが必要です。 すべてのコアを使用する最上位デザインについては、 次のセクシ ョ ンで説明します。
High Speed SelectIO Wizard コアを使用する最上位デザイン
1. エクスプローラー (Windows)、 Nautilus、 またはその他の機能 (Linux) を使用して、 デザイン プロジェク トが生成されるディ レク ト リの /Vivado フォルダーを参照します。 同様に、 コマンド ウ ィンド ウ (Windows またはターミナル ウ ィンド ウ (Linux)) を開いて、 同じディ レク ト リ を参照します。
2. 新しいオリジナル デザインを生成する場合、 コマンド ウ ィンド ウ /ターミナルは空の /Vivado フォルダーを示します。 リ ファレンス デザインを使用する場合は、 /Vivado フォルダーにサブフォルダーがあ り、 その中にデザインが含まれています。
3. こ こでは、 新しいデザインを使用するこ とを前提と します。
4. /Vivado フォルダーを指しているコマンド ウイン ド ウ /ターミナルで、 「vivado」 と入力して Vivado ツールを起動します。
Differential I/O Std [Pin Selection] タブ (2 つ目のタブ) で提供されます。XDC または HDL では、差動 I/O 規格であるこ とを示す必要があ り ます。
Pin Selection 2 つ目のタブの Byte_2 と byte_3。
[Center DDR/GC] が選択されている場合、 クロ ッ ク入力は byte_2 の QBC/GC 入力に固定されるため、 選択できません。
データ入力 : byte_2 に 4 チャネル、 byte_3 に 4 チャネル
表 9 : ト ランスミ ッ ターの要件
Component Name Wix_8ch8b_Tx_Intrfce
Bus Direction TX ONLY
Serialization Factor 8
PLL Clock Source インターコネク ト ロジッ ク
Interface Speed 1250Mb/s
PLL Clock Input 125MHz
PLL0 CLKOUT0 156.25MHz
Enable PLL0 CLKOUT1 オンにして、 ク ロ ッ ク スピード (312.5MHz) を入力します。
RIU Interface オンにします。
TX Delay Type FIXED
TX Delay Value 1
Clock Forward Phase 90
Bank 68
Differential I/O standards 2 つ目のタブ ([Pin Selection]) に提供されています。 XDC または HDL では、差動 I/O 規格であるこ とを示す必要があ り ます。
Pin selection 2 つ目のタブの Byte_0 と Byte_1。
DBC 差動ピンが選択されて、 ク ロ ッ ク出力 (フォワード ク ロ ッ ク ) と して機能します。byte_0 に 4 つのデータ チャネル、 byte_1 に 4 つのデータ チャネルがあ り ます。
表 8 : レシーバーの要件 (続き)
High Speed SelectIO Wizard
XAPP1274 (v1.0) 2016 年 6 月 1 日 29japan.xilinx.com
5. Vivado ツールが起動した後、 1 つまたは複数の SelectIO インターフェイスを追加するには、 新規プロジェク ト を作成するか、 または既存プロジェク ト を開きます。 この例は、 新規プロジェク トが作成されるこ とを前提と しています。
6. すでに Vivado プロジェク トがある場合は、 次の手順にしたがってプロジェク ト を開いてください。
a. メ イン ページで [Open Project] を選択します。
b. <file_name>.xpr ファ イルが表示されるまでスクロールダウンします。
c. ファ イルを選択して [OK] をク リ ッ ク します。
7. 既存プロジェク トがない場合、 つま り新規プロジェク ト を作成する場合は、 Vivado ツールのスタート画面で [Create New Project] をク リ ッ ク します。
a. [Next] をク リ ッ ク します。
b. プロジェク ト名を入力します。
c. プロジェク トの場所を確認します。 場所が正し くない場合は、 変更します。
ヒン ト : 新規プロジェク ト を作成する際は、 作成したプロジェク ト を管理するサブフォルダーを作成するために、 ボッ クス (Vivado ツール) にチェッ クを入れてください。 サブフォルダーを利用する と、 同じプロジェク ト /デザインの異なるバージ ョ ンをテス トする場合に非常に有効です。
d. [Next] をク リ ッ ク します。
e. 次のページで、 [RTL Project] をオンにします。
f. [Add Sources] ウ ィンド ウが表示されます。
- + をク リ ッ ク して [Add Files] をク リ ッ ク します。
- 図 17 のよ うな画面になるまで、 ウ ィンド ウにファイルを追加します。
- 図 17 に示す各ファイルにライブラ リ を設定するこ とを忘れないでください。
g. [Next] をク リ ッ ク します。
h. [Add Existing IP (optional)] ウ ィンド ウが表示されます。
- すでに生成済みのコア ( ト ランス ミ ッ ター、 レシーバー、 VIO) を追加します。
- + をク リ ッ ク して [Add Files] をク リ ッ ク します。
- 図 18 のよ うな画面になるまで、 ウ ィンド ウにファイルを追加します。
X-Ref Target - Figure 17
図 17 : [Add Sources] ウィンドウのフォルダー例
X16325-030816
High Speed SelectIO Wizard
XAPP1274 (v1.0) 2016 年 6 月 1 日 30japan.xilinx.com
i. [Next] をク リ ッ ク します。
j. [Add Constraints (optional)] ウ ィンド ウが表示されます。
- リ ファレンス デザインの制約ファイルは /Constraints フォルダーにあ り ます。 使用する場合は、 こ こに追加して ください。
- + をク リ ッ ク して [Add Files] をク リ ッ ク します。
- ファ イルが追加される と、 図 19 のよ うな画面になり ます。
k. [Next] をク リ ッ ク します。
l. UltraScale デバイスを選択します。 この例では、 XCVU095-FFVA2104 (-2 speed grade) が選択されています。 このデバイスは、 開発ボードにも適用できます。
m. [Finish] をク リ ッ ク します。
8. Vivado ツールによって必要なファイルとフォルダーが生成され、 デザイン入力モードにな り ます。
9. [Run Synthesis]、 [Run Implementation]、 および [Generate Bitstream] をク リ ッ ク します。
X-Ref Target - Figure 18
図 18 : [Add Existing IP] ウィンドウのフォルダー例
X16326-030816
X-Ref Target - Figure 19
図 19 : [Add Constraints] ウィンドウのフォルダー例
X16327-030816
High Speed SelectIO Wizard
XAPP1274 (v1.0) 2016 年 6 月 1 日 31japan.xilinx.com
図 20 に、 Vivado IDE ツールの [Sources] ウ ィンド ウの例を示します。 図 21 には、 作成したフォルダーの例を示します。
X-Ref Target - Figure 20
図 20 : Vivado ツールの [Sources] ウィンドウ
X15786-030816
High Speed SelectIO Wizard
XAPP1274 (v1.0) 2016 年 6 月 1 日 32japan.xilinx.com
この段階で、High Speed SelectIO Wizard で生成されたレシーバーと ト ランス ミ ッ ターの両インターフェイス (と VIO コア) およびその他のデザイン ファ イルが合成されて、 UltraScale デバイスに実装されました。
図 22 に、 リ ファレンス デザインのブロッ ク図を示します。 図 22 は、 生成済みのサンプル インターフェイス とその他の要件 (図 16) に基づいて、High Speed SelectIO Wizard を使用してハード ウェアに構築した 2 つのインターフェイスのブロ ック図を示しています。
X-Ref Target - Figure 21
図 21 : コア生成後の IP および Vivado ツールのフォルダー
In the Vivado project a .runs and .srcs folder are added.
Prbs_Lib contains a PRBS generator and checker design that will be instantiated in the VHDL top level source code.
RxTx_Intrfce_Lib contains the SelectIO Wizard generated transmitter and receiver IP cores.
Vio_Lib contains a, copied from a previous project, debug IP core generated from the IP Catalog.
X15787-012516
High Speed SelectIO Wizard
XAPP1274 (v1.0) 2016 年 6 月 1 日 33japan.xilinx.com
インターフェイスの実装
生成された IP コアは、 VHDL で記述されたこのデザインの最上位 HDL ファ イルにインスタンシエート されます。 このセクシ ョ ンでは、 合成と実装を行う前に最上位 VHDL ファ イルと最上位 XDC ファ イルの生成方法について説明します。
1. テキス ト エディ ターを使用して、 新しい HDL ファ イルを開きます。
° 最上位 VHDL ソース コードは、 プロジェク トのルート フォルダーの下にある /Vhdl フォルダーに格納されています
° High Speed SelectIO Wizard で生成されたファイルおよび最上位デザイン (.xdc、 .vho) の完成に必要なファイルは、 /Libraries サブフォルダーの下の IP コア フォルダーにあ り ます。
2. このアプリ ケーシ ョ ン ノートで使用する リ ファレンス デザインの最上位 HDL ファ イルには、 IP コアがどのよ うにインスタンシエート されているか、 またコア間に追加されているソース コードの詳細、 その他デザインに必要な項目の詳細が記述されています。
3. HDL ファ イル以外にも、デザインには制約 (ピン配置、 タイ ミ ング) ファ イルが必要です。 High Speed SelectIO Wizard は、 生成する各コアの制約ファイルを生成します。 生成された XDC ファ イルには、 ト ランス ミ ッ ター チャネルとレシーバー チャネルに入力した情報に基づく ピン配置が含まれています。
4. 生成された XDC ファ イルをテキス ト エディ ターで開いて、 その内容をデザインの最上位 XDC ファ イルにコピーします。 リ ファレンス デザインの場合、 IP コアの XDC ファ イルは次のライブラ リの場所にあ り ます。
../Libraries/RxTx_Intrfce_Lib/Rx_8Ch8b_Ssync_Intrfce/Rx_8Ch8b_Ssync_Intrfce.xdc
../Libraries/RxTx_Intrfce_Lib/Tx_8Ch8b_Ssync_Intrfce/ Tx_8Ch8b_Ssync_Intrfce.xdc
5. Vivado プロジェク トに、 タイ ミ ングなどその他の制約を含む最上位デザイン XDC ファ イルを追加します。 タイ ミ ングやその他の制約と共に、 High Speed SelectIO Wizard コアと生成された XDC ファ イルの両方の内容をコピーします。
a. ポート表示を、 最上位デザインで使用されているポート表示に変更します。 たとえば、 生成されたコアのクロ ック入力の名称は clkin_p ですが、 最上位 HDL デザインでは ClkIn_p_pin という ピン名を使用しています。コピーした構文の表示を変更して ください。
a. IOSTANDARD、 オンチップ終端、 さ らに必要に応じて BIAS/イコライゼーシ ョ ンを定義します。
X-Ref Target - Figure 22
図 22 : High Speed SelectIO Wizard で生成されたレシーバーおよびト ランスミ ッ ター インターフェイス
RegReg
/8
Data Data Data Data Data Data Data
Clock
/8/8/8
/8/8
/8
/8
01010101
Transmitter Receiver
PLL
/8/8/8
/8/8
/8/8
PLLClock
RegRegRegRegReg
TX_Chan_0 transmits PRBSTX_Chan_0 → RX_Chan_0TX_Chan_1 → RX_Chan_1…………….…………….TX_Chan_7 → RX_Chan_7RX_Chan_7 → checks PRBS
PRBS Generator
PRBS Checker
Register pipeline for the receiver and for the transmitter.
RegReg
/8/8RegReg /8RegReg
RegRegReg
/8/8
/8/8
N-deep pipeline N-deep pipeline
Data /8/8/8
X15946-050816
リファレンス デザイン
XAPP1274 (v1.0) 2016 年 6 月 1 日 34japan.xilinx.com
ヒン ト : [pin names] 列 (2 つ目のタブ) の表示は、 生成されたコア ファ イルに変換されません。 生成されたファイルのピン表示と最上位デザインで使用されている表示を必ず確認して ください。
6. デザインを合成して実装します。
リファレンス デザイン
このアプリ ケーシ ョ ン ノートの リ ファレンス デザイン ファ イルは、 ザイ リ ンクスのウェブサイ トからダウンロードできます。
表 10 に、 リ ファレンス デザインの詳細を示します。
表 10 : リファレンス デザインの詳細
パラメーター 説明
全般
開発者 Jim Tatsukawa、 Marc Defossez
ターゲッ ト デバイス UltraScale FPGA
ソース コードの提供 あ り
ソース コードの形式 VHDL および Verilog
既存のザイ リ ンクス アプリ ケーシ ョ ン ノート / リ ファレンス デザイン、 またはサードパーティからデザインへのコード /IP の使用
あ り
シミ ュレーシ ョ ン
論理シ ミ ュレーシ ョ ンの実施 あ り
タイ ミ ング シ ミ ュレーシ ョ ンの実施 なし
論理シ ミ ュレーシ ョ ンおよびタイ ミ ング シ ミ ュレーシ ョ ンでのテス トベンチの利用
あ り
テス トベンチの形式 VHDL および Verilog
使用したシ ミ ュレータ /バージ ョ ン QuestaSim_10.3d
SPICE/IBIS シ ミ ュレーシ ョ ンの実施 なし
インプリ メンテーシ ョ ン
使用した合成ツール/バージ ョ ン Vivado 2015.4 またはそれ以降
使用したインプリ メンテーシ ョ ン ツール/バージ ョ ン Vivado 2015.4 またはそれ以降
スタティ ッ ク タイ ミ ング解析の実施 あ り
ハードウェア検証
ハードウェア検証の実施 あ り
使用したハード ウェア プラ ッ ト フォーム KCU105 および VCU108
リファレンス デザイン
XAPP1274 (v1.0) 2016 年 6 月 1 日 35japan.xilinx.com
リファレンス デザインのディレク ト リ構造
図 23 に、 リ ファレンス デザインのディ レク ト リ構造を示します。
X-Ref Target - Figure 23
図 23 :ディレク ト リ構造
Global design constraints files (XCD files)
Extra design documentation
Source code, VHDL, libraries.Libraries are defining instantiable components.Components generated as source code or as IP through a wizard (SelectIO Wizard in this case)
Generated through a wizard.
Scripts to run simulation with Questa-Sim (.do files)
Results of a running simulation are stored here
Top level source code and VHDL files used for simulation
Xilinx device implementation.
X15887-011516
リファレンス デザイン
XAPP1274 (v1.0) 2016 年 6 月 1 日 36japan.xilinx.com
High Speed SelectIO Wizard のクロッキング構造
図 25 ~図 28 に、 High Speed SelectIO Wizard で使用されるクロ ッキング構造をいくつか紹介します。
X-Ref Target - Figure 24
図 24 :ディレク ト リ構造
Prbs_Lib contains a PRBS generator and checker design that is instantiated in the VHDL top level source code.
RxTx_Intrfce_Lib contains the high-speed SelectIO Wizard generated transmitter and receiver IP cores.
Vio_Lib contains a debug IP core generated from the IP catalog.
Vivado project for the top-level design implementation.
X16328-052516
リファレンス デザイン
XAPP1274 (v1.0) 2016 年 6 月 1 日 37japan.xilinx.com
黒色のクロ ッ ク ラインは、 PLL の CLKIN 入力へ接続する FPGA 内のクロ ッ ク パスを示しています。 オレンジ色のクロ ック ラインは、データ キャプチャ用のクロ ッ ク パスを示しています。 ク ロ ッ ク入力ピン GC/QBC はデュアル ファンクシ ョンと して使用され、 PLL 用のグローバル ク ロ ッ ク (GC) 入力と して、 また 1 つの I/O バンクの 4 バイ ト (QBC) にあるデータをキャプチャするためのデータ キャプチャ ク ロ ッ ク入力と して機能します。
X-Ref Target - Figure 25
図 25 : RX Only—Center/Edge DDR インターフェイス
ASSP or other XILINX FPGA
Data
Data
Data
Clock
RX_BITSLICE
RX_BITSLICE
RX_BITSLICE
RX_BITSLICE
BITSLICE_C
ON
TRO
LBITSLIC
E_CO
NTR
OL
PLL
By design fixed GC/QBC pin of lower nibble in Byte_2 is used. PLL is always included in the IP core
RX ONLYCenter/Edge DDRGC Pin (grayed out)Include PLL in core (grayed out)
X16803-041516
X-Ref Target - Figure 26
図 26 : RX Only—Center/Edge DDR Clock/Strobe (グローバル クロック オプシ ョ ン付き)
RX ONLYCenter/Edge DDR Clock/StrobeGC PinInclude PLL in core (grayed out)
ASSP or other XILINX FPGA
Data
Data
Clock/Strobe
Clock
RX_BITSLICE
RX_BITSLICE
RX_BITSLICE
RX_BITSLICE
BITSLICE_C
ON
TRO
LBITSLIC
E_CO
NTR
OL
PLL
Must be connected to a QBC or DBC pin PLL is always included in the IP core
By design fixed GC/QBC pin of lower nibble in Byte_2 is used.
X16804-041516
リファレンス デザイン
XAPP1274 (v1.0) 2016 年 6 月 1 日 38japan.xilinx.com
図 25 で示す黒色とオレンジ色のラインは、 図 27 では異なるクロ ッ クを示しています。
グローバル ク ロ ッ ク ピンはシングル ファンクシ ョ ンと して使用され、 データ キャプチャ ク ロ ッ クまたはス ト ローブは I/O バンクのも う一方のクワッ ドまたはバイ ト ク ロ ッ ク入力のいずれか 1 つに接続される必要があ り ます。
クワ ッ ド バイ ト ク ロ ッ ク (QBC) 入力に供給されるクロ ッ クは、1 つの I/O バンクの 4 バイ トすべてのデータをキャプチャするために使用されます。
専用バイ ト ク ロ ッ ク (DBC) 入力に供給されるクロ ッ クまたはス ト ローブは、 ピンが配置されているバイ トのデータをキャプチャする場合のみ使用されます。
X-Ref Target - Figure 27
図 27 : RX Only—Center/Edge DDR Clock / Strobe (ファブリ ック クロック オプシ ョ ン付き)
ASSP or other XILINX FPGA
Data
Data
Data
Clock/Strobe
RX_BITSLICE
RX_BITSLICE
RX_BITSLICE
RX_BITSLICE
BITSLICE_C
ON
TRO
LBITSLIC
E_CO
NTR
OL
PLL
PLL can be included in the IP core (or not)Connect clock or strobe toQBC/DBC pins
Fabric driven by BUFGoption is selected.
Clock
RX onlyCenter/Edge DDR Clock/StrobeInterconnect Logic Clock SourceInclude PLL in core selected
X16805-041516
リファレンス デザイン
XAPP1274 (v1.0) 2016 年 6 月 1 日 39japan.xilinx.com
ト ランス ミ ッ ター インターフェイスの各出力は、 クロ ッ クまたはス ト ローブを生成するために使用されます。 ク ロ ッ クを最も簡単に生成するには、 つま り 50/50 ク ロ ッ クを生成するには、 TX_BITSLICE の入力を固定パターンに接続します。
ヒン ト : TX_BITSLICE の D0 入力は、 最初のシ リ アル ビッ ト と して出力されます。
High Speed SelectIO Wizard のリセッ ト シーケンス
リセッ ト シーケンス (図 29) については、『UltraScale アーキテクチャ SelectIO リ ソース ユーザー ガイ ド』 (UG571) [参照 1] を参照して ください。 このシーケンスは、 High Speed SelectIO Wizard に適用されます。
X-Ref Target - Figure 28
図 28 : TX Only インターフェイス
ASSP or other XILINX FPGA
Data
Data
Data
Clock
TX_BITSLICE
TX_BITSLICE
TX_BITSLICE
TX_BITSLICE
BITSLICE_C
ON
TRO
LBITSLIC
E_CO
NTR
OL
Clock
PLL
When fabric clock is selected, PLLcan be included in the IP core (or not)
“GC pin” option is selected.The GC/QBC pin of the lower nibble in Byte_2 is used(No other option possible).
TX only GC Pin / Fabric Clock Source
“Include PLL in core” or not
X16806-041516
リファレンス デザイン
XAPP1274 (v1.0) 2016 年 6 月 1 日 40japan.xilinx.com
X-Ref Target - Figure 29
図 29 : リセッ ト シーケンス
For all used BITSLICEsRXTX_BITSLICE.EN_VTC = High
For all used BITSLICE_CONTROL set the attribute SELF_CALIBRATE = ENABLE
Assert PLL.RESETPull PLL.CLKOUTPHYEN = Low
Assert RXTX_BITSLICE.TX_RST_DLY, RXTX_BITSLICE.RX_RST_DLY,TX_BITSLICE_TRI.RST_DLY, RXTX_BITSLICE.TX_RST,
RXTX_BITSLICE.RX_RST,TX_BITSLICE_TRI.RST, and/or BITSLICE_CONTROL.RST
Wait for PLL.LOCKED to go High
Release PLL.RESET
Release RXTX_BITSLICE.TX_RST_DLY, RXTX_BITSLICE.RX_RST_DLY,TX_BITSLICE_TRI.RST_DLY, RXTX_BITSLICE.TX_RST,
RXTX_BITSLICE.RX_RST,TX_BITSLICE_TRI.RST, and/or BITSLICE_CONTROL.RST
Wait for minimum 64 application, RIU or FIFO_RD_CLK clock cycles
Pull PLL.CLKOUTPHYEN = High
For all used BITSLICE_CONTROL wait until BITSLICE_CONTROL,DLY_RDY = High
For all used BITSLICE_CONTROLBITSLICE_CONTROL.EN_VTC = Low
Pull BITSLICE_CONTROL.EN_VTC = High for all used BITSLICE_CONTROL
To do this, use a two stage, RIU clock clocked flip-flop synchronizer.
If multiple PLL or PLL and MMCM are used, wait until LOCKED of all are High
Wait for all BITSLICE_CONTROL.VTC_RDY to go High
Release RESET of the application
Start
Settings
RESET
Bring-up
PostBring-up
Monitor and when not High after time out, apply reset
A
A
Monitor and when not High after time out, apply reset A
X16807-041516
まとめ
XAPP1274 (v1.0) 2016 年 6 月 1 日 41japan.xilinx.com
BitSlip
ザイ リ ンクスのアプリ ケーシ ョ ン ノート 『ロジッ クでの Bitslip 機能 』 (XAPP1208) [参照 8] で、ネイティブ I/O プリ ミ ティブでのビッ ト ス リ ップ機能について詳し く説明しています。
まとめ
このアプリ ケーシ ョ ン ノートおよび 『UltraScale アーキテクチャ SelectIO リ ソース ユーザー ガイ ド』 (UG571) [参照 1] では、 UltraScale アーキテクチャの SelectIO リ ソースをネイティブ モード使用する場合の機能について理解を深めるこ とができます。 High Speed SelectIO Wizard について説明し、 また高速ネイティブ UltraScale デバイス I/O インターフェイスの生成に役立つサンプル デザインを提供しています。 これらのサンプル デザインを実際のアプリ ケーシ ョ ンに適用し、High Speed SelectIO Wizard を使用して I/O インターフェイスを生成する方法を示しています。
付録 A
XAPP1274 (v1.0) 2016 年 6 月 1 日 42japan.xilinx.com
付録 A
ネイティブ モードで使用する場合、 RX_BITSLICE、 TX_BITSLICE、 または RXTX_BITSLICE は、 UltraScale デバイス I/O の最も小さなエレ メン トです。 これらの BITSLICE が結合して、 ニブルと呼ばれる大きなエレ メン トになり ます。 2 つのニブルが結合する と 1 バイ トにな り ます。 1 バイ トは下位ニブルと上位ニブルに分かれています。 下位ニブルには 6 個の BITSLICE があ り、 上位ニブルには 7 個の BITSLICE があ り ます。
各ニブル (6 個または 7 個の BITSLICE) には BITSLICE_CONTROL プリ ミ ティブが必要です。 この BITSLICE_CONTROL プリ ミ ティブには、 ク ロ ッ クをモニターして調整するためのすべてのロジッ クが含まれており、 電圧や温度の補正 (VTC) を実行したり、 接続されている BITSLICE のその他のタスクを実行します。
すべての UltraScale デバイスには、 全く同じニブル、 バイ ト、 および I/O バンクの構造があ り ます (図 30 参照)。 すべての世代の一般的なインターフェイスを、 1 つまたは複数の UltraScale デバイスで使用可能です。
図 31 に、 一般的なニブルを示します。 ニブルには 2 つのサイズがあ り、 BITSLICE を 6 個含む下位ニブルと、 BITSLICE を 7 個含む上位ニブルがあ り ます。図 32 に、 2 つのニブルを結合した 1 バイ ト を示します。 これらのニブルとバイ トには RXTX_BITSLICE があ り ます。 これが基本の BITSLICE 構造であ り、 RXTX_BITSLICE から 2 つの派生物 (RX_BITSLICE、TX_BITSLICE) が生成されます。 シ リ アル転送されたビッ ト ス ト リームで TX_BITSLICE_TRI BITSLICE が使用されて、ビッ ト ごとの ト ライステート機能を実行します。
X-Ref Target - Figure 30
図 30 : UltraScale デバイスの I/O バンクのレイアウト
Upper Nibble
Lower Nibble
I/O Bank
Byte
X15790-010416
付録 A
XAPP1274 (v1.0) 2016 年 6 月 1 日 43japan.xilinx.com
X-Ref Target - Figure 31
図 31 : ニブルのレイアウト
X-Ref Target - Figure 32
図 32 : I/O バンクのバイ トのレイアウト
RXTX_BITSLICE_2
RXTX_BITSLICE_3
RXTX_BITSLICE_6
RXTX_BITSLICE_0
RXTX_BITSLICE_1
BITSLICE_C
ON
TRO
L
RXTX_BITSLICE_4
RXTX_BITSLICE_5
DBC
DBC
GC
GC
GC
GC
TX_BITSLICE_TRI
QBC
QBC
X15791-011316
UPP_N
IBBLE
BYTE_n
LOW
_NIBBLE
RXTX_BITSLICE_2
RXTX_BITSLICE_3
RXTX_BITSLICE_6
RXTX_BITSLICE_0
RXTX_BITSLICE_1
BITSLICE_C
ON
TRO
L
RXTX_BITSLICE_4
RXTX_BITSLICE_5
DBC
DBC
TX_BITSLICE_TRI
QBC
QBC
RXTX_BITSLICE_2
RXTX_BITSLICE_3
RXTX_BITSLICE_0
RXTX_BITSLICE_1
BITSLICE_C
ON
TRO
L
RXTX_BITSLICE_4
RXTX_BITSLICE_5
DBC
DBC
GC
GC
GC
GC
TX_BITSLICE_TRI
QBC
QBC
X15792-011316
付録 B
XAPP1274 (v1.0) 2016 年 6 月 1 日 44japan.xilinx.com
付録 B
図 33 に、 1 バイ ト内にある上位ニブルのブロ ッ ク図を示します。
図 34 に、 すべての設定が完了したレシーバーの上位ニブルの詳細を示します。
図 35 に、 ト ラ イステート入力を使用する場合、 すべての設定が完了した ト ランス ミ ッ ターの上位ニブル (T 入力が使用される場所) の詳細を示します
図 36 に、 シ リ アル ト ラ イステート オプシ ョ ンから ト ラ イステート入力を使用する場合、 すべての設定が完了した ト ランス ミ ッ ターの上位ニブル (BITSLICE_CONROL の TBYTE_IN 入力が使用される場所) の詳細を示します。
X-Ref Target - Figure 33
図 33 : 1 バイ ト内の上位ニブル
T
RXTX_B
ITSLICE
RST
TX_RST_DLY
TX_CNTVALUEIN[8:0]
TX_EN_VTC
DATAINQ[7:0]
TX_CNTVALUEOUT[8:0]
FIFO_RD_CLK
FIFO_RD_ENFIFO_EMPTY
FIFO_WRCLK_OUT
O
RX_BIT_CTRL_OUT[39:0]RX_BIT_CTRL_IN[39:0]
TX_BIT_CTRL_OUT39:0]TX_BIT_CTRL_IN[39:0]
TX_CE
TX_LOAD
TX_INC
TX_CLK
TBYTE_INT_OUT
D[7:0]
RX_RST_DLY
RX_CNTVALUEIN[8:0]
RX_EN_VTC
RX_CNTVALUEOUT[8:0]
RX_CE
RX_LOADRX_INCRX_CLK
T
RXTX_B
ITSLICE
RST
TX_RST_DLY
TX_CNTVALUEIN[8:0]
TX_EN_VTC
DATAINQ[7:0]
TX_CNTVALUEOUT[8:0]
FIFO_RD_CLK
FIFO_RD_ENFIFO_EMPTY
FIFO_WRCLK_OUT
O
RX_BIT_CTRL_OUT[39:0]RX_BIT_CTRL_IN[39:0]
TX_BIT_CTRL_OUT39:0]TX_BIT_CTRL_IN[39:0]
TX_CE
TX_LOAD
TX_INC
TX_CLK
TBYTE_INT_OUT
D[7:0]
RX_RST_DLY
RX_CNTVALUEIN[8:0]
RX_EN_VTC
RX_CNTVALUEOUT[8:0]
RX_CE
RX_LOADRX_INCRX_CLK
T
RXTX_B
ITSLICE
RST
TX_RST_DLY
TX_CNTVALUEIN[8:0]
TX_EN_VTC
DATAINQ[7:0]
TX_CNTVALUEOUT[8:0]
FIFO_RD_CLK
FIFO_RD_ENFIFO_EMPTY
FIFO_WRCLK_OUT
O
RX_BIT_CTRL_OUT[39:0]RX_BIT_CTRL_IN[39:0]
TX_BIT_CTRL_OUT39:0]TX_BIT_CTRL_IN[39:0]
TX_CE
TX_LOAD
TX_INC
TX_CLK
TBYTE_INT_OUT
D[7:0]
RX_RST_DLY
RX_CNTVALUEIN[8:0]
RX_EN_VTC
RX_CNTVALUEOUT[8:0]
RX_CE
RX_LOADRX_INCRX_CLK
T
RXTX_B
ITSLICE
RST
TX_RST_DLY
TX_CNTVALUEIN[8:0]
TX_EN_VTC
DATAINQ[7:0]
TX_CNTVALUEOUT[8:0]
FIFO_RD_CLK
FIFO_RD_ENFIFO_EMPTY
FIFO_WRCLK_OUT
O
RX_BIT_CTRL_OUT[39:0]RX_BIT_CTRL_IN[39:0]
TX_BIT_CTRL_OUT39:0]TX_BIT_CTRL_IN[39:0]
TX_CE
TX_LOAD
TX_INC
TX_CLK
TBYTE_INT_OUT
D[7:0]
RX_RST_DLY
RX_CNTVALUEIN[8:0]
RX_EN_VTC
RX_CNTVALUEOUT[8:0]
RX_CE
RX_LOADRX_INCRX_CLK
T
RXTX_B
ITSLICE
RST
TX_RST_DLY
TX_CNTVALUEIN[8:0]
TX_EN_VTC
DATAINQ[7:0]
TX_CNTVALUEOUT[8:0]
FIFO_RD_CLK
FIFO_RD_ENFIFO_EMPTY
FIFO_WRCLK_OUT
O
RX_BIT_CTRL_OUT[39:0]RX_BIT_CTRL_IN[39:0]
TX_BIT_CTRL_OUT39:0]TX_BIT_CTRL_IN[39:0]
TX_CE
TX_LOAD
TX_INC
TX_CLK
TBYTE_INT_OUT
D[7:0]
RX_RST_DLY
RX_CNTVALUEIN[8:0]
RX_EN_VTC
RX_CNTVALUEOUT[8:0]
RX_CE
RX_LOADRX_INCRX_CLK
T
RXTX_B
ITSLICE
RST
TX_RST_DLY
TX_CNTVALUEIN[8:0]
TX_EN_VTC
DATAINQ[7:0]
TX_CNTVALUEOUT[8:0]
FIFO_RD_CLK
FIFO_RD_ENFIFO_EMPTY
FIFO_WRCLK_OUT
O
RX_BIT_CTRL_OUT[39:0]RX_BIT_CTRL_IN[39:0]
TX_BIT_CTRL_OUT39:0]TX_BIT_CTRL_IN[39:0]
TX_CE
TX_LOAD
TX_INC
TX_CLK
TBYTE_INT_OUT
D[7:0]
RX_RST_DLY
RX_CNTVALUEIN[8:0]
RX_EN_VTC
RX_CNTVALUEOUT[8:0]
RX_CE
RX_LOADRX_INCRX_CLK
Fabric Connections IOI Connections
RX_BIT_CTRL_OUT6[39:0]
RX_BIT_CTRL_IN6[39:0]RX_BIT_CTRL_OUT0[39:0]RX_BIT_CTRL_OUT1[39:0]RX_BIT_CTRL_OUT2[39:0]RX_BIT_CTRL_OUT3[39:0]RX_BIT_CTRL_OUT4[39:0]RX_BIT_CTRL_OUT5[39:0]
RX_BIT_CTRL_IN1[39:0]RX_BIT_CTRL_IN0[39:0]
RX_BIT_CTRL_IN2[39:0]RX_BIT_CTRL_IN3[39:0]RX_BIT_CTRL_IN4[39:0]RX_BIT_CTRL_IN5[39:0]
TX_BIT_CTRL_OUT6[39:0]
TX_BIT_CTRL_IN6[39:0]TX_BIT_CTRL_OUT0[39:0]TX_BIT_CTRL_OUT1[39:0]TX_BIT_CTRL_OUT2[39:0]TX_BIT_CTRL_OUT3[39:0]TX_BIT_CTRL_OUT4[39:0]TX_BIT_CTRL_OUT5[39:0]
TX_BIT_CTRL_IN1[39:0]TX_BIT_CTRL_IN0[39:0]
TX_BIT_CTRL_IN2[39:0]TX_BIT_CTRL_IN3[39:0]TX_BIT_CTRL_IN4[39:0]TX_BIT_CTRL_IN5[39:0]
TX_BIT_CTRL_IN_TRI[39:0]TX_BIT_CTRL_OUT_TRI[39:0]
PLL_CLKREFCLKRSTEN_VTCDLY_RDYVTC_RDY
RIU_CLKRIU_ADDR[5:0]RIU_WR_DATA[15:0]RIU_RD_DATA[15:0]RIU_RD_VALIDRIU_WR_ENRIU_NIBBLE_SEL
PHY_RDCS0[3:0]
TBYTE_IN[3:0]PHY_RDEN[3:0]
DYN_DCI[6:0]
CLK_FROM_EXT
PHY_WRCS1[3:0]PHY_WRCS0[3:0]PHY_RDCS1[3:0]
CLK_TO_EXT_NORTHCLK_TO_EXT_SOUTH
PCLK_NIBBLE_INNCLK_NIBBLE_INNCLK_NIBBLE_OUTPCLK_NIBBLE_OUT
RXTX_B
ITSLICE
RST
TX_RST_DLY
TX_CNTVALUEIN[8:0]
TX_EN_VTC
DATAINQ[7:0]
TX_CNTVALUEOUT[8:0]
FIFO_RD_CLK
FIFO_RD_ENFIFO_EMPTY
FIFO_WRCLK_OUT
O
RX_BIT_CTRL_OUT[39:0]RX_BIT_CTRL_IN[39:0]
TX_BIT_CTRL_OUT39:0]TX_BIT_CTRL_IN[39:0]
TX_CE
TX_LOADTX_INCTX_CLK
TTBYTE_IN
T_OUT
D[7:0]
RX_RST_DLY
RX_CNTVALUEIN[8:0]
RX_EN_VTC
RX_CNTVALUEOUT[8:0]
RX_CE
RX_LOADRX_INCRX_CLK
IOIBUF
I O
OBUFT
T
IO[0]
IO[1]
IO[2]
IO[3]
IO[4]
IO[5]
IO[6]
TRI_OUT
CNTVALUEOUT[8:0]
TX_BITSLIC
E_TRI
RST
BIT_CTRL_OUT[39:0]
CE
RST_DLY
CNTVALUEIN[8:0]LOADINCCLK
EN_VTC
BIT_CTRL_IN[39:0]
UPPER NIBBLE
LOWER NIBBLE
Inte
r-Byt
e C
lock
s
Inte
r-Nib
ble
Clo
cks
TX and RX DATA to / from Fabric
FIFO Control
TX and RX Delay Line Control
X16411-041416
付録 B
XAPP1274 (v1.0) 2016 年 6 月 1 日 45japan.xilinx.com
X-Ref Target - Figure 34
図 34 :すべての設定が完了したレシーバーの上位ニブル
[22:0]
Upper Nibble [6:0]UNIDIR_RX_NIBBLE
[79:40][119:80][159:120][199:160][239:200]279:240]
[39:0]
[279:0]
[279:0]
[39:0][39:0]
22
10:219:112021
10
[22:0]
22
10:219:112021
10
[160:0]
[22:0]
[279:0]
[279:0]
[39:0][39:0]
Q[7:0]
(0)(0)
GNDOPEN
[79:40][79:40]
22
10:219:112021
10
22
10:219:112021
10
79:40][79:40]
Q[15:8]
(1)(1)
119:80]119:80]
22
10:219:112021
10
22
10:219:112021
10
119:80]119:80]
Q[23:16]
(2)(2)
[159:120][159:120]
22
10:219:112021
10
22
10:219:112021
10
[159:120][159:120]
Q[31:24]
(3)(3)
[199:160][199:160]
22
10:219:112021
10
22
10:219:112021
10
[199:160][199:160]
Q[39:32]
(4)(4)
[239:200][239:200]
22
10:219:112021
10
22
10:219:112021
10
[239:200][239:200]
Q[47:40]
(5)(5)
[45:23]
[22:0][45:23]
[68:46]
[22:0]
[91:69]
[22:0]
[114:92]
[22:0]
[137:115]
0
1
2
3
4
5DATA
DATACLOCK
DATA
DATA
DATA
DATA
Rx_Data_in(5)
Rx_Data_In(4)
Rx_Data_In(3)
Rx_Data_In(2)
Rx_Data_In(1)
Rx_Data_In(0)
Tx_Data_Out(5)
Tx_Tri_Out(5)
Tx_Data_Out(4)
Tx_Tri_Out(4)
Tx_Data_Out(3)
Tx_Tri_Out(3)
Tx_Data_Out(2)
Tx_Tri_Out(2)
Tx_Data_Out(1)
Tx_Tri_Out(1)
Tx_Data_Out(0)
Tx_Tri_Out(0)
[279:240][279:240]
[279:240][279:240]
22
10:2
19:112021
1
0
[160:138]
22
10:2
19:11
21
1
0
20[160:138]
(6)
Q[55:48]
6
DATA
Rx_Data_In(6)
Tx_Data_Out(6)
Tx_Tri_Out(6)
(6)
Q_Out[55:0]
Fifo_Rd_Clk
Idelay_Ctrl_Clk
RST
Fifo_Wrclk_Out
Fifo_Emtpy[6:0]
Idelay_Ctrl[160:0]
The IDELAY_CTRL bus is assembled from busses formed from the IDELAY control signals of every RX_BITSLICE. The control of every bitslice is stacked in the total bus.
Idelay_Ctrl [160:138] = is the IDELAY control bus of RX_BITSLICE(6)Idelay_Ctrl [22:0] = is the IDELAY control bus of RX_BITSLICE(0)
22
10:219:112021
10
CNTVALUEOUT[8:0]
CE
RST_DLY
CNTVALUEIN[8:0]LOADINCCLK
EN_VTC
22
10:219:112021
10
CNTVALUEOUT[8:0]
CE
RST_DLY
CNTVALUEIN[8:0]LOADINCCLK
EN_VTC
[22:0]
[160:138]
0
6
Fifo_Rd_En[6:0]
open
openopen
open
open
open
Fifo_WrClk_Out is coming from the RX_BITSLICE_0, who is the clock capable bitslice.It is the only bitslice with routable WrClk_Out.
All RX_BITSLICEs get the same FIFO read clock.The FIFOs are selectable by a 7-bit enable bus.Each FIFO has it’s own empty signal in an output bus.
PLL_CLK
REFCLK
RST
EN_VTC
DLY_RDY
VTC_RDY
RIU_CLK
RIU_ADDR[5:0]
RIU_WR_DATA[15:0]
RIU_RD_DATA[15:0]
RIU_RD_VALID
RIU_WR_EN
RIU_NIBBLE_SEL
GND
CLK_FROM_EXT
CLK_TO_EXT_NORTH
CLK_TO_EXT_SOUTH
PCLK_NIBBLE_IN
NCLK_NIBBLE_IN
NCLK_NIBBLE_OUT
PCLK_NIBBLE_OUT
DYN_DCI
RX_BIT_CTRL_OUT6[39:0]
RX_BIT_CTRL_IN6[39:0]RX_BIT_CTRL_OUT0[39:0]RX_BIT_CTRL_OUT1[39:0]RX_BIT_CTRL_OUT2[39:0]RX_BIT_CTRL_OUT3[39:0]RX_BIT_CTRL_OUT4[39:0]RX_BIT_CTRL_OUT5[39:0]
RX_BIT_CTRL_IN1[39:0]RX_BIT_CTRL_IN0[39:0]
RX_BIT_CTRL_IN2[39:0]RX_BIT_CTRL_IN3[39:0]RX_BIT_CTRL_IN4[39:0]RX_BIT_CTRL_IN5[39:0]
TX_BIT_CTRL_OUT6[39:0]
TX_BIT_CTRL_IN6[39:0]TX_BIT_CTRL_OUT0[39:0]TX_BIT_CTRL_OUT1[39:0]TX_BIT_CTRL_OUT2[39:0]TX_BIT_CTRL_OUT3[39:0]TX_BIT_CTRL_OUT4[39:0]TX_BIT_CTRL_OUT5[39:0]
TX_BIT_CTRL_IN1[39:0]TX_BIT_CTRL_IN0[39:0]
TX_BIT_CTRL_IN2[39:0]TX_BIT_CTRL_IN3[39:0]TX_BIT_CTRL_IN4[39:0]TX_BIT_CTRL_IN5[39:0]
TX_BIT_CTRL_IN_TRI[39:0]TX_BIT_CTRL_OUT_TRI[39:0]
PLL_CLKREFCLKRSTEN_VTCDLY_RDYVTC_RDY
RIU_CLKRIU_ADDR[5:0]RIU_WR_DATA[15:0]RIU_RD_DATA[15:0]RIU_RD_VALIDRIU_WR_ENRIU_NIBBLE_SEL
PHY_RDCS0[3:0]
TBYTE_IN[3:0]PHY_RDEN[3:0]
DYN_DCI[6:0]
CLK_FROM_EXT
PHY_WRCS1[3:0]PHY_WRCS0[3:0]PHY_RDCS1[3:0]
CLK_TO_EXT_NORTHCLK_TO_EXT_SOUTH
PCLK_NIBBLE_INNCLK_NIBBLE_INNCLK_NIBBLE_OUTPCLK_NIBBLE_OUT
[79:40][119:80][159:120][199:160][239:200]279:240]
[39:0]
RX_BITSLICE
RST
CE_EXT
RST_DLY_EXT
CNTVALUEIN_EXT[8:0]LOAD_EXTINC_EXTCLK_EXT
EN_VTC_EXT
DATAINQ[7:0]
CNTVALUEOUT[8:0]
CNTVALUEOUT_EXT[8:0]
CE
RST_DLY
CNTVALUEIN[8:0]LOADINCCLK
EN_VTC
RX_BIT_CTRL_OUT[39:0]RX_BIT_CTRL_IN[39:0]
FIFO_RD_CLK
FIFO_RD_ENFIFO_EMPTY
FIFO_WRCLK_OUT
TX_BIT_CTRL_OUT39:0]TX_BIT_CTRL_IN[39:0]
RX_BITSLICE
RST
CE_EXT
RST_DLY_EXT
CNTVALUEIN_EXT[8:0]LOAD_EXTINC_EXTCLK_EXT
EN_VTC_EXT
DATAINQ[7:0]
CNTVALUEOUT[8:0]
CNTVALUEOUT_EXT[8:0]
CE
RST_DLY
CNTVALUEIN[8:0]LOADINCCLK
EN_VTC
RX_BIT_CTRL_OUT[39:0]RX_BIT_CTRL_IN[39:0]
FIFO_RD_CLK
FIFO_RD_ENFIFO_EMPTY
FIFO_WRCLK_OUT
TX_BIT_CTRL_OUT39:0]TX_BIT_CTRL_IN[39:0]
RX_BITSLICE
RST
CE_EXT
RST_DLY_EXT
CNTVALUEIN_EXT[8:0]LOAD_EXTINC_EXTCLK_EXT
EN_VTC_EXT
DATAINQ[7:0]
CNTVALUEOUT[8:0]
CNTVALUEOUT_EXT[8:0]
CE
RST_DLY
CNTVALUEIN[8:0]LOADINCCLK
EN_VTC
RX_BIT_CTRL_OUT[39:0]RX_BIT_CTRL_IN[39:0]
FIFO_RD_CLK
FIFO_RD_ENFIFO_EMPTY
FIFO_WRCLK_OUT
TX_BIT_CTRL_OUT39:0]TX_BIT_CTRL_IN[39:0]
RX_BITSLICE
RST
CE_EXT
RST_DLY_EXT
CNTVALUEIN_EXT[8:0]LOAD_EXTINC_EXTCLK_EXT
EN_VTC_EXT
DATAINQ[7:0]
CNTVALUEOUT[8:0]
CNTVALUEOUT_EXT[8:0]
CE
RST_DLY
CNTVALUEIN[8:0]LOADINCCLK
EN_VTC
RX_BIT_CTRL_OUT[39:0]RX_BIT_CTRL_IN[39:0]
FIFO_RD_CLK
FIFO_RD_ENFIFO_EMPTY
FIFO_WRCLK_OUT
TX_BIT_CTRL_OUT39:0]TX_BIT_CTRL_IN[39:0]
RX_BITSLICE
RST
CE_EXT
RST_DLY_EXT
CNTVALUEIN_EXT[8:0]LOAD_EXTINC_EXTCLK_EXT
EN_VTC_EXT
DATAINQ[7:0]
CNTVALUEOUT[8:0]
CNTVALUEOUT_EXT[8:0]
CE
RST_DLY
CNTVALUEIN[8:0]LOADINCCLK
EN_VTC
RX_BIT_CTRL_OUT[39:0]RX_BIT_CTRL_IN[39:0]
FIFO_RD_CLK
FIFO_RD_ENFIFO_EMPTY
FIFO_WRCLK_OUT
TX_BIT_CTRL_OUT39:0]TX_BIT_CTRL_IN[39:0]
EN_VTC_EXTRST_DLY_EXTCNTVALUEOUT_EXT[8:0]CNTVALUEIN_EXT[8:0]LOAD_EXTINC_EXTCLK_EXTCE_EXT
EN_VTCRST_DLYCNTVALUEOUT[8:0]
INC
CNTVALUEIN[8:0]LOAD
RX_BITSLICECLKCE
TX_BIT_CTRL_OUT39:0]TX_BIT_CTRL_IN[39:0]
RX_BIT_CTRL_OUT[39:0]RX_BIT_CTRL_IN[39:0]
FIFO_EMPTYFIFO_RD_ENFIFO_WRCLK_OUTFIFO_RD_CLK
RST
Q[7:0] DATAIN
RX_BITSLICE
RST
CE_EXT
RST_DLY_EXT
CNTVALUEIN_EXT[8:0]LOAD_EXT
INC_EXTCLK_EXT
EN_VTC_EXT
DATAIN Q[7:0]
CNTVALUEOUT[8:0]
CNTVALUEOUT_EXT[8:0]
CE
RST_DLY
CNTVALUEIN[8:0]LOAD
INCCLK
EN_VTC
RX_BIT_CTRL_OUT[39:0]RX_BIT_CTRL_IN[39:0]
FIFO_RD_CLK
FIFO_RD_ENFIFO_EMPTY
FIFO_WRCLK_OUT
TX_BIT_CTRL_OUT[39:0]TX_BIT_CTRL_IN[39:0]
7 times
22
19:112021
10
GND
OPEN 10:2
For every control set in the IDELAY_CTRL_EXT bus the signals are tied.
[79:40][119:80][159:120][199:160][239:200]279:240]
[39:0]
[79:40][119:80][159:120][199:160][239:200]279:240]
[39:0]
[160:0]
EXAMPLE
[137:115]
22
X16412-041416
付録 B
XAPP1274 (v1.0) 2016 年 6 月 1 日 46japan.xilinx.com
X-Ref Target - Figure 35
図 35 :すべての設定が完了したト ランスミ ッ ターの上位ニブル (ト ライステート入力を使用)
Upper Nibble [6:0]UNIDIR_TX_NIBBLE
With interconnect logic input
0
1
2
3
4
5DATA
DATA
DATA
DATA
DATA
DATA
6DATA
Tx_Tri_Out(0)
Tx_Data_Out(0)
22
10:219:112021
10
[137:115]
22
10:219:112021
10
[114:92]
22
10:219:112021
10
[91:69]
22
10:219:112021
10
[68:46]
22
10:219:112021
10
[45:23]
22
10:219:112021
10
[22:0]
22
10:219:11
2021
10
[160:138]Odelay_Ctrl[160:0]
Odelay_Ctrl_Clk
[7:0]
[15:8]
[23:16]
[31:24]
[39:32]
[47:40]
[55:48]D[55:0]
(6)
(5)
(4)
(3)
(2)
(1)
(0)
T[6:0]
RST
[39:0][39:0]
[119:80]
[159:120][159:120]
[199:160][199:160]
[239:200][239:200]
279:240]
[79:40][79:40]
279:240]
Tx_Tri_Out(1)
Tx_Data_Out(1)
Tx_Tri_Out(2)
Tx_Data_Out(2)
Tx_Tri_Out(3)
Tx_Data_Out(3)
Tx_Tri_Out(4)
Tx_Data_Out(4)
Tx_Tri_Out(5)
Tx_Data_Out(5)
Tx_Tri_Out(6)
Tx_Data_Out(6)
The ODELAY_CTRL bus is assembled from bussses formed from the ODELAY control signals of every TX_BITSLICE. The control of every bitslice is stacked in the total bus.
Idelay_Ctrl {160:138] = is the ODELAY control bus of TX_BITSLICE(6)Idelay_Ctrl {22:0] = is the ODELAY control bus of TX_BITSLICE(0)
[79:40][119:80][159:120][199:160][239:200]279:240]
[39:0]
GNDOPEN
PLL_CLK
REFCLK
RST
EN_VTC
DLY_RDY
VTC_RDY
RIU_CLK
RIU_ADDR[5:0]
RIU_WR_DATA[15:0]
RIU_RD_DATA[15:0]
RIU_RD_VALID
RIU_WR_EN
RIU_NIBBLE_SEL
GND
CLK_FROM_EXT
CLK_TO_EXT_NORTH
CLK_TO_EXT_SOUTH
PCLK_NIBBLE_IN
NCLK_NIBBLE_IN
NCLK_NIBBLE_OUT
PCLK_NIBBLE_OUT
DYN_DCI
PLL_CLKREFCLKRSTEN_VTCDLY_RDYVTC_RDY
RIU_CLKRIU_ADDR[5:0]RIU_WR_DATA[15:0]RIU_RD_DATA[15:0]RIU_RD_VALIDRIU_WR_ENRIU_NIBBLE_SEL
PHY_RDCS0[3:0]
TBYTE_IN[3:0]PHY_RDEN[3:0]
DYN_DCI[6:0]
CLK_FROM_EXT
PHY_WRCS1[3:0]PHY_WRCS0[3:0]PHY_RDCS1[3:0]
CLK_TO_EXT_NORTHCLK_TO_EXT_SOUTH
PCLK_NIBBLE_INNCLK_NIBBLE_INNCLK_NIBBLE_OUTPCLK_NIBBLE_OUT
RX_BIT_CTRL_OUT6[39:0]
RX_BIT_CTRL_IN6[39:0]RX_BIT_CTRL_OUT0[39:0]RX_BIT_CTRL_OUT1[39:0]RX_BIT_CTRL_OUT2[39:0]RX_BIT_CTRL_OUT3[39:0]RX_BIT_CTRL_OUT4[39:0]RX_BIT_CTRL_OUT5[39:0]
RX_BIT_CTRL_IN1[39:0]RX_BIT_CTRL_IN0[39:0]
RX_BIT_CTRL_IN2[39:0]RX_BIT_CTRL_IN3[39:0]RX_BIT_CTRL_IN4[39:0]RX_BIT_CTRL_IN5[39:0]
TX_BIT_CTRL_OUT6[39:0]
TX_BIT_CTRL_IN6[39:0]TX_BIT_CTRL_OUT0[39:0]TX_BIT_CTRL_OUT1[39:0]TX_BIT_CTRL_OUT2[39:0]TX_BIT_CTRL_OUT3[39:0]TX_BIT_CTRL_OUT4[39:0]TX_BIT_CTRL_OUT5[39:0]
TX_BIT_CTRL_IN1[39:0]TX_BIT_CTRL_IN0[39:0]
TX_BIT_CTRL_IN2[39:0]TX_BIT_CTRL_IN3[39:0]TX_BIT_CTRL_IN4[39:0]TX_BIT_CTRL_IN5[39:0]
TX_BIT_CTRL_IN_TRI[39:0]TX_BIT_CTRL_OUT_TRI[39:0]
[79:40][119:80][159:120][199:160][239:200]279:240]
[39:0]
[79:40][119:80][159:120][199:160][239:200]279:240]
[39:0]
[79:40][119:80][159:120][199:160][239:200]279:240]
[39:0]
[279:0]
[279:0]
[279:0]
[279:0]
TTBYTE_IN
T_OUT
O
CNTVALUEOUT[8:0]
TX_BITSLICERST
RX_BIT_CTRL_OUT[39:0]
D[7:0]
CE
RST_DLY
CNTVALUEIN[8:0]LOADINCCLK
EN_VTC
RX_BIT_CTRL_IN[39:0]
TX_BIT_CTRL_OUT[39:0]TX_BIT_CTRL_IN[39:0]
TTBYTE_IN
T_OUT
O
CNTVALUEOUT[8:0]
TX_BITSLICERST
RX_BIT_CTRL_OUT[39:0]
D[7:0]
CE
RST_DLY
CNTVALUEIN[8:0]LOADINCCLK
EN_VTC
RX_BIT_CTRL_IN[39:0]
TX_BIT_CTRL_OUT[39:0]TX_BIT_CTRL_IN[39:0]
TTBYTE_IN
T_OUT
O
CNTVALUEOUT[8:0]
TX_BITSLICERST
RX_BIT_CTRL_OUT[39:0]
D[7:0]
CE
RST_DLY
CNTVALUEIN[8:0]LOADINCCLK
EN_VTC
RX_BIT_CTRL_IN[39:0]
TX_BIT_CTRL_OUT[39:0]TX_BIT_CTRL_IN[39:0]
TTBYTE_IN
T_OUT
O
CNTVALUEOUT[8:0]
TX_BITSLICERST
RX_BIT_CTRL_OUT[39:0]
D[7:0]
CE
RST_DLY
CNTVALUEIN[8:0]LOADINCCLK
EN_VTC
RX_BIT_CTRL_IN[39:0]
TX_BIT_CTRL_OUT[39:0]TX_BIT_CTRL_IN[39:0]
TTBYTE_IN
T_OUT
O
CNTVALUEOUT[8:0]
TX_BITSLICERST
RX_BIT_CTRL_OUT[39:0]
D[7:0]
CE
RST_DLY
CNTVALUEIN[8:0]LOADINCCLK
EN_VTC
RX_BIT_CTRL_IN[39:0]
TX_BIT_CTRL_OUT[39:0]TX_BIT_CTRL_IN[39:0]
TTBYTE_IN
T_OUT
O
CNTVALUEOUT[8:0]
TX_BITSLICERST
RX_BIT_CTRL_OUT[39:0]
D[7:0]
CE
RST_DLY
CNTVALUEIN[8:0]LOADINCCLK
EN_VTC
RX_BIT_CTRL_IN[39:0]
TX_BIT_CTRL_OUT[39:0]TX_BIT_CTRL_IN[39:0]
TTBYTE_IN
T_OUT
O
CNTVALUEOUT[8:0]
TX_BITSLICERST
RX_BIT_CTRL_OUT[39:0]
D[7:0]
CE
RST_DLY
CNTVALUEIN[8:0]LOADINCCLK
EN_VTC
RX_BIT_CTRL_IN[39:0]
TX_BIT_CTRL_OUT[39:0]TX_BIT_CTRL_IN[39:0]
[39:0][39:0]
[119:80][119:80]
[159:120][159:120]
[199:160][199:160]
[239:200][239:200]
279:240]
[79:40][79:40]
279:240]
[119:80]
EXAMPLE
X16413-041516
付録 B
XAPP1274 (v1.0) 2016 年 6 月 1 日 47japan.xilinx.com
X-Ref Target - Figure 36
図 36 :すべての設定が完了したト ランスミ ッ ターの上位ニブル (BITSLICE_CONTROL の TBYTE_IN 接続を使用)
Upper Nibble [6:0]UNIDIR_TX_NIBBLE
With use of TX_BITSLICE_TRI
Odelay_Tri_Ctrl[22:0]
0
1
2
3
4
5DATA
DATA
DATA
DATA
DATA
DATA
6DATA
Tx_Tri_Out(0)
Tx_Data_Out(0)
22
10:219:112021
10
[137:115]
22
10:219:112021
10
[114:92]
22
10:219:112021
10
[91:69]
22
10:219:112021
10
[68:46]
22
10:219:112021
10
[45:23]
22
10:219:112021
10
[22:0]
22
10:219:112021
10
[160:138]Odelay_Ctrl[160:0]
Odelay_Ctrl_Clk
[7:0]
[15:8]
[23:16]
[31:24]
[39:32]
[47:40]
[55:48]D[55:0]
(6)
(5)
(4)
(3)
(2)
(1)
(0)
T[6:0]
RST
[39:0][39:0]
[119:80]
[159:120][159:120]
[199:160][199:160]
[239:200][239:200]
279:240]
[79:40][79:40]
279:240]
Tx_Tri_Out(1)
Tx_Data_Out(1)
Tx_Tri_Out(2)
Tx_Data_Out(2)
Tx_Tri_Out(3)
Tx_Data_Out(3)
Tx_Tri_Out(4)
Tx_Data_Out(4)
Tx_Tri_Out(5)
Tx_Data_Out(5)
Tx_Tri_Out(6)
Tx_Data_Out(6)
The ODELAY_CTRL bus is assembled from bussses formed from the ODELAY control signals of every TX_BITSLICE. The control of every bitslice is stacked in the total bus.
Idelay_Ctrl {160:138] = is the ODELAY control bus of TX_BITSLICE(6)Idelay_Ctrl {22:0] = is the ODELAY control bus of TX_BITSLICE(0)
[79:40][119:80][159:120][199:160][239:200]279:240]
[39:0]
PLL_CLK
REFCLK
RST
EN_VTC
DLY_RDY
VTC_RDY
RIU_CLK
RIU_ADDR[5:0]
RIU_WR_DATA[15:0]
RIU_RD_DATA[15:0]
RIU_RD_VALID
RIU_WR_EN
RIU_NIBBLE_SEL
GND
CLK_FROM_EXT
CLK_TO_EXT_NORTH
CLK_TO_EXT_SOUTH
PCLK_NIBBLE_IN
NCLK_NIBBLE_IN
NCLK_NIBBLE_OUT
PCLK_NIBBLE_OUT
DYN_DCI
PLL_CLKREFCLKRSTEN_VTCDLY_RDYVTC_RDY
RIU_CLKRIU_ADDR[5:0]RIU_WR_DATA[15:0]RIU_RD_DATA[15:0]RIU_RD_VALIDRIU_WR_ENRIU_NIBBLE_SEL
PHY_RDCS0[3:0]
TBYTE_IN[3:0]PHY_RDEN[3:0]
DYN_DCI[6:0]
CLK_FROM_EXT
PHY_WRCS1[3:0]PHY_WRCS0[3:0]PHY_RDCS1[3:0]
CLK_TO_EXT_NORTHCLK_TO_EXT_SOUTH
PCLK_NIBBLE_INNCLK_NIBBLE_INNCLK_NIBBLE_OUTPCLK_NIBBLE_OUT
RX_BIT_CTRL_OUT6[39:0]
RX_BIT_CTRL_IN6[39:0]RX_BIT_CTRL_OUT0[39:0]RX_BIT_CTRL_OUT1[39:0]RX_BIT_CTRL_OUT2[39:0]RX_BIT_CTRL_OUT3[39:0]RX_BIT_CTRL_OUT4[39:0]RX_BIT_CTRL_OUT5[39:0]
RX_BIT_CTRL_IN1[39:0]RX_BIT_CTRL_IN0[39:0]
RX_BIT_CTRL_IN2[39:0]RX_BIT_CTRL_IN3[39:0]RX_BIT_CTRL_IN4[39:0]RX_BIT_CTRL_IN5[39:0]
TX_BIT_CTRL_OUT6[39:0]
TX_BIT_CTRL_IN6[39:0]TX_BIT_CTRL_OUT0[39:0]TX_BIT_CTRL_OUT1[39:0]TX_BIT_CTRL_OUT2[39:0]TX_BIT_CTRL_OUT3[39:0]TX_BIT_CTRL_OUT4[39:0]TX_BIT_CTRL_OUT5[39:0]
TX_BIT_CTRL_IN1[39:0]TX_BIT_CTRL_IN0[39:0]
TX_BIT_CTRL_IN2[39:0]TX_BIT_CTRL_IN3[39:0]TX_BIT_CTRL_IN4[39:0]TX_BIT_CTRL_IN5[39:0]
TX_BIT_CTRL_IN_TRI[39:0]TX_BIT_CTRL_OUT_TRI[39:0]
[79:40][119:80][159:120][199:160][239:200]279:240]
[39:0]
[79:40][119:80][159:120][199:160][239:200]279:240]
[39:0]
[79:40][119:80][159:120][199:160][239:200]279:240]
[39:0]
[279:0]
[279:0]
[279:0]
[279:0]
TTBYTE_IN
T_OUT
O
CNTVALUEOUT[8:0]
TX_BITSLICERST
RX_BIT_CTRL_OUT[39:0]
D[7:0]
CE
RST_DLY
CNTVALUEIN[8:0]LOADINCCLK
EN_VTC
RX_BIT_CTRL_IN[39:0]
TX_BIT_CTRL_OUT[39:0]TX_BIT_CTRL_IN[39:0]
TTBYTE_IN
T_OUT
O
CNTVALUEOUT[8:0]
TX_BITSLICERST
RX_BIT_CTRL_OUT[39:0]
D[7:0]
CE
RST_DLY
CNTVALUEIN[8:0]LOADINCCLK
EN_VTC
RX_BIT_CTRL_IN[39:0]
TX_BIT_CTRL_OUT[39:0]TX_BIT_CTRL_IN[39:0]
TTBYTE_IN
T_OUT
O
CNTVALUEOUT[8:0]
TX_BITSLICERST
RX_BIT_CTRL_OUT[39:0]
D[7:0]
CE
RST_DLY
CNTVALUEIN[8:0]LOADINCCLK
EN_VTC
RX_BIT_CTRL_IN[39:0]
TX_BIT_CTRL_OUT[39:0]TX_BIT_CTRL_IN[39:0]
TTBYTE_IN
T_OUT
O
CNTVALUEOUT[8:0]
TX_BITSLICERST
RX_BIT_CTRL_OUT[39:0]
D[7:0]
CE
RST_DLY
CNTVALUEIN[8:0]LOADINCCLK
EN_VTC
RX_BIT_CTRL_IN[39:0]
TX_BIT_CTRL_OUT[39:0]TX_BIT_CTRL_IN[39:0]
TTBYTE_IN
T_OUT
O
CNTVALUEOUT[8:0]
TX_BITSLICERST
RX_BIT_CTRL_OUT[39:0]
D[7:0]
CE
RST_DLY
CNTVALUEIN[8:0]LOADINCCLK
EN_VTC
RX_BIT_CTRL_IN[39:0]
TX_BIT_CTRL_OUT[39:0]TX_BIT_CTRL_IN[39:0]
TTBYTE_IN
T_OUT
O
CNTVALUEOUT[8:0]
TX_BITSLICERST
RX_BIT_CTRL_OUT[39:0]
D[7:0]
CE
RST_DLY
CNTVALUEIN[8:0]LOADINCCLK
EN_VTC
RX_BIT_CTRL_IN[39:0]
TX_BIT_CTRL_OUT[39:0]TX_BIT_CTRL_IN[39:0]
TTBYTE_IN
T_OUT
O
CNTVALUEOUT[8:0]
TX_BITSLICERST
RX_BIT_CTRL_OUT[39:0]
D[7:0]
CE
RST_DLY
CNTVALUEIN[8:0]LOADINCCLK
EN_VTC
RX_BIT_CTRL_IN[39:0]
TX_BIT_CTRL_OUT[39:0]TX_BIT_CTRL_IN[39:0]
[39:0][39:0]
[119:80][119:80]
[159:120][159:120]
[199:160][199:160]
[239:200][239:200]
279:240]
[79:40][79:40]
279:240]
[119:80]
TRI_OUT
CNTVALUEOUT[8:0]
TX_BITSLIC
E_TRI
RST
BIT_CTRL_OUT[39:0]
CE
RST_DLY
CNTVALUEIN[8:0]LOADINCCLK
EN_VTC
BIT_CTRL_IN[39:0]
22
10:219:112021
10
[22:0]
[39:0][39:0]
[39:0]
[39:0]
[39:0]
EXAMPLE
TBYTE[3:0]
X16414-041516
付録 B
XAPP1274 (v1.0) 2016 年 6 月 1 日 48japan.xilinx.com
図 37 ~図 39 の波形は、 さまざまなモードの RXTX_BITSLICE を示しています。 図 37 では、 すべてを表示するため、 レシーバーのレイテンシやレイテンシの値を表示していません。 レシーバーのレイテンシの詳細は、 『UltraScale アーキテクチャ SelectIO リ ソース ユーザー ガイ ド』 (UG571) [参照 1] を参照してください。
X-Ref Target - Figure 37
図 37 : RXTX_BITSLICE レシーバー (8 ビッ ト モード )
X-Ref Target - Figure 38
図 38 : RXTX_BITSLICE ト ランスミ ッ ター (4 ビッ ト モード )
X-Ref Target - Figure 39
図 39 : RXTX_BITSLICE ト ランスミ ッ ター (8 ビッ ト モード )
X16422-060116
X16423-052516
X16424-052516
参考資料
XAPP1274 (v1.0) 2016 年 6 月 1 日 49japan.xilinx.com
参考資料
注記 :日本語版のバージ ョ ンは、 英語版よ り古い場合があ り ます。
1. 『UltraScale アーキテクチャ SelectIO リ ソース ユーザー ガイ ド』 (UG571 : 英語版、 日本語版)
2. UltraScale デバイス データシート :
° 『UltraScale アーキテクチャおよび製品概要』 (DS890 : 英語版、 日本語版)
° 『Kintex UltraScale FPGA データシート : DC 特性および AC スイ ッチ特性』 (DS892 : 英語版、 日本語版)
° 『Virtex UltraScale FPGA データシート : DC 特性および AC スイ ッチ特性』 (DS893 : 英語版、 日本語版)
3. 『Virtual Input/Output (VIO) v3.0 製品ガイ ド』 (PG159)
4. 『ChipScope Pro 仮想 I/O (1.04a)』 (DS284)
5. 『Vivado Design Suite ユーザー ガイ ド : プログラムおよびデバッグ』 (UG908 : 英語版、 日本語版)
6. 『High Speed SelectIO Wizard 製品ガイ ド』 (PG188)
7. High Speed SelectIO Wizard — 既知の問題リ ス ト (AR64126)
8. 『ロジッ クでの Bitslip 機能』 (XAPP1208 : 英語版、 日本語版)
改訂履歴
次の表に、 この文書の改訂履歴を示します。
日付 バージョ ン 内容
2016 年 6 月 1 日 1.0 初版
お読みください : 重要な法的通知
XAPP1274 (v1.0) 2016 年 6 月 1 日 50japan.xilinx.com
お読みください : 重要な法的通知本通知に基づいて貴殿または貴社 (本通知の被通知者が個人の場合には 「貴殿」、 法人その他の団体の場合には 「貴社」。 以下同じ ) に開
示される情報 (以下 「本情報」 といいます) は、 ザイ リ ンクスの製品を選択および使用するこ とのためにのみ提供されます。 適用される
法律が許容する最大限の範囲で、 (1) 本情報は 「現状有姿」、 およびすべて受領者の責任で (with all faults) とい う状態で提供され、 ザイ リ
ンクスは、 本通知をもって、 明示、 黙示、 法定を問わず (商品性、 非侵害、 特定目的適合性の保証を含みますがこれらに限られません)、すべての保証および条件を負わない (否認する ) ものと します。 また、 (2) ザイ リ ンクスは、 本情報 (貴殿または貴社による本情報の使用
を含む) に関係し、 起因し、 関連する、 いかなる種類 ・ 性質の損失または損害についても、 責任を負わない (契約上、 不法行為上 (過失の
場合を含む)、 その他のいかなる責任の法理によるかを問わない) ものと し、 当該損失または損害には、 直接、 間接、 特別、 付随的、 結
果的な損失または損害 (第三者が起こした行為の結果被った、 データ、 利益、 業務上の信用の損失、 その他あらゆる種類の損失や損害を
含みます) が含まれるものと し、 それは、 たとえ当該損害や損失が合理的に予見可能であったり、 ザイ リ ンクスがそれらの可能性につい
て助言を受けていた場合であったと しても同様です。 ザイ リ ンクスは、 本情報に含まれるいかなる誤り も訂正する義務を負わず、 本情
報または製品仕様のアップデート を貴殿または貴社に知らせる義務も負いません。 事前の書面による同意のない限り、 貴殿または貴社
は本情報を再生産、 変更、 頒布、 または公に展示してはなり ません。 一定の製品は、 ザイ リ ンクスの限定的保証の諸条件に従う こ と と
なるので、 japan.xilinx.com/legal.htm#tos で見られるザイ リ ンクスの販売条件を参照して下さい。 IP コアは、 ザイ リ ンクスが貴殿または貴
社に付与したライセンスに含まれる保証と補助的条件に従う こ とになり ます。 ザイ リ ンクスの製品は、 フェイルセーフと して、 または、
フェイルセーフの動作を要求するアプリ ケーシ ョ ンに使用するために、 設計されたり意図されたり していません。 そのよ うな重大なア
プリ ケーシ ョ ンにザイ リ ンクスの製品を使用する場合のリ スク と責任は、 貴殿または貴社が単独で負う ものです。
japan.xilinx.com/legal.htm#tos で見られるザイ リ ンクスの販売条件を参照して下さい。
自動車用のアプリ ケーシ ョ ンの免責条項
ザイ リ ンクスの製品は、 フェイルセーフと して設計されたり意図されてはおらず、 また、 フェイルセーフの動作を要求するアプリ ケー
シ ョ ン (具体的には、 (I) エアバッグの展開、 (II) 車のコン ト ロール (フェイルセーフまたは余剰性の機能 (余剰性を実行するためのザイ リ
ンクスの装置にソフ ト ウェアを使用するこ とは含まれません) および操作者がミ スをした際の警告信号がある場合を除きます)、 (III) 死亡
や身体傷害を導く使用、 に関するアプリ ケーシ ョ ン) を使用するために設計されたり意図されたり も していません。 顧客は、 そのよ うな
アプ リ ケーシ ョ ンにザイ リ ンクスの製品を使用する場合のリ スク と責任を単独で負います。
© Copyright 2016 Xilinx, Inc. Xilinx、 Xilinx のロゴ、 Artix、 ISE、 Kintex、 Spartan、 Virtex、 Vivado、 Zynq、 およびこの文書に含まれるその
他の指定されたブランドは、 米国およびその他各国のザイ リ ンクス社の商標です。 すべてのその他の商標は、 それぞれの保有者に帰属
します。
この資料に関するフ ィードバッ クおよびリ ンクなどの問題につきましては、 [email protected] まで、 または各ページの右下
にある [フ ィードバッ ク送信] ボタンをク リ ッ クする と表示されるフォームからお知らせください。 フ ィードバッ クは日本語で入力可能
です。 いただきましたご意見を参考に早急に対応させていただきます。 なお、 このメール アドレスへのお問い合わせは受け付けており
ません。 あらかじめご了承ください。