• 検索結果がありません。

XAPP851 Virtex-5 FPGA デバイスを使用した DDR SDRAM コントローラ

N/A
N/A
Protected

Academic year: 2022

シェア "XAPP851 Virtex-5 FPGA デバイスを使用した DDR SDRAM コントローラ"

Copied!
18
0
0

読み込み中.... (全文を見る)

全文

(1)

概要

こ の ア プ リ ケ ー シ ョ ン ノ ー ト で は、Virtex™-5 デ バ イ ス に イ ン プ リ メ ン ト さ れ る 200MHz DDR SDRAM (JEDEC DDR400PC3200 規格) コ ン ト ロ ー ラ について説明 し ます。こ の コ ン ト ロ ー ラ の イ ン プ リ メ ン テーシ ョ ンでは、IDELAY エ レ メ ン ト を使用 し て、 読み出 し デー タ の タ イ ミ ン グが調整 さ れま す。読み出 し デー タ の タ イ ミ ン グは、 こ の コ ン ト ロ ー ラ で調整 さ れます。

DDR SDRAM デバ イ ス は、 コ ス ト が低 く 、 集積度が高い ス ト レ ージ リ ソ ー ス で、 多数の メ モ リ ベン ダーか ら 入手可能です。こ の リ フ ァ レ ン スデザ イ ンは、DDR400 SDRAM コ ン ポーネ ン ト を使用 し て開 発 さ れてい ます。

DDR SDRAM ついて

DDR SDRAM の仕様は、 米国電子工業会 (Electronic Industries Alliance : EIA) の一部で あ る JEDEC のサ イ ト (http://www.jedec.org/) か ら 入手で き ます。 DDR SDRAM の仕様は、JESD79E と い う 名前で 参照 さ れてい ます。

DDR SDRAM デバ イ ス は、 消費者向け製品、 映像シ ス テ ム な ど さ ま ざ ま な アプ リ ケーシ ョ ンで最 も 頻 繁に利用 さ れてい る シ リ コ ン メ モ リ リ ソ ース です。 DDR SDRAM デバ イ ス の周波数範囲は、200MHz ま たは DDR400 ま でです。 DRAM デバ イ ス は、 コ ン ポーネ ン ト ま たはモジ ュ ールコ ン フ ィ ギ ュ レ ー シ ョ ンで使用で き ます。

DDR コ ン ト ロー ラ の コ マ ン ド

表1 に、 コ ン ト ロ ー ラ に よ り 発行 さ れ る コ マン ド を示 し ます。こ れ ら の コ マン ド は、 次の制御信号を使 用 し て メ モ リ に転送 さ れます。

行ア ド レ ス セ レ ク ト (RAS)

列ア ド レ ス セ レ ク ト (CAS)

ラ イ ト イ ネーブル (WE)

ク ロ ッ ク イ ネーブル (CKE) (デバ イ ス の コ ン フ ィ ギ ュ レーシ ョ ン後は High に保持)

チ ッ プセ レ ク ト (CS) (デバ イ ス の動作中は Low に保持)

ア プ リ ケーシ ョ ン ノ ー ト : Virtex-5 フ ァ ミ リ

XAPP851 (v1.1) 2006 7 14

Virtex-5 FPGA デバイ ス を使用 し た DDR SDRAM コ ン ト ロー ラ

本資料は英語版 (v1.1) を翻訳 し た も のです。 英語の更新バージ ョ ンが リ リ ース さ れてい る場合には、 最新の英語版を必ずご参照 く だ さ い。

R

表 1 : DDR SDRAM の コ マ ン ド

信号番号 動作 RAS CAS WE

1 Load Mode Register L L L

(2)

DDR SDRAM について

R

コ マ ン ド の機能

モー ド レ ジス タ

モー ド レ ジ ス タ は、 バース ト 長の選択、 バース ト の タ イ プ、CAS レ イ テ ン シ、 操作モー ド な ど、DDR SDRAM の操作モー ド を定義 し ます。図1 に、 こ の コ ン ト ロ ー ラ で使用す る モー ド レ ジ ス タ の定義を 示 し ます。

バン ク ア ド レ ス BA1 お よ び BA0 は、 モー ド レ ジ ス タ を選択 し ます。図1 には、 バン ク ア ド レ ス ビ ッ ト の コ ン フ ィ ギ ュ レーシ ョ ン も 示 さ れます。

拡張モー ド レ ジス タ

拡張モー ド レ ジ ス タ では、 モー ド レ ジ ス タ で制御で き ない機能を設定で き ます。拡張モー ド レ ジ ス タ で設定で き る 機能は、図2 に示す よ う に、DDR SDRAM イ ン ターフ ェ イ ス の DLL イ ネーブル/デ ィ ス エーブルお よ び出力駆動電流です。

5 Write Command H L L

6 Read Command H L H

7 No Operation (NOP) H H H

メ モ :

1. ア ド レ ス信号 A10 は、PRECHARGE ALL BANKS の と き は High に保持 し 、 単一のバン クプ リ チ ャ ージの と き は Low に保持 し ま す。

表 1 : DDR SDRAM の コ マ ン ド(続き)

信号番号 動作 RAS CAS WE

図 1 : DDR400 のモー ド レ ジ ス タ の定義

BA1 BA0 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0

0 0 0 DLL 0 CAS Latency BT Burst Length

A2 A1 A0 Burst Length 0 0 1

0 1 0 0 1 1 Others

2 4 8 Reserved

A6 A5 A4 0 1 0 0 1 1 1 1 0 Others

2

3 (DDR400) 2.5 Reserved CAS Latency

A8 DLL

0 Normal Operation

1 Reset

BA1 BA0 0 0 0 1

Mode Register Mode Register (MR) Extended MR EMR1

x851_01_031806

(3)

DDR SDRAM メ モ リ コ ン ト ロー ラ リ フ ァ ン レ スデザイ ン R

DDR SDRAM メ モ リ

コ ン ト ロー ラ リ フ ァ ン レ ス デザイ ン

メ モ リ コ ン ト ロー ラ リ フ ァ レ ン スデザ イ ンには、図3 に示す よ う に、PHY レ イ ヤ と メ イ ン コ ン ト ロ ー ラ レ イ ヤが含まれます。 PHY レ イ ヤには、メ モ リ 初期化 ロ ジ ッ ク と ア ド レ ス./コ マン ド/デー タ の I/O ジ ッ ク が含 ま れ ま す。読み出 し デー タ が キ ャ プチ ャ さ れ る タ イ ミ ン グ の キ ャ リ ブ レ ーシ ョ ン は、 こ の PHY レ イ ヤ内で実行 さ れます。メ イ ン コ ン ト ロ ー ラ レ イ ヤには、DDR SDRAM コ ン ト ロ ー ラ ス テー

ト マシ ン と ア ド レ ス/コ マ ン ド/デー タ の FIFO ロ ジ ッ ク が含まれます。

図 2 : DDR400 の拡張モー ド レ ジ ス タ

BA1 BA0 E12 E11 E10 E9 E8 E7 E6 E5 E4 E3 E2 E1 E0

0 1 0

E1 Drive Strength 0 Normal 1 Reduced

DS

E0 DLL 0 1

Enable Disabled

DLL

x851_02_031806

図 3 : DDR SDRAM メ モ リ コ ン ト ロー ラ リ フ ァ ン レ スデザイ ンの構造 Main DDR

SDRAM Controller Address/

Command FIFO Front-End FIFOs

User Interface Write Data

FIFO

Read Data FIFO User

Design PHY

Controller

DDR SDRAM DDR SDRAM Controller Reference Design

X851_03_050606

(4)

DDR SDRAM イ ン タ ー フ ェ イ スデザイ ン

R

DDR SDRAM イ ン タ ー フ ェ イ ス デザイ ン

DDR コ ン ト ロ ー ラ へのユーザーイ ン タ ーフ ェ イ スは、ユーザーが コ マ ン ド を実行す る と 基本的な FIFO の よ う な役割 り を果た し 、DDR メ モ リ にデー タ を書 き 込んだ り 、DDR メ モ リ か ら デー タ を読み出 し た り す る のに使用 さ れ ま す。ユーザーイ ン タ ー フ ェ イ ス のデー タ 幅は DDR メ モ リ バ ス の 2 倍なので、

DDR メ モ リ コ ン ト ロ ー ラ には FPGA ク ロ ッ ク サ イ ク ルご と に 2 デー タ ワー ド が供給 さ れます。

DDR SDRAM ユーザー イ ン タ ー フ ェ イ ス

バ ッ ク エン ド ユーザー イ ン タ ーフ ェ イ ス には、 次の 3 つの FIFO が含まれます。

ア ド レ ス/コ マ ン ド FIFO

書 き 込みデー タ FIFO

読み出 し デー タ FIFO

最初の 2 つの FIFO はユーザー特有のバ ッ ク エ ン ド モ ジ ュ ールに読み込 ま れ ま す。 読み出 し デー タ FIFO PHY コ ン ト ロ ー ラ か ら ア ク セ ス さ れ、各読み出 し サ イ ク ルご と にキ ャ プチ ャ し たデー タ を格納 し ます。

メ モ リ ア ド レ ス (APP_ADDR) には、3 に示す よ う に、 列ア ド レ ス、 行ア ド レ ス、 バン ク ア ド レ ス、

デ ィ ープ メ モ リ イ ン タ ーフ ェ イ ス のチ ッ プセ レ ク ト 幅が含まれます。

注意 こ の メ モ リ コ ン ト ロ ー ラ では自動プ リ チ ャ ージがサポー ト さ れないので、Read コ マ ン ド と Write コ マ ン ド の両方で APP_ADDR[10] が必ず Low にな る よ う に設定 し て く だ さ い。

表 2 : ユーザー イ ン タ ー フ ェ イ スのポー ト

ポー ト 名 I/O 幅 説明 メ モ

APP_ADDR I 36 コ ン ト ロ ー ラ で実行 さ れ る コ マ ン ド の命令 コ ー ド お よ

びア ド レ ス。こ のポー ト のビ ッ ト は次の よ う にマ ッ プ さ れます。

[31:0] メ モ リ ア ド レ ス (CS、 バン ク 、 行、 列) [34:32] ダ イ ナ ミ ッ ク コ マ ン ド 要求 (4 参照) [35] 未使用 - 将来の機能のために予約

こ の FIFO に書き 込まれ る 前に APP_ADDR_AF (almost full フ ラ グ) を監視

APP_ADDREN I 1 APP_ADDR の書 き 込みス ト ロ ーブ ア ク テ ィ ブ High

APP_ADDR_AF O 1 ア ド レ ス/コ マ ン ド FIFO (almost full フ ラ グ) ア ク テ ィ ブ High APP_WR_DATA I data_width x 2 書 き 込みバース ト 用の書 き 込みデー タ

APP_DATAMASK I data_mask_width x 2 書 き 込みデー タ に対す る デー タマ ス ク

APP_DATAEN I 1 APP_WR_DATA/APP_DATAMASK の書 き 込みス ト

ロ ーブ

ア ク テ ィ ブ High

APP_WRDATA_AF O 1 書 き 込みデー タ FIFO (almost full フ ラ グ) ア ク テ ィ ブ High APP_RD_DATA I data_width x 2 読み出 し デー タ FIFO 出力 (キ ャ プチ ャ さ れた読み出 し

デー タ)

APP_RD_VALID O 1 アサー ト さ れ る と 、APP_RD_DATA のキ ャ プチ ャ さ

れた読み出 し デー タ が現在の ク ロ ッ ク サ イ ク ルで有効 であ る こ と を示 し ます。

ア ク テ ィ ブ High

CTRL_RDY O 1 アサー ト さ れ る と 、PHY イ ン タ ーフ ェ イ ス ロ ジ ッ ク

が SDRAM の初期化 と 読み出 し デー タ パ ス のキ ャ リ ブ レーシ ョ ン を終了 し た こ と を示 し ます。

ア ク テ ィ ブ High

PHY_ERROR O 1 アサー ト さ れ る と 、 読み出 し デー タ パ ス のキ ャ リ ブ

レーシ ョ ン中にエ ラ ーが発生 し た こ と を示 し ます。

ア ク テ ィ ブ High

(5)

DDR SDRAM イ ン タ ー フ ェ イ スデザイ ン R

ダ イ ナ ミ ッ ク コ マ ン ド 要求

表4 は、 ユーザー イ ン タ ーフ ェ イ ス を介 し た メ モ リ コ ン ト ロ ー ラ でサポー ト さ れ る コ マ ン ド を リ ス ト し てい ます。 「Load Mode Register」 、 「Auto Refresh」 、 「Precharge」 、 「Activate」 な ど の コ マ ン ド は、

適切な タ イ ミ ン グで メ モ リ コ ン ト ロ ー ラ か ら 自動的に実行 さ れ ま すが、ユーザー イ ン タ ーフ ェ イ ス か ら 手動で実行す る こ と も 可能です。

表 3 : ユーザー イ ン タ ー フ ェ イ スのア ド レ スビ ッ ト

ア ド レ ス ビ ッ ト

列ア ド レ ス 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

表 4 : コ ン ト ロー ラ でサポー ト さ れる コ マ ン ド

APP_ADDR[34:32] 説明

000 Load Mode Register 001 Auto Refresh 010 Precharge All

011 Activate

100 Write

101 Read

110 NOP

111 NOP

(6)

DDR SDRAM イ ン タ ー フ ェ イ スデザイ ン

R

DDR SDRAM コ ン ト ローラ

イ ン タ ーフ ェ イ ス

図4 に、DDR SDRAM コ マ ン ド 生成ス テー ト マシ ン を示 し ます。

コ ン ト ロ ー ラ か ら メ モ リ に コ マン ド が送信 さ れ る 前に、 次の操作が実行 さ れます。

1. コ マ ン ド ロ ジ ッ ク ブ ロ ッ ク に よ り Read/Write コ マン ド が生成 さ れます。

2. コ ン ト ロ ー ラ に よ り 、 読み出 し/書 き 込みア ド レ ス FIFO に リ ー ド イ ネーブル信号が送信 さ れます。

3. すべてのバン ク がプ リ チ ャ ージ さ れてい る 場合は対応す る バン ク の行がア ク テ ィ ブにな り 、 既にア ク テ ィ ブな行があ る 場合は、 その行 と バン ク のア ド レ ス が新 し い行 と バン ク のア ド レ ス と 比較 さ れ ます。異な る 場合は、 現在ア ク テ ィ ブな行がプ リ チ ャ ージ さ れ、 読み出 し/書 き 込みス テー ト に遷移 す る 前に Active コ マ ン ド が送信 さ れます。

4. Write ス テー ト の と き に Read コ マン ド が検出 さ れ る と 、Write_to_Read タ イ ム後に Read コ マン ド が送信 さ れます。同様に、読み出 し ス テー ト の と き に コ マン ド ロ ジ ッ クブ ロ ッ ク か ら Write コ マン

ド が検出 さ れ る と 、Read_to_Write タ イ ム後に Write コ マン ド が送信 さ れます。

5. コ マ ン ド は、DDR メ モ リ に対 し て送信 さ れ る 前に、 パ イ プ ラ イ ン化 さ れてア ド レ ス信号に同期 し ます。

図 4 : メ イ ン コ ン ト ロー ラ ステー ト マシ ン Initialization

RST

REFRESH

WR || RD

WR RD

REFRESH DONE

AUTOREFRESH || CONFLICT

AUTOREFRESH || CONFLICT

INIT_DONE

! RP_CNT CONFLICT || REFRESH

IDLE

Precharge Auto

Refresh

Active

Active Wait

Write- Read

First Read First

Write

Read- Write

Read Wait Write

Wait

X851_05_050506

(7)

DDR SDRAM イ ン タ ー フ ェ イ スデザイ ン R

表5 は、SDRAM コ ン ト ロ ー ラ イ ン タ ーフ ェ イ ス のデザ イ ン フ ァ イ ルを示 し てい ます。

表6 は、SDRAM コ ン ト ロ ー ラ イ ン タ ーフ ェ イ ス の最上位レベルの I/O ポー ト を示 し てい ます。

表 5 : DDR SDRAM コ ン ト ロー ラのデザイ ン フ ァ イル

モ ジ ュ ール名 フ ァ イル名 説明

DDR1_TOP ddr1_top.vhd 最上位モジ ュ ール

DDR1_PARAMETERS ddr1_parameters.vhd DDR SDRAM メ モ リ パ ラ メ ー タ DDR1_CONTROLLER ddr1_controller.vhd DDR SDRAM メ モ リ の メ イ ンコ ン

ト ロ ー ラ

DDR1_BACKEND_FIFOS ddr1_backend_fifos.vhd ddr1_rd_wr_addr_fifo お よ び ddr1_wr_data_fifo_16 モジ ュ ール を イ ン ス タ ン シエー ト

DDR1_RD_WR_ADDR_FIFO ddr1_rd_wr_addr_fifo.vhd 読み出 し/書 き 込みア ド レ ス FIFO DDR1_WR_DATA_FIFO_16 ddr1_wr_data_fifo_16.vhd 書 き 込みデー タ FIFO

表 6 : DDR SDRAM コ ン ト ロー ラの最上位レベルのポー ト

ポー ト 名 I/O 説明

RST I

信号の詳細は、8ページの 「PHY イ ン ターフ ェ イ ス」を参照

CLK0 I

CLK90 I

CKE O

CK O

AD O

BA O

CS_n O

RAS_n O

CAS_n O

WE_n O

DM O

DQ I/O

DQS I/O

(8)

PHY イ ン タ ー フ ェ イ ス

R

PHY イ ン タ ー フ ェ イ ス

PHY レ イ ヤには、DDR SDRAM メ モ リ の初期化ス テー ト マシ ン と 読み出 し デー タ のキ ャ プチ ャ タ イ ミ ン グ を キ ャ リ ブ レ ーシ ョ ンす る ロ ジ ッ ク が含 まれ ます。電源が投入 さ れ る と 、DDR SDRAM メ モ リ の初期化が開始 さ れ、初期化が終了す る と 、 読み出 し デー タ を キ ャ プチ ャ す る タ イ ミ ン グ の キ ャ リ ブ レーシ ョ ンが開始 さ れます。

初期化

DDR SDRAM は、読み出 し お よ び書き 込みの前に初期化 さ れ る 必要があ り ます。図6 に示す と お り 、ア ク テ ィ ブ High の リ セ ッ ト 信号が High か ら Low に設定 さ れ る と 、 コ ン ト ロ ー ラ は メ モ リ の初期化を開 始 し ます。メ モ リ の初期化シーケ ン スは、JEDEC 規格で定義 さ れてい ます。

APP_ADDR I

信号の詳細は、8ページの 「PHY イ ン ターフ ェ イ ス」を参照

APP_ADDR_EN I

APP_WR_DATA I

APP_DATA_MASK I

APP_DATA_EN I

APP_RD_DATA O

APP_RD_VALID O

APP_ADDR_AF O

APP_WR_DATA_AF O

CTRL_RDY O

PHY_ERROR O

表 6 : DDR SDRAM コ ン ト ロー ラの最上位レベルのポー ト(続き)

ポー ト 名 I/O 説明

図 5 : PHY 初期化ス テー ト マシ ンのシーケン ス Initialization

Reset

Read Data Calibration and Alignment

PHY Ready

X851_04_050406

(9)

PHY イ ン タ ー フ ェ イ ス R

読み出 し デー タ キ ャ プ チ ャ の タ イ ミ ン グ キ ャ リ ブ レ ーシ ョ ン

読み出 し デー タ は、 キ ャ リ ブ レーシ ョ ン後に DQS ス ト ロ ーブ信号 と 共にキ ャ プチ ャ さ れます。こ の後、

読み出 し デー タ は DQS の ク ロ ッ ク ド メ イ ンか ら FPGA の ク ロ ッ ク ド メ イ ン (CLK0) に転送 さ れ る 必 要があ り ますが、 DQS FPGA ク ロ ッ ク と 関係付け ら れていないため、転送す る には DQ/DQS を位相 シ フ ト し 、FPGA ク ロ ッ ク で タ イ ミ ン グ違反な し に DQ デー タ がキ ャ プチ ャ さ れ る よ う にす る 必要があ り ます。図7 に示す と お り 、DQ デー タ は IDDR レ ジ ス タ を使用 し て DQS 信号に よ り キ ャ プチ ャ さ れ、

同期 さ れます。

図 6 : メ モ リ 初期化ス テー ト マシ ンのシーケ ン ス Load Mode Register BA 00 With No DLL Reset

Autorefresh Precharge All Command Reset

Wait For 200us

Assign CKE to HIGH

Precharge All

Load Mode Register BA 01

Load Mode Register BA 00 With DLL Reset

WAIT For 200 Clock Cycles

Memory Initialization Done

X851_06_050406

(10)

PHY イ ン タ ー フ ェ イ ス

R

DQS 信号は遅延回路お よ び BUFIO か ら 配線 さ れ、IDDR の ク ロ ッ ク 入力にな り ま す。 DQ_iddr_R DQS の立ち上が り エ ッ ジでキ ャ プチ ャ さ れる IDDR の出力です。 DQ_iddr_F DQS の立ち下が り エ ッ ジでキ ャ プチ ャ さ れる IDDR の出力です。こ の DQ_iddr_R DQ_iddr_F の位相は、CLK0 で揃い ませ ん。 DQ 信号 と DQS 信号を遅延 さ せ、CLK0 ク ロ ッ ク と 同期 さ せる のは、 こ の リ フ ァ レ ン スデザ イ ンの キ ャ リ ブ レーシ ョ ンロ ジ ッ ク です。位相を揃え る には、 次の 4 つのケース のいずれかを実行し ます。

ケース 1 : CLK0 DQS 90° 180° 内にあ る 場合、 IDELAY を使用 し て DQ DQS 90°

の遅延を追加 し ます。

図 7 : 読み出 し デー タキ ャ プ チ ャ ブ ロ ッ ク

図 8 : ケース 1 - DQS と シ ステムク ロ ッ ク の位相関係

FF

D Q DoutR IOB CLB

FF

D Q DoutF FF

D DoutR_0 DQ_iddr_R

Q

FF

D DoutF_0

Q FF D Q

FF D Q

FF D

DoutF_180

DQ_iddr_F

DoutR_180 DQS_int_dly

Q IDDR

IDELAY

IDELAY

BUFIO D DQ

DQS

Q1

D Q2

X851_07_042306

CLK0

90 - 180

Shift DQS 0° - 90°

DQS

CLK 0

CLK 0 DQS_DELAYED

x851_8_(Case 1)_051006

(11)

PHY イ ン タ ー フ ェ イ ス R

ケース 2 : CLK0 が DQS の 180° 270°内にあ る場合、 IDELAY を使用 し て DQ と DQS に 90°~ 180°の遅延を追加 し ます。

ケース 3 : CLK0 が DQS の 270° 360°内にあ る場合、 IDELAY を使用 し て DQ と DQS に 0°~ 90°の遅延を追加 し 、 CLK0 と 反対側のエ ッ ジ を使用 し て DQ を キ ャ プチ ャ し

ます。

ケース 4 : CLK0 が DQS の 0° 90°内にあ る 場合、 IDELAY を使用 し て DQ と DQS に 90°

~ 180°の遅延を追加 し 、CLK0 と 反対側のエ ッ ジ を使用 し て DQ を キ ャ プチ ャ し ます。

図 9 : ケース 2 - DQS と シ ステムク ロ ッ ク の位相関係

図 10 : ケース 3 - DQS と シス テムク ロ ッ ク の位相関係 180 - 270

Shift DQS 90° - 180°

DQS

CLK 0

CLK 0 DQS_DELAYED

X851_9_(Case 2)_051006

270 - 360

Shift DQS 0° - 90°

DQS

CLK 0

CLK 0 DQS_DELAYED

x851_10_(Case 3)_051006

Falling edge capture rising edge data.

DQS

CLK 0

(12)

PHY イ ン タ ー フ ェ イ ス

R

リ ー ド イ ネーブルの タ イ ミ ングキ ャ リ ブ レーシ ョ ン

FPGA と メ モ リ 間の遅延は、 ボー ド レ イ ア ウ ト や PCB の ト レー ス長な ど の環境に よ っ て異な り ます。

こ のため、 コ ン ト ロ ー ラ では メ モ リ へ Read コ マン ド を送信 し た後、 ど の FPGA ク ロ ッ クサ イ ク ルで有 効なデー タ が FPGA に到着する のか明確には認識で き ません。 DDR2 SDRAM デバ イ ス か ら は、読み出 し デー タ と 共に リ ー ド バ リ ッ ド ま たは リ ー ド イ ネーブル信号は供給 さ れないので、 キ ャ リ ブ レーシ ョ ン を実行 し て読み出 し デー タ が有効にな る FPGA ク ロ ッ ク サ イ ク ルを決定す る 必要が あ り ます。こ の リ ー ド イ ネーブル信号は、CAS レ ン テ ン シお よ びバース ト 長に基づいて生成 さ れ、 メ モ リ と FPGA の遅延 (カ ス タ マに よ っ て異な る) を調整 し ます。リ ー ド イ ネーブル信号を読み出 し デー タ キ ャ プチ ャ ブ ロ ッ ク の出力に揃え る ために必要な レ ジ ス タ の段数は、 キ ャ リ ブ レ ーシ ョ ン中に判断 さ れ ま す。各 デー タ バ イ ト に対 し 、1 つの内部 リ ー ド イ ネーブル信号が生成 さ れます。 リ ー ド イ ネーブルロ ジ ッ ク のブ ロ ッ ク 図は、図12 を参照 し て く だ さ い。こ の リ フ ァ レ ン スデザ イ ンには、 初期化中に ト レーニ ン グパ ターン を使用 し て、 リ ー ド イ ネーブルの タ イ ミ ン グ を調整で き る ロ ジ ッ ク が含まれます。

a. コ ン ト ロ ー ラ は固定デー タ パ タ ーン を メ モ リ に書 き 込みます。 こ れが、 リ ー ド イ ネーブルの キ ャ リ ブ レーシ ョ ン中の ト レーニ ン グパ ターンにな り ます。

b. データ がメ モリ から 読み戻さ れ、 読み出し データ が元のト レ ーニン グパタ ーン と 比較さ れま す。

c. リ ー ド イ ネーブル信号は、 読み出 し デー タ キ ャ プチ ャ ブ ロ ッ ク か ら 受信 さ れたデー タ 出力が ト レーニ ン グパ ターン と 一致す る ま で遅延 さ れます。

d. バ イ ト 数が異な る と 、 リ ー ド イ ネーブルの レ イ テ ン シが異な る こ と があ る ため、 読み出 し デー タ キ ャ プチ ャ ブ ロ ッ ク か ら の読み出 し デー タ 出力を何バ イ ト 分か遅 ら せて、 読み出 し ワ ー ド すべてが同 じ ク ロ ッ ク サ イ ク ルで内部読み出 し デー タ FIFO に到着す る よ う にす る 必 要のあ る こ と も あ り ます。

読み出 し デー タ キ ャ プチ ャ と リ ー ド イ ネーブルキ ャ リ ブ レーシ ョ ンが終了 し た ら 、PHY コ ン ト ロ ー ラ は メ イ ン コ ン ト ロー ラ か ら のユーザーコ マン ド を実行で き る 状態にな り ます。

タ イ ミ ング解析

読み出 し デー タ DQ は、9ページの 「読み出 し デー タ キ ャ プチ ャ の タ イ ミ ン グキ ャ リ ブ レーシ ョ ン」に 示す よ う に DQS に キ ャ プチ ャ さ れ、FPGA ク ロ ッ ク ド メ イ ン に転送 さ れ ま す。読み出 し デー タ と ク ロ ッ ク タ イ ミ ン グの関係は、表7 を参照 し て く だ さ い。

図 12 : リ ー ド イ ネーブル SRL

Read Command Internal Read Data Valid

CLK 0 Number of Delays

Determined During Calibration

X851_12_050506

(13)

PHY イ ン タ ー フ ェ イ ス R

PHY コ ー ド の構造

PHY レ イ ヤは メ イ ン コ ン ト ロ ー ラ と は別にな っ てい る ので、 独立 し て使用で き ます。 DDR コ ン ト ロ ー ラ デザ イ ン で PHY レ イ ヤが独立 し て使用 さ れ る 場合、PHY レ イ ヤの構造 (8 お よ び13 を参照) は、 独立 し た コ ン ト ロ ー ラ に含め る 必要があ り ます。こ の場合、 行のア ク テ ィ ブ/非ア ク テ ィ ブ、 メ モ リ

リ フ レ ッ シ ュ 、 読み出 し お よ び書 き 込みア ク セ ス の タ イ ミ ン グ な ど の機能は、 こ の独立 し た コ ン ト ロ ー ラ で制御す る 必要があ り ます。

表 7 : 読み出 し デー タ の タ イ ミ ング解析

パ ラ メ ー タ シ ンボル 時間 (ps)

ク ロ ッ ク 周期 tCK 5000

DDR SDRAM メ モ リ

デー タ周期 (デュ ーテ ィ サ イ ク ル 0.45 : 0.55) tCKx0.45 2250

CK/CK か ら の DQS のア ク セ ス範囲の合計 tDQSCK 1200

DRAM の不確定値の合計 1200

FPGA

BUFIO ク ロ ッ ク ツ リ ー ス キ ュ ー 未定

シ ス テ ム ク ロ ッ ク ジ ッ タ tPERJITT_0 未定

IDDR 出力か ら CLB FF ス キ ュ ー 未定

タ ッ プ不確定値 (±1 IDELAY タ ッ プカ ウ ン ト) tIDELAYRESOLUTION 未定

FPGA の不確定値の合計 未定

不確定値の合計 未定

DQ 範囲のマージ ン 未定

表 8 : PHY デザイ ン フ ァ イル

モ ジ ュ ール名 フ ァ イル名 説明

PHY_TOP phy_top.vhd PHY イ ン タ ーフ ェ イ ス の最上位

PHY_ADR_OUT phy_adr_out.vhd ア ド レ スお よ びバン ク 信号 IOB FF PHY_CTRL_OUT phy_ctrl_out.vhd 制御信号 IOB FF

PHY_DATA_WRITE phy_data_write.vhd 書 き 込みデー タパ ス PHY_DATA_READ phy_data_read.vhd 読み出 し デー タパ ス

PHY_DQ_ALIGN phy_dq_align.vhd 読み出 し デー タ キ ャ プチ ャ の タ イ ミ ン グア ラ

(14)

PHY イ ン タ ー フ ェ イ ス

R

PHY レ イ ヤには、DDR SDRAM と の通信に使用 さ れ る I/O ポー ト の制御機能がすべて含まれます。こ れ ら のポー ト の リ ス ト と 説明は、 次の表9 を参照 し て く だ さ い。

図 13 : PHY レ イヤの コ ー ド 構造

表 9 : PHY レ イヤの I/O ポー ト と 信号の説明

ポー ト 名 I/O 説明

RST I 同期 リ セ ッ ト

CLK0 I メ イ ン ク ロ ッ ク (BUFG ク ロ ッ ク)

CLK90 I 90 度位相シ フ ト さ れた ク ロ ッ ク (BUFG ク ロ ッ ク) PHY_ADDR_IN I 行ア ド レ ス/列ア ド レ ス IOB FF

PHY_BANK_IN I バン ク 選択

PHY_CS_N_IN I CS_N 信号の定義は メ モ リ 信号 と 同 じ PHY_RAS_N_IN I RAS_N 信号の定義は メ モ リ 信号 と 同 じ PHY_CAS_N_IN I CAS_N 信号の定義は メ モ リ 信号 と 同 じ PHY_WE_N_IN I WE_N 信号の定義は メ モ リ 信号 と 同 じ

PHY_WR_DATA_IN I 書き 込みデー タ

PHY_WR_EN_IN I こ の信号が High にな る と 書き 込みデー タ が イ ネーブルにな る PHY_WR_DM_IN I デー タ マ ス ク ビ ッ ト

PHY_RD_DATA_O O 読み出 し デー タ

PHY_RD_VALID_O O 読み出 し デー タバ リ ッ ド

CKE O メ モ リ の CKE ピ ンに接続

CK O メ モ リ の CK ピ ンに接続

AD O メ モ リ の AD ピ ンに接続

PHY_TOP

PHY_ADR_OUT PHY_CTRL_OUT PHY_DATA_WRITE PHY_DATA_READ

PHY_PTN_GEN PHY_INIT

PHY_DQ_ALIGN PHY_RDEN_ALIGN

X851_13_050506

(15)

PHY イ ン タ ー フ ェ イ ス R

PHY ユーザー イ ン タ ー フ ェ イ ス

PHY で初期化 と キ ャ リ ブ レーシ ョ ンが終了 し た ら 、 コ ン ト ロ ー ラ レ イ ヤか ら コ マ ン ド が送信 さ れます。

次のセ ク シ ョ ンに使用可能な コ マン ド の一部を示 し ます。

• 「一般的な コ マ ン ド の タ イ ミ ン グ」

• 「デー タ 書 き 込み」

• 「デー タ 読み出 し 」 一般的な コ マ ン ド の タ イ ミ ング

図14 は、Refresh Activate な ど の DDR SDRAM コ マ ン ド の タ イ ミ ン グ を示 し てい ます。さ ま ざ ま な DDR SDRAM コ マン ド の信号 ロ ジ ッ ク レベルについては、1ページの表1 を参照 し て く だ さ い。

BA O メ モ リ の BA ピ ンに接続

CS_N O メ モ リ の CS_n ピ ンに接続

RAS_N O メ モ リ の RAS_n ピ ンに接続

CAS_N O メ モ リ の CAS_n ピ ンに接続

WE_N O メ モ リ の WE_n ピ ンに接続

DM O メ モ リ の DM ピ ンに接続

DQ I/O メ モ リ の DQ ピ ンに接続

DQS I/O メ モ リ の DQS ピ ンに接続

表 9 : PHY レ イヤの I/O ポー ト と 信号の説明(続き)

ポー ト 名 I/O 説明

PHY_RAS_N_IN

PHY_CAS_N_IN PHY_CS_N_IN PHY_BANK_IN PHY_ADDR_IN CLK 0

Valid Address

Valid Bank

(16)

PHY イ ン タ ー フ ェ イ ス

R

デー タ 書き込み

PHY イ ン タ ーフ ェ イ ス に対 し て Write コ マ ン ド が発行 さ れ る と 、 コ ン ト ロ ー ラ レ イ ヤか ら 有効な ア ド レ ス、 バン ク 、 制御信号、 お よ び有効なデー タ が PHY に送信 さ れ ます。こ れ ら の信号は、 同 じ ク ロ ッ ク サ イ ク ルで送信 さ れ ま す。バー ス ト 長が 4 ま たは 8 の場合は、 その後に続 く ク ロ ッ ク サ イ ク ルで PHY_WR_EN_IN がアサー ト さ れてい る 間に書 き 込みデー タ を入力 し ます。

図 15 : Write コ マ ン ド の タ イ ミ ング (バース ト 長 = 4) PHY_RAS_N_IN

PHY_CAS_N_IN

PHY_WE_N_IN PHY_WR_DATA_IN PHY_WR_EN_IN PHY_WR_DM_IN PHY_CS_N_IN PHY_BANK_IN PHY_ADDR_IN CLK 0

Valid Address

Valid Bank

DATA 1 DATA 2

DM 1

Burst Length = 4 DM 2

X851_15_050406

(17)

リ フ ァ レ ン スデザイ ンの仕様 R

デー タ 読み出 し

Read コ マ ン ド が PHY レ イ ヤに送信 さ れ る と 、PHY レ イ ヤは メ モ リ か ら 読み出 し デー タ を返 し ます。こ の読み出 し デー タ は、同 じ ク ロ ッ ク サ イ ク ルで PHY_RD_VALID_O がアサー ト さ れてい る と き にのみ PHY_RD_DATA_O ポー ト で有効にな り ます。 Read コ マン ド か ら の レ イ テ ン シは、 リ ー ド イ ネーブル のキ ャ リ ブ レーシ ョ ンの結果に よ っ て異な り ます。

リ フ ァ レ ン ス デザイ ンの仕様

200MHz DDR SDRAM コ ン ト ロ ー ラ に イ ンプ リ メ ン ト する リ フ ァ レ ン ス デザ イ ンは、 次か ら 入手で き ます。

http://japan.xilinx.com/bvdocs/appnotes/xapp851.zip 表10 は、 こ の リ フ ァ レ ン ス デザ イ ンの仕様を示 し てい ます。

図 16 : Read コ マ ン ド の タ イ ミ ング (バース ト 長 = 4) PHY_RAS_N_IN

PHY_CAS_N_IN PHY_WE_N_IN PHY_RD_DATA_O PHY_RD_VALID_O PHY_CS_N_IN PHY_BANK_IN PHY_ADDR_IN CLK 0

Valid Address

Burst Length = 4

X851_16_050406 Valid Bank

DATA 1 DATA 2

表 10 : リ フ ァ レ ン スデザイ ンの仕様

パラ メ ー タ 仕様/詳細

動作周波数 200MHz (DDR400 - PC3200)

サポー ト さ れ る CAS レ イ テ ン シ 22.5、 お よ び 3

HDL 言語 VHDL

バ ス幅 16 ビ ッ ト

(18)

R 改訂履歴

改訂履歴

次の表に、 こ の文書の改訂履歴を示 し ます。

日付 バージ ョ

ン 改訂内容

05/12/06 1.0 初期 リ リ ース

07/14/06 1.1 リ フ ァ レ ン スデザ イ ン フ ァ イ ルへの リ ン ク を追加。表2

APP_DATAEN を追加。 「読み出 し デー タ キ ャ プチ ャ の タ イ ミ ン グキ ャ リ ブ レーシ ョ ン」の概要を変更。

図  1 :  DDR400  のモー ド レ ジ ス タ の定義
表   3 :  ユーザー イ ン タ ー フ ェ イ スのア ド レ ス ビ ッ ト
表   6 : DDR SDRAM  コ ン ト ロー ラの最上位レベルのポー ト ポー ト 名 I/O 説明 RST I 信号の詳細は、 8 ページの 「 PHY  イ ン ターフ ェ イ ス」 を参照CLK0ICLK90ICKEOCKOADOBAO CS_n O RAS_n O CAS_n O WE_n O DM O DQ I/O DQS I/O
図 14  は、 Refresh  や  Activate  な ど の  DDR SDRAM  コ マ ン ド の タ イ ミ ン グ を示 し てい ます。 さ ま ざ ま な DDR SDRAM  コ マン ド の信号 ロ ジ ッ ク レベルについては、 1 ページの表 1  を参照 し て く だ さ い。BAOメ モ リ の BA ピ ンに接続CS_NOメ モ リ の CS_n ピ ンに接続RAS_NOメ モ リ の RAS_n ピ ンに接続CAS_NOメ モ リ の CAS_n ピ ンに接続WE

参照

関連したドキュメント

Copying of any Nintendo software or manual is illegal and is strictly prohibited by copyright laws of Japan and any other countries as well as international laws. Please note

この課題のパート 2 では、 Packet Tracer のシミュレーション モードを使用して、ローカル

①物流品質を向上させたい ②冷蔵・冷凍の温度管理を徹底したい ③低コストの物流センターを使用したい ④24時間365日対応の運用したい

Windows Hell は、指紋または顔認証を使って Windows 10 デバイスにアクセスできる、よ

EUで非原産材料の糸から製織した綿製織物(第 52.08 項)を使用し、英国で生産した 男子用シャツ(第 62.05

6-4 LIFEの画面がInternet Exproler(IE)で開かれるが、Edgeで利用したい 6-5 Windows 7でLIFEを利用したい..

*Windows 10 を実行しているデバイスの場合、 Windows 10 Home 、Pro 、または Enterprise をご利用ください。S

VIN goes above the threshold, the VDDQ and VTTREF go into normal mode... Input Capacitor Selection for V DDQ Buck Regulator The input capacitor is important for proper