...

ISERDES とOSERDESを使用した高性能DDR2 SDRAM

by user

on
Category: Documents
2

views

Report

Comments

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 日
Fly UP