XAPP723: Virtex-4 デバイスを使用した DDR2 コント … DDR2 SDRAM 概要 XAPP723 (v1.4)...

15
XAPP723 (v1.4) 2007 10 17 japan.xilinx.com 1 © 2005-2007 Xilinx, Inc. All Rights Reserved. XILINXXilinx ロゴ、 およびその他本文に含まれる商標名は 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 を使用した高性能 DDR2 SDRAM インターフェイスのデータ キャプチャ』 に説明されているデータ キャプチャの手法を使用し てください。 このアプリケーション ノート では、 まず、 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

Transcript of XAPP723: Virtex-4 デバイスを使用した DDR2 コント … DDR2 SDRAM 概要 XAPP723 (v1.4)...

Page 1: XAPP723: Virtex-4 デバイスを使用した DDR2 コント … DDR2 SDRAM 概要 XAPP723 (v1.4) 2007 年 10 月 17 日 japan.xilinx.com 3 R バンクアドレス BA1 および BA0

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

Page 2: XAPP723: Virtex-4 デバイスを使用した DDR2 コント … DDR2 SDRAM 概要 XAPP723 (v1.4) 2007 年 10 月 17 日 japan.xilinx.com 3 R バンクアドレス BA1 および BA0

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

Page 3: XAPP723: Virtex-4 デバイスを使用した DDR2 コント … DDR2 SDRAM 概要 XAPP723 (v1.4) 2007 年 10 月 17 日 japan.xilinx.com 3 R バンクアドレス BA1 および BA0

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

Page 4: XAPP723: Virtex-4 デバイスを使用した DDR2 コント … DDR2 SDRAM 概要 XAPP723 (v1.4) 2007 年 10 月 17 日 japan.xilinx.com 3 R バンクアドレス BA1 および BA0

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 で開始列を選択します。 読み出しバー

ス トの完了後も、 プリチャージされるまで、 行はアクティブのままです。

Page 5: XAPP723: Virtex-4 デバイスを使用した DDR2 コント … DDR2 SDRAM 概要 XAPP723 (v1.4) 2007 年 10 月 17 日 japan.xilinx.com 3 R バンクアドレス BA1 および BA0

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

Page 6: XAPP723: Virtex-4 デバイスを使用した DDR2 コント … DDR2 SDRAM 概要 XAPP723 (v1.4) 2007 年 10 月 17 日 japan.xilinx.com 3 R バンクアドレス BA1 および BA0

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

Page 7: XAPP723: Virtex-4 デバイスを使用した DDR2 コント … DDR2 SDRAM 概要 XAPP723 (v1.4) 2007 年 10 月 17 日 japan.xilinx.com 3 R バンクアドレス BA1 および BA0

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 に入力されている必要があ り ます。

Page 8: XAPP723: Virtex-4 デバイスを使用した DDR2 コント … DDR2 SDRAM 概要 XAPP723 (v1.4) 2007 年 10 月 17 日 japan.xilinx.com 3 R バンクアドレス BA1 および BA0

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

Page 9: XAPP723: Virtex-4 デバイスを使用した DDR2 コント … DDR2 SDRAM 概要 XAPP723 (v1.4) 2007 年 10 月 17 日 japan.xilinx.com 3 R バンクアドレス BA1 および BA0

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 バース ト読み出し

Page 10: XAPP723: Virtex-4 デバイスを使用した DDR2 コント … DDR2 SDRAM 概要 XAPP723 (v1.4) 2007 年 10 月 17 日 japan.xilinx.com 3 R バンクアドレス BA1 および BA0

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 レイテンシおよび追加レイテンシの値により 、 この

信号と 読み出しステート のタイミ ング関係が決定します。

Page 11: XAPP723: Virtex-4 デバイスを使用した DDR2 コント … DDR2 SDRAM 概要 XAPP723 (v1.4) 2007 年 10 月 17 日 japan.xilinx.com 3 R バンクアドレス BA1 および BA0

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

Page 12: XAPP723: Virtex-4 デバイスを使用した DDR2 コント … DDR2 SDRAM 概要 XAPP723 (v1.4) 2007 年 10 月 17 日 japan.xilinx.com 3 R バンクアドレス BA1 および BA0

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

Page 13: XAPP723: Virtex-4 デバイスを使用した DDR2 コント … DDR2 SDRAM 概要 XAPP723 (v1.4) 2007 年 10 月 17 日 japan.xilinx.com 3 R バンクアドレス BA1 および BA0

リファレンス デザイン

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

Page 14: XAPP723: Virtex-4 デバイスを使用した DDR2 コント … DDR2 SDRAM 概要 XAPP723 (v1.4) 2007 年 10 月 17 日 japan.xilinx.com 3 R バンクアドレス BA1 および BA0

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 を改訂。

Page 15: XAPP723: Virtex-4 デバイスを使用した DDR2 コント … DDR2 SDRAM 概要 XAPP723 (v1.4) 2007 年 10 月 17 日 japan.xilinx.com 3 R バンクアドレス BA1 および BA0

改訂履歴

XAPP723 (v1.4) 2007 年 10 月 17 日 japan.xilinx.com 15

R

2007 年 10 月 17 日 1.4 • 「はじめに」 を改訂

• 表 4 を改訂

• 表 5 の後に説明を追加

• 「デザイン階層」 を 「 リ ファレンス デザイン」 に変更し、内

容を改訂

• 「使用可能な リ ソース」 を 「 リ ファレンス デザインのサマ

リ 」 に変更

• 表 9 「72 ビッ ト インターフェイスの最大周波数」 を追加

• 表 10「 使用可能なリ ソース」 の名称を「 72 ビッ ト イン

ターフェイ スのリ ファ レンス デザインのサマリ 」 に変更

し、 改訂

• 「ま とめ」 を改訂

日付 バージョ ン 改訂