Xilinx XAPP622 : 644 MHz SDR LVDS トランスミッタ /レシーバ

Similar documents
Virtex-6 Clocking

Xilinx XAPP645 Virtex-II Pro デバイス アプリケーション ノート『シングル エラー訂正およびダブル エラー 検出』

Xilinx XAPP721 High-Performance DDR2 SDRAM Interface Data Capture Using ISERDES and OSERDES, Application Note

XAPP453 「3.3V 信号を使用した Spartan-3 FPGA のコンフィギュレーション」 v1.0 (02/05)

Xilinx XAPP485 Spartan-3E FPGA における最大レート 666Mbps でのデシリアライズ、アプリケーション ノート

ザイリンクス アプリケーション ノート XAPP709 : Virtex-4 FPGA デバイスを使用した DDR SDRAM コントローラ

Virtex-6 FPGA で LVDS を使用した、1.25Gb/s での 4X 非同期オーバーサンプリング, アプリケーション ノート (XAPP881)

QuartusII SOPC_Builderで利用できるGPIF-AVALONブリッジとは?

Nios II - PIO を使用した I2C-Bus (2ワイヤ)マスタの実装

ザイリンクス UG382 Spartan-6 FPGA クロック リソース ユーザー ガイド

Microsoft Word - 実験4_FPGA実験2_2015

-2 外からみたプロセッサ GND VCC CLK A0 A1 A2 A3 A4 A A6 A7 A8 A9 A10 A11 A12 A13 A14 A1 A16 A17 A18 A19 D0 D1 D2 D3 D4 D D6 D7 D8 D9 D10 D11 D12 D13 D14 D1 MEMR

PPTフォーム(white)

デザインパフォーマンス向上のためのHDLコーディング法

「電子政府推奨暗号の実装」評価報告書

Virtex-6 FPGA クロッキング リソース ユーザー ガイド (UG362)

GTR Board

Report Template

CMOS リニアイメージセンサ用駆動回路 C CMOS リニアイメージセンサ S 等用 C は当社製 CMOSリニアイメージセンサ S 等用に開発された駆動回路です USB 2.0インターフェースを用いて C と PCを接続

Microsoft Word - TC4017BP_BF_J_P10_060601_.doc

Microsoft Word - TC4013BP_BF_J_P9_060601_.doc

VelilogHDL 回路を「言語」で記述する

スライド 1

Microsoft PowerPoint - 3.3タイミング制御.pptx


Microsoft Word - PCI-X_PCIeバスのデータ転送-ver1.0.docx

0630-j.ppt

XAPP858 - High-Performance DDR2 SDRAM Interface In Virtex-5 Devices

SOPC Builder ペリフェラル 簡易ユーザ・ガイド - PIO (Parallel I/O)

PLL クイック・ガイド for Cyclone III

Xilinx XAPP523 LVDS 4x Asynchronous Oversampling Using 7 Series FPGAs, Application Note

Verilog HDL による回路設計記述

Microsoft Word - TC4011BP_BF_BFT_J_P8_060601_.doc

ヤマハDante機器と他社AES67機器の接続ガイド

スライド 1

Microsoft PowerPoint LC_15.ppt

XAPP1064 : ソース同期のシリアライズおよびデシリアライズ (最大 1050 Mb/s)

履歴 修正日 内容 2011/01/18 第 1 版制定 2012/10/ 版 内容 Bee Beans Technologies 社から配布されているネットワーク プロセッサ (SiTCP) のライブラリ使用方法を解説した文書です SiTCP の概要や各信号意味などは別文書 SiTCP

IBIS

PLL ダイナミック リコンフィギュレーション, アプリケーション ノート (XAPP879)

データ収集用 NIM/CAMAC モジュールマニュアル 2006/5/23 目次 クレート コントローラ CC/ NIM ADC 1821 (Seiko EG&G)...3 ADC インターフェイス U デッドタイム

Microsoft Word - AK8133_MS0930_J_05.doc

PRONETA

AN 357: Error Detection & Recovery Using CRC in Altera FPGA Devices

Microsoft PowerPoint - 集積回路工学_ ppt[読み取り専用]

VLSI工学

ブロック図 真理値表 入力出力 OUTn (t = n) CLOCK LATCH ENABLE SERIAL-IN OUT 0 OUT 7 OUT 15 SERIAL OUT H L D n D n D n 7 D n 15 D n 15 L L D n No Change D n 15 ( 注 )

Xilinx UG190 Virtex-5 FPGA ユーザー ガイド

CMOS リニアイメージセンサ用駆動回路 C10808 シリーズ 蓄積時間の可変機能付き 高精度駆動回路 C10808 シリーズは 電流出力タイプ CMOS リニアイメージセンサ S10111~S10114 シリーズ S10121~S10124 シリーズ (-01) 用に設計された駆動回路です セン

QuartusII SOPC_Builderで利用できるGPIF-AVALONブリッジとは?

Microsoft Word - TC4538BP_BF_J_2002_040917_.doc

ディジタル電子回路 設計演習課題

arduino プログラミング課題集 ( Ver /06/01 ) arduino と各種ボードを組み合わせ 制御するためのプログラミングを学 ぼう! 1 入出力ポートの設定と利用方法 (1) 制御( コントロール ) する とは 外部装置( ペリフェラル ) が必要とする信号をマイ

CommCheckerManual_Ver.1.0_.doc

パルス波高値計測回路の製作

NJU72501 チャージポンプ内蔵 圧電用スイッチングドライバ 概要 NJU72501はチャージポンプ回路を内蔵し 最大で3V 入力から 18Vppで圧電サウンダを駆動することができます このチャージポンプ回路には1 倍 2 倍 3 倍昇圧切り替え機能を備えており 圧電サウンダの音量を変更すること

Quartus II クイック・スタートガイド

HD74LS74A データシート

S1C17 Family Application Note S1C17 シリーズ PORT 多重割り込みアプリケーションノート Rev.1.0

NI 6601/6602 キャリブレーション手順 - National Instruments

:30 18:00 9:30 12:00 13:00 17:00

McAfee SaaS Protection 統合ガイド Microsoft Office 365 と Exchange Online の保護

BROAD-GATE 01

FPGAによる24時間時計回路

Polycom RealConnect for Microsoft Office 365

untitled

内容 1. APX-3302 の特長 APX-3312 から APX-3302 へ変更するためには 差分詳細 ハードウェア ハードウェア性能および仕様 ソフトウェア仕様および制限 Ini ファイルの設

エンティティ : インタフェースを定義 entity HLFDD is port (, : in std_logic ;, : out std_logic ) ; end HLFDD ; アーキテクチャ : エンティティの実現 architecture RH1 of HLFDD is <= xor

新しくシンボルを作成することもできるが ここでは シンボル :opamp2.asy ファイル を回路と同じフォルダにコピーする コピーしたシンボルファイルをダブルクリックで 開く Fig.4 opamp2 のシンボル 変更する前に 内容を確認する メニュー中の Edit の Attributes の

UMB-CP2114 User's Manual

Welcome-Kit ~STM32L4-Nucleo~

内容 1. 仕様 動作確認条件 ハードウェア説明 使用端子一覧 ソフトウェア説明 動作概要 ファイル構成 オプション設定メモリ 定数一覧 変数一

ソフトウェア基礎技術研修

Oracle Enterprise Managerシステム監視プラグイン・インストレーション・ガイドfor Juniper Networks NetScreen Firewall, 10gリリース2(10.2)

ザイリンクス XAPP1097 : Artix-7 FPGA GTP トランシーバーを使用した SMPTE SDI インターフェイスの実装

非圧縮の1080p60ビデオをサポートする3Gbps SDIコネクティビティ・ソリューション

問題 バイポーラ電源がないと 正と負の電圧や電流を瞬断なくテスト機器に供給することが困難になります 極性反転リレーやスイッチ マトリクスを持つ 1 象限または 2 象限電源では V またはその近傍に不連続が生じ これが問題になる場合があります ソリューション 2 象限電圧のペアを逆直列に接続すれば

観測波形 赤いエリアに波形が入り込まなければ規格を満足しています.5mではより厳しいTP2の規格でも満足しています.5mケーブル使用時 TP2規格 TP3規格 -.1-5mケーブル使用時 2

スライド 1

Transcription:

アプリケーションノート : Virtex-II シリーズ 644-MHz SD LVDS トランスミッタ / レシーバ XAPP622 (v1.7) 2004 年 4 月 27 日 概要 このアプリケーションノートでは 1 ペアのクロックと 16 ペアのデータチャネルの合計 17 ペアの低電圧差動信号伝送 (LVDS) を使用した 最大 644 MHz で動作するシングルデータレート (SD) トランスミッタおよびレシーバについて説明します このデザインは Virtex-II および Virtex-II Pro にインプリメントできます このアプリケーションノートに関連する Virtex-II および Virtex-II Pro デバイスのデザイン情報および要件の詳細は 表 12 を参照してください 添付のリファレンスデザインファイルには Virtex-II XC2V3000-FF1152-5 スピードグレードのデバイスを対象にしたインプリメンテーションの例が含まれています このリファレンスデザインには エンベデッドロケーション制約および配線制約を含む EDIF ネットリスト Verilog シミュレーション および合成テンプレートファイルがインプリメントされています はじめに SD インターフェイスは 図 1 で示すように データに対してクロックの立ち上がり / 立ち下がり遷移が 1 回しかありません このため データレートが 500 Mb/s の場合 クロック周波数は 500 MHz になります SD LVDS インターフェイスは XSBI (10 ギガビットイーサネットシステムで使用される 16 ビットインターフェイス ) など テレコムおよびデータコム市場におけるさまざまな標準製品に使用されています DATA word_0 word_1 word_2 word_3 CLK 図 1 : SD クロックおよびデータインターフェイス x622_01_043002 SD クロック周波数が Virtex-II デジタルクロックマネージャ (DCM) の最大動作周波数 (420 MHz) より低い場合は 通常のデザイン手法でシングルデータレートデザインを容易にインプリメントできます このアプリケーションノートでは Virtex-II デバイスの AC タイミング仕様を超えることなく DCM の最大動作周波数以上の SD インターフェイスをインプリメントする方法を説明します 図 2 に Virtex-II デバイスと SD インターフェイスのデバイス間における送受信 SD リンクを示します Virtex-II デバイスは トランスミッタクロックを生成するために SD 周波数で動作する LVDS または LVPECL 差動出力のいずれかがあるリファレンスクロックが必要です 図 2 に SD 周波数で動作するクロックソースを示します 一方のデバイスでクワッドデータレート (QD) クロック周波数を受信し もう一方の Virtex-II デバイスに SD リファレンスクロックを送り返すシステムもあります 2003 Xilinx, Inc. All rights reserved. すべての Xilinx の商標 登録商標 特許 免責条項は http://www.xilinx.co.jp/legal.htm にリストされています 他のすべての商標および登録商標は それぞれの所有者が所有しています すべての仕様は通知なしに変更される可能性があります 保証否認の通知 : Xilinx ではデザイン コード その他の情報を 現状有姿の状態 で提供しています この特徴 アプリケーションまたは規格の一実施例としてデザイン コード その他の情報を提供しておりますが Xilinx はこの実施例が権利侵害のクレームを全く受けないということを表明するものではありません お客様がご自分で実装される場合には 必要な権利の許諾を受ける責任があります Xilinx は 実装の妥当性に関するいかなる保証を行なうものではありません この保証否認の対象となる保証には 権利侵害のクレームを受けないことの保証または表明 および市場性や特定の目的に対する適合性についての黙示的な保証も含まれます XAPP622 (v1.7) 2004 年 4 月 27 日 www.xilinx.co.jp 1

eference Clock EFCLK_P EFCLK_N Virtex-II Device CLK DATA<15:0> CLK DATA<15:0> Device with SD 図 2 : 一般的な SD リンクシステム x622_02_051002 図 3 に TX_CLOCK TX_SD_16D_4TO1 および X_SD_16D_4TO1 の 3 つのモジュールで構成されている Vietex-II デバイス SD インターフェイスを示します この章では これらのモジュールについて説明します 複数のトランスミッタおよびレシーバを同じ Virtex-II FPGA にインプリメントすることも可能です 複数のインスタンスが必要な場合 X_SD_16D_4TO1 および TX_SD_16D_4TO1 モジュールのみを複製し TX_CLOCK モジュールは複製せずに有効なグローバルクロックリソースを保存します TX_CLOCK モジュールには アクティブ High SD グローバルクロックが 2 つあるトランスミッタが含まれており リファレンスクロック (EFCLK) およびシステムデータパスロジックのクワッドレート (QD) グローバルクロックの立ち上がり / 立ち下がりエッジの変化を示します EFCLK_P EFCLK_N IBUFDS_LVDS_DIFF X_SD_16D_4TO1 TX_CLOCK TX_SD_16D_4TO1 XP_clk XN_clk XP_data<15:0> XN_data<15:0> Design Data Logic Path TXP_clk TXN_clk TXP_data<15:0> TXN_data<15:0> 図 3 : Virtex-II SD インターフェイス x622_03_050503 2 www.xilinx.co.jp XAPP622 (v1.7) 2004 年 4 月 27 日

トランスミッタクロック TX_CLOCK モジュールは 入力リファレンスクロックに対して デューティサイクルのずれを最低限に抑えるようにデザインされており 業界標準である ± 5% 以内をクリアしています これは ザイリンクスプリミティブ IBUFDS_DIFF_OUT ( 図 4) としてインプリメントされた差動出力を持つ差動入力クロックへバッファを使用することで実現します このプリミティブは リファレンスクロックが High 遷移中にアクティブ High エッジを生成し また Low 遷移中も同様にアクティブ High エッジを生成します このモジュールの出力は 2 つのグローバルバッファおよび DCM に接続しています ( 図 5) このようにクロックネットワークをインプリメントすると デバイス通過時に伴う立ち上がりおよび立ち上がりのクロックスキュー差を削除できます 表 1 では TX_CLOCK モジュールのピンについて説明します 表 1 : TX_CLOCK モジュールのピンの説明 I/O の種類モジュールのピン名説明 入力 出力 EFCLK_P EFCLK_N ST CLK_sdr_p CLK_sdr_n IBUFDS_F_DIFF からの差動 SD クロック入力 アクティブ High リセット信号 アクティブ High 立ち上がりエッジのグローバル SD クロックアクティブ High 立ち下がりエッジのグローバル SD クロック アクティブ High のグローバル QD クロック IBUFDS_DIFF_OUT I O IB OB x622_04_101703 図 4 : IBUFDS_DIFF_OUT プリミティブ TX_CLOCK EFCLK_N BUFG CLK_sdr_n EFCLKN EFCLKP EFCLK_P BUFG CLK_sdr_p DCM ST CLKIN CLKFB PSCLK PSEN PSINCDEC ST CLK0 CLK90 CLK180 CLK270 CLKDV CLK2X CLK2X180 LOCKED PSDONE BUFG LOCK 図 5 : TX_CLOCK モジュール x622_05_051402 XAPP622 (v1.7) 2004 年 4 月 27 日 www.xilinx.co.jp 3

2 つのアクティブ High SD グローバルクロックを使用する方法とは別に DCM を使用して QD グローバルクロックを生成する方法があります Virtex-II DCM クロック入力ピン (CLKIN) の機能を使用すると 信号が DCM のデジタル遅延ラインに適用される前に ジッタおよび遅延を増加せずに入力を二分周できます この機能をイネーブルにするには DCM セルで CLKIN_DIVIDE_BY_2 属性を TUE に設定します これにより SD 周波数の半分の周波数で 最大 AC タイミング仕様を超過することなく DCM を動作させることができます 図 6 に すべてのクロック信号の波形を示します EFCLK_P EFCLK_N CLK_sdr_p CLK_sdr_n 図 6 : TX_CLOCK 出力波形 x622_06_051302 4:1 シリアライザトランスミッタ (TX_SD_16D_4TO1) このトランスミッタ (TX_SD_16D_4TO1) は データチャネル用の OUTSTAGE_DATA およびクロック出力用の OUTSTAGE_CLK という 2 種類の出力モジュールで構成されています この章では これらのモジュールについて説明します 表 2 に TX_SD_16D_4TO1 モジュールのピンについて説明します 表 2 : TX_SD_16D_4TO1 モジュールのピンの説明 I/O の種類モジュールのピン名説明 入力 データ <63:0> 64 ビットデータ入力バスのデータは LSW から MSW の順にレシーバに転送される 例 : <15:0> <31:16> <47:32> <63:48> 出力 CLK_sdr_p CLK_sdr_n ST TXP_data<15:0> TXN_data<15:0> TXP_clk TXN_clk アクティブ High 立ち上がりエッジのグローバル SD クロックアクティブ High 立ち下がりエッジのグローバル SD クロック アクティブ High のグローバル QD クロック アクティブ High リセット これらの信号には 16 ビット送信バスを生成する差動ペアが含まれる このバスを通過するすべてのデータ送信は トランスミッタクロックに同期する TXP_clk および TXN_clk は 差動およびソース同期のクロック信号を生成する 図 7 に トランスミッタのブロック図を示します アクティブ High 立ち下がりエッジの SD グローバルクロックを受信するモジュールは OUTSTAGE_CLK のみです データチャネルおよびクロックの最終的なレジスタステージは IOB に配置され CLK_sdr_p グローバルクロックを採用します このため チャネル間のスキューを最小限に抑えることができ 最高のパフォーマンスを得ることができます CLK_sdr_n グローバルクロックは トランスミッタクロックの立ち下がりエッジを生成する場合にのみ使用され オリジナルのリファレンスクロックに対してのデューティサイクルのずれを最低限に抑えます 4 www.xilinx.co.jp XAPP622 (v1.7) 2004 年 4 月 27 日

DATA<63:0> OUTSTAGE_D15 TXP_data<15:0> TXN_data<15:0> CLK_sdr_n OUTSTAGE_CLK TXP_clk TXN_clk CLK_sdr_p ST OUTSTAGE_D0 図 7 : TX_SD_16D_4TO1 ブロック図 x622_07_051002 トランスミッタデータ出力チャネル (OUTSTAGE_DATA) トランスミッタデータ出力チャネル (OUTSTAGE_DATA) モジュール ( 図 8) は 4:1 シリアライザとして機能します QD グローバルクロックドメインから出力される 4 ビットデータは タイミングクロージャを短期間で達成するために 一度パイプライン化され 送信される前に 4 ビットパラレル - シリアルコンバータを通過します 表 3 に このモジュールのピンについて説明します DATA<3:0> CLK_sdr TXP TXN 図 8 : OUTSTAGE_DATA モジュール 表 3 : OUTSTAGE_DATA モジュールのピンの説明 x622_08_051002 I/O の種類モジュールピン名説明 入力 データ <3:0> このトランスミッタのデータスライス アクティブ High のグローバル QD クロック CLK_sdr アクティブ High 立ち上がりエッジのグローバル SD クロック 出力 TXP TXN LVDS 出力データ ( シングルチャネル ) QD から SD グローバルクロックドメインへのデータ書き込みは 各 OUTSTAGE_DAT モジュールのロードパルス回路により実行されます このロードパルス回路は 2 つのドメイン間でデータが転送されるための十分な時間が与えられるように構築されています 図 9 に QD ドメインおよび SD ドメインの転送されたデータのタイミング波形を示します XAPP622 (v1.7) 2004 年 4 月 27 日 www.xilinx.co.jp 5

Last Word Next Word TXP 1 2 3 0 CLK_sdr 図 9 : OUTSTAGE_DATA 出力波形 x622_09_051302 このモジュールのタイミングは非常に重要なため 明示的に配置することが必要になります このモジュールには指定配線制約が含まれており デザインをインプリメントするごとに確実にタイミングが満たされます そのため 必要な配置ロケーション制約は 各データチャネルに LOC_OIGIN を与えるだけになります このアプリケーションノートに関連するデザインファイルは バンク 2 および 3 の右側をターゲットにしています 各 OUTSTAGE_DATA モジュールは IOB に隣接した 2 つの CLB スライスを使用し CLB スライス列番号および行番号よりも 3 つ小さい場所から LOC_OIGIN を設定します 次の例のように 配置制約がデザインの UCF ファイルに追加されます INST "U_tx/OUTSTAGE_D1î LOC_OIGIN = X108Y66 ; NET "TXP_data<1>î LOC = U8; NET "TXN_data<1>î LOC = U9; INST "U_tx/OUTSTAGE_D2î LOC_OIGIN = X108Y68; NET "TXP_data<2>î LOC = U6; NET "TXN_data<2>î LOC = T6; Y69 N/C Y68 N/C Y69 T6 TXN_data<2> AMB16_X5Y10 MULT18X18_X5Y10 Y68 Y67 Y66 Y67 U6 U2 U1 U9 TXP_data<2> TXN_data<1> Y66 U8 TXP_data<1> X108 X109 X110 X111 図 10 : OUTSTAGE_DATA フロアプラン x622_10_051002 6 www.xilinx.co.jp XAPP622 (v1.7) 2004 年 4 月 27 日

トランスミッタクロック出力チャネル (OUTSTAGE_CLK) トランスミッタクロック出力チャネル (OUTSTAGE_CLK) モジュールは データチャネルに同期する SD クロック波形を再生成します このモジュール ( 図 11) は D0 入力がロジック 1 に接続され D1 入力がロジック 0 に接続された DD 出力フリップフロップで構成されています 表 4 では このモジュールのピンについて説明します CLK_sdr_p CLK_sdr_n FDDSE D0 Q D1 C0 C1 CE S TXP TXN x622_11_050902 図 11 : OUTSTAGE_CLK モジュール 表 4 : OUTSTAGE_CLK モジュールのピンの説明 I/O の種類モジュールのピン名説明 入力 CLK_sdr_p アクティブ High 立ち上がりエッジのグローバル SD ク ロック CLK_sdr_n 出力 TXP TXN LVDS 出力クロック アクティブ High 立ち下がりエッジのグローバル SD クロック 4:1 シリアライザレシーバ (X_SD_16D_4TO1) このレシーバ (X_SD_16D_4TO1) モジュールには 高速レシーバ (HSX_16D_4TO1) および FIFO で構成されており 受信クロックドメインと内部システムクロックドメインの間のデータを処理します この章では これらのモジュールについて説明します 表 5 では このモジュールのピンについて説明します 図 12 に HSX および FIFO モジュール間の接続を示します 表 5 : レシーバモジュールのピンの説明 I/O の種類モジュールのピン名説明 入力 XP_data<15:0> XN_data<15:0> EFCLK X_sync SYSCLK E ST これらの信号は 16 ビットレシーバ入力バスを生成する差動ペアで構成されている レシーバリファレンス SD クロック レシーバ位相同期化入力 FIFO 読み出し用のシステムグローバルクロック アクティブ High の FIFO 読み出しイネーブル アクティブ High のレシーバリセット 出力 DATA<63:0> SYSCLK に同期する FIFO から出力される 64 ビットバスの受信データ BUFSTAT<3:0> FIFO バッファがフルの状態 EADY アクティブ High で レシーバが有効なデータを受信できることを示す 受信クロックの QD ( グローバルクロックではない ) XAPP622 (v1.7) 2004 年 4 月 27 日 www.xilinx.co.jp 7

XP_data<15:0> XN_data<15:0> DATA<63:0> EFCLK X_sync SYSCLK E ST BUFSTAT<3:0> EADY 図 12 : HSX_16D_4TO1 モジュール x622_12_051002 HSX_16D_4TO1 モジュールは DCM に動的位相トレーニング回路を含み データ有効ウインドウの中央に受信クロックを一致させることができます この機能により 2 つの異なるクロックを使用する手法が実現します これは HSX_16D_4TO1 モジュールの EFCLK および X_sync 入力を使用してインプリメントできます 図 13 に示すとおり EFCLK 入力は トランスミッタインターフェイスに使用される入力と同じ差動入力に接続し X_sync 入力は SD インターフェイスの XP_clk および XN_clk ピンに接続します これにより オリジナルリファレンスクロックを DCM クロック入力のソースとして使用することができ また レシーバ SD クロック入力ピンおよびレシーバ SD データチャネルを同じ場所に配置できます この回路は EFCLK およびレシーバ SD クロック周波数が確実に一致している場合のみに使用できます EFCLKP XP_clk XN_clk X_SD_16D_4TO1 XP_data<15:0> XN_data<15:0> EFCLK X_sync SYSCLK E ST DATA<63:0> BUFSTAT<3:0> EADY x622_13_051402 図 13 : EFCLK を使用したレシーバクロック手法 図 14 に示すとおり EFCLK 入力および X_sync 入力は いずれも SD インターフェイスの XP_clk ピンおよび XN_clk ピンに接続します これにより X クロックを DCM クロック入力のソースとして使用することができ レシーバ SD クロック入力ピンおよびレシーバ SD データチャネルを同じ場所に配置しない場合の周波数のドリフトを懸念する必要がありません X_SD_16D_4TO1 XP_clk XN_clk XP_data<15:0> XN_data<15:0> EFCLK X_sync SYSCLK E ST DATA<63:0> BUFSTAT<3:0> EADY x622_14_051402 図 14 : 受信クロックを使用したレシーバクロック手法 図 15 に レシーバのブロック図を示します このレシーバは 2 つのモジュールで構成されています この章では これらのモジュールについて説明します データは左から右へと送信されるため HSX_16D_4TO1 モジュールが最初にデータを受信します この HSX_16D_4TO1 モジュールは 高 8 www.xilinx.co.jp XAPP622 (v1.7) 2004 年 4 月 27 日

速 LVDS レシーバであり アラインしていないデータを FIFO ブロックへ送信し システムクロックドメインへのキュー待ち ( 待ち行列 ) をします HSX_16D_4TO1 FIFO XP_data<15:0> DATA<63:0> DATA<63:0> DATA<63:0> XN_data<15:0> EFCLK X_sync SYSCLK ST WCLK EADY WCLK ST CLK E BUFSTAT<3:0> E 図 15 : レシーバブロック図 EADY x622_15_051402 システムクロックとして使用するために 出力がありますが 通常はあまり使用しません 出力を使用する場合は 追加ロジックへ信号を接続する前にグローバルクロックバッファ (BUFG) を挿入する必要があります FIFO インターフェイスの制御は ユーザーが定義できます 一般的な制御システムは バッファがほぼフルの状態 ( 例 :BUFSTAT<3:0> = 1101) になり 読み出しが開始できるようになるまで待機し また バッファがほぼ空の状態 ( 例 : BUFSTAT<3:0> = 0010) になるまで読み出しを続けます SYSCLK 周波数が 周波数と同一の場合は 読み出しが開始されてから FIFO が空状態になることはありません 次の Verilog コードは 制御回路の例を示しています // // X FIFO control logic // always @ (posedge SYSCLK) begin if (ST_i == 1 b1 BUFSTAT < 4 b0010 ) EAD_ENABLE = 1 b0; else if (EADY == 1 b1 && BUFSTAT == 4 b1101 ) EAD_ENABLE = 1 b1; end 高速レシーバ (HSX_16D_4TO1) 16 データチャネル高速レシーバ (HSX_16D_4TO1) は 16 個のデシリアライゼーションモジュール (QD_EG) および 1 個のクロック位相シンクロナイゼーションモジュール (CLKGEN) で構成されています この章では これらのモジュールについて説明します 表 6 では モジュールのポートについて説明し 図 16 に HSX ブロック図を示します XAPP622 (v1.7) 2004 年 4 月 27 日 www.xilinx.co.jp 9

表 6 : HSX モジュールのピンの説明 I/O の種類 モジュールのピン名 説明 入力 XP_data<15:0> XN_data<15:0> LVDS データピン EFCLK X_sync SYSCLK レシーバリファレンス SD クロック レシーバ位相同期入力 システムクロック 出力 DATA<63:0> アラインしていないデータビット WCLK FIFO 書き込みクロックは EFCLK から派生 EADY アクティブ High の ready ステータス リファレンスクロックの QD ( グローバルクロックではない ) XP_data<15:0> XN_data<15:0> QD_D15 QD_D14 QD_D13 EFCLK X_sync ST CLKGEN QD_D12 DATA<63:0> EADY WCLK QD_D3 QD_D2 QD_D1 QD_D0 図 16 : HSX_16D_4TO1 ブロック図 x622_16_051402 クワッドデータレートレジスタ (QD_EG) クワッドデータレートレジスタは IOB にある DD 入力レジスタを含む DD レジスタのツリーを使用して 入力 SD データ用の 4:1 デシリアライゼーションを行います 各 DD レジスタは SD の半分の周波数でグローバルクロック (CLK_ddr) を使用しています CLK_ddr は SD リファレンス 10 www.xilinx.co.jp XAPP622 (v1.7) 2004 年 4 月 27 日

クロックから派生しており 最高のパフォーマンスを得るために受信クロックと位相が一致しています このモジュールのピンについては 図 17 および表 7 で示します XP XN CLK_ddr CE_r CE_f Q<3:0> x622_17_051002 図 17 : QD_EG モジュール表 7 : QD_EG モジュールのピンの説明 I/O の種類モジュールのピン名説明 入力 XP XN CLK_ddr CE_r CE_f LVDS データ DD グローバルクロック 立ち上がりエッジのクロックイネーブル立ち下がりエッジのクロックイネーブル 出力 Q<3:0> 受信データ このアプリケーションノートに関連するレシーバデザインファイルは バンク 6 および 7 の中の左側をターゲットにしています 各 QD_EG モジュールは IOB に隣接する 2 個半の CLB リソースの半分を使用し 同じ列に 2 つのデータチャネルを配置できます 最初の CLB ロケーションの列および行に LOC_OIGIN 属性を与える必要があります 図 18 に XC2V3000-FF1152 デバイスに 2 つのデータチャネルを配置した例を示します この場合 配置制約は次のように UCF ファイルに追加されます INST "U_rx/QD_D8î LOC_OIGIN = X0Y80; NET "XP_data<8>î LOC = N30; NET "XN_data<8>î LOC = P30; INST "U_rx/QD_D9î LOC_OIGIN = X0Y82; NET "XP_data<9>î LOC = 25; NET "XN_data<9>î LOC = P25; XAPP622 (v1.7) 2004 年 4 月 27 日 www.xilinx.co.jp 11

M34 Y83 L34 Y82 XN_data<9> XP_data<9> P25 25 N/C N/C Y83 Y82 Y81 Y80 AM16_X0Y10 MULT18X18_X0Y10 XN_data<8> P30 Y81 XP_data<8> N30 Y80 図 18 : 受信データチャネルフロアプラン レシーバクロック位相アライメント (CLKGEN) X0 X1 X2 X3 X4 X5 x622_18_101703 レシーバインターフェイスは クロック位相アライメント回路をインプリメントしています これにより Virtex-II DCM の可変位相シフト機能を使用しながら データ有効ウインドウの中央にリファレンスクロックをアラインして最高のパフォーマンスを得ることができます この CLKGEN モジュールのポートの詳細については 図 19 および表 8 を参照してください CLKGEN EFCLK X_sync SYSCLK ST CLK_ddr CE_r CE_f WCLK EADY x622_19_051302 図 19 : CLKGEN モジュール 12 www.xilinx.co.jp XAPP622 (v1.7) 2004 年 4 月 27 日

表 8 : CLKGEN モジュールのピンの説明 I/O の種類 モジュールのピン名 説明 入力 EFCLK リファレンス SD クロック X_sync レシーバ位相シンクロナイゼーション入力 ST リセット SYSCLK 位相制御アライメントロジック用のシステムクロック 出力 CLK_ddr 1/2 受信クロック 1/4 受信クロック CE_r, CE_f DD クロックイネーブル信号 WCLK FIFO 書き込みクロック EADY アクティブ High クロックの ready ステータス 図 20 に CLKGEN モジュールのブロック図を示します このインスタンスの DCM は CLKIN_DIVIDE_BY_2 属性を使用して 実際のクロック入力周波数をリファレンス SD クロック周波数の半分になります DCM (CLK0) の出力を BUFG に接続し DD グローバルクロックをレシーバデータチャネルに与えます X_sync 入力は IOB にある DD レジスタのデータピンに接続され CLK_ddr グローバルクロックは クロック入力に使用されます この回路は データと同一です DD 入力レジスタの出力は 位相同期化ロジックを通過する前にデバイスのレジスタに接続されています 図 21 に レシーバデータパターン X_sync EFCLK および 3 つの CLK_ddr 信号のステートの波形を示します 実際に X_sync は SD クロック信号であるため データチャネルの 2 倍のクロック変遷があります CLKGEN モジュールがリセットされると DCM は EFCLK 信号をロックして位相のずれをゼロにする調整が開始します DCM がロックした後 X_sync DD レジスタが DD レジスタの両方の出力から安定したロジック 0 を受け取るまで 位相調整ブロックは位相カウンタ (ps_count) をインクリメントします 位相カウンタは 値が 0 でなくなるまでインクリメントを続け データ有効ウインドウの末尾 (zero_end) を示します 位相カウンタは 安定したロジック 1 が出力されるまでインクリメントを続け データ有効ウインドウの開始 (ones_start) を示します データ有効ウインドウ末尾の位相カウンタが 96 (SD 周期の 75%) 以上の場合 有効ウインドウ (ps_compare) の中央は 論理式 (zero_end + ones_start)/2-64 で決定します カウンタが 96 以下の場合は 次の安定した 0 ストリームの末尾が来るまで位相カウンタはインクリメントを続けます データ有効ウインドウ (ps_compare) の中央は 論理式 (ones_start + zero_end)/2 で決定します 有効ウインド XAPP622 (v1.7) 2004 年 4 月 27 日 www.xilinx.co.jp 13

ウ (ps_compare) の中央が決定すると 位相カウンタは ps_compare の値に達するまでデクリメントを続けます EFCLK ST CLKIN CLKFB ST DCM CLK0 CLK2X CLKDV BUFG CLK_ddr PS_CLK PS_EN PS_INCDEC LOCKED PS_DONE X_sync IOB CLK ST LOCKED PS_DONE IOB 図 20 : CLKGEN ブロック図 SYNC1 PS_CLK SYNC0 PS_EN PS_INCDEC PS_LOCK EADY x622_20_051002 X_data<15:0> Word_0 Word_1 Word_2 Word_3 X_sync 1 0 1 0 1 0 1 0 EFCLK CLK_ddr x622_21_042403 図 21 : クロック位相の同期化 14 www.xilinx.co.jp XAPP622 (v1.7) 2004 年 4 月 27 日

レシーバ FIFO (FIFO) レシーバクロックドメインおよびシステムクロックドメイン間のクロスには 512 x 64 ビット幅の FIFO を使用します バッファステータスバス (BUFSTAT) は FIFO の中に 16 x 64 ビット幅のブロックがいくつ残っているかを示します アクティブ High ST 信号は 読み出しおよび書き込みカウンタをリセットします 図 22 に FIFO モジュールを示し 図 23 には FIFO ブロック図を示します また 表 10 では このモジュールのピンについて説明しています FIFO インターフェイスの制御は ユーザーが定義できます 一般的な制御システムは バッファがほぼフル状態 ( 例 :BUFSTAT<3:0> = 1101) になり 読み出しを開始できるようになるまで待機し バッファがほぼ空き状態 ( 例 : BUFSTAT<3:0> = 0010) になるまで読み出しを続けます SYSCLK 周波数が 周波数と同一の場合は 読み出しが開始された後に FIFO が空になることはありません 次の Verilog コードは 制御回路の例を示しています // // X FIFO control logic // always @ (posedge SYSCLK) begin if (ST_i == 1 b1 BUFSTAT < 4 b0010 ) EAD_ENABLE = 1 b0; else if (EADY == 1 b1 && BUFSTAT == 4 b1101 ) EAD_ENABLE = 1 b1; end FIFO 書き込みデータは 1 つのブロック SelectAM に 4 つのデータチャネルがあり 次のようなマッピングになります X_data<3:0> FIFOBLK0 X_data<7:4> FIFOBLK1 X_data<11:8> FIFOBLK2 X_data<15:12> FIFOBLK3 ブロック SelectAM は NCF ファイルの LOC 制約を使用して IOB リングに最も隣接した場所に配置する必要があります 図 18 に 配置の例を示します INST U_fifo/FIFOBLK1 LOC = AMB16_X0Y10; WDATA<63:0> WCLK CLK E ST DATA<63:0> BUFSTAT<3:0> 図 22 : FIFO モジュール x622_22_050902 XAPP622 (v1.7) 2004 年 4 月 27 日 www.xilinx.co.jp 15

WDATA<63:0> WCLK ST WADD CE Q<7:0> C ST WEA ENA CLKA ADDA DIA DOA E CLK CE C DADD Q<7:0> FULL_MT WADD<3:0> ADD<3:0> BUFSTAT<3:0> WEB ENB CLKB ADDB DIB DOB BUFSTAT<3:0> DATA<63:0> ST CLK x622_23_050902 図 23 : FIFO ブロック図 表 9 : FIFO モジュールのピンの説明 I/O の種類 モジュールのピン名 説明 入力 WDATA<63:0> 書き込みデータバス WCLK 書き込み CLK CLK 読み出し CLK ( システムクロック ) E ST アクティブ High の読み出しイネーブル アクティブ High の FIFO リセット 出力 DATA<63:0> 読み出しデータバス BUFSTAT<3:0> バッファステータス FULL_MT について 図 24 に 単に Full/Empty 状態を示すジェネレータの FULL_MT モジュールを示します このモジュールは 書き込みアドレスを読み出しクロックドメインに同期させます バッファステータスは 読み出しクロック (WCLK) に同期します 図 25 に FULL_MT のブロック図を示します 表 10 では このモジュールのピンについて説明しています WADD<3:0> ADD<3:0> CLK ST BUFSTAT<3:0> 図 24 : FULL_MT モジュール x622_24_051002 16 www.xilinx.co.jp XAPP622 (v1.7) 2004 年 4 月 27 日

PCB デザインの考察 WADD<3:0> ADD<3:0> DIFF_S1 DIFF_S2 Q<3:0> CLK EQ 図 25 : FULL_MT のブロック図 x622_25_061802 表 10 : FULL_MT モジュールのピンの説明 I/O の種類 モジュールのピン名 説明 入力 WADD<3:0> 書き込みアドレスバスの上位 4 ビット ADD<3:0> 読み出しアドレスバスの上位 4 ビット CLK 読み出し CLK ST リセット 出力 BUFSTAT<3:0> バッファステータス PCB デザインの考察 生成された差動データおよびクロック信号を PCB に配置するには注意が必要であり トレース長も厳しく制限されます すべての信号の遅延が同一であることが理想的です クロックトレースで異なる遅延が生じる場合は 受信 DCM がこの遅延をある程度まで調整します ただし 最良の回路動作を実現するには すべてのデータおよびフレーム信号が 数ピコセカンド以内で一致する必要があります トレースおよび PCB の物理的な特性については XAPP233 を参照してください 差動クロック信号は 高速ではパルスが狭いため 500 MHz 以上でデューティサイクルが 2% 以上の差がある場合は TXP および TXN 信号の電圧レベルを変えることができます この変更は 図 26 で示すように 0.1 µf キャパシタおよび 1 KΩ レジスタを使用して AC 終端と DC バイアス回路を作成して容易に行うことができます この回路または同等のものが PCB デザインに追加されないと レシーバは有効な LVDS 入力レベルを受信できない可能性があります Virtex-II FPGA Clock 100Ω 0.1 µf 1KΩ SD eceiver Data 100Ω 図 26 : AC 終端および DC バイアス回路 x622_26_051002 リファレンスデザイン このアプリケーションノートで示すインプリメンテーションの Verilog および EDIF デザインファイルは 次のザイリンクス FTP サイトからダウンロードできます http://www.xilinx.co.jp/bvdocs/appnotes/xapp622.zip インプリメンテーションについての詳細は readme.txt ファイルを参照してください XAPP622 (v1.7) 2004 年 4 月 27 日 www.xilinx.co.jp 17

まとめ まとめ 付録 A Virtex-II および Virtex-II Pro デバイスは シングルデータレート 16 ビットの LVDS データ送信および受信をインプリメントできます 周波数はスピードグレードにより異なりますが Virtex-II の場合は最大 644 MHz であり Virtex-II Pro の場合は最大 700 MHz になります さまざまなデバイスのパフォーマンスおよびデザイン要件などについては 表 12 を参照してください 差動クロックプリミティブの使用 (IBUFDS_DIFF_OUT) クロック入力のために IBUFDS_DIFF_OUT プリミティブを効果的に使用するには 次の手順に従ってください プリミティブをデザインの最上位層にインスタンシエートする プリミティブにクロック入力ピンロケーション制約を適用する このピンローケーション制約は LVDS ポジティブ入力ピンである必要があります 表 11 に このプリミティブを配置できる場所をパッケージごとに示します プリミティブの 2 つの出力を それぞれ 2 つのグローバルクロック (BUFG) に接続します クロックツリーへのスキューの少ない最適な配線を保証するため ポジティブおよびネガティブターミナルを適切な BUFG へ接続する必要があります 例 この例では FF896 デバイスのバンク 4 の最上位 LVDS ペアにあるプリミティブを使用します Verilog コード IBUFDS_DIFF_OUT IB_refclk (.I( EFCLKP ),.IB( EFCLKN ),.O( EFCLK_in_p ),.OB(EFCLK_in_n )); BUFG BG_sdr_p (.I( EFCLK_in_p ),.O( CLK_sdr_p ) ); BUFG BG_sdr_n (.I( EFCLK_in_n ),.O( CLK_sdr_n ) ); Verilog コードの場合 表 11 で示す制約された値の UCF ファイルは 次の行で記述される必要があります INST IB_refclk/IBUFDS LOC = AE15; # This constraint uses input pins AE15 and AD15, where AE15 is + LVDS pin INST BG_sdr_p LOC = BUFGMUX2P; # This constraint is for the positive output of the primitive INST BG_sdr_n LOC = BUFGMUX3S; # This constraint is for the negative output of the primitive 表 11 : Virtex-II ファミリの入力制約 パッケージタイプ バンク番号 可能な入力位置上位ペア : Pos* Neg 下位ペア : Pos* Neg BUFGMUX の位置 (By Pin Pair) Pos* Neg FF896 Bank 0 G16* H16 6S* 7P C16* C17 4S* 5P Bank 1 C14* C15 2S* 3P F14* F15 0S* 1P Bank 4 AE15* AD15 2P* 3S AH15* AH14 0P* 1S Bank 5 AH17* AH16 6P* 7S AD16* AE16 4P* 5S 18 www.xilinx.co.jp XAPP622 (v1.7) 2004 年 4 月 27 日

付録 A 表 11 : Virtex-II ファミリの入力制約 (Continued) パッケージタイプ バンク番号 可能な入力位置上位ペア : Pos* Neg 下位ペア : Pos* Neg BUFGMUX の位置 (By Pin Pair) Pos* Neg FF1152 Bank 0 J18* K18 6S* 7P E18* E19 4S* 5P Bank 1 E16* E17 2S* 3P H16* H17 0S* 1P Bank 4 AG17* AF17 2P* 3S AK17* AK16 0P* 1S Bank 5 AK19* AK18 6P* 7S AF18* AG18 4P* 5S FF1517 Bank 0 J20* H20 6S* 7P D21* C21 4S* 5P Bank 1 F20* F19 2S* 3P H18* H19 0S* 1P Bank 4 AM20* AL20 2P* 3S AT19* AU19 0P* 1S Bank 5 AP20* AP21 6P* 7S AN22* AN21 4P* 5S BF957 Bank 0 E16* E17 6S* 7P A17* A18 4S* 5P Bank 1 C15* C16 2S* 3P H15* H16 0S* 1P Bank 4 AL15* AL14 2P* 3S AJ15* AH15 0P* 1S Bank 5 AH17* AJ16 6P* 7S メモ : AD17* AD16 4P* 5S 1. アスタリスクマーク (*) はポジティブ LVDS ピンを意味します XAPP622 (v1.7) 2004 年 4 月 27 日 www.xilinx.co.jp 19

付録 A SFI-4 および XSBI の互換性チェックリスト Virtex-II および Virtex-II Pro デバイスは SFI-4 Implementation Agreement revision 1.0 および IEEE P802.3ae draft 4.1 の XSBI 仕様に従っています このアプリケーションノートに関する Virtex-II および Virtex-II Pro デバイスの詳しいデザイン情報および要件については 表 12 を参照してください 表 12 : デバイスの互換性およびパフォーマンス デバイスファミリ アレイサイズ スピードグレード 最大周波数 Virtex-II ファミリ XC2V3000 まで -5, -6 644 MHz Virtex-II Pro ファミリ XC2VP50 まで -5 622 MHz メモ : -6 644 MHz -7 700 MHz 1. テスト条件は 8.2pF の付加がついた 10 インチの F4 で LVDSEXT を使用し 85 で低い電圧 (-5%) を使用しています 2. テストされたすべての Virtex-II および Virtex-II Pro デバイスは フリップチップ技術を使用するパッケージです ザイリンクスでは 高速 I/O を使用するアプリケーションには フリップチップパッケージデバイスの使用を推奨しています 表 13 および表 14 に Virtex-II デバイスに対する仕様の数値解析を示します 表 13 : Virtex-II デバイスにおける SFI-4 および LVDS SD デザインの TX タイミング比較 内容 SFI-4 値 XSBI 値 Virtex-II デバイス値を使用した LVDS SD デザイン クロック周期 1/(622.08 MHz) 1/(644.53 MHz) 1/(622.08 MHz) for SFI-4 1/(644.53 MHz) for XSBI デューティサイクル = クロック周期で高い CLK パルス幅を分割 40/60 40/60 45/55 立ち上がり / 立ち下がり時間 1 が 20%-80% 増加 100-250 ps 100-250 ps 400 ps クロックエッジ 2 に対するデータ無効ウインドウ 400 ps 400 ps 242 ps メモ : 1. Virtex-II の立ち上がりおよび立ち下がり時間は SFI-4 のドキュメントに記述されている範囲を超えますが インターオペラビリティ ( 相互運用性 ) テストに基づき Virtex-II デバイスは SFI-4 デバイスと互換性があります 2. データ無効ウインドウには システムジッタ クロックスキュー およびパッケージスキューの合計が示されます TX = (Jitter + T CKSSKEW + T PKGSKEW ) 20 www.xilinx.co.jp XAPP622 (v1.7) 2004 年 4 月 27 日

改訂履歴 表 14 : Virtex-II における SFI-4 および LVDS SD デザインの X タイミング比較 内容 SFI-4 値 XSBI 値 Virtex-II デバイス値を使用した LVDS SD デザイン クロック周期 1/(622.08 MHz) 1/(644.53 MHz) 1/(622.08 MHz) for SFI-4 1/(644.53 MHz) XSBI デューティサイクル = クロック周期で高い CLK パルス幅を 45/55 45/55 45/55 分割 立ち上がり / 立ち下がり時間 1 が 20%-80% 増加 100-300 ps 100-300 ps 400 ps セットアップ時間およびホールド時間の合計 クロックエッジ 2 に対するデータ無効ウインドウ Setup = 300 ps Hold = 300 ps データ有効ウインドウ = 600ps データ有効ウインドウ = 600 ps 590 ps 2 メモ : 1. Virtex-II の立ち上がりおよび立ち下がり時間は SFI-4 のドキュメントに記述されている範囲を超えますが インターオペラビリティ ( 相互運用性 ) テストに基づき Virtex-II デバイスは SFI-4 デバイスと互換性があります 2. データ有効ウインドウには サンプリングエラー クロックスキュー およびパッケージスキューの合計が示されます X = (T SAMP + T CKSKEW + T PKGSKEW ). T SAMP は 500 ps です (Virtex-II のデータシートで定義されています ) T CKSSKEW は 50 ps 以下です (SD デザインのクロック分配の解析に基づいています ) この 2 つの値は固定です 慎重なピン配置 または PCB でのパッケージスキューの低減を行うことにより ピン間のスキューを 40 ps まで抑えることができます 改訂履歴 次の表に このアプリケーションノートの改訂履歴を示します 日付バージョン履歴 2002/05/17 1.0 初版リリース 2002/05/30 1.1 表 2 の改訂 2002/07/02 1.2 図 25 の改訂および 付録 A の追加 2003/05/05 1.3 最新リファレンスデザインへの改訂 2003/08/05 1.4 IBUFDS_LVDS_DIFF を IBUFDS_DIFF_OUT に変更 2003/11/05 1.5 表 12 の追加および図 18 の改訂 2004/02/02 1.6 表 12 の改訂 2004/04/27 1.7 表 11 のタイトル名の変更 および CS144 FG256 FG456 FG676 BG575 BG728 の削除 表 12 の脚注の変更 Verilog コード の INST IB_refclk/IBUFDS LOC 制約の変更 まとめ の変更 XAPP622 (v1.7) 2004 年 4 月 27 日 www.xilinx.co.jp 21