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

Similar documents
XAPP858 - High-Performance DDR2 SDRAM Interface In Virtex-5 Devices

ザイリンクス アプリケーション ノート XAPP709 : Virtex-4 FPGA デバイスを使用した DDR SDRAM コントローラ

Xilinx XAPP721 High-Performance DDR2 SDRAM Interface Data Capture Using ISERDES and OSERDES, Application Note

TN-46-13

Xilinx XAPP645 Virtex-II Pro デバイス アプリケーション ノート『シングル エラー訂正およびダブル エラー 検出』

-2 外からみたプロセッサ GND VCC CLK A0 A1 A2 A3 A4 A A6 A7 A8 A9 A10 A11 A12 A13 A14 A1 A16 A17 A18 A19 D0 D1 D2 D3 D4 D D6 D7 D8 D9 D10 D11 D12 D13 D14 D1 MEMR

j_xapp266.fm

SOPC Builder ペリフェラル 簡易ユーザ・ガイド - PIO (Parallel I/O)

CMOS リニアイメージセンサ用駆動回路 C CMOS リニアイメージセンサ S 等用 C は当社製 CMOSリニアイメージセンサ S 等用に開発された駆動回路です USB 2.0インターフェースを用いて C と PCを接続

XAPP453 「3.3V 信号を使用した Spartan-3 FPGA のコンフィギュレーション」 v1.0 (02/05)

QuartusII SOPC_Builderで利用できるGPIF-AVALONブリッジとは?

Virtex-6 Clocking

Report Template

Virtex-6 FPGA で LVDS を使用した、1.25Gb/s での 4X 非同期オーバーサンプリング, アプリケーション ノート (XAPP881)

ザイリンクス XAPP454 『Spartan-3 FPGA の DDR2 SDRAM メモリ インターフェイス』

Multi-Port Memory Controller (MPMC) (v6.04.a) データシート

Microsoft Word - dg_sataahciip_refdesign_jp.doc

増設メモリ (2006/11/20)

基本条件 (1Slot 版用 ) 機能 MR-SHPC 端子名 設定内容 備考 CS 空間 -CS CS6 空間 ( キャッシュ無し ) キャッシュ無し空間を使用 (B h) RA25 0 固定 レジスタ空間 RA24 0 固定 RA23 0 固定 B83FFFE 4h~B83FFFF

QuartusII SOPC_Builderで利用できるGPIF-AVALONブリッジとは?

電気的特性 (Ta=25 C) 項目 記号 条件 Min. Typ. Max. 単位 読み出し周波数 * 3 fop khz ラインレート * Hz 変換ゲイン Gc ゲイン =2-5 - e-/adu トリガ出力電圧 Highレベル Vdd V -

DS099-E04: XC3S400 FPGA エラッタおよび Spartan-3 データシートの確認

テクニカルガイド「増設メモリ」(2006/09/15)

問 2. タイミングチャート以下に示す VHDL コードで記述されている回路に関するタイミングチャートを完成させよ ) レジスタの動作 use IEEE.std_logic_64.all; entity RegN is generic (N : integer := 8 port ( CLK, EN

Cyclone III デバイス・ファミリの メモリ・ブロック

オンチップ・メモリ クイック・ガイド for Cyclone III

DS099-E09: XC3S5000 FPGA エラッタおよび Spartan-3 データシートの確認

PLL ダイナミック リコンフィギュレーション, アプリケーション ノート (XAPP879)

1. ボードの複数台制御 コンフィグ ROM から FPGA が起動できる場合を想定しています FPGA 回路には 特定のレジスタアドレスにプリセットしたデータが必要です 製品出荷時のサンプル FPGA 回路では レジスタ No.3 を 8bit 幅に設定し FPGA 外部の 4bit ディップスイ

XAPP1064 : ソース同期のシリアライズおよびデシリアライズ (最大 1050 Mb/s)

スライド 1

ユーザーズガイド Brother Meter Read Tool JPN Version 0

FPGA 外部のメモリをアバロン・MM・インタフェースへ接続する方法

スライド 1

スライド 1

スライド 1

Nios II - PIO を使用した I2C-Bus (2ワイヤ)マスタの実装

Polycom RealConnect for Microsoft Office 365

2ALU 以下はデータ幅 4ビットの ALU の例 加算, 減算,AND,OR の4つの演算を実行する 実際のプロセッサの ALU は, もっと多種類の演算が可能 リスト 7-2 ALU の VHDL 記述 M use IEEE.STD_LOGIC_1164.ALL; 00 : 加算 use IEE

増設メモリ 1. 機能 型名 N N N N N GB 16GB 3 (x2 枚 ) (x2 枚 ) (x2 枚 ) (8GBx2 枚 ) (16GBx2 枚 ) DDR3-1066(PC3-8500) 動作クロック

増設メモリ 1. 機能 型名 N N N (x1 枚 ) (x1 枚 ) (x1 枚 ) DDR3-1333(PC ) SDRAM-DIMM, Unbuffered,ECC 動作クロック 667MHz( 差動 ) 1.5V 型名 N8102

untitled

DELPHINUS EQUULEUS 2019 NASA SLS FPGA ( ) DELPHINUS 2

増設メモリ 1. 機能 型名 N8102-G342 N8102-G343 N8102-G344 1GB (1GBx1 枚 ) (x1 枚 ) (x1 枚 ) SDRAM-DIMM, Unbuffered,ECC 1.5V 型名 N N N (1GBx1

増設メモリ (2010/06/17)

増設メモリ 1. 機能仕様 型番製品名備考 N GB 増設メモリボード (2x 4 GB/U) DDR3L-1333(PC3L-10600) SDRAM ECC 付 Registered, 2GBx2 枚の N GB 増設メモリボード DDR3L-1600(PC3

ターゲット項目の設定について

N12866N2P-H.PDF

三菱電機マイコン機器ソフトウエア株式会社

Microsoft Word - SUA007

VERITAS Backup Exec for Windows Servers Management Pack for Microsoft Operations Manager ガイド

計算機ハードウエア

Notes and Points for TMPR454 Flash memory

増設メモリ 1. 機能 型名 N N N N GB (x1 枚 ) (x1 枚 ) (x1 枚 ) (8GBx1 枚 ) DDR3-1333(PC ) 動作クロック 667MHz( 差動 ) 1.5V 型名 N8102-3

Microsoft Word - TC4013BP_BF_J_P9_060601_.doc

Microsoft PowerPoint - 3.3タイミング制御.pptx

DDR2 SDRAM をフレームバッファに使用した CMOS カメラ表示回路の実装

CCD リニアイメージセンサ用駆動回路 C CCD リニアイメージセンサ (S11155/S ) 用 C は 当社製 CCDリニアイメージセンサ S11155/S 用に開発された駆動回路です S11155/S11156-

テクニカルガイド 増設メモリ

ProSAFE Dual-Band Wireless AC Access Point WAC720 and WAC730 Reference Manual

ヤマハDante機器と他社AES67機器の接続ガイド

RL78開発環境移行ガイド R8C/M16C, H8S/H8SXからRL78への移行(統合開発環境編)(High-performance Embedded Workshop→CS+)

テクニカルガイド 増設メモリ

S1C17 Family Application Note S1C17 シリーズ PORT 多重割り込みアプリケーションノート Rev.1.0

ソフトウェア基礎技術研修

Xilinx XAPP485 Spartan-3E FPGA における最大レート 666Mbps でのデシリアライズ、アプリケーション ノート

Microsoft PowerPoint - CompArch_Exercise3.pptx

(Veritas\231 System Recovery 16 Monitor Readme)

CMOS リニアイメージセンサ用駆動回路 C10808 シリーズ 蓄積時間の可変機能付き 高精度駆動回路 C10808 シリーズは 電流出力タイプ CMOS リニアイメージセンサ S10111~S10114 シリーズ S10121~S10124 シリーズ (-01) 用に設計された駆動回路です セン

VelilogHDL 回路を「言語」で記述する

増設メモリ 1. 機能仕様 型番 製品名 備考 N GB 増設メモリボード DDR3-1333(PC ) SDRAM, Unbuffered N GB 増設メモリボード DDR3-1333(PC ) SDRAM, Unbuffered N8

PowerPoint プレゼンテーション

Jan/25/2019 errata_c17m11_10 S1C17 マニュアル正誤表 項目 リセット保持時間 対象マニュアル発行 No. 項目ページ S1C17M10 テクニカルマニュアル システムリセットコントローラ (SRC) 特性 19-3 S1C17M20/M

デザインパフォーマンス向上のためのHDLコーディング法

Cisco Unified IP Phone のモデル情報、 ステータス、および統計の表示

ザイリンクス DS099-E05 XC3S1000/L FPGA エラッタおよび Spartan-3 データシートの確認

DS643 LogiCORE IP Multi-Port Memory Controller データシート

8051 개발보드 메뉴얼

スライド 1

Report Template

Microsoft Word - dg_sata_achi_ip_data_sheet_jp.doc

1. A/D 入力について分解能 12bit の A/D コンバータ入力です A/D 入力電圧とディジタル値との対応は理論上 入力電圧 0V : 0 入力電圧 +3V : 4095 です 実際はオフセットと傾きがあり ぴったりこの数値にはなりません 2. A/D 入力に使用する信号 STM32L_A

「電子政府推奨暗号の実装」評価報告書

富士通Interstage Application Server V10でのOracle Business Intelligence の動作検証

スライド 1

デュアルDIMM DDR2およびDDR3 SDRAMのボード・デザイン・ガイドライン、外部メモリ・インタフェース・ハンドブック、Volume 2、第5章

Agilent Technologies N5413A DDR2 Infiniium 9000/90000 Data Sheet DDR2 デザインを迅速にテスト デバッグ 評価 Agilent N5413A DDR2 JEDEC 1 JESD79-2E DDR2 SDRAM Specificati

CommCheckerManual_Ver.1.0_.doc

Microsoft PowerPoint - RL78G14_動画マニュアル_タイマRD.ppt [互換モード]

Microsoft PowerPoint - Sol7 [Compatibility Mode]

ICS_Japan アプリケーションノート ISO メッセージ送受信基礎編 Rev File Name: アプリケーションノート _ISO15765_2_ メッセージ送受信 _ 基礎編 _A00.docx Intrepid Control Systems, Inc. アプリ

Cyclone Vデバイス・ハンドブック、 Vol 1、第6章:Cyclone Vデバイスの外部メモリ・インタフェース

増設メモリ 1. 機能 型名 N N N (x1 枚 ) (x1 枚 ) (x1 枚 ) DDR2-800(PC2-6400) 動作クロック 400MHz( 差動 ) 110Ge, 110Ge-S 型名 N N N810

AP-RZA-1A シリアルFlashROMの書き込み方法

IBM Proventia Management/ISS SiteProtector 2.0

富士通セミコンダクタープレスリリース 2009/05/19

Spartan3A Starter Kit による DDR2 SDRAM コントローラの実装

Microsoft PowerPoint - Altera_DDR3_Oct2009_ダウンロード用.ppt

DUSx200 シリーズコントローラ I2C インターフェース仕様書

Oracle Cloud Adapter for Oracle RightNow Cloud Service

Transcription:

XAPP851 (v1.1) 2006 年 7 月 14 日 R アプリケーションノート : Virtex-5 ファミリ Virtex-5 FPGA デバイスを使用した DDR SDRAM コントローラ 本資料は英語版 (v1.1) を翻訳したものです 英語の更新バージョンがリリースされている場合には 最新の英語版を必ずご参照ください 概要 このアプリケーションノートでは Virtex -5 デバイスにインプリメントされる 200MHz DDR SDRAM (JEDEC DDR400 PC3200 規格 ) コントローラについて説明します このコントローラのインプリメンテーションでは 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 に保持 ) 表 1 : DDR SDRAM のコマンド信号番号 動作 RAS CAS WE 1 Load Mode Register L L L 2 Auto Refresh L L H 3 Precharge (1) L H L 4 Select Bank Activate Row L H H 2006 Xilinx, Inc. All Rights Reserved. XILINX Xilinx ロゴ およびその他本文に含まれる商標名は Xilinx の商標です 本文書に記載されている Xilinx ザイリンクスのロゴ およびザイリンクスが所有する製品名等は 米国 Xilinx Inc. の米国における登録商標です その他に記載されている会社名および製品名等は 各社の商標または登録商標です 保証否認の通知 : Xilinx ではデザイン コード その他の情報を 現状有姿の状態 で提供しています この特徴 アプリケーションまたは規格の一実施例としてデザイン コード その他の情報を提供しておりますが Xilinx はこの実施例が権利侵害のクレームを全く受けないということを表明するものではありません お客様がご自分で実装される場合には 必要な権利の許諾を受ける責任があります Xilinx は 実装の妥当性に関するいかなる保証を行なうものではありません この保証否認の対象となる保証には 権利侵害のクレームを受けないことの保証または表明 および市場性に対する適合性についての黙示的な保証も含まれます XAPP851 (v1.1) 2006 年 7 月 14 日 japan.xilinx.com 1

R DDR SDRAM について 表 1 : DDR SDRAM のコマンド ( 続き ) 信号番号 動作 RAS CAS WE 5 Write Command H L L コマンドの機能 モードレジスタ 6 Read Command H L H 7 No peration (NP) H H H メモ : 1. アドレス信号 A10 は PRECHARGE ALL BANKS のときは High に保持し 単一のバンクプリチャージのときは Low に保持します モードレジスタは バースト長の選択 バーストのタイプ CAS レイテンシ 操作モードなど DDR SDRAM の操作モードを定義します 図 1 に このコントローラで使用するモードレジスタの定義を示します 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 0 0 1 0 1 0 0 1 1 thers Burst Length 2 4 8 Reserved A6 A5 A4 0 1 0 0 1 1 1 1 0 thers CAS Latency 2 3 (DDR400) 2.5 Reserved A8 DLL 0 Normal peration 1 Reset BA1 BA0 0 0 0 1 Mode Register Mode Register (MR) Extended MR EMR1 図 1 : DDR400 のモードレジスタの定義 x851_01_031806 バンクアドレス BA1 および BA0 は モードレジスタを選択します 図 1 には バンクアドレスビットのコンフィギュレーションも示されます 拡張モードレジスタ 拡張モードレジスタでは モードレジスタで制御できない機能を設定できます 拡張モードレジスタで設定できる機能は 図 2 に示すように DDR SDRAM インターフェイスの DLL イネーブル / ディスエーブルおよび出力駆動電流です 2 japan.xilinx.com XAPP851 (v1.1) 2006 年 7 月 14 日

DDR SDRAM メモリコントローラリファンレスデザイン R BA1 BA0 E12 E11 E10 E9 E8 E7 E6 E5 E4 E3 E2 E1 E0 0 1 0 DS DLL 図 2 : DDR400 の拡張モードレジスタ E1 Drive Strength 0 Normal 1 Reduced E0 0 1 DLL Enable Disabled x851_02_031806 DDR SDRAM メモリコントローラリファンレスデザイン メモリコントローラリファレンスデザインには 図 3 に示すように PHY レイヤとメインコントローラレイヤが含まれます PHY レイヤには メモリ初期化ロジックとアドレス./ コマンド / データの I/ ロジックが含まれます 読み出しデータがキャプチャされるタイミングのキャリブレーションは この PHY レイヤ内で実行されます メインコントローラレイヤには DDR SDRAM コントローラステートマシンとアドレス / コマンド / データの FIF ロジックが含まれます DDR SDRAM Controller Reference Design Front-End FIFs Address/ Command FIF Main DDR SDRAM Controller User Design Write Data FIF PHY Controller DDR SDRAM Read Data FIF User Interface X851_03_050606 図 3 : DDR SDRAM メモリコントローラリファンレスデザインの構造 XAPP851 (v1.1) 2006 年 7 月 14 日 japan.xilinx.com 3

R DDR SDRAM インターフェイスデザイン DDR SDRAM インターフェイスデザイン DDR コントローラへのユーザーインターフェイスは ユーザーがコマンドを実行すると基本的な FIF のような役割りを果たし DDR メモリにデータを書き込んだり DDR メモリからデータを読み出したりするのに使用されます ユーザーインターフェイスのデータ幅は DDR メモリバスの 2 倍なので DDR メモリコントローラには FPGA クロックサイクルごとに 2 データワードが供給されます DDR SDRAM ユーザーインターフェイス バックエンドユーザーインターフェイスには 次の 3 つの FIF が含まれます アドレス / コマンド FIF 書き込みデータ FIF 読み出しデータ FIF 最初の 2 つの FIF はユーザー特有のバックエンドモジュールに読み込まれます 読み出しデータ FIF は PHY コントローラからアクセスされ 各読み出しサイクルごとにキャプチャしたデータを格納します 表 2 : ユーザーインターフェイスのポート ポート名 I/ 幅説明メモ APP_ADDR I 36 コントローラで実行されるコマンドの命令コードおよびアドレス このポートのビットは次のようにマップされます [31:0] メモリアドレス (CS バンク 行 列) [34:32] ダイナミックコマンド要求 ( 表 4 参照 ) [35] 未使用 - 将来の機能のために予約 この FIF に書き込まれる前に APP_ADDR_AF (almost full フラグ ) を監視 APP_ADDREN I 1 APP_ADDR の書き込みストローブ アクティブ High APP_ADDR_AF 1 アドレス / コマンド FIF (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 1 書き込みデータ FIF (almost full フラグ ) アクティブ High APP_RD_DATA I data_width x 2 読み出しデータ FIF 出力 ( キャプチャされた読み出し データ ) APP_RD_VALID 1 アサートされると APP_RD_DATA のキャプチャさ れた読み出しデータが現在のクロックサイクルで有効 であることを示します CTRL_RDY 1 アサートされると PHY インターフェイスロジック が SDRAM の初期化と読み出しデータパスのキャリブ レーションを終了したことを示します PHY_ERRR 1 アサートされると 読み出しデータパスのキャリブ レーション中にエラーが発生したことを示します アクティブ High アクティブ High アクティブ High メモリアドレス (APP_ADDR) には 表 3 に示すように 列アドレス 行アドレス バンクアドレス ディープメモリインターフェイスのチップセレクト幅が含まれます 注意このメモリコントローラでは自動プリチャージがサポートされないので Read コマンドと Write コマンドの両方で APP_ADDR[10] が必ず Low になるように設定してください 4 japan.xilinx.com XAPP851 (v1.1) 2006 年 7 月 14 日

DDR SDRAM インターフェイスデザイン R 表 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 は ユーザーインターフェイスを介したメモリコントローラでサポートされるコマンドをリストしています Load Mode Register Auto Refresh Precharge Activate などのコマンドは 適切なタイミングでメモリコントローラから自動的に実行されますが ユーザーインターフェイスから手動で実行することも可能です 表 4 : コントローラでサポートされるコマンド APP_ADDR[34:32] 000 Load Mode Register 001 Auto Refresh 説明 010 Precharge All 011 Activate 100 Write 101 Read 110 NP 111 NP XAPP851 (v1.1) 2006 年 7 月 14 日 japan.xilinx.com 5

R DDR SDRAM インターフェイスデザイン DDR SDRAM コントローラインターフェイス 図 4 に DDR SDRAM コマンド生成ステートマシンを示します Initialization INIT_DNE RST Precharge CNFLICT REFRESH! RP_CNT IDLE REFRESH REFRESH DNE Auto Refresh WR RD AUTREFRESH CNFLICT WR First Write Active Active Wait Write- Read RD First Read AUTREFRESH CNFLICT Write Wait Read- Write Read Wait 図 4 : メインコントローラステートマシン X851_05_050506 コントローラからメモリにコマンドが送信される前に 次の操作が実行されます 1. コマンドロジックブロックにより Read/Write コマンドが生成されます 2. コントローラにより 読み出し / 書き込みアドレス FIF にリードイネーブル信号が送信されます 3. すべてのバンクがプリチャージされている場合は対応するバンクの行がアクティブになり 既にアクティブな行がある場合は その行とバンクのアドレスが新しい行とバンクのアドレスと比較されます 異なる場合は 現在アクティブな行がプリチャージされ 読み出し / 書き込みステートに遷移する前に Active コマンドが送信されます 4. Write ステートのときに Read コマンドが検出されると Write_to_Read タイム後に Read コマンドが送信されます 同様に 読み出しステートのときにコマンドロジックブロックから Write コマンドが検出されると Read_to_Write タイム後に Write コマンドが送信されます 5. コマンドは DDR メモリに対して送信される前に パイプライン化されてアドレス信号に同期します 6 japan.xilinx.com XAPP851 (v1.1) 2006 年 7 月 14 日

DDR SDRAM インターフェイスデザイン R 表 5 は SDRAM コントローラインターフェイスのデザインファイルを示しています 表 5 : DDR SDRAM コントローラのデザインファイル モジュール名 ファイル名 説明 DDR1_TP ddr1_top.vhd 最上位モジュール DDR1_PARAMETERS ddr1_parameters.vhd DDR SDRAM メモリパラメータ DDR1_CNTRLLER ddr1_controller.vhd DDR SDRAM メモリのメインコン トローラ DDR1_BACKEND_FIFS ddr1_backend_fifos.vhd ddr1_rd_wr_addr_fifo および ddr1_wr_data_fifo_16 モジュール をインスタンシエート DDR1_RD_WR_ADDR_FIF ddr1_rd_wr_addr_fifo.vhd 読み出し / 書き込みアドレス FIF DDR1_WR_DATA_FIF_16 ddr1_wr_data_fifo_16.vhd 書き込みデータ FIF 表 6 は SDRAM コントローラインターフェイスの最上位レベルの I/ ポートを示しています 表 6 : DDR SDRAM コントローラの最上位レベルのポート ポート名 I/ 説明 RST I CLK0 I CLK90 CKE CK AD BA CS_n RAS_n CAS_n WE_n DM DQ DQS I I/ I/ 信号の詳細は 8 ページの PHY インターフェイス を参照 XAPP851 (v1.1) 2006 年 7 月 14 日 japan.xilinx.com 7

R PHY インターフェイス 表 6 : DDR SDRAM コントローラの最上位レベルのポート ( 続き ) ポート名 I/ 説明 APP_ADDR I APP_ADDR_EN I APP_WR_DATA APP_DATA_MASK APP_DATA_EN APP_RD_DATA APP_RD_VALID APP_ADDR_AF APP_WR_DATA_AF CTRL_RDY PHY_ERRR I I I 信号の詳細は 8 ページの PHY インターフェイス を参照 PHY インターフェイス PHY レイヤには DDR SDRAM メモリの初期化ステートマシンと読み出しデータのキャプチャタイミングをキャリブレーションするロジックが含まれます 電源が投入されると DDR SDRAM メモリの初期化が開始され 初期化が終了すると 読み出しデータをキャプチャするタイミングのキャリブレーションが開始されます Reset Initialization Read Data Calibration and Alignment PHY Ready X851_04_050406 図 5 : PHY 初期化ステートマシンのシーケンス 初期化 DDR SDRAM は 読み出しおよび書き込みの前に初期化される必要があります 図 6 に示すとおり アクティブ High のリセット信号が High から Low に設定されると コントローラはメモリの初期化を開始します メモリの初期化シーケンスは JEDEC 規格で定義されています 8 japan.xilinx.com XAPP851 (v1.1) 2006 年 7 月 14 日

PHY インターフェイス R Reset Wait For 200us Precharge All Command Assign CKE to HIGH Autorefresh Precharge All Load Mode Register BA 00 With No DLL Reset Load Mode Register BA 01 WAIT For 200 Clock Cycles Load Mode Register BA 00 With DLL Reset Memory Initialization Done X851_06_050406 図 6 : メモリ初期化ステートマシンのシーケンス 読み出しデータキャプチャのタイミングキャリブレーション 読み出しデータは キャリブレーション後に DQS ストローブ信号と共にキャプチャされます この後 読み出しデータは DQS のクロックドメインから FPGA のクロックドメイン (CLK0) に転送される必要がありますが DQS は FPGA クロックと関係付けられていないため 転送するには DQ/DQS を位相シフトし FPGA クロックでタイミング違反なしに DQ データがキャプチャされるようにする必要があります 図 7 に示すとおり DQ データは IDDR レジスタを使用して DQS 信号によりキャプチャされ 同期されます XAPP851 (v1.1) 2006 年 7 月 14 日 japan.xilinx.com 9

R PHY インターフェイス IB CLB DQ IDELAY IDDR D Q1 DQ_iddr_R FF D Q DoutR_0 FF D Q DoutR DoutR_180 DQS_int_dly IDELAY D Q2 FF D Q FF D Q DQS BUFI FF D Q DoutF_0 FF D Q DoutF DQ_iddr_F FF D Q DoutF_180 CLK0 X851_07_042306 図 7 : 読み出しデータキャプチャブロック DQS 信号は遅延回路および BUFI から配線され 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 に 0 ~ 90 の遅延を追加します DQS 90-180 DQS_DELAYED Shift DQS 0-90 x851_8_(case 1)_051006 図 8 : ケース 1 - DQS とシステムクロックの位相関係 10 japan.xilinx.com XAPP851 (v1.1) 2006 年 7 月 14 日

PHY インターフェイス R ケース 2 : CLK0 が DQS の 180 ~ 270 内にある場合 IDELAY を使用して DQ と DQS に 90 ~ 180 の遅延を追加します DQS 180-270 DQS_DELAYED Shift DQS 90-180 X851_9_(Case 2)_051006 図 9 : ケース 2 - DQS とシステムクロックの位相関係 ケース 3 : CLK0 が DQS の 270 ~ 360 内にある場合 IDELAY を使用して DQ と DQS に 0 ~ 90 の遅延を追加し CLK0 と反対側のエッジを使用して DQ をキャプチャします DQS 270-360 DQS_DELAYED Shift DQS 0-90 Falling edge capture rising edge data. 図 10 : ケース 3 - DQS とシステムクロックの位相関係 x851_10_(case 3)_051006 ケース 4 : CLK0 が DQS の 0 ~ 90 内にある場合 IDELAY を使用して DQ と DQS に 90 ~ 180 の遅延を追加し CLK0 と反対側のエッジを使用して DQ をキャプチャします DQS 0-90 DQS_DELAYED Shift DQS 90-180 Falling edge capture rising edge data. 図 11 : ケース 4 - DQS とシステムクロックの位相関係 X851_11_(Case 4)_051006 XAPP851 (v1.1) 2006 年 7 月 14 日 japan.xilinx.com 11

R PHY インターフェイス リードイネーブルのタイミングキャリブレーション FPGA とメモリ間の遅延は ボードレイアウトや PCB のトレース長などの環境によって異なります このため コントローラではメモリへ Read コマンドを送信した後 どの FPGA クロックサイクルで有効なデータが FPGA に到着するのか明確には認識できません DDR2 SDRAM デバイスからは 読み出しデータと共にリードバリッドまたはリードイネーブル信号は供給されないので キャリブレーションを実行して読み出しデータが有効になる FPGA クロックサイクルを決定する必要があります このリードイネーブル信号は CAS レンテンシおよびバースト長に基づいて生成され メモリと FPGA 間の遅延 ( カスタマによって異なる ) を調整します リードイネーブル信号を読み出しデータキャプチャブロックの出力に揃えるために必要なレジスタの段数は キャリブレーション中に判断されます 各データバイトに対し 1 つの内部リードイネーブル信号が生成されます リードイネーブルロジックのブロック図は 図 12 を参照してください このリファレンスデザインには 初期化中にトレーニングパターンを使用して リードイネーブルのタイミングを調整できるロジックが含まれます a. コントローラは固定データパターンをメモリに書き込みます これが リードイネーブルのキャリブレーション中のトレーニングパターンになります b. データがメモリから読み戻され 読み出しデータが元のトレーニングパターンと比較されます c. リードイネーブル信号は 読み出しデータキャプチャブロックから受信されたデータ出力がトレーニングパターンと一致するまで遅延されます d. バイト数が異なると リードイネーブルのレイテンシが異なることがあるため 読み出しデータキャプチャブロックからの読み出しデータ出力を何バイト分か遅らせて 読み出しワードすべてが同じクロックサイクルで内部読み出しデータ FIF に到着するようにする必要のあることもあります 読み出しデータキャプチャとリードイネーブルキャリブレーションが終了したら PHY コントローラはメインコントローラからのユーザーコマンドを実行できる状態になります Number of Delays Determined During Calibration Read Command SRL Internal Read Data Valid X851_12_050506 図 12 : リードイネーブル タイミング解析 読み出しデータ DQ は 9 ページの 読み出しデータキャプチャのタイミングキャリブレーション に示すように DQS にキャプチャされ FPGA クロックドメインに転送されます 読み出しデータとクロックタイミングの関係は 表 7 を参照してください 12 japan.xilinx.com XAPP851 (v1.1) 2006 年 7 月 14 日

PHY インターフェイス R 表 7 : 読み出しデータのタイミング解析 パラメータシンボル時間 (ps) クロック周期 t CK 5000 PHY コードの構造 DDR SDRAM メモリ データ周期 ( デューティサイクル 0.45 : 0.55) t CKx0.45 2250 CK/CK からの DQS のアクセス範囲の合計 t DQSCK 1200 DRAM の不確定値の合計 1200 FPGA BUFI クロックツリースキュー未定 システムクロックジッタ t PERJITT_0 未定 IDDR 出力から CLB FF スキュー未定 タップ不確定値 (±1 IDELAY タップカウント ) t IDELAYRESLUTIN 未定 FPGA の不確定値の合計未定 不確定値の合計未定 DQ 範囲のマージン未定 PHY レイヤはメインコントローラとは別になっているので 独立して使用できます DDR コントローラデザインで PHY レイヤが独立して使用される場合 PHY レイヤの構造 ( 表 8 および図 13 を参照 ) は 独立したコントローラに含める必要があります この場合 行のアクティブ / 非アクティブ メモリリフレッシュ 読み出しおよび書き込みアクセスのタイミングなどの機能は この独立したコントローラで制御する必要があります 表 8 : PHY デザインファイル モジュール名 ファイル名 説明 PHY_TP phy_top.vhd PHY インターフェイスの最上位 PHY_ADR_UT phy_adr_out.vhd アドレスおよびバンク信号 IB FF PHY_CTRL_UT phy_ctrl_out.vhd 制御信号 IB FF PHY_DATA_WRITE phy_data_write.vhd 書き込みデータパス PHY_DATA_READ phy_data_read.vhd 読み出しデータパス PHY_DQ_ALIGN phy_dq_align.vhd 読み出しデータキャプチャのタイミングアラ イメントロジック PHY_RDEN_ALIGN phy_rden_align.vhd リードイネーブルアライメント信号 PHY_PTN_GEN phy_ptn_gen.vhd 読み出しキャプチャタイミングキャリブレー ションのパターンジェネレータ PHY_INIT phy_init.vhd DDR SDRAM メモリ初期化ステートマシン XAPP851 (v1.1) 2006 年 7 月 14 日 japan.xilinx.com 13

R PHY インターフェイス PHY_TP PHY_ADR_UT PHY_CTRL_UT PHY_DATA_WRITE PHY_DATA_READ PHY_DQ_ALIGN PHY_RDEN_ALIGN PHY_PTN_GEN PHY_INIT X851_13_050506 図 13 : PHY レイヤのコード構造 PHY レイヤには DDR SDRAM との通信に使用される I/ ポートの制御機能がすべて含まれます これらのポートのリストと説明は 次の表 9 を参照してください 表 9 : PHY レイヤの I/ ポートと信号の説明 ポート名 I/ 説明 RST I 同期リセット CLK0 I メインクロック (BUFG クロック ) CLK90 I 90 度位相シフトされたクロック (BUFG クロック ) PHY_ADDR_IN I 行アドレス / 列アドレス IB 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_ 読み出しデータ PHY_RD_VALID_ 読み出しデータバリッド CKE メモリの CKE ピンに接続 CK メモリの CK ピンに接続 AD メモリの AD ピンに接続 14 japan.xilinx.com XAPP851 (v1.1) 2006 年 7 月 14 日

PHY インターフェイス R 表 9 : PHY レイヤの I/ ポートと信号の説明 ( 続き ) ポート名 I/ 説明 BA メモリの BA ピンに接続 CS_N メモリの CS_n ピンに接続 RAS_N メモリの RAS_n ピンに接続 CAS_N メモリの CAS_n ピンに接続 WE_N メモリの WE_n ピンに接続 DM メモリの DM ピンに接続 DQ I/ メモリの DQ ピンに接続 DQS I/ メモリの DQS ピンに接続 PHY ユーザーインターフェイス PHY で初期化とキャリブレーションが終了したら コントローラレイヤからコマンドが送信されます 次のセクションに使用可能なコマンドの一部を示します 一般的なコマンドのタイミング データ書き込み データ読み出し 一般的なコマンドのタイミング 図 14 は Refresh や Activate などの DDR SDRAM コマンドのタイミングを示しています さまざまな DDR SDRAM コマンドの信号ロジックレベルについては 1 ページの表 1 を参照してください PHY_ADDR_IN Valid Address PHY_BANK_IN Valid Bank PHY_CS_N_IN PHY_RAS_N_IN PHY_CAS_N_IN PHY_WE_N_IN X851_14_050406 図 14 : DDR SDRAM のアクセスのタイミング XAPP851 (v1.1) 2006 年 7 月 14 日 japan.xilinx.com 15

R PHY インターフェイス データ書き込み PHY インターフェイスに対して Write コマンドが発行されると コントローラレイヤから有効なアドレス バンク 制御信号 および有効なデータが PHY に送信されます これらの信号は 同じクロックサイクルで送信されます バースト長が 4 または 8 の場合は その後に続くクロックサイクルで PHY_WR_EN_IN がアサートされている間に書き込みデータを入力します PHY_ADDR_IN Valid Address PHY_BANK_IN Valid Bank PHY_CS_N_IN PHY_RAS_N_IN PHY_CAS_N_IN PHY_WE_N_IN PHY_WR_DATA_IN DATA 1 DATA 2 PHY_WR_EN_IN PHY_WR_DM_IN DM 1 DM 2 Burst Length = 4 X851_15_050406 図 15 : Write コマンドのタイミング ( バースト長 = 4) 16 japan.xilinx.com XAPP851 (v1.1) 2006 年 7 月 14 日

リファレンスデザインの仕様 R データ読み出し Read コマンドが PHY レイヤに送信されると PHY レイヤはメモリから読み出しデータを返します この読み出しデータは 同じクロックサイクルで PHY_RD_VALID_ がアサートされているときにのみ PHY_RD_DATA_ ポートで有効になります Read コマンドからのレイテンシは リードイネーブルのキャリブレーションの結果によって異なります PHY_ADDR_IN PHY_BANK_IN Valid Address Valid Bank PHY_CS_N_IN PHY_RAS_N_IN PHY_CAS_N_IN PHY_WE_N_IN PHY_RD_DATA_ DATA 1 DATA 2 PHY_RD_VALID_ Burst Length = 4 X851_16_050406 図 16 : Read コマンドのタイミング ( バースト長 = 4) リファレンスデザインの仕様 200MHz DDR SDRAM コントローラにインプリメントするリファレンスデザインは 次から入手できます http://japan.xilinx.com/bvdocs/appnotes/xapp851.zip 表 10 は このリファレンスデザインの仕様を示しています 表 10 : リファレンスデザインの仕様 動作周波数 パラメータ 仕様 / 詳細 200MHz (DDR400 - PC3200) サポートされる CAS レイテンシ 2 2.5 および 3 HDL 言語 VHDL バス幅 コンポーネントの検証に使用されたデバイス 16 ビット Micron MT46V32M16FN-5 XAPP851 (v1.1) 2006 年 7 月 14 日 japan.xilinx.com 17

R 改訂履歴 改訂履歴 次の表に この文書の改訂履歴を示します 日付 バージョン 改訂内容 05/12/06 1.0 初期リリース 07/14/06 1.1 リファレンスデザインファイルへのリンクを追加 表 2 に APP_DATAEN を追加 読み出しデータキャプチャのタイミングキャ リブレーション の概要を変更 18 japan.xilinx.com XAPP851 (v1.1) 2006 年 7 月 14 日