Comments
Description
Transcript
ISERDES とOSERDESを使用した高性能DDR2 SDRAM
ア プ リ ケーシ ョ ン ノ ー ト : Virtex-4 FPGA R XAPP721 (v2.1) 2007 年 10 月 12 日 ISERDES と OSERDES を使用 し た高性能 DDR2 SDRAM イ ン タ ー フ ェ イ スのデー タ キャ プチ ャ 著者 : Maria George 本資料は英語版 (v2.1) を翻訳 し た も のです。 英語の更新バージ ョ ンが リ リ ース さ れてい る場合には、 最新の英語版を必ずご参照 く だ さ い。 概要 こ のアプ リ ケーシ ョ ン ノ ー ト では、 高性能 DDR2 SDRAM イ ン タ ーフ ェ イ ス のデー タ キ ャ プチ ャ 手法 を説明 し ま す。 こ の手法では、 Virtex™-4 I/O の入力シ リ ア ラ イ ザ/デシ リ ア ラ イ ザ (ISERDES) と 出力 シ リ ア ラ イ ザ/デシ リ ア ラ イ ザ (OSERDES) を使用 し ます。 は じ めに DDR2 DSRAM イ ン タ ーフ ェ イ スは ソ ース同期であ り 、 読み出 し データ と 読み出 し ス ト ロ ーブがエ ッ ジ で揃え ら れて送信 さ れます。 こ の送信データ を Virtex-4 FPGA で取 り 込むため、ス ト ロ ーブ ま たはデータ の ど ち ら か を遅延 さ せる こ と がで き ます。 こ のデザ イ ンでは、 遅延 さ せた ス ト ロ ーブ ド メ イ ンで読み出 し データ を キ ャ プチ ャ し 、 ISERDES の FPGA ク ロ ッ ク ド メ イ ンで再キ ャ プチ ャ し ます。 受信信号であ る ダブル データ レー ト (DDR) 読み出し データ は、 ISERDES を使用し て イ ン ターフ ェ イ スの周波数の 4 ビ ッ ト パ ラ レル データ に変換し ます。 メ モ リ モー ド の ISERDES の OCLK およ び CLKDIV 入力は同 じ 高速 ク ロ ッ ク で駆動 さ れる ので、 4 ビ ッ ト パ ラ レル データ は イ ン タ ーフ ェ イ ス の周波数 と 同 じ です。 差動ス ト ロ ーブは、 BUFIO ク ロ ッ ク ソ ース にア ク セ スす る ため、 ク ロ ッ ク 信号を処理可能な I/O に配 置 し ま す。 遅延 さ れ た 読み出 し DQS か ら 対応す る デー タ ISERDES ク ロ ッ ク 入力へ の 配線 に は、 BUFIO ク ロ ッ ク リ ソ ース が使用 さ れます。 FPGA か ら の書 き 込みデー タ お よ び書 き 込みス ト ロ ーブの 送信には、 書 き 込み ト ラ ンザ ク シ ョ ンで OSERDES が使用 さ れます。 OSERDES は、 イ ン タ ーフ ェ イ ス の半周波数の 4 ビ ッ ト パ ラ レ ル デー タ を、 イ ン タ ーフ ェ イ ス の周波数の DDR デー タ に変換 し ます。 コ ン ト ロ ー ラ 、 デー タ パ ス、 ユーザー イ ン タ ーフ ェ イ ス、 お よ びその他の FPGA ス ラ イ ス ロ ジ ッ ク は イ ン タ ーフ ェ イ ス の半周波数で駆動 さ れてお り 、267MHz 以上の周波数でデザ イ ン マージ ンが改善 さ れて います。 ク ロ ッ ク 供給方法 図 1 に、 こ のデザ イ ンの ク ロ ッ ク 供給方法を示 し ます。 デジ タ ル ク ロ ッ ク マネージ ャ (DCM) が 1 つ と 位相一致 ク ロ ッ ク 分周器 (PMCD) が 1 つ含 まれてい ます。 コ ン ト ロ ー ラ は CLKdiv_0 を使用 し て イ ン タ ー フ ェ イ ス の半周波数で駆動 さ れ る ので、 ア ド レ ス、 バ ン ク ア ド レ ス、 コ マ ン ド 信号 (RAS_L、 CAS_L、 お よ び WE_L) は メ モ リ イ ン タ ーフ ェ イ ス ク ロ ッ ク の 2 ク ロ ッ ク サ イ ク ル (2T タ イ ミ ン グ ) 間アサー ト さ れます。 制御信号 (CS、 CKE、 お よ び ODT) は、 高速 メ モ リ イ ン タ ーフ ェ イ ス ク ロ ッ ク の 1 ク ロ ッ ク サ イ ク ル間アサー ト さ れ る よ う に、 半周波数 ク ロ ッ ク CLKdiv_0 の 2 倍の レー ト (DDR) と な っ てい ます。 ク ロ ッ ク は、Virtex-4 I/O 内の出力デ ュ アル デー タ レー ト (ODDR) フ リ ッ プ フ ロ ッ プ を使用 し て外部 メ モ リ デバ イ ス に転送 さ れます。 転送 さ れた ク ロ ッ ク は、 CLKfast_0 と 180°位相がず れてい ます。 © 2005-2007 Xilinx, Inc. All Rights Reserved. XILINX、 Xilinx ロ ゴ、 およびその他本文に含まれる商標名は Xilinx の商標です。 本文書に記載 さ れている 「Xilinx」、 ザイ リ ン ク スのロ ゴ、 およびザイ リ ン ク スが所有する製品名等は、 米国 Xilinx Inc. の米国における登録商標です。 その他に記載 さ れている会社名および製品名等は、 各社の商標または登録商標です。 保証否認の通知 : Xilinx ではデザイ ン、 コ ー ド 、 その他の情報を 「現状有姿の状態」 で提供 し ています。 こ の特徴、 ア プ リ ケーシ ョ ン または規格の一実施例 と し てデザイ ン、 コ ー ド 、 そ の他の情報を提供 し てお り ますが、 Xilinx は こ の実施例が権利侵害のク レ ームを全 く 受けない と い う こ と を表明する も のではあ り ません。 お客様がご自分で実装 さ れる場合には、 必要な 権利の許諾を受け る責任があ り ます。 Xilinx は、 実装の妥当性に関するいかな る保証を行な う も のではあ り ません。 この保証否認の対象 と な る保証には、 権利侵害の ク レームを受けない こ と の保証または表明、 お よび市場性に対する適合性についての黙示的な保証も 含まれます。 XAPP721 (v2.1) 2007 年 10 月 12 日 japan.xilinx.com 1 R 書き込みデー タ パス PMCD DCM CLKfast_90 CLKfast Input System Reset CLKIN CLKA CLK90 CLKA1 CLKdiv_90 RST CLKB CLKA1D2 CLK0 CLKfast_0 CLKFB CLKDV CLKC CLKB1 RST CLKC1 CLKdiv_0 REL LOCKED X721_01_020707 図 1 : 高性能 メ モ リ イ ン タ ー フ ェ イ ス デザイ ンの ク ロ ッ ク 供給方法 図 2 に、 コ マ ン ド 信号 と 制御信号の タ イ ミ ン グ を示 し ます。 CLKdiv_0 CLKfast_0 Memory Device Clock Command WRITE IDLE Control (CS_L) X721_02_080205 図 2 : コ マ ン ド 信号 と 制御信号の タ イ ミ ング 書き込みデー タ パス 2 書 き 込みデー タ パ ス には、 Virtex-4 I/O に含まれ る ビル ト イ ン OSERDES が使用 さ れます。 OSERDES は、 デー タ (DQ) と ス ト ロ ーブ (DQS) 信号を送信 し ます。 メ モ リ 仕様に従い、 DQS を DQ の中央に揃 え て送信す る 必要があ り ます。 メ モ リ に転送 さ れ る ス ト ロ ーブ (DQS) は、CLKfast_0 と 位相が 180°ず れてい る ので、 OSERDES を使用 し て送信す る 書 き 込みデー タ は、 図 3 に示す よ う に CLKfast_90 と CLKdiv_90 で駆動す る 必要があ り ます。 japan.xilinx.com XAPP721 (v2.1) 2007 年 10 月 12 日 R 書き込みデー タ パス D1 DQ D2 Write Data Words 0-3 D3 D4 OSERDES CLKDIV CLK CLKdiv_90 CLKfast_90 IOB OSERDES X721_03_020807 図 3 : OSERDES を使用 し て送信する書き込みデー タ 図 4 に、 書 き 込み DQS と DQ 信号の タ イ ミ ン グ を示 し ます。 CLKdiv_0 CLKfast_0 CLKfast_90 Clock Forwarded to Memory Device Command WRITE IDLE Control (CS_L) Strobe (DQS) Data (DQ), OSERDES Output D0 D1 D2 D3 X721_04_120505 図 4 : 書き込みス ト ローブ (DQS) と デー タ (DQ) の タ イ ミ ング (書き込みレ イ テ ン シ 4) XAPP721 (v2.1) 2007 年 10 月 12 日 japan.xilinx.com 3 R 書き込みデー タ パス 書き込み タ イ ミ ング解析 表 1 に、 300MHz (600Mb/s) の イ ン タ ーフ ェ イ ス での書き 込み タ イ ミ ン グ解析を示 し ます。 表 1 : 書き込み タ イ ミ ング解析 (300MHz) 不確定パラ メ ー タ 値 DQS 前の DQS 後の 不確定値 不確定値 説明 TCLOCK 3333 TMEMORY_DLL_DUTY_CYCLE_DIST 150 TDATA_PERIOD 1666 TSETUP 300 300 0 メ モ リ ベン ダが指定 THOLD 300 0 300 メ モ リ ベン ダが指定 TPACKAGE_SKEW 20 20 20 パ ッ ケージ ス キ ュ ーを考慮す る ため、 DQS の PCB ト レース遅延お よ び対応する DQ ビ ッ ト が調整 さ れてい ます。 値は、 誘電率の 変動を表 し てい ます。 TJITTER 0 0 0 DQS と DQ の生成に同 じ DCM を使用 TCLOCK_SKEW-MAX 100 100 100 バ イ ト 内の DQ ビ ッ ト 間の ク ロ ッ ク ス キ ュー TPMCD_CLK_SKEW 150 150 150 1 つの PMCD の異な る ク ロ ッ ク 出力間で発 ク ロ ッ ク 周期 150 150 DCM デ ュ ーテ ィ サ イ ク ルの歪み デー タ 周期は、 ク ロ ッ ク 周期の半分か ら デュ ーテ ィ サ イ ク ルの歪みを減算 し た値 生する 位相オフ セ ッ ト エ ラ ー TPCB_LAYOUT_SKEW 50 50 50 不確定値の合計 770 770 有効 ウ ィ ン ド ウ の開始点 と 終点 770 896 126 最終的な ウ ィ ン ド ウ幅 ボー ド 上のデー タ ラ イ ン と 対応す る ス ト ロ ーブ間の ス キ ュ ー 最終的な ウ ィ ン ド ウ 幅は 896 - 770 メモ : 1. 4 同じ バン ク 内の出力フ リ ッ プフ ロ ッ プと 出力バッ フ ァ 間のス キ ュ ーは、 電圧およ び温度の全範囲にわた っ て最小限であ る と 考え ら れま す。 japan.xilinx.com XAPP721 (v2.1) 2007 年 10 月 12 日 R 書き込みデー タ パス コ ン ト ロー ラ から書き込みデー タ ーパスへのイ ン タ ー フ ェ イ ス 表 2 に、 コ ン ト ロー ラ か ら 書 き 込みデー タ パ ス に必要な信号を示 し ます。 表 2 : コ ン ト ロー ラか ら書き込みデー タ ーパスへの信号 信号名 ctrl_WrEn 幅 説明 1 コ ン ト ロ ー ラ か ら 書 き 込み デー タ パ スへの出力。 メモ バース ト 長 4 の場合は 2 CLKDIV_0 サ イ ク ル間、 バース ト 長 8 の場合は 3 CLKDIV_0 サ イ ク ル間アサー ト さ こ の信号が ア サー ト さ れ る と 、 れます。 書 き 込み DQS お よ び書 き 込み DQ の生成が開始 し ます。 CAS レ イ テ ン シの値が 4 お よ び 5 の場 合は、 WRITE コ マ ン ド の 1 CLKDIV_0 サ イ ク ル前にアサー ト さ れます。 図 5 およ び図 6 に、WRITE コ マン ド に対 する こ の信号のタ イ ミ ン グ を 示し ま す。 ctrl_wr_disable 1 コ ン ト ロ ー ラ か ら 書 き 込み デー タ パ スへの出力。 こ の信号がデ ィ アサー ト さ れ る と 、 書 き 込み DQS お よ び書 き 込み DQ の生成が終了し ます。 バース ト 長 4 の場合は 1 CLKDIV_0 サ イ ク ル間、 バース ト 長 8 の場合は 2 CLKDIV_0 サ イ ク ル間アサー ト さ れます。 CAS レ イ テ ン シの値が 4 お よ び 5 の場 合は、 WRITE コ マ ン ド の 1 CLKDIV_0 サ イ ク ル前にアサー ト さ れます。 図 5 およ び図 6 に、WRITE コ マン ド に対 する こ の信号のタ イ ミ ン グ を 示し ま す。 ctrl_Odd_Latency 1 コ ン ト ロ ー ラ か ら 書 き 込み デー タ パ スへの出力。 選択 さ れた CAS レ イ テ ン シが奇数 (5 な ど ) の場合にアサー ト さ れます。 正 し い書 き 込み レ イ テ ン シ (WRITE コ マ ン ド 発行後の ク ロ ッ ク サ イ ク ル数) 後 の書 き 込み DQS お よ び書 き 込み DQ の 生成に必要です。 書 き 込みレ イ テ ン シ = CAS latency - 1 XAPP721 (v2.1) 2007 年 10 月 12 日 japan.xilinx.com 5 R 書き込みデー タ パス CLKdiv_0 Clock Forwarded to Memory Device CLKdiv_90 CLKfast_90 Command WRITE IDLE Control (CS_L) ctrl_WrEn ctrl_wr_disable User Interface Data FIFO Out D0,D1,D2,D3 OSERDES Inputs D1, D2, D3, D4 X,X,D0,D1 D2,D3,X,X OSERDES Inputs T1, T2, T3, T4 1,1,0,0 0,0,1,1 Strobe (DQS) Data (DQ), OSERDES Output D0 D1 D2 D3 X721_05_080205 図 5 : 書き込み DQ の生成 (書き込みレ イ テ ン シ 4、 バース ト 長 4) CLKdiv_0 CLKfast_0 Clock Forwarded to Memory Device CLKdiv_180 Command WRITE IDLE Control (CS_L) ctrl_WrEn ctrl_wr_disable OSERDES Inputs D1, D2, D3, D4 0, 0, 0, 0 0, 1, 0, 1 0, 0, 0 ,0 OSERDES Inputs T1, T2, T3, T4 1, 1, 1, 0 0, 0, 0, 0 0, 1, 1, 1 Strobe (DQS), OSERDES Output X721_06_101207 図 6 : 書き込み DQS の生成 (書き込みレ イ テ ン シ 4、 バース ト 長 4) 6 japan.xilinx.com XAPP721 (v2.1) 2007 年 10 月 12 日 R 読み出 し デー タ パス 読み出 し デー タ パス 読み出 し デー タ パ スは、読み出 し デー タ キ ャ プチ ャ 段 と 再キ ャ プチ ャ 段で構成 さ れます。 ど ち ら の段 も 、 Virtex-4 I/O に 含 ま れ る ビ ル ト イ ン ISERDES で イ ン プ リ メ ン ト さ れ ま す。 メ モ リ モ ー ド で は、 ISERDES に CLK、 OCLK、 CLKDIV の 3 つの ク ロ ッ ク 入力が あ り ます。 こ のデザ イ ン の以前のバー ジ ョ ン (MIG1.6) では、 3 つの ク ロ ッ ク は次の よ う に供給 さ れてい ま し た。 • CLK : BUFIO に配線 さ れた読み出 し DQS を供給 • OCLK : CLKfast_90 ク ロ ッ ク を供給 • CLKDIV : BUFGMUX か ら の CLKdiv_90 ま たはその反転 ク ロ ッ ク か ら 選択。 キ ャ リ ブ レーシ ョ ン中に、 必要な IDELAY タ ッ プに応 じ て分周 ク ロ ッ ク の立ち上が り エ ッ ジ ま たは立ち下が り エ ッ ジ を選択可能で、 タ ッ プ数が低 く な る CLKDIV エ ッ ジが選択 さ れてい ま し た。 こ のデザ イ ンの以前のバージ ョ ンでは ま た、デー タ に必要な合計 タ ッ プ数は ワース ト ケース では高速 ク ロ ッ ク 周期の 3/4 で し た。 こ の手法では、 PMCD で ク ロ ッ ク を反転で き ないため、 分周 ク ロ ッ ク を反転 す る ために DCM が も う 1 つ必要で し た。 OCLK 入力 と 比較す る と 、 ISERDES の CLKDIV 入力に追 加のジ ッ タ が発生 し てい ま し た。 こ のデザ イ ンの最新バージ ョ ン (MIG1.7) では、 追加の DCM は使用せず、 ク ロ ッ ク ジ ッ タ を削減 し て お り 、 分周 ク ロ ッ ク は ISERDES に入力 さ れません。 ISERDES の OCLK 入力 と CLKDIV 入力は、 イ ン タ ーフ ェ イ ス と 同 じ 周波数の高速 ク ロ ッ ク CLKfast_90 で駆動 さ れてい ます。 ワ ース ト ケー ス では、 読み出 し ス ト ロ ーブ (DQS) と 読み出 し デー タ (DQ) を FPGA ク ロ ッ ク (CLKfast_90) の立ち上が り エ ッ ジに揃え る のに必要な IDELAY タ ッ プの合計数は、高速 ク ロ ッ ク 周期の 3/4 の ま ま です。 こ のデザ イ ン の利点は、 DCM 1 つ と BUFGMUX 1 つが節約 さ れてお り 、 ク ロ ッ ク のジ ッ タ が低い こ と です。 ク ロ ッ ク 入力は、 次の よ う に供給 さ れます。 • CLK : BUFIO を使用 し て配線 さ れた読み出 し DQS を供給 (図 7 を参照) • OCLK : ハー ド ウ ェ アの OSERDES の CLK 入力に接続。 こ のデザ イ ンでは、 CLKfast_90 ク ロ ッ ク が ISERDES の OCLK 入力 と OSERDES の CLK 入力に供給 さ れます。 OCLK に使用 さ れ る ク ロ ッ ク 位相は、 書 き 込みデー タ に必要な位相に よ っ て異な り ます。 CLKDIV : CLKfast_90 を供給 • User Interface FIFOs ISERDES DQ Q1 IDELAY Q2 Q3 Q4 CLK OCLK Read Data Word 2 Read Data Word 1 Read Data Word 0 CLKdiv_180 CLKDIV BUFIO Delay value determined during calibration CLKfast_90 ISERDES DQS Read Data Word 3 IDELAY IOB X721_07_020807 図 7 : ISERDES を使用 し た読み出 し デー タ キ ャ プ チ ャ XAPP721 (v2.1) 2007 年 10 月 12 日 japan.xilinx.com 7 R 読み出 し デー タ パス 読み出 し タ イ ミ ング解析 ISERDES でエ ラ ーな し で読み出 し デー タ を キ ャ プチ ャ す る には、 読み出 し デー タ と 読み出 し ス ト ロ ー ブを遅延 さ せ、 FPGA ク ロ ッ ク ド メ イ ンの フ リ ッ プ フ ロ ッ プのセ ッ ト ア ッ プ タ イ ム と ホール ド タ イ ム を満たす よ う にす る 必要があ り ます。 FPGA で受信 さ れ る 読み出 し デー タ (DQ) と 読み出 し ス ト ロ ーブ (DQS) は、 エ ッ ジが揃っ てい ます。 差動 DQS ペアは、 BUFIO ソ ース にア ク セ スす る ため、 ク ロ ッ ク 信 号を処理可能な I/O に配置す る 必要があ り ます。 受信 さ れた DQS は、 BUFIO リ ソ ース を介 し て対応す る デー タ ビ ッ ト の ISERDES の CLK 入力に配線 さ れます。 BUFIO と ク ロ ッ ク 配線 リ ソ ース を介 し た遅 延に よ り 、DQS がデー タ の右にシ フ ト さ れます。 BUFIO と ク ロ ッ ク リ ソ ース の合計遅延は、-11 ス ピー ド グ レー ド デバ イ ス では 595ps、 -12 ス ピー ド グ レー ド デバ イ ス では 555ps です。 表 3 に、 300MHz でのデー タ マージ ン を判断する のに必要な読み出 し タ イ ミ ン グ解析を示 し ます。 表 3 : 読み出 し タ イ ミ ング解析 (300MHz) パラ メ ー タ 値 (ps) 説明 TCLOCK 3333 ク ロ ッ ク 周期 TPHASE 1667 DDR デー タ のデー タ周期 TSAMP_BUFIO 350 Virtex-4 デー タ シー ト か ら の -12 デバ イ ス のサ ンプル ウ ィ ン ド ウ (IOB FF のセ ッ ト ア ッ プお よ びホール ド 、 ク ロ ッ ク ジ ッ タ 、 タ ッ プの不確定値 150ps を含む) TBUFIO_DCD 100 BUFIO ク ロ ッ ク リ ソ ース のデ ュ ーテ ィ サ イ ク ルの歪み TDQSQ + TQHS 580 ワ ース ト ケース の メ モ リ の不確定値 (VT の変動、 DQS と 対応す る DQ の ス キ ュ ーを含む) IDELAY タ ッ プ 348 29 タ ッ プを使用 し た場合の合計 タ ッ プ ジ ッ タ。 各 タ ッ プの ワ ース ト ケース ジ ッ タ は 12ps。 ジッ タ 不確定値の合計 1378 ウィンドウ 289 ワ ース ト ケース ウ ィ ン ド ウ メモ : 1. 2. 3. TSAMP_BUFIO は、 BUFIO ク ロ ッ ク リ ソ ース と IDELAY を 使用し た 場合に IOB に含ま れる DDR 入力の VT で発生する サン プリ ン グ エラ ーです。 ビ ッ ト ご と のキ ャ リ ブレ ーショ ン 手法を 使用する 際は、 こ こ に示すすべて のパラ メ ータ を 考慮する 必要があ り ま す。 BUFIO ス キ ュ ー、 package_skew、 pcb_layout_skew、 TDQSQ と TQHS の一部は、 ビ ッ ト ご と のキ ャ リ ブ レ ーショ ン 手法で削除さ れま す。 シ ン ボル間干渉、 ク ロ ス ト ーク 、 動的ス キ ュ ーの原因は、 こ の解析では考慮 さ れていま せん。 ビ ッ ト ご と のスキ ュ ー調整デー タ キ ャ プ チ ャ手法 ISERDES の OCLK ド メ イ ンお よ び CLKDIV ド メ イ ンでのデー タ が正 し く キ ャ プチ ャ さ れ る こ と を確 実にす る には、 メ モ リ の初期化後に ト レーニ ン グ シーケ ン ス が必要です。 コ ン ト ロ ー ラ で WRITE コ マ ン ド を発行 し て、 最初の立ち上が り デー タ が FF、 最初の立ち下が り デー タ が 00、 2 番目の立ち上が り デー タ が AA、 2 番目の立ち下が り デー タ が 55 と い う 既知のデー タ パ タ ーン を送信 し ます。 その後、 連 続 し た読み出 し コ マ ン ド を 発行 し 、 指定 し た場所か ら 書 き 込 ま れたデー タ を 読み出 し て、 DQ バ ス の ISERDES 出力 Q1、 Q2、 Q3、 Q4 を既知のデー タ パ タ ーン と 比較 し ます。 BUFIO と ク ロ ッ ク リ ソ ース の伝搬遅延に よ り 、 DQ の遅延 よ り も DQS の遅延の方が大 き く な り ます。 DQS には さ ら に 2 タ ッ プの遅延が追加 さ れてお り 、 DQ の有効 ウ ィ ン ド ウ に収ま る よ う に し てい ます。 図 8 に、 キ ャ リ ブ レーシ ョ ン アルゴ リ ズ ムの フ ロ ーを示 し ます。 8 japan.xilinx.com XAPP721 (v2.1) 2007 年 10 月 12 日 R 読み出 し デー タ パス ctrl_Dummyread_Start = 1 DQS 䉕 2 䉺䉾䊒ㆃᑧ (i = i + 1) No (i = 1) No (i = 0) ല䈭䊂䊷䉺㩷 䊌䉺䊷䊮䈎 ? clk_en 䉕ォ䈚䈩 㓞ធ䈜䉎䉪䊨䉾䉪㩷䉰䉟䉪䊦 䈏ല䊂䊷䉺䈎䉕䉼䉢䉾䉪 DQS 䈫 DQ 䈱䉺䉾䊒䉕 䉟䊮䉪䊥䊜䊮䊃 Yes DQS 䈫 DQ 䈱䉺䉾䊒䉕 䉟䊮䉪䊥䊜䊮䊃 No 11 䉺䉾䊒એౝ Yes 䈱ല䊂䊷䉺㩷 䊌䉺䊷䊮䈎 ? >10 䉺䉾䊒䈱 No (i = 0) 䉁䈢䈲 (i = 1) ല䊂䊷䉺㩷 䊌䉺䊷䊮䈎 ? Yes DQS 䈫 DQ 䈱䉺䉾䊒䉕 䉟䊮䉪䊥䊜䊮䊃 ല䈭䊂䊷䉺㩷 䊌䉺䊷䊮䈎 ? Yes No (䊂䊷䉺㩷䊌䉺䊷䊮䈱䉣䊤䊷䈮䉋䉍䊂䊷䉺ല䉡䉞䊮䊄䉡䈱⚳ὐ䉕ᬌ) DQS 䈫 DQ 䈱䉺䉾䊒䉕 17 䉁䈢䈲 10 䉺䉾䊒ಽ䊂䉪䊥䊜䊮䊃 ല䉡䉞䊮䊄䉡䈏 17 䉺䉾䊒䉋䉍ᄢ䈐䈇႐ว䈲 17 䉺䉾䊒 dqs_calib_done_out = 1 ฦ DQ 䊎䉾䊃䈱䉴䉨䊠䊷䉕⺞ᢛ (䊎䉾䊃䈗䈫䈱䉴䉨䊠䊷⺞ᢛ) dp_dqs_dq_calib_done = 1 ⺒䉂䈚 FIFO 䈱ᦠ䈐ㄟ䉂 䉟䊈䊷䊑䊦䈱䉨䊞䊥䊑䊧䊷䉲䊢䊮 dp_dly_slct_done = 1 X721_08_030707 図 8 : 読み出 し デー タ と 読み出 し ス ト ローブの遅延キ ャ リ ブ レーシ ョ ン フ ロー XAPP721 (v2.1) 2007 年 10 月 12 日 japan.xilinx.com 9 R 読み出 し デー タ パス 図 9 に、 バース ト 長 8 の場合の読み出 し タ イ ミ ン グ波形を示 し ます。 読み出 し デー タ DQ はまず DQS ド メ イ ンにキ ャ プチ ャ さ れ、 FPGA 高速 ク ロ ッ ク ド メ イ ン (CLKfast_90) に転送 さ れます。 こ の波形で は、 DQS と DQ は FPGA ク ロ ッ ク ド メ イ ンに正 し く 揃え ら れてお り 、 ISERDES の出力に正 し いデー タ シーケ ン ス が現れてい ます。 バー ス ト 長 8 では、 ク ロ ッ ク サ イ ク ルの 1 つお き に有効なデー タ が現 れます。 こ のデザ イ ンの周波数範囲の下限は、 IDELAY ブ ロ ッ ク で使用可能な タ ッ プ数、 PCB ト レース 遅延、 お よ び メ モ リ デバ イ ス の CAS レ イ テ ン シに よ っ て制限 さ れます。 CLKfast_90 DQS @FPGA DQ @ FPGA DQS @ ISERDES delayed by BIFIO and Clocking Resource DQ delayed by Calibration Delay DQ captured in DQS Domain D0 D1 D2 D3 D4 D5 D6 D7 D0 D1 D2 D3 D4 D5 D6 D7 D0 D2 D1 D4 D3 D0 D5 D2 D1 CLKfast_90 Domain D6 D7 D4 D3 D6 D5 D7 D0 D2 D4 D6 D1 D3 D5 D7 ISERDES Output Q4 D0 D2 D4 D6 ISERDES Output Q3 D1 D3 D5 D7 ISERDES Output Q2 D2 D4 D6 X ISERDES Output Q1 D3 D5 D7 X clk_en polarity determined during calibration X721_09_022007 図 9 : 読み出 し デー タ と ス ト ローブのキ ャ プ チ ャ タ イ ミ ング (バース ト 長 8) 10 japan.xilinx.com XAPP721 (v2.1) 2007 年 10 月 12 日 R 読み出 し デー タ パス コ ン ト ロー ラ から読み出 し デー タ ーパスへのイ ン タ ー フ ェ イ ス 表 4 に、 コ ン ト ロー ラ と 読み出 し デー タ パ ス の間で使用 さ れ る 制御信号を示 し ます。 表 4 : コ ン ト ロー ラ と 読み出 し デー タ パス間の信号 信号名 幅 説明 メモ ctrl_Dummyread_Start 1 コ ン ト ロ ー ラ か ら 読み出 し デー タ パ スへの出力。 アサー ト さ れ る と 、ス ト ロ ーブお よ びデー タ の キ ャ リ ブ レ ー シ ョ ンが開始 し ます。 デー タ バ ス に有効な読み出 し デー タ があ る 場合は、 こ の信 号が必ずアサー ト さ れます。 dp_dly_slct_done ctrl_RdEn_div0 1 読み出 し デー タ パ ス か ら コ ン ト ロ ー ラ への出力。 ス ト ロ ーブお よ びデー タ の キ ャ リ ブ レ ーシ ョ ン が終了 し た こ と を示 し ます。 1 コ ン ト ロ ー ラ か ら 読み出 し デー タ パ スへの出力。 読み出 し デー タ キ ャ プ チ ャ FIFO への ラ イ ト イ ネーブル と し て使用 し ます。 dp_dly_slct_done 信号がアサー ト さ れ る と 、 デ ィ アサー ト さ れます。 デー タ お よ びス ト ロ ーブのキ ャ リ ブ レ ーシ ョ ンが終了す る と 、 アサー ト さ れます。 通常の操作は、 こ の信号のアサー ト 後に開始 さ れます。 こ の信号は、 バース ト 長 4 の場合は 1 CLKdiv_0 ク ロ ッ ク サ イ ク ル間、 バース ト 長 8 の場合は 2 CLKdiv_0 ク ロ ッ ク サ イ ク ル間アサー ト さ れます。 こ の信号 と 読み出し ス テー ト の タ イ ミ ン グ関係は、 CAS レ イ テ ン シ と 追加 レ イ テ ン シ値に よ り 決定 さ れ ま す。 図 10 に、CAS レ イ テン シが 5、追加レ イ テ ンシが 0 の場合のバー ス ト 長 4 におけ る こ の信号の タ イ ミ ン グ波形を示し ます。 CLKdiv_0 CK @ Memory CLKfast_90 Command READ D0 D1 D2 D3 DQ @ Memory Device DQS @ Memory Device CS# @ Memory ctrl_RdEn_div0 D0 D1 D2 D3 (Input to SRL16 clocked by CLKfast_90) DQS @ ISERDES CLK input (round trip + BUFIO + calibration delays) DQ @ ISERDES input (round trip + calibration delays) D0 D3 Parallel Data @ ISERDES output Srl_out (SRL16 output) Ctrl_RdEn Write Enable to Read Data FIFOs X721_10_020607 図 10 : ラ イ ト イ ネーブルの タ イ ミ ング (CAS レ イ テ ン シ 5、 バース ト 長 4) XAPP721 (v2.1) 2007 年 10 月 12 日 japan.xilinx.com 11 R リ フ ァ レ ン ス デザイ ン DDR2 SDRAM デバ イ ス か ら は、 読み出 し デー タ と 共に リ ー ド バ リ ッ ド ま たは リ ー ド イ ネーブル信号 は供給 さ れないので、 読み出 し デー タ が有効か ど う か を判断す る ため ctrl_RdEn 信号が必要です。 こ の リ ー ド イ ネーブル信号は、 CAS レ ン テ ン シお よ びバー ス ト 長に基づい て コ ン ト ロ ー ラ で生成 さ れ、 SRL16 (LUT ベース のシ フ ト レ ジ ス タ ) に入力 さ れます。 リ ー ド イ ネーブル信号を ISERDES の読み出 し デー タ 出力に揃え る ために必要な レ ジ ス タ の段数は、 キ ャ リ ブ レーシ ョ ン中に判断 さ れます。 各デー タ バ イ ト に対 し 、 1 つの リ ー ド イ ネーブル信号が生成 さ れます。 図 11 に、 リ ー ド イ ネーブル ロ ジ ッ ク のブ ロ ッ ク 図を示 し ます。 ctrl_RdEn_div0 ctrl_RdEn_dir_r1 FD ctrl_RdEn_dir_r FD srl_out SRL16 Ctrl_RdEn FD Number of register stages selected during calibration CLKfast_90 X721_11_020607 図 11 : 読み出 し デー タ FIFO のラ イ ト イ ネーブルのロ ジ ッ ク リ フ ァ レンス デザイ ン 図 12 に、 リ フ ァ レ ン ス デザ イ ン の階層 を 示 し ま す。 mem_interface_top が最上位モ ジ ュ ールです。 DDR2SDRAM イ ン タ ーフ ェ イ ス の リ フ ァ レ ン ス デザ イ ンは、 ザ イ リ ン ク ス CORE Generator™ に統 合 さ れてい る MIG ツールに含ま れてい ます。 最新の リ フ ァ レ ン ス デザ イ ン を入手す る には、 次のザ イ リ ン ク ス の Web サ イ ト か ら IP ア ッ プデー ト を ダ ウ ン ロ ー ド し て く だ さ い。 http://japan.xilinx.com/support/download/index.htm mem_Interface_top infrastructure main idelay_ctrl top iobs infrastr_iobs idelay_rd_en_io user_interface controller_iobs v4_dm_iob datapath_iobs v4_dqs_iob data_path backend_fifos v4_dq_iob test_bench ddr2_controller rd_data rd_wr_addr_fifo data_write wr_data_fifo_16 backend_rom tap_logic rd_data_fifo cmp_rd_data addr_gen data_gen_16 tap_ctrl data_tap_inc RAM_D X721_11_113005 図 12 : リ フ ァ レ ン ス デザイ ンの階層 12 japan.xilinx.com XAPP721 (v2.1) 2007 年 10 月 12 日 R リ フ ァ レ ン ス デザイ ンのサマ リ リ フ ァ レンス デザイ ンのサマ リ 表 5 に、 72 ビ ッ ト イ ン タ ーフ ェ イ ス の最大周波数を ス ピー ド グ レー ド 別に示 し ます。 表 5 : 72 ビ ッ ト イ ン タ ー フ ェ イ スのス ピー ド グレー ド 別の最大周波数 ス ピー ド グレー ド 最大周波数 (MHz) -10 230 -11 267 -12 300 表 6 に、 72 ビ ッ ト イ ン タ ーフ ェ イ ス の リ フ ァ レ ン ス デザ イ ンのサマ リ を示 し ます。 表 6 : 72 ビ ッ ト イ ン タ ー フ ェ イ スの リ フ ァ レ ン ス デザイ ンのサマ リ 詳細/ メ モ パラ メ ー タ ス ラ イ ス 6714 個 ( コ ン ト ロ ー ラ 、 合成可能なテ ス ト ベンチ、 ユーザー イ ン タ ー フ ェ イ ス、 物理層を含む) BUFG 6 個 (IDELAY ブ ロ ッ ク 用の 200MHz の リ フ ァ レ ン ス ク ロ ッ ク に使用 さ れ る BUFG 1 つを含む) BUFIO 9 個 ( イ ン タ ーフ ェ イ ス内の ス ト ロ ーブ数 と 同 じ ) デバ イ ス の使用量 DCM 1 個 PMCD 1 個 ISERDES 72 個 ( イ ン タ ーフ ェ イ ス内のデー タ ビ ッ ト 数 と 同 じ ) OSERDES 99 個 (デー タ ビ ッ ト 、 ス ト ロ ーブ、 お よ びデー タ マ ス ク ビ ッ ト の 合計数 と 同 じ ) ま とめ こ のアプ リ ケーシ ョ ン ノ ー ト では、ISERDES を使用 し た高性能 メ モ リ イ ン タ ーフ ェ イ ス のデー タ キ ャ プチ ャ 手法を説明 し ま し た。 こ のデザ イ ンでは、 FPGA 内のキ ャ リ ブ レーシ ョ ン ロ ジ ッ ク を除 く すべて の ロ ジ ッ ク が イ ン タ ーフ ェ イ ス の半周波数で駆動 さ れ、 ク リ テ ィ カル パ ス が削減 さ れ る ため、 高いマー ジ ン を達成で き ます。 改訂履歴 次の表に、 こ の文書の改訂履歴を示 し ます。 日付 バージ ョ ン 2005 年 12 月 15 日 1.0 初期 リ リ ース 2005 年 12 月 20 日 1.1 表 1 を変更。 2006 年 1 月 4 日 1.2 リ フ ァ レ ン ス デザ イ ン フ ァ イ ルへの リ ン ク を変更。 2006 年 2 月 2 日 1.3 表 4 を変更。 2006 年 5 月 25 日 1.4 「 ク ロ ッ ク 供給方法」、 「読み出 し デー タ パ ス 」、 お よ び 「ビ ッ ト ご と の ス キ ュ ー調整デー タ キ ャ プチ ャ 手法」 セ ク シ ョ ン、 図 1、 図 7、 表 3、 お よ び表 6 を変更。 リ フ ァ レ ン ス デザ イ ンへの リ ン ク を変更。 XAPP721 (v2.1) 2007 年 10 月 12 日 改訂内容 japan.xilinx.com 13 R 改訂履歴 日付 バージ ョ ン 2007 年 3 月 12 日 2.0 改訂内容 • 「概要」 を変更。 • 「は じ めに」 を変更。 • 「 ク ロ ッ ク 供給方法」 のテキ ス ト お よ び図 1 を変更。 • 「書 き 込み タ イ ミ ン グ解析」 のテキ ス ト お よ び表 1 を変更。 • 表 2 を変更。 • 「読み出 し デー タ パ ス 」 のテ キ ス ト お よび図 7 を変更。 • 「読み出 し タ イ ミ ン グ解析」 お よ び表 3 を変更。 • 「ビ ッ ト ご と の ス キ ュ ー調整デー タ キ ャ プチ ャ 手法」 のテ キ ス ト お よ び図 8 を変更。 • 図 9 と その説明を追加。 その他の図の番号を変更。 • 図 9 を図 10 に置換。 • 図 10 を図 11 に置換。 • 図 11 の番号を図 12 に変更。 • セ ク シ ョ ン タ イ ト ル 「Reference Design Utilization」 を 「Reference Design Summary」 ( 「 リ フ ァ レ ン ス デザ イ ンのサ マ リ 」 ) に変更。 • 表 6 のタ イ ト ル 「Resource Utilization for a 64-Bit Interface」 を 「Reference Design Summary for a 72-Bit Interface」 ( 「72 ビ ッ ト イ ン タ ーフ ェ イ ス の リ フ ァ レ ン ス デザ イ ンのサマ リ 」 ) に 変更。 表 6 のテキ ス ト を変更。 • 「ま と め」 を変更。 2007 年 10 月 12 日 14 2.1 • 図 6 : CLKdiv_0 と CLKdiv_180 の ク ロ ッ ク 位相関係を修正。 japan.xilinx.com XAPP721 (v2.1) 2007 年 10 月 12 日