CRII DDR Memory Interface

DDR SDRAM
メモリ・インターフェイス
アジェンダ
• なぜDDRなのか?
• DDR対SDR
• DDR SDRAMを理解
– バス・タイミング
• CoolRunner-IIとDDR SDRAMのデモ・ボード
• CoolRunner-IIのDDR SDRAMデザイン
なぜDDRなのか?
• DDRとはDouble Data Rate
• 各クロック・サイクル毎に2個の情報を読み出しあ
るいは書き込む機能
• クロック・スピードを上げず、バス幅を広げず、デ
バイスのバンド幅を2倍にする
DDR対SDRの機能比較
• DDRとSDRのメモリ・コアは同じ
–
–
–
–
アドレス方法
コマンド制御インターフェイス
メモリ・バンクのアレイ構造
リフレッシュ動作の必要性
• 主な差異はデータ・インターフェイスにある:
– SDRは完全に同期型(clkのposedge)
– DDRは真のソース同期型で、クロック・サイクル毎に
データを2度取り込み、このとき双方向データ・ストローブ
(DQS)を使用
ストローブ・ベースのデータ・バス
• より高速なデータ・レートを得るために、データ・
ストローブ信号がDDRデバイスに追加
– DDRデータ・ストローブ(DQS)は非自由走行信号で、
データ信号をドライブしているデバイスによりドライ
ブされる
• WRITE(書き込み)時は、コントローラがDQSをドライブする
• READ(読み出し)時は、DDR SDRAMがDQSをドライブする
DDRの強化
• DDRはシステム・クロック(CLKとCLK#)に差動ペアを利用
• クロックの立上り/立下がりの両エッジでデータを転送
• DDRデバイスは、オンチップのディレイ・ロックド・ループ(DLL)
を利用
• データ取り込みの信頼性を改善するためにデータ・ストローブ
を追加
• SSTL_2信号方式を使用
• DDRは2n-プリフェッチ・アーキテクチャを採用
– 内部データバスは、外部データバス・サイズの2倍
SDR対DDRの要約
パラメータ
DQM
DM (Data Mask)
DQS (Data Strobe)
CK# (System Clock)
Vref
VDD and VDDQ
信号インターフェイス
データレート
アーキテクチャ
SDR
Yes
No
No
No
No
3.3V
LVTTL
1x Clock
DDR
No
Yes
Yes
Yes
Yes
2.5V
SSTL_2
2x Clock
同期
ソース同期
CoolRunner-II DDR SDRAM
評価用ボード
CR-II / DDRデモ・ボード
2.5V/1.8V レギュレータ
LP3964
LP3964
2.5 V
1.8 V
VTT & VREF 生成
Micro Linear
ML6554
バス・ターミネータ
VREF Out
VTT Out
CR-II & DDR SDRAM
Xilinx
CR-II
XC2C256
CLK
Micron
128 Mb DDR
MT46V16M8
SSTL_2終端処理
VTT
VTT
RT
RT
RS
RS
ZO = 50 Ohm
VREF
+
-
VTT
RT
RS
ZO = 50 Ohm
VREF
+
-
CR-II / DDR終端処理
VTT
VTT
ZO = 50 Ohm
VTT
ZO = 50 Ohm
VREF
128 Mb
DDR SDRAM
CPLDデザイン
• DDR SDRAMコントローラ・デザインを一個の
XC2C256で実現 (DDRに対する使用率は~50%)
• 次のものを含む:
–
–
–
–
–
初期化用ステート・マシーン
DDRコントローラ
リフレッシュ回路
テスト用読み/書きロジック(LFSR)
ボード・インターフェイス
CPLDブロック図
8-ビット
LFSR
リフレッシュ
ロジック
ddr_a
2
ddr_ba
8
rfsh_flag
int_cmd
初期化 / テストロジック
ステートマシン
12
int_data
int_addr
DDR
コントローラ・
ステートマシン
ddr_dq
ddr_dqs
ddr_cke
ddr_cs
ddr_ras
ddr_cas
ddr_we
ddr_clk
ボード・ロジック
ddr_clkn
DDRコマンド
NOP
LOAD MODE REGISTER
ACTIVE
DDR SDRAMの解除。新しいコマンドは
実行されない
SDRAMの動作モードを定義
READ
アクセスのために指定されたバンクの
行をオープン
バースト・リード(読み出し)動作を開始
WRITE
バースト・ライト(書き込み)動作を開始
BURST TERMINATE
バースト・リード(読み出し)動作を終了
PRECHARGE
指定バンクのオープンされた行を
非アクティブにする
SDRAMのデータを保持
AUTO REFRESH
SDRAMのアドレッシング
バンク・
アドレス
行アドレス
列アドレス
22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ロードモード登録データ
• 23ビットのシステム・アドレス・バス = 128 MBメモリ
• SDRAMデータはバンクに割り振られる
• 各ビットの位置は行アドレスと列アドレスで指定される
初期化シーケンス
電源の安定とクロック
入力を待つ
200クロック・
サイクル分待機
NOP
全てのアドレスを
プリチャージ
全てのアドレスを
プリチャージ
二つの自動リフレッシュ・
コマンドを実行
拡張モード・レジスタの
書き込み(DLLのイネーブル)
モード・レジスタの
書き込み(DLLのリセット)
モード・レジスタの
書き込み(CASをセットし、
バーストを行う)
コントローラ・ステート・マシーン
cmd = AUTO_REFRESH
cmd = PRECHARGE
PRECHARGE
AUTO_RFS
IDLE
cmd = READ
or WRITE
cmd = LOAD MR
LOAD_MR
ACTIVE
WRITE
READ
BRST_TERM
cnt < CAS_LAT
CAS_LAT
WR_DATA
cmd =
BURST_TERM
RD_DATA
cnt < BURST_LEN
cnt < BURST_LEN
DDRのクロック要件
DDRのクロック生成
Vcc
T
ddr_clk
Q
sys_clk
OBUF
3.3V IN
GCK
2.5V OUT
RST
Vcc
T
ddr_clkn
Q
sys_clk
OBUF
3.3V IN
GCK
PRE
2.5V OUT
DDRのクロック・タイミング
T = 7.5 ns
sys_clk
tCO = 5 ns
ddr_clk
ddr_clkn
T = 15 ns
7.5 ns
(133 MHz)
DDR Clock Period
15 ns
(66.67 MHz)
DDRのクロック生成(Tco)
sys_clk
ddr_clk
ddr_clkn
DDRのクロック生成(VMP)
sys_clk
ddr_clk
ddr_clkn
バンク/行をアクティブにする
• 読み/書き動作の前に指定した
バンク/行をアクティブにする
必要がある
典型的なライト(書き込み)バースト
• CPLDで生成されるDQS
• DQSはDQの中央に揃える必要がある
典型的なリード(読み出し)バースト
• DQSのエッジはDQのエッジと揃える
• リード(読み出し)はBURST TERMINATEコマンドで割り込み中断される
データ・バリッド・リード・ウィンドウ
sys_clk
ddr_clk
ddr_clkn
ddr_dq
D0
D1
DVW
DVW
ddr_dqs
CPLD captures data
DVW = tCK/2 - tAC(max) + tAC(min) = 7.5 ns - (0.75 ns) + (-0.75 ns) = 6 ns
データ・バリッド・ウィンドウ
ddr_dqs
ddr_dq(0)
ddr_dq(1)
ddr_dq(2)
リードとライト(バースト2)
ddr_clk
ddr_dqs
ddr_dq(0)
ddr_dq(1)
リードとライト(バースト4)
ddr_clkn
ddr_clk
ddr_dqs
ddr_dq(0)
リードとライト(バースト8)
ddr_clkn
ddr_clk
ddr_dqs
ddr_dq(0)
プリチャージ動作
• プリチャージは、する特定バンク
又は全てのバンクのオープン行
を非アクティブにする
• プリチャージの後は、使用前に
ACTIVEコマンドを使って特定の行
アドレスをアクティブにしなければ
ならない
• 自動PRECHARGE:現在の
READ/WRITE動作後A10が
プリチャージを指定する
• セルフPRECHARGE:別のコマンド
を使用(tRPだけ待つ必要あり)
リフレッシュ動作の必要性
• 15.625μs間隔でリフレッシュが必要
– リフレッシュ・コマンドは一度だけでよい
• 140.6μs毎に最大8個のリフレッシュ・コマンドを出すオプション
DDR SDRAMのベンダ
• DDR SDRAMを供給しているメモリ・ベンダは:
–
–
–
–
–
–
Micron
Infineon
Cypress
Samsung
日立
富士通
– Hyundai
– IDT
– 三菱
– SiberCore
– 東芝
結 論
• 評価ボードのDDR SDRAMは最大100 MHzで動作
• このDDRデザインはSDR SDRAMアプリケーション用
に変更可能
• DDRとCoolRunner-IIのレファレンスデザインに関する
アプリケーション・ノート、XAPP384に詳細記述有り
デモ・スライド
デモ
Test Control Logic
Burst = 2
8-bit LFSR
8
8
int_data[15:0]
Upper Byte
Lower Byte
DDR Control Logic
ddr_dq[7:0]
デモ
DDRに書き込まれるデータ
MSB … LSB
DDRから読み出されるデータ
MSB … LSB
付録
SDRAMコア
DQM (SDR only)
内部データバス
Col0 (DDR only)
SDRインターフェイス
DDRインターフェイス
Col0
SSTL_2信号方式
DDR書き込み回路
8-bit LFSR
lfsr_clk
(TEST SM
Logic)
D
Q
int_data
(TEST SM Logic)
T
ddr_dq[7:0]
Q
ddr_clk
DualEdge
DDR SM Logic
D
Q
ddr_clk
ddr_dqs_t
T
Q
ddr_clk
DualEdge
ddr_write_en
ddr_dqs
DDR読み出し回路
DDR SM Logic
T
Q
ddr_read_en
ddr_clk
DualEdge
ddr_dq[7:0]
ddr_dqs
D
CE
Q
int_data_rd[15:8]
sys_clk
ddr_dqs
ddr_dq[7:0]
D
sys_clk
CE
Q
int_data_rd[7:0]
LED
Board
Logic
CLK/CLK#生成