XAPP723: Virtex-4 デバイスを使用した DDR2 コント … DDR2 SDRAM 概要 XAPP723 (v1.4)...
-
Upload
vuongkhanh -
Category
Documents
-
view
222 -
download
2
Transcript of XAPP723: Virtex-4 デバイスを使用した DDR2 コント … DDR2 SDRAM 概要 XAPP723 (v1.4)...
XAPP723 (v1.4) 2007 年 10 月 17 日 japan.xilinx.com 1
© 2005-2007 Xilinx, Inc. All Rights Reserved. XILINX、 Xilinx ロゴ、 およびその他本文に含まれる商標名は Xilinx の商標です。 本文書に記載されている 「Xilinx」、 ザイリンクスのロゴ、 およびザイリンクスが所有する製品名等は、 米国 Xilinx Inc. の米国における登録商標です。 その他に記載されている会社名および製品名等は、 各社の商標または登録商標です。保証否認の通知 : Xilinx ではデザイン、 コード、 その他の情報を 「現状有姿の状態」 で提供しています。 この特徴、 アプリケーシ ョ ンまたは規格の一実施例としてデザイン、 コード、 その他の情報を提供しておりますが、 Xilinx はこの実施例が権利侵害のクレームを全く受けないという ことを表明するものではありません。 お客様がご自分で実装される場合には、 必要な権利の許諾を受ける責任があります。 Xilinx は、 実装の妥当性に関するいかなる保証を行なうものではありません。 この保証否認の対象となる保証には、 権利侵害のクレームを受けないことの保証または表明、 および市場性に対する適合性についての黙示的な保証も含まれます。
概要 DDR2 SDRAM は DDR SDRAM をしのぐ新機能を備え、 666Mb/s 以上のデータ レート を実現したデ
バイスです。 データ レートの高速化に伴い、 FPGA のコン ト ローラおよび I/O にもよ り高い性能が求め
られます。 メモ リの動作速度に対応したコン ト ローラを使用するこ とによ り、広帯域幅を達成できます。
はじめに このアプ リケーシ ョ ン ノートでは、 Micron DDR2 SDRAM デバイスのインターフェイス と して使用す
る DDR2 コン ト ローラを Virtex™-4 デバイスでインプ リ メ ン トする方法を説明します。 267MHz 以上
のパフォーマンス レベルでは、 このアプリ ケーシ ョ ン ノートで概説されているコン ト ローラ デザイン
および、 アプ リ ケーシ ョ ン ノー ト XAPP721 『ISERDES と OSERDES を使用し た高性能 DDR2SDRAM インターフェイスのデータ キャプチャ』 に説明されているデータ キャプチャの手法を使用し
てください。
このアプ リ ケーシ ョ ン ノートでは、 まず、 DDR2 SDRAM デバイス機能の概要を簡単に説明し、 次に
高速 DDR2 メモ リへのインターフェイス と してのコン ト ローラの使用方法を詳細に説明します。 また、
コン ト ローラーへのバッ クエンド ユーザー インターフェイスについても解説します。
DDR2 SDRAM 概要
DDR2 SDRAM デバイスは、 DDR SDRAM ファ ミ リの次世代デバイスで、 SSTL 1.8V I/O 規格を採用
しています。 次のセクシ ョ ンでは、 このデバイスで使用可能な機能について、 また、 DDR SFRAM デバ
イスとの相違点について説明します。
DDR2 SDRAM デバイスは DDR アーキテクチャを使用するこ とで高速動作を実現しています。 メモ リ
は、 コン ト ローラが供給する差動クロ ッ クを使用して動作します。 コマンドは、 ク ロ ッ クのすべての立
ち上がりエッジで取得されます。 双方向データ ス ト ローブ (DQS) は、 レシーバでのデータ キャプチャ
で使用するため、データ と共に送信されます。 DQS は読み出しでは DDR2 SDRAM デバイスによって、
また書き込みではコン ト ローラによって送信されます。 読み出しではデータのエッジに揃えられ、 書き
込みではデータの中央に揃えられます。
DDR2 SDRAM デバイスへの読み出しおよび書き込みアクセスはバース ト対応です。 ACTIVE コマン
ドが取得される とアクセスが開始し、 その後、 READ コマンド または WRITE コマン ドが実行されま
す。 アクセスするバンクおよび行は、ACTIVE コマンド と共に取得されたアドレス ビッ ト を使用して選
択され、 バース ト アクセスの開始列およびバンクは、READ コマンドまたは WRITE コマンド と共に取
得されたアドレス ビッ ト を使用して選択されます。
DDR2 コン ト ローラのリ ファレンス デザインには、書き込みアドレス、書き込みデータ、および読み出
しアド レスを生成するユーザー バッ クエンド インターフェイスが含まれています。 この情報は 3 つの
バッ クエンド FIFO に格納され、バッ クエンド モジュールと コン ト ローラ モジュール間のアドレスおよ
びデータ同期に使用されます。 コン ト ローラは、 アドレス FIFO のアドレスの有無に応じて、 メモ リの
タイ ミ ング要件を考慮しながら、 メモ リに正しいコマンドを発行します。 論理ブロッ クのインプ リ メン
テーシ ョ ンの詳細は、 次のセクシ ョ ンで説明します。
アプリケーシ ョ ン ノート : Virtex-4 FPGA
XAPP723 (v1.4) 2007 年 10 月 17 日
Virtex-4 デバイスを使用した DDR2 コン ト ローラ (267MHz 以上)
本資料は英語版 (v1.4) を翻訳したものです。 英語の更新バージ ョ ンがリ リースされている場合には、 最新の英語版を必ずご参照ください。
R
2 japan.xilinx.com XAPP723 (v1.4) 2007 年 10 月 17 日
DDR2 SDRAM 概要R
コン ト ローラの DDR2 SDRAM コマンド
表 1 に、 コン ト ローラによ り発行される コマン ド を示します。 各コマン ドは、 行ア ド レス セレ ク ト
(RAS)、列アドレス セレク ト (CAS)、および書き込みイネーブル (WE) の制御信号を使用したメモ リで
検知されます。 ク ロ ッ ク イネーブル(CKE) はデバイスのコンフ ィギュレーシ ョ ン後は High に、 チップ
セレク ト (CS) はデバイスの動作中は Low に保持されます。 「モード レジスタの定義」 では、 コン ト
ローラでサポート される DDR2 コマンドの機能を説明します。
モード レジスタの定義
モード レジスタは、 DDR2 SDRAM の動作モードを指定します。 バース ト長、 バース ト タイプ、 CASレイテンシおよび動作モードを指定できます。 図 1 に、 このコン ト ローラで使用するモード レジスタの
機能を示します。
表 1 : DDR2 コマンド
ステップ 機能 RAS CAS WE
1 Load Mode L L L
2 Auto Refresh L L H
3 Precharge (1) L H L
4 Bank Activate L H H
5 Write H L L
6 Read H L H
7 No Operation/IDLE H H H
メモ :
1. アドレス信号 A10 は、 すべてのバンクをプ リチャージする と きは High に保持し、 1 つのバンクをプリチャージする と きは Low に保持します。
図 1 : モード レジスタ
BA1 BA0
0 0
A12 A11 A10
PD WR
A9 A8
DLL
A7 A6
TM
A5 A4
CAS# Latency
A3 A2
BT
A1 A0
Burst Length
A2 A1 A0 Burst Length0 1 0 4
0 1 1 8
Others Reserved
A6 A5 A4 CAS Latency0 1 0 2
0 1 1 3
Others Reserved
1 0 0 4
1 0 1 5
A11 A10 A9 Write Recovery0 0 1 2
0 1 0 3
Others Reserved
0 1 1 4
1 0 0 5
1 0 1 6
x723_01_091505
DDR2 SDRAM 概要
XAPP723 (v1.4) 2007 年 10 月 17 日 japan.xilinx.com 3
R
バンク アドレス BA1 および BA0 は、モード レジスタを選択します。表 2 には、バンク アドレス ビッ
トのコンフ ィギュレーシ ョ ンを示します。
拡張モード レジスタの定義
拡張モード レジスタ (表 3) では、モード レジスタで制御できない機能を設定できます。 設定できる機能
は、 DLL イネーブル/ディ スエーブル、 出力駆動電流、 オンチップ終端 (ODT)、 Posted CAS AdditiveLatency (AL)、 オフチップ ド ラ イバ インピーダンス調整 (OCD)、 DQS イネーブル/ディ スエーブル、
RDQS/RDQS イネーブル/ディ スエーブル、出力ディ スエーブル/イネーブルです。 オフチップ ド ライバ
調整 (OCD) はこのリ ファレンスデザインでは使用しません。
拡張モード レジスタ 2 (EMR2)
バンク アドレスは 10 (BA1 は High、BA0 は Low) に設定されています。 アドレス ビッ トはすべて Lowに設定されています。
拡張モード レジスタ 3 (EMR3)
バンク アドレス ビッ トは 11 (BA1 および BA0 は High) に設定されています。 アドレス ビッ トはすべ
て Low に設定されています。
初期化シーケンス
コン ト ローラ ステート マシンで使用される初期化シーケンスは、DDR2 SDRAM 仕様に従っています。
インターフェイスには、 メモ リの電圧の要件を適用して ください。 次に初期化時に発行されるコマンド
を示します。
1. 電力と ク ロ ッ クが安定した後、 200μs 間 NOP または DESELECT コマンドが適用されます。
2. CKE がアサート されます。
3. 400ns 経過する と、 PRECHARGE ALL コマンドが発行されます。
4. EMR (2) コマンドが発行されます。 BA0 は Low に、 BA1 は High に保持されます。
5. EMR (3) コマンドが発行されます。 BA0 および BA1 はどちらも High に保持されます。
6. EMR コマンドが発行され、 メモ リ DLL がイネーブルになます。 BA1 および A0 は Low に、 BA0は High に保持されます。
7. MODE REGISTER SET コマンドが発行され、 DLL がリセッ ト されます。 DLL がロ ッ ク状態にな
るには、 200 クロ ッ ク サイクルが必要です。
8. PRECHARGE ALL コマンドが発行されます。
9. AUTO REFRESH コマンドが 2 回発行されます。
表 2 : バンク アドレス ビッ ト コンフ ィギュレーシ ョ ン
BA1 BA0 モード レジスタ
0 0 Mode Register (MR)
0 1 EMR1
1 0 EMR2
1 1 EMR3
表 3 : 拡張モード レジスタ
BA1 BA0 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0
0 1 Out RDQS DQS OCD Program RTT Posted CAS RTT ODS DLL
4 japan.xilinx.com XAPP723 (v1.4) 2007 年 10 月 17 日
DDR2 SDRAM 概要R
10. MODE REGISTER SET コマンドが発行され、A8 が Low になり、デバイスの動作が初期化されま
す。
11. EMR コマンドが発行され、 ビッ ト E7、 E8、 および E9 が 1 に設定され、 OCD default がイネーブ
ルになり ます。
12. EMR コマンドが発行され、 ビッ ト E7、 E8、 および E9 が 0 に設定され、 OCD exit がイネーブル
になり ます。
初期化シーケンスが完了する と、 コン ト ローラよ り DDR2 SDRAM メモ リに対してダ ミーの書き込み
コマンドが発行され、 続けてダ ミーの読み出しコマンドが発行されます。 これによ り、 データパス モジュールで、 Virtex-4 入力遅延ブロ ッ クに対して適切なタ ップ数が選択されます。 タ ップ数が決定され
る と、 dp_dly_slct_done 信号がコン ト ローラにアサート され、 コン ト ローラが IDLE 状態になり ます。
PRECHARGE コマンド
PRECHARGE コマンドは、 特定のバンクの現在アクテ ィブな行を非アクテ ィブにします。 コマンドの
発行後、特定の時間 (tRP) が経過する と、次の行をアクティブにできるよ うにな り ます。 入力 A10 は、 1つのバンクをプ リチャージするか、 すべてのバンクをプ リチャージするかを指定します。
AUTO REFRESH コマンド
DDR2 デバイスは、7.8μs おきにリ フレッシュする必要があ り ます。 コン ト ローラは、AUTO REFRESHコマンドを要求する回路を内蔵しており、 リ フレッシュ カウンタには、 16 出力分周のシステム ク ロ ッ
クが使用されます。 auto_ref 信号は、 アサー ト される と AUTO REFRESH コマン ド を要求し、 前の
AUTO REFRESH コマンド発行後 7.8μs 間 High に保持されます。 その時点で進行中のバース トが完了
する と、コン ト ローラよ り AUTO REFRESH コマンドが発行されます。 AUTO REFRESH コマンドは、
このコン ト ローラのデザインでは最優先されます。
ACTIVE コマンド
DDR2 SDRAM メモ リ内のバンクに READ または WRITE コマンドが発行される前に、ACTIVE コマ
ンドでバンク内の 1 行をアクティブにする必要があ り ます。 行がアクティブになる と、tRCD 仕様に従っ
て、 その行に対して READ または WRITE コマン ド を発行でき る よ う にな り ます。 また、 DDR2SDRAM デバイスは Posted CAS AL とい う新しい機能をサポート しています。 実際の READ または
WRITE コマンドの内部デバイスへの取得を AL クロ ッ ク サイ クルを使用して遅延させて、tRCD タイム
の前に READ または WRITE コマンドを発行するこ とができます。
コン ト ローラは、 競合を検知する と PRECHARGE コマン ドを発行して現在アクテ ィブな行を非アク
ティブにし、 ACTIVE コマンドを発行して新しい行をアクティブにします。 競合は、 入力されたアドレ
スが現在アクティブな行と異なる行を参照している場合に発生します。
READ コマンド
READ コマン ドは、 アクテ ィブな行に対してバース ト読み出しアクセスを開始します。 BA0 および
BA1 の値でバンク アドレスが選択され、 アドレス入力 A0 ~ Ai で開始列を選択します。 読み出しバー
ス トの完了後も、 プリチャージされるまで、 行はアクティブのままです。
DDR2 SDRAM 概要
XAPP723 (v1.4) 2007 年 10 月 17 日 japan.xilinx.com 5
R
図 2 に、追加レイテンシが 0 の場合の READ コマンドを示します。 この場合の読み出しレイテンシは 3で、 CAS レイテンシと同じです。
WRITE コマンド
WRITE コマン ドは、 アクテ ィブな行に対してバース ト書き込みアクセスを開始します。 BA0 および
BA1 はバンク アド レスを指定し、 アドレス 入力 A0 ~ Ai はアクテ ィブ行の開始列の位置を指定しま
す。 DDR2 SDRAM で使用される書き込みレイテンシ (WL) の値は、読み出しレイテンシから 1 クロ ッ
ク サイクルを差し引いた値と同じです。
書き込みレイテンシ = 読み出しレイテンシ - 1 = (追加レイテンシ + CAS レイテンシ) - 1
図 3 に、 書き込みレイテンシが 2 の書き込みバース トの波形を示します。 WRITE コマンドから DQS 信号の最初の立ち上がりエッジまでの時間は、 書き込みレイテンシによ り決ま り ます。
図 2 : READ コマンド例
図 3 : WRITE コマンド例
T0 T1 T2 T3 T4 T4nT3n T5
NOPNOPNOPNOPNOPREAD
Bank a,Col n
Command
Address
CK
CK
DQS
DQ
DQS
DOn
RL = 3 (AL = 0, CL = 3)
x723_02_091505
T0 T1 T2 T3 T4T2n T3n T5
NOPNOPNOPNOPNOPWrite
Bank a,Col b
Command
Address
CK
CK
DQS
DQ
DQS
DIb
DM
tDQSStDQSS (NOM)
x723_03_091605
6 japan.xilinx.com XAPP723 (v1.4) 2007 年 10 月 17 日
DDR2 SDRAM インターフェイス デザインR
DDR2 SDRAM インターフェイス デザイン
DDR2 コン ト ローラへのユーザー インターフェイスのク ロ ッ ク周波数 (図 4) とデータパスのクロ ッ ク
周波数はインターフェイスの半分であるため、 周波数が 267MHz を超える場合のデザイン マージンが
改善されています。 コン ト ローラが半分の周波数で動作しても、 スループッ トやレイテンシには影響し
ません。 DDR2 SDRAM デバイスでサポート される最小のバース ト長は 4 で、コマンドは 1 ク ロ ッ クお
きに必要なだけです。 使用されるバース ト長は次のとおりです。
• 4 の場合 : コン ト ローラは 2 分の 1 の周波数のクロ ッ ク サイクルごとにコマンドを発行
• 8 の場合 : コン ト ローラは 2 分の 1 の周波数のクロ ッ ク サイクルおきにコマンドを発行
ユーザー インターフェイスの FIFO はすべて非同期 FIFO なので、ユーザーのバッ クエンドはどの周波
数でも動作します。 I/O は指定した周波数でト グルします。
ユーザー バックエンド
バッ クエンドから供給されるアドレス パターンおよびデータ パターンを使用して、 DDR2 コン ト ロー
ラ デザインをいろいろな角度からテス トできます。 バッ クエンドには、バッ クエンド ステート マシン、
読み出しデータ コンパレータ、およびデータ生成モジュールが含まれます。 データ生成モジュールでは、
メモ リに書き込まれる さまざまなアド レスおよびデータ パターンが生成されます。 アドレス位置はブ
ロ ッ ク RAM にあらかじめ保存されており、 こ こでは ROM と して使用されます。 保存されているアド
レス値は、DDR2 SDRAM デバイスの異なる行およびバンクへのアクセスをテス トするために選択され
ています。 データ パターン ジェネレータには、 データ パターンを生成するステート マシンが含まれて
います。 バッ クエンド ステート マシンは、 ユーザー バッ クエンドをエ ミ ュレート します。 ステート マシンは、 書き込みイネーブル信号または読み込みイネーブル信号を送信して、 データ ジェネレータ モジュールでアクセスする FIFO を指定します。
図 4 : DDR2 のインターフェイス ブロック図
DDR2 SDRAM
Controller
Physical Layer
Virtex-4 FPGA
DDR2SDRAM
User Backend User Interface
Backend FIFOs
rd_en_delayed_rise/fall
Ctrl_Dummyread_Start
Af empty
WAF_addr App_WAF_addr
App_WAF_wren
WDF_data
x723_04_020806
CK/CK_N
DQ
DQS
Read/Write Address FIFO
Write Data FIFOs
Read Data FIFOs
Address and Data
Generation
Read Data Compare Module
Read_data_fifo_out
WDF_Full
Read_data_valid
ctrl_Waf_rden
Phy_Dly_Slct_Done
ctrl_Wdf_rden
read_data_rise/fall
App_WDF_data
App_WDF_wren
Address/Controls
ctrl_Wr_Disable
ctrl_Odd_Latency
ctrl_RdEn
ctrl_WrEn
DDR2 SDRAM インターフェイス デザイン
XAPP723 (v1.4) 2007 年 10 月 17 日 japan.xilinx.com 7
R
ユーザー インターフ ェイス
バッ クエンド ユーザー インターフェイスには、 次の 3 つの FIFO が含まれます。
• アドレス FIFO
• 書き込みデータ FIFO
• 読み出しデータ FIFO
最初の 2 つの FIFO はユーザー バッ クエンド モジュールによ りアクセスされ、読み出しデータ FIFO は取り込まれた読み出しデータを保存するためにデータパス モジュールによ りアクセスされます。
ユーザーからコン ト ローラへのインターフェイス
表 4 に、 ユーザー インターフェイス と コン ト ローラ間で使用される信号を示します。
表 4 : ユーザー インターフェイスとコン ト ローラの間で使用される信号 (ポート )
ポート名 ポート幅 ポートの説明 メモ
Af_addr 36 ユーザー インターフェイスのアドレ
ス FIFO の出力。 次のア ド レ ス を
マップします。
• メモ リ アドレス (CS、バンク、行、
列) - [31:0]
• 予約済み - [35]
• ダイナミ ッ ク コマンド要求 -[34:32]
FIFO full ステータス フラグをモニタし、 アドレス FIFOにアドレスを書き込みます。
Af_empty 1 ユーザー インターフェイス アドレス
FIFO empty ステータス フラグ出力。
この信号がディ アサー ト される と、
FIFO の出力にあるア ド レスがコン
ト ローラによ り処理されます。
FIFO16 の Empty フラグ
ctrl_Waf_RdEn 1 ユーザー インターフェイスのアドレ
ス FIFO への読み出しイネーブル入
力
この信号は、 コン ト ローラのステートが書き込み、読み出
し、 モード レジスタの読み込み、 すべてをプリチャージ、
自動リ フレッシュ、 あるいはダイナミ ッ ク コマンド要求
の結果アクティブとなった場合、1 クロ ッ ク サイクル間ア
サート されます。
ctrl_Wdf_RdEn 1 ユーザー インターフェイスの書き込
みデータ FIFO への読み出しイネー
ブル入力
コント ローラは、最初の書き込みステート に遷移後にこの
信号を 1 ク ロッ ク サイクル間アサート します。 バースト 長
が 8 の場合は、 2 ク ロッ ク サイクル間アサート します。
WRITE コマンド送信前に、 書き込みデータ FIFO にバー
ス ト長分のデータが必要です。
たとえば、 64 ビッ ト データ バスおよびバース ト長 4 の場
合、 WRITE コマンド送信前に、 各書き込みアドレスに対
して、 2 つの 128 ビッ ト データ ワードが書き込みデータ
FIFO に入力されている必要があ り ます。
8 japan.xilinx.com XAPP723 (v1.4) 2007 年 10 月 17 日
DDR2 SDRAM インターフェイス デザインR
表 5 に、 メモ リ アドレス (Af_addr) の列アドレス、 行アドレス、 バンク アドレス、 ディープ メモ リ インターフェイスのチップ セレク ト幅を示します。
Af_addr のアド レス空間は不連続です。 これはユーザー インターフェ イ ス アド レス バスの Af_addr[10] ビ ッ ト が制御ロジッ クで無視されるためです。 DDR2 デバイスへのメモ リ コン ト ローラのイン
ターフェイスが 9 ビッ トの場合は、Af_addr[9] も無視されます。 列アドレス幅パラ メータ col_ap_widthには自動プリチャージ ビッ ト (A10) および列アドレス パラ メータが含まれます。 列アドレス パラ メー
タは、 選択されたメモ リ コンポーネン トの列アドレス ビッ ト数です。 定義を次に示します。
• 9 ビッ トの列アドレスでは、 col_ap_width は 11 です。 下位 9 ビッ トが列アドレスです。 ビッ ト A9は使用されず、ビッ ト A10 は通常の読み出しおよび書き込みの間 Low に固定されます。 このため、
自動プリチャージはサポート されません。 PRECHARGE コマンドの実行中は内部的に、 A10 ビッ
トの先頭に col_ap_width パラ メータが追加されます。
• 10 ビッ トの列アドレスでは、 col_ap_width は 11 です。
• 11 ビッ トの列アドレスでは、 col_ap_width は 12 です。
ダイナミ ック コマンド要求
表 6 に、 オプシ ョ ンのコマンドを示します。 こ こに示されたコマンドは、 コン ト ローラの通常動作には
不要です。 アプリケーシ ョ ンで必要であれば、 使用するこ と もできます。
表 5 : Af_addr メモリ アドレス
アドレス 説明
列アドレス [col_ap_width - 1:0]
行アドレス [col_ap_width + row_address - 1:col_ap_width]
バンク アドレス [col_ap_width + row_address + bank_address - 1:col_ap_width + row_address]
チップ セレク ト [col_ap_width + row_address + bank_address + chip_address - 1:col_ap_width + row_address + bank_address]
表 6 : コマンドのオプシ ョ ン
コマンド 説明
000 LOAD MODE REGISTER
001 AUTO REFRESH
010 PRECHARGE ALL
011 ACTIVE
100 WRITE
101 READ
110 NOP
111 NOP
DDR2 SDRAM インターフェイス デザイン
XAPP723 (v1.4) 2007 年 10 月 17 日 japan.xilinx.com 9
R
図 5 に、 バース ト長 8 の、 4 連続書き込みとそれに続く 4 連続読み出しを示します。
表 7 には、 図 5 のステート信号値を示します。
図 5 : バースト長 8 の連続書き込みとそれに続く連続読みだし
CLKdiv_0
State
Ctrl_Waf_Rden
Ctrl_Wdf_Rden
Ctrl_Waf_Empty
0C 0E 0D 0E 0D 0E 0D 0E 16 09 0B 0A 0B 0A 0B 0A 0B
X723_05_091905
表 7 : 図 5 のステート信号値
ステート信号値 説明
0C 最初の書き込み
0E 書き込み待ち
0D バース ト書き込み
16 書き込み読み出し
09 最初の書き込み
0B 読み出し待ち
0A バース ト読み出し
10 japan.xilinx.com XAPP723 (v1.4) 2007 年 10 月 17 日
DDR2 SDRAM インターフェイス デザインR
コン ト ローラから物理レイヤへのインターフェイス
表 8 に、 コン ト ローラ と物理レイヤの間で使用される信号を示します。
表 8 : コン ト ローラと物理レイヤの間で使用される信号 (ポート )
信号名 信号幅 信号の説明 メモ
ctrl_WrEn 1 コ ン ト ロ ー ラ か ら 書 き込み
データパスへの出力。 この信号
がアサート される と、書き込み
DQS および書き込み DQ の生
成が開始します。
この信号は、 バース ト 長 4 の場合は 2 コン ト ローラ クロ ッ ク サイ クル間、 バース ト長 8 の場合は 3 コン ト ロー
ラ クロ ッ ク サイクル間アサート されます。
CAS レイテンシの値が 4 および 5 の場合は、 WRITE コマンドの前で 1 コン ト ローラ ク ロ ッ ク サイクル間アサー
ト されます。
ctrl_wr_disable 1 コ ン ト ロ ー ラ か ら 書 き込み
データパスへの出力。 この信号
がディアサート される と、書き
込み DQS および書き込み DQの生成が終了します。
この信号は、 バース ト 長 4 の場合は 1 コン ト ローラ クロ ッ ク サイ クル間、 バース ト長 8 の場合は 2 コン ト ロー
ラ クロ ッ ク サイクル間アサート されます。
CAS レイテンシの値が 4 および 5 の場合は、 WRITE コマンドの前で 1 コン ト ローラ ク ロ ッ ク サイクル間アサー
ト されます。
ctrl_Odd_Latency 1 コ ン ト ロ ー ラ か ら 書 き込み
データパスへの出力。 選択され
た CAS レイテンシが奇数のと
きアサート されます。 正しい書
き込みレイテンシの後、書き込
み DQS および書き込み DQ の生成に必要です
(書き込みレイテンシ = CAS レイテンシ – 1)。
ctrl_Dummyread_Start 1 コ ン ト ロ ー ラ か ら 読み出 し
データパスへの出力。 アサート
される と、 ス ト ローブおよび
データのキャ リ ブレーシ ョ ン
が開始します。
データ バスに有効な読み出しデータがある場合は、 この
信号が必ずアサー ト されます。 dp_dly_slct_done 信号が
アサート される と、 ディアサート されます。
dp_dly_slct_done 1 読み出しデータパスから コン
ト ローラへの出力。ス ト ローブ
およびデータのキャ リ ブレー
シ ョ ンが終了したこ と を示し
ます。
データおよびス ト ローブのキャ リブレーシ ョ ンが終了す
る と、 アサート されます。 通常の操作は、 この信号のア
サート後に開始されます。
ctrl_RdEn 1 コ ン ト ロ ー ラ か ら 読み出 し
デー タ パ スへの読み出 し イ
ネーブル信号の出力
この信号は、 バース ト 長 4 の場合は 1 コン ト ローラ クロ ッ ク サイ クル間、 バース ト長 8 の場合は 2 コン ト ロー
ラ クロ ッ ク サイクル間アサート されます。
CAS レイテンシおよび追加レイテンシの値により 、 この
信号と 読み出しステート のタイミ ング関係が決定します。
DDR2 SDRAM インターフェイス デザイン
XAPP723 (v1.4) 2007 年 10 月 17 日 japan.xilinx.com 11
R
図 6 にコン ト ローラから物理レイヤへの制御信号のタイ ミ ング波形を示します。
図 6 : コン ト ローラから物理レイヤへの制御信号のタイ ミング波形
CLKdiv_0
State 0C 0E 0D 0E 0D 0E 0D 0E 16 09 0B 0A 0B 0A 0B 0A 0B
X723_06_091505
5
4
Ctrl_Wren_Dis
Ctrl_Wr_En
Ctrl_Rden
Cas_latency
Additive_latency
12 japan.xilinx.com XAPP723 (v1.4) 2007 年 10 月 17 日
コン ト ローラの インプリ メン トR
コン ト ローラのインプリ メン ト
コン ト ローラのク ロ ッ クの周波数は、 インターフェイスの半分です。 このため、 アドレス、 バンク アド
レス、 およびコマンド信号 (RAS、 CAS、 および WE) は高速メモリ インターフェイス ク ロ ッ クの 2 クロ ッ ク サイクル間アサート されます。 制御信号 (CS、CKE、および ODT) は半分の周波数のクロ ッ クの
DDR で、 制御信号は、 高速メモ リ インターフェイス ク ロ ッ クの 1 ク ロ ッ ク サイ クルだけアサート さ
れます。
コン ト ローラ ステート マシンは、 メモ リのタイ ミ ング要件を決定しながら適切な順序でコマンドを発
行します。
次のセクシ ョ ンでコン ト ローラ ステート マシンの各段階について、 詳し く説明します。
図 7 に、 DDR2 コン ト ローラ ステート マシンを示します。 コン ト ローラから メモ リにコマンドを発行
する前の動作は次のとおりです。
1. アド レス FIFO は FWFT (First-Word-Fall-Through) モード です。 このモード では、 FIFO に書き
込まれた最初のアド レスが FIFO の出力と なり ます。 アド レスはコント ローラ によ り デコード さ
れます。
図 7 : DDR2 コン ト ローラ ステート マシン
Precharge
AutoRefresh
BurstWrite
IDLE Initialization
Rst
WR/RD
Active
WriteWait
ReadWait
ActiveWait
FirstWrite
RD
RD
RD
RD
Conflict/WR
Conflict/WR
Write –Read First
Read
Read_write
BurstRead
Autorefresh/Conflict
Autorefresh/Conflict
WRWR
WR
WR
Conflict/RD
Conflict/RD
Refresh_doneRefresh
Conflict/Refresh
Init_doneRP_cnt=0
X723_07_092005
リファレンス デザイン
XAPP723 (v1.4) 2007 年 10 月 17 日 japan.xilinx.com 13
R
2. すべてのバンクがプリチャージされている場合は対応するバンクの行がアクティブになり、 既にア
クティブな行がある場合は、 その行とバンクのアドレスが新しい行とバンクのアドレス と比較され
ます。 異なる場合は、 現在アクティブな行がプリチャージされ、 読み出し /書き込みステートに遷移
する前に ACTIVE コマンドが発行されます。
3. 書き込みステートのと きにコン ト ローラが READ コマンドを検出する と、 write_to_read タイム後
に READ コマンドが発行されます。 同様に、読み出しステートのと きにコマンド論理ブロ ッ クから
WRITE コマンドが検出される と、 read_to_write タイム後に WRITE コマンドが発行されます。 読み出しまたは書き込みステート では、 コン ト ローラは書き込みイネーブルをアド レス FIFO にア
サート し、 次のアドレスを取得します。
4. コマンドは、 DDR2 メモ リに対して発行される前に、 パイプライン化されてアドレス信号に同期化
されます。
リファレンスデザイン
図 8 に、 最上位モジュール mem_interface_top 以下のデザイン階層を示します。
DDR2 SDRAM インターフェイスの リ ファレンス デザインは MIG ツールと統合されており、MIG ツー
ルはザイ リ ンク ス CORE Generator™ ソフ ト ウェアと統合されています。 最新バージ ョ ンのデザイン
は、 次のサイ トから ISE IP アップデート をダウンロードするこ とによ り入手できます。
http://japan.xilinx.com/xlnx/xil_sw_updates_home.jsp
図 8 : デザイン階層
mem_Interface_top
idelay_ctrl
ddr2_controllerdata_pathuser_interfaceiobs
x723_08_091505
infrastructure
top test_bench
main
backend_rom cmp_rd_data
addr_gen data_gen_16tap_logicdata_writerd_databackend_fifosdatapath_iobscontroller_iobs
rd_wr_addr_fifo wr_data_fifo_16 rd_data_fifo tap_ctrl
infrastr_iobs
v4_dqs_iobv4_dm_iobidelay_rd_en_io v4_dq_iob
RAM_D
14 japan.xilinx.com XAPP723 (v1.4) 2007 年 10 月 17 日
リファレンス デザインのサマリR
リファレンスデザインのサマリ
表 9 に、 72 ビッ ト インターフェイスの最大周波数をスピード グレード別に示します。
表 10 に、 72 ビッ ト インターフェイスの リ ファレンス デザインのサマリ を示します。
まとめ このアプ リ ケーシ ョ ン ノー ト で説明されている DDR2 コン ト ローラは、 アプ リ ケーシ ョ ン ノー ト
XAPP721 『ISERDES と OSERDES を使用した高性能 DDR2 SDRAM インターフェイスのデータ キャ
プチャ』 で説明されているデータ キャプチャの手法に加え、パフォーマンスの高いメモリ インターフェ
イスのすぐれたソ リ ューシ ョ ンを提供します。
このデザインでは、FPGA 内のキャ リブレーシ ョ ン ロジッ クを除くすべてのロジッ クがインターフェイ
スの半周波数で駆動され、 ク リ ティカル パスが削減されるため、高いマージンを達成できます。 このデ
ザインはハードウェアでも検証済みです。
改訂履歴 次の表に、 この文書の改訂履歴を示します。
表 9 : 72 ビッ ト インターフェイスの最大周波数
スピード グレード最大周波数
(MHz)
-10 230
-11 267
-12 300
表 10 : 72 ビッ ト インターフェイスのリファレンス デザインのサマリ
パラメータ 詳細/メモ
デバイスの使用量
スライス 6714 個 (コン ト ローラ、 合成可能なテス トベンチ、 ユーザー インター
フェイス、 物理層を含む)
BUFG 6 個 (IDELAY ブロ ッ ク用の 200MHz のリ ファレンス ク ロ ッ クに使用さ
れる BUFG 1 つを含む)
BUFIO 9 個 (インターフェイス内のス ト ローブ数と同じ )
DCM 1 個
PMCD 1 個
ISERDES 72 個 (インターフェイス内のデータ ビッ ト数と同じ )
OSERDES 99 個 (データ ビッ ト数、 ス ト ローブ数、 およびデータ マスクビッ ト
数の合計と同じ)
日付 バージョ ン 改訂
2005 年 12 月 15 日 1.0 初版リ リース
2005 年 12 月 16 日 1.1 表 8 および 表 10 を改訂。
2006 年 02 月 02 日 1.2 図 4 を改訂。
2006 年 02 月 08 日 1.3 図 4 を改訂。
改訂履歴
XAPP723 (v1.4) 2007 年 10 月 17 日 japan.xilinx.com 15
R
2007 年 10 月 17 日 1.4 • 「はじめに」 を改訂
• 表 4 を改訂
• 表 5 の後に説明を追加
• 「デザイン階層」 を 「 リ ファレンス デザイン」 に変更し、内
容を改訂
• 「使用可能な リ ソース」 を 「 リ ファレンス デザインのサマ
リ 」 に変更
• 表 9 「72 ビッ ト インターフェイスの最大周波数」 を追加
• 表 10「 使用可能なリ ソース」 の名称を「 72 ビッ ト イン
ターフェイ スのリ ファ レンス デザインのサマリ 」 に変更
し、 改訂
• 「ま とめ」 を改訂
日付 バージョ ン 改訂