Spartan-6 FPGA メモリ コントローラ ユーザー ガイド (UG388)

74
Spartan-6 FPGA メモリ コントローラ ユーザー ガイド UG388 (v2.3) 2010 8 9

Transcript of Spartan-6 FPGA メモリ コントローラ ユーザー ガイド (UG388)

Page 1: Spartan-6 FPGA メモリ コントローラ ユーザー ガイド (UG388)

Spartan-6 FPGA メモリ コン ト ローラ

ユーザー ガイド

UG388 (v2.3) 2010 年 8 月 9 日

Page 2: Spartan-6 FPGA メモリ コントローラ ユーザー ガイド (UG388)

Spartan-6 FPGA メモリ コン ト ローラ japan.xilinx.com UG388 (v2.3) 2010 年 8 月 9 日

Xilinx is disclosing this user guide, manual, release note, and/or specification (the "Documentation") to you solely for use in thedevelopment of designs to operate with Xilinx hardware devices. You may not reproduce, distribute, republish, download,display, post, or transmit the Documentation in any form or by any means including, but not limited to, electronic, mechanical,photocopying, recording, or otherwise, without the prior written consent of Xilinx. Xilinx expressly disclaims any liabilityarising out of your use of the Documentation. Xilinx reserves the right, at its sole discretion, to change the Documentationwithout notice at any time. Xilinx assumes no obligation to correct any errors contained in the Documentation, or to advise youof any corrections or updates. Xilinx expressly disclaims any liability in connection with technical support or assistance that maybe provided to you in connection with the Information.

THE DOCUMENTATION IS DISCLOSED TO YOU “AS-IS” WITH NO WARRANTY OF ANY KIND. XILINX MAKESNO OTHER WARRANTIES, WHETHER EXPRESS, IMPLIED, OR STATUTORY, REGARDING THEDOCUMENTATION, INCLUDING ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULARPURPOSE, OR NONINFRINGEMENT OF THIRD-PARTY RIGHTS. IN NO EVENT WILL XILINX BE LIABLE FOR ANYCONSEQUENTIAL, INDIRECT, EXEMPLARY, SPECIAL, OR INCIDENTAL DAMAGES, INCLUDING ANY LOSS OFDATA OR LOST PROFITS, ARISING FROM YOUR USE OF THE DOCUMENTATION.

本資料は英語版 (v2.3) を翻訳したもので、 内容に相違が生じる場合には原文を優先します。

資料によっては英語版の更新に対応していないものがあ り ます。

日本語版は参考用と してご使用の上、 新情報につきましては、 必ず 新英語版をご参照ください。

改訂履歴

本書の改訂履歴は以下のとおりです。

日付 バージョ ン 変更内容

2009 年 5 月 28 日 1.0 初版

2009 年 8 月 18 日 1.1 • MCB のビッ ト あた りのスキュー低減用キャ リブレーシ ョ ンを削除。

• 第 1 章 :

• 17 ページの表 1-2 に、 デバイス XC6SLX75 と XC6SLX75T、 パッケージ CPG196、 CSG484、 FG(G)900 を追加。

• 第 2 章 :

• 22 ページの図 2-2 のコンフ ィギュレーシ ョ ン 5 を 128 ビッ ト双方向に変更。

• 35 ページの表 2-9 にボード デザイン要件に関する メモを追加。

• 第 3 章 :

• 41 ページの 「サポートする メモリ デバイス」 の第 1 段落を更新。

• 43 ページの 「ク ロ ッ ク」 にメモを追加。

• 49 ページの 「その他のボード デザインの要件」 を追加。

• 第 4 章 :

• 52 ページの図 4-1 のメモ 1 を図の下に移動。

• キャ リブレーシ ョ ン ロジッ クに関する メモ 2 を追加。

• 付録 A :

• 71 ページの 「メモ リの規格」 の JEDEC 仕様のリ ンクを更新。

Page 3: Spartan-6 FPGA メモリ コントローラ ユーザー ガイド (UG388)

UG388 (v2.3) 2010 年 8 月 9 日 japan.xilinx.com Spartan-6 FPGA メモリ コン ト ローラ

2009 年 12 月 2 日 2.0 • 第 3 章の 「入門」 および第 6 章の 「MCB デザインのデバッグ」 を UG416、『Spartan-6 FPGA Memory Interface Solutions User Guide』 に移動。

• 9 ページの 「このユーザー ガイ ドについて」 の冒頭を変更。

• 第 1 章 :

• 16 ページの表 1-1 のメモ 1 を、特定の値についてはデータシート を参照するよ う

に変更。

• 17 ページの表 1-2 にメモ 2 を追加。

• 第 2 章 :

• 29 ページ の表 2-3 で、 C_MC_CALIBRATION_MODE 属性の説明と値を変更。

• 35 ページ 例外 (a) に 2 文を追加。

• 第 3 章 :

• 45 ページ のキャ リブレーシ ョ ン ク ロ ッ ク calib_clk の速度に関するテキス ト を

変更。

• 第 4 章 :

• 52 ページの図 4-1 のメモ 1 を変更。

• 52 ページ のメモの後にある 3 番目の段落から、 キャ リブレーシ ョ ン ロジッ クに

関する文を削除。

• 53 ページの 「キャ リブレーシ ョ ン」 の 初の段落の後にメモを追加。

• 54 ページの 「フェーズ 2 : DQS の中央配置」 の 初の段落から、 キャ リブレー

シ ョ ン ロジッ クに関する文章を削除。

• 65 ページの図 4-13 の上に段落を追加。

• 68 ページ の表 4-5 の前にメモを追加。

2010 年 1 月 5 日 2.0.1 文書のハイパーリ ンクを修正。

日付 バージョ ン 変更内容

Page 4: Spartan-6 FPGA メモリ コントローラ ユーザー ガイド (UG388)

Spartan-6 FPGA メモリ コン ト ローラ japan.xilinx.com UG388 (v2.3) 2010 年 8 月 9 日

2010 年 3 月 4 日 2.1 第 1 章 : 「特長と利点」 で、 入力終端の自動キャ リブレーシ ョ ンの部分を箇条書きに変

更。 表 1-1 のデータ レートの 「 小値」 列にパラ メータを追加し、 表のメモ 2 を更新。

表 1-2 のメモ 1 を修正。

第 2 章 : 表 2-2 で、 メモ リの駆動電流属性の設定可能な値と して 「THREEQUARTERS」 を追加し、 メモ リのバース ト長属性の説明を DDR3 が常に 8 に設定されるよ うに記述を修正。 「ク ロ ッ ク、 リセッ ト 、 およびキャ リブレーシ ョ ンの信

号」 の見出し、 冒頭のテキス ト 、 および 表 2-4 のタイ トルに 「キャ リブレーシ ョ ン」 を

追加。 表 2-4 の信号名 BUFPLL を BUFPLL_MCB に変更し、 信号名 sys_rst を async_rst に変更し、信号名 mcb_drp_clk および calib_done を追加。 「メモ リ デバイス インターフェイス」 の RZG ピンと ZIO ピンに関する説明を修正。 アクティブな MCB の未使用のピンが汎用 I/O に戻るこ とに関して明確なテキス ト を メモ (35 ページ) に追

加。 表 2-9 の rzq 信号と zio 信号の説明を修正。

第 3 章 : 表 3-1 から メモリ デバイス MT41K128M8xx-25 と MT41K256M4xx-25 を削

除。 「ク ロ ッ ク」 に、 MIG/EDK によるクロ ッ ク インフラス ト ラ クチャの生成に関する

テキス ト を追加。 外部駆動 PLL の位置に関する記述を明確なテキス トに変更。 キャ リ

ブレーシ ョ ン ク ロ ッ クに関するテキス ト を変更。 図 3-3 の信号名を calib_clk から mcb_drp_clk に変更。 図 3-3 の後の 初の文を変更。 45 ページ のクロ ッ クに関する

キャ リブレーシ ョ ンにおいて、 初の文を変更。 図 3-4 の下に、 バンク 1 の MCB のピ

ンを BPI のピンと して使用するこ とに関して明確なテキス ト を追加。 49 ページ の 「その他のボード デザインの要件」 で、 RESET、 CKE、 および ODT の信号のプルダウン

抵抗の要件を明示。 「同時スイ ッチ出力の考慮事項」 を追加。

第 4 章 : 「フェーズ 1 : 入力終端」 に、RZG ピンと ZIO ピンの入力終端に関する明確な

説明を追加。 「アドレス指定」 に、 書き込みデータ マスク入力を使用した開始アドレス

位置のオフセッ トに関する明確な説明を追加。 「読み出しレイテンシ」 と 「一時停止」

を追加。

付録 A : JEDEC の URL を更新。

2010 年 6 月 14 日 2.2 XCN10024、 『Spartan-6 LX16 および LX45 FPGA の MCB パフォーマンス、 JTAG リビジ ョ ン コード、 ICCINTQ と ICCAUXQ 大値、 SSO 値の変更』 で、 次の変更内容

を説明しています。

第 1 章 : 標準と拡張のパフォーマンス モードに関する重要なメモを追加。

第 2 章 : 表 2-4 の pll_lock の説明に BUFPLL_MCB のブロッ ク名を追加し、sysclk_2x の説明のクロ ッ ク周波数の例を変更。

第 3 章 : 「ク ロ ッ ク」 の PLL ブロッ クから LOCKED、 MIG ラ ッパ ブロ ッ クから pll_lock をそれぞれ削除し、 44 ページ の図 3-3 の下にある 2 番目と 4 番目の段落にあ

るクロ ッ ク周波数の例を変更。

日付 バージョ ン 変更内容

Page 5: Spartan-6 FPGA メモリ コントローラ ユーザー ガイド (UG388)

UG388 (v2.3) 2010 年 8 月 9 日 japan.xilinx.com Spartan-6 FPGA メモリ コン ト ローラ

2010 年 8 月 9 日 2.3 第 1 章 : 表 1-1 の LPDDR の 小データ レートの値を変更し、 -3N スピード グレード

のデバイスが MCB をサポート しないこ とを表のメモ 1 に明示。 表 1-3 にメモを追加。

第 2 章 : 表 2-4 の calib_done 信号の説明に 2 番目の文を追加。表 2-5 の pX_cmd_error の説明、 表 2-6 の pX_wr_error の説明、 および表 2-7 の pX_rd_error の説明にそれぞ

れ、 リ カバリにはリセッ トが必要なこ とを示す文を追加。

第 3 章 : 図 3-3 に BUFG を追加。 図 3-3 の下にある 初の段落の 後に、 PLL の推奨

位置に関する文章を追加。 図 3-3 の下にある 2 番目の段落の 後に、 デバイスの両側に

ある MCB の駆動に関する文章を追加。 「ク ロ ッ ク設定の変更」 を追加。 「その他のボー

ド デザインの要件」 に、 VREF に関する 4 番目の箇条書きを追加。

第 4 章 : 「フェーズ 1 : 入力終端」 の 2 番目から 後の段落で、 キャ リブレーシ ョ ン済

み入力終端が必要な場合に異なる I/O 規格向けに VREF ソースが提供されている という

文を、 LPDDR メモ リには VREF が不要という文に置換。 53 ページ の 「フェーズ 1 : 入力終端」 の 後の段落に、 得られた入力終端に関する文を追加。

付録 A : 古いリ ンクを削除。

日付 バージョ ン 変更内容

Page 6: Spartan-6 FPGA メモリ コントローラ ユーザー ガイド (UG388)

Spartan-6 FPGA メモリ コン ト ローラ japan.xilinx.com UG388 (v2.3) 2010 年 8 月 9 日

Page 7: Spartan-6 FPGA メモリ コントローラ ユーザー ガイド (UG388)

Spartan-6 FPGA メモリ コン ト ローラ japan.xilinx.com 7UG388 (v2.3) 2010 年 8 月 9 日

改訂履歴. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

このユーザー ガイドについてユーザー ガイ ドの内容 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9その他の資料 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10その他のリ ソース . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

第 1 章 : メモリ コン ト ローラ ブロック の概要範囲 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13はじめに. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13特長と利点 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13ブロ ッ ク図 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14パフォーマンス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16デバイス ファ ミ リのサポート . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17サポートする メモ リ設定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18ソフ ト ウェアとツールのサポート . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

第 2 章 : MCB の機能の説明アーキテクチャの概要. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19ポート コンフ ィギュレーシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

ポート コンフ ィギュレーシ ョ ンの選択 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .22アービ ト レーシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22プログラム可能な MCB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24インターフェイスの詳細 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

ユーザー (ファブリ ッ ク側) インターフェイス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .30ク ロ ッ ク、 リセッ ト 、 およびキャ リブレーシ ョ ンの信号 . . . . . . . . . . . . . . . . . . . . . . . .30コマンド パス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .31書き込みデータパス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .32読み出しデータパス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .33セルフ リ フレッシュ信号 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .35

メモ リ デバイス インターフェイス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .35

第 3 章 : MCB を使用したデザインデザイン フロー. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

CORE Generator ツール . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .41サポートする メモ リ デバイス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41シ ミ ュレーシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42リ ソースの使用量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43ク ロ ッ ク . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

ク ロ ッ ク設定の変更 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .45移行とバンク指定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46PCB レイアウ トでの考慮事項. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

一般的なガイ ド ライン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .47データ、 データ マスク、 およびデータ ス ト ローブのガイ ド ライン . . . . . . . . . . . . . . . . . . . .48アドレス、 制御、 およびクロ ッ クのガイ ド ライン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .48その他のボード デザインの要件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .49同時スイ ッチ出力の考慮事項 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .49

目次

Page 8: Spartan-6 FPGA メモリ コントローラ ユーザー ガイド (UG388)

8 japan.xilinx.com Spartan-6 FPGA メモリ コン ト ローラ

UG388 (v2.3) 2010 年 8 月 9 日

第 4 章 : MCB の動作スタート アップ シーケンス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51キャ リブレーシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

フェーズ 1 : 入力終端 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .53フェーズ 2 : DQS の中央配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .54フェーズ 3 : DQS の連続調整 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .55

命令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55アドレス指定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57コマンド パスのタイ ミ ング . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58書き込みパスのタイ ミ ング . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59読み出しパスのタイ ミ ング . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60メモ リの ト ランザクシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

単純な書き込み . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .61単純な読み出し . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .62

読み出しレイテンシ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63セルフ リ フレッシュ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64一時停止. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

DRAM データを保持しない一時停止モード . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .65DRAM データを保持する一時停止モード . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .66一時停止モードの追加要件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .67

バイ ト アドレスから メモ リ アドレスへの変換 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67ト ランザクシ ョ ンの順序付けと一貫性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

付録 A : 参考資料メモ リの規格 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71PCB のレイアウ ト とシグナル インテグ リティ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

Page 9: Spartan-6 FPGA メモリ コントローラ ユーザー ガイド (UG388)

Spartan-6 FPGA メモリ コン ト ローラ japan.xilinx.com 9UG388 (v2.3) 2010 年 8 月 9 日

このユーザー ガイドについて

このユーザー ガイ ドでは、 Spartan®-6 FPGA メモ リ コン ト ローラ ブロ ッ ク (MCB) について説明

します。 Spartan-6 FPGA ファ ミ リの 新資料は、

http://japan.xilinx.com/products/spartan6/index.htm から参照できます。

MCB ベースのメモ リ インターフェイスをインプリ メン トするには、次のサポートする 2 つのデザ

イン ツール フローのいずれかに従う必要があ り ます。

1. Memory Interface Generator (MIG)

従来の (非エンベデッ ド ) FPGA デザインについて、 CORE Generator™ ソフ ト ウェアの MIGツールを使用して MCB ベースのメモリ インターフェイスをインプリ メン トする方法の詳細

は、UG416、『Spartan-6 FPGA Memory Interface Solutions User Guide』 を参照してください。

この文書には、 MCB インターフェイスのデバッグに関する情報も記載されています。

2. エンベデッ ド開発キッ ト (EDK)

エンベデッ ド デザインについて、EDK 環境で MCB を使用して MPMC をインプリ メン トする

方法の詳細は、 DS643、 『Multi-Port Memory Controller (MPMC)』 を参照してください。

ユーザー ガイドの内容

このユーザー ガイ ドは、 次の各章から構成されています。

• 第 1 章 「メモ リ コン ト ローラ ブロ ッ ク の概要」 では、 Spartan-6 FPGA MCB について説明し

ます。

• 第 2 章 「MCB の機能の説明」 では、 MCB のアーキテクチャ、信号インターフェイス、使用可

能なコンフ ィギュレーシ ョ ンについて説明します。

• 第 3 章 「MCB を使用したデザイン」 では、 MCB を Spartan-6 デザインに組み込む方法と、特

定アプリ ケーシ ョ ンのブロ ッ クをカスタマイズする方法について説明します。

• 第 4 章 「MCB の動作」 では、MCB がスタート アップ、キャ リブレーシ ョ ン、 リ フレッシュ、プ

リチャージ、標準の読み出し /書き込みト ランザクシ ョ ンなどのさまざまな動作モードでどのよ

うに機能するかを説明します。

• 付録 A 「参考資料」 には、 メモ リ インターフェイス デザインに関するその他の資料へのリ ンク

があ り ます。

その他の資料

次の資料も、 http://japan.xilinx.com/products/spartan6/index.htm からダウンロードできます。

• 『Spartan-6 ファ ミ リ概要』

Spartan-6 ファ ミ リの特徴と製品群の概要を説明しています。

Page 10: Spartan-6 FPGA メモリ コントローラ ユーザー ガイド (UG388)

10 japan.xilinx.com Spartan-6 FPGA メモリ コン ト ローラ

UG388 (v2.3) 2010 年 8 月 9 日

このユーザー ガイドについて

• 『Spartan-6 FPGA データシート : DC 特性およびスイ ッチ特性』

Spartan-6 ファ ミ リの DC およびスイ ッチ特性を含むデータシートです。

• 『Spartan-6 FPGA Packaging and Pinouts Product Specification』

デバイス /パッケージの組み合わせと 大 I/O 数、ピン定義、ピン配置表、ピン配置図、回路図、

熱仕様を記載しています。

• 『Spartan-6 FPGA コンフ ィギュレーシ ョ ン ユーザー ガイ ド』

この包括的なコンフ ィギュレーシ ョ ン ガイ ドは、 コンフ ィギュレーシ ョ ン インターフェイス (シ リ アルとパラレル)、マルチビッ ト ス ト リームの管理、ビッ ト ス ト リームの暗号化、バウンダ

リ スキャンおよび JTAG コンフ ィギュレーシ ョ ン、リ コンフ ィギュレーシ ョ ン テクニッ クの各

章で構成されています。

• 『Spartan-6 FPGA SelectIO リ ソース ユーザー ガイ ド』

Spartan-6 の各デバイスで使用可能な SelectIO™ リ ソースについて説明しています。

• 『Spartan-6 FPGA ク ロ ッ ク リ ソース ユーザー ガイ ド』

Spartan-6 の各デバイスで使用可能な DCM や PLL などのクロ ッ ク リ ソースについて説明し

ています。

• 『Spartan-6 FPGA ブロ ッ ク RAM リ ソース ユーザー ガイ ド』

Spartan-6 デバイスのブロ ッ ク RAM の機能について説明しています。

• 『Spartan-6 FPGA コンフ ィギャブル ロジッ ク ブロ ッ ク ユーザー ガイ ド』

Spartan-6 の各デバイスで使用可能なコンフ ィギャブル ロジッ ク ブロ ッ ク (CLB) の機能につ

いて説明しています。

• 『Spartan-6 FPGA GTP ト ランシーバ ユーザー ガイ ド』

Spartan-6 LXT FPGA で使用可能な GTP ト ランシーバについて説明しています。

• 『Spartan-6 FPGA DSP48A1 スライス ユーザー ガイ ド』

Spartan-6 FPGA の DSP48E1 スライスのアーキテクチャについて説明し、 コンフ ィギュレー

シ ョ ン例も記載しています。

• 『Spartan-6 FPGA PCB デザイン ガイ ド』

PCB およびインターフェイスのレベルでデザインを決定するためのス ト ラテジを中心に、

Spartan-6 デバイスの PCB デザインに関する情報を記載しています。

• 『Spartan-6 FPGA Power Management User Guide』

一時停止モードを中心に、 Spartan-6 の各デバイスのハード ウェアによるさまざまなパワー マネージメン ト方法に関する情報を記載しています。

その他のリソース

その他の資料を検索するには、 次の Web サイ トにアクセスしてください。

http://japan.xilinx.com/support/documentation/index.htm

シ リ コンやソフ ト ウェア、IP に関するアンサー データベースを検索したり、テクニカル サポートの

ウェブ ケースを開く場合は、 次の Web サイ トにアクセスしてください。

http://japan.xilinx.com/support

Page 11: Spartan-6 FPGA メモリ コントローラ ユーザー ガイド (UG388)

Spartan-6 FPGA メモリ コン ト ローラ japan.xilinx.com 11UG388 (v2.3) 2010 年 8 月 9 日

その他のリソース

Page 12: Spartan-6 FPGA メモリ コントローラ ユーザー ガイド (UG388)

12 japan.xilinx.com Spartan-6 FPGA メモリ コン ト ローラ

UG388 (v2.3) 2010 年 8 月 9 日

このユーザー ガイドについて

Page 13: Spartan-6 FPGA メモリ コントローラ ユーザー ガイド (UG388)

Spartan-6 FPGA メモリ コン ト ローラ japan.xilinx.com 13UG388 (v2.3) 2010 年 8 月 9 日

第 1 章

メモリ コン ト ローラ ブロック の概要

範囲

この章では、Spartan®-6 FPGA メモ リ コン ト ローラ ブロ ッ ク (MCB) の概要を説明します。次のセ

クシ ョ ンがあ り ます。

• 「はじめに」

• 「特長と利点」

• 「ブロ ッ ク図」

• 「パフォーマンス」

• 「デバイス ファ ミ リのサポート 」

• 「サポートする メモ リ設定」

• 「ソフ ト ウェアとツールのサポート 」

はじめに

MCB は、Spartan-6 デバイス と一般的なメモ リ規格とのインターフェイス タスクを大幅に簡略化す

る、 専用の組み込みブロッ ク マルチポート メモ リ コン ト ローラです。 MCB は、 同等の IP インプ

リ メンテーシ ョ ンを比較して、パフォーマンスが非常に高く、消費電力が低く、開発期間が短くなっ

ています。 MCB を組み込みブロッ クでインプリ メン トするこ とによ り、 貴重な FPGA リ ソースが

節約でき、 FPGA デザインに固有の機能に専念して設計できます。

特長と利点

Spartan-6 FPGA メモ リ コン ト ローラ ブロ ッ クの主な特長と利点を示します。

• DDR、 DDR2、 DDR3、 および LPDDR (モバイル DDR) メモ リ規格をサポート

• 大 800Mb/s (400MHz のダブル データ レート ) のパフォーマンス

• 1 つの Spartan-6 デバイスに 大 4 個の MCB があ り ます。各 MCB コアは、次のものをサポー

ト します。

• 4 ビッ ト 、8 ビッ ト 、または 16 ビッ トのシングル コンポーネン ト メモ リ インターフェイス

• メモ リ集積度は 大 4Gb

• 大 12.8Gb/s の統合帯域幅

• FPGA ロジッ クに対する、 設定可能な専用マルチポート ユーザー インターフェイス

• 設定によ り、 MCB あたりのポート数が 1 ~ 6 個

• 32 ビッ ト 、 64 ビッ ト 、 または 128 ビッ ト幅のデータ バス オプシ ョ ン

Page 14: Spartan-6 FPGA メモリ コントローラ ユーザー ガイド (UG388)

14 japan.xilinx.com Spartan-6 FPGA メモリ コン ト ローラ

UG388 (v2.3) 2010 年 8 月 9 日

第 1 章 : メモリ コン ト ローラ ブロック の概要

• 双方向 (読み出し /書き込み) または一方向 (書き込み専用または読み出し専用) のポート

オプシ ョ ン

• メモ リ バンクの管理

• コン ト ローラの効率を向上するために、 大 8 個のメモ リ バンクを同時に開く こ とができ

ます。

• エンベデッ ド コン ト ローラ と物理インターフェイス (PHY) には次の特長があ り ます。

• 予測可能なタイ ミ ング

• 低消費電力

• 性能を保証

• 各 MCB の事前定義済みピン配置 (I/O 位置)

• 簡略化されたボード デザイン

• MCB インターフェイス内で使用しない事前定義済みの I/O は、汎用 I/O になり ます (詳細

は 35 ページを参照)。

• 一般的なメモ リ デバイスのオプシ ョ ンと属性のサポート

• プログラム可能な駆動電流

• オンダイ終端 (ODT)

• CAS レイテンシ

• セルフ リ フレッシュ (部分アレイを含む)

• リ フレッシュ間隔

• 書き込みリ カバリ時間

• メモ リのス ト ローブと読み出しデータ入力用の自動遅延補正

• DQS (ス ト ローブ) と DQ (データ) とのタイ ミ ング関係を調整して、 適な読み出し性能を

実現

• FPGA オンチップ入力終端のオプシ ョ ンの自動キャ リブレーシ ョ ンによ り、 適なシグナル インテグ リティを確保

• Xilinx® CORE Generator™ デザイン ツール、および Embedded Development Kit (EDK) デザ

イン ツールによるサポート

• CORE Generator ソフ ト ウェアのメモ リ インターフェイス ジェネレータ (MIG) ツールに

よ り、 MCB のデザイン フローを簡略化

• エンベデッ ド デザインも、 EDK ツールのマルチポート メモ リ コン ト ローラ (MPMC) IP経由で MCB にアクセス可能

ブロック図

図 1-1 のブロッ ク図に、MCB コアの主要なアーキテクチャ コンポーネン ト を示します。この文書全

体を通じて、MCB は、CORE Generator ソフ ト ウェアまたは EDK 環境内のメモリ IP ツールがユー

ザーに提供するものと して説明されます。 これらのツールは、通常、総合ソ リ ューシ ョ ンを提供する

ために必要なエンベデッ ド ブロッ ク メモリ コン ト ローラのプリ ミティブ、およびソフ ト ロジッ ク と

ポート マップを統合した 上位の 「ラ ッパ」 ファイルを生成します。たとえば、図 1-1 の MCB の物

理インターフェイスは、汎用 I/O ブロッ ク (IOB) の機能を使用して、メモリへの外部インターフェイ

スをインプリ メン ト します。 汎用 I/O クロ ッ ク ネッ ト ワークのリ ソースも使用されます。

Page 15: Spartan-6 FPGA メモリ コントローラ ユーザー ガイド (UG388)

Spartan-6 FPGA メモリ コン ト ローラ japan.xilinx.com 15UG388 (v2.3) 2010 年 8 月 9 日

ブロック図

FPGA 内にある、 MCB とのシングル データ レート (SDR) ユーザー インターフェイスは、 ポート

数 1 ~ 6 に設定でき、 各ポートは、 コマンド インターフェイス、 および読み出し /書き込み データ

インターフェイスで構成されます。MCB ハードウェアベースの 32 ビッ ト双方向ポート 2 個、およ

び 32 ビッ ト一方向ポート 4 個を組み合わせて、 5 種類のポート設定を作成できます。

MCB のその他の主要コンポーネン ト と して、 次のものがあ り ます。

• アービタ

どのポートが現在、 メモ リ デバイスにアクセスする優先権を持つかを決定します。

• コン ト ローラ

ユーザー インターフェイスで作成された単純な要求を、 メモ リ との通信に必要な命令とシーケ

ンスに変換する主要な制御ブロ ッ クです。

• データパス

メモ リ デバイス とユーザー ロジッ ク との間で、書き込みデータおよび読み出しデータのフロー

を処理します。

• 物理インターフェイス (PHY)

コン ト ローラの命令を、 メモ リ デバイス との通信に必要な実際のタイ ミ ング関係と DDR 信号

に変換します。

• キャ リブレーシ ョ ン ロジッ ク

性能と信頼性を向上するために、 PHY のキャ リブレーシ ョ ンを実行します。

X-Ref Target - Figure 1-1

図 1-1 : Spartan-6 FPGA メモリ コン ト ローラ ブロック (IP ラッパの図)

UG388_c1_01_050409

32-BitBidirectional

Arbiter

PHY

IOB

Datapath

IP Wrapper

Spartan-6 FPGA

Memory

Controller

CalibrationLogic

DDRDDR2DDR3LPDDR

32-BitBidirectional

32-BitUnidirectional

32-BitUnidirectional

32-BitUnidirectional

32-BitUnidirectional

CMD FIFO 0CMD FIFO 1

CMD FIFO 2

CMD FIFO 3CMD FIFO 4

CMD FIFO 5

Use

r Lo

gic

Ded

icat

ed R

outin

g

I/O C

lock

ing

Net

wor

k

Page 16: Spartan-6 FPGA メモリ コントローラ ユーザー ガイド (UG388)

16 japan.xilinx.com Spartan-6 FPGA メモリ コン ト ローラ

UG388 (v2.3) 2010 年 8 月 9 日

第 1 章 : メモリ コン ト ローラ ブロック の概要

パフォーマンス

Spartan-6 デバイスの専用 MCB コアを使用するこ とで、FPGA ロジッ クにインプリ メン ト される同

等の IP ソ リ ューシ ョ ンよ り もはるかに高いパフォーマンス レベルを実現します。 メモ リの帯域幅

がシステム全体のパフォーマンスのボ トルネッ クになるこ とが多いため、 MCB コアは、低コス ト、

低消費電力の FPGA デバイスで 大のメモ リ パフォーマンスを要求するユーザー向けに設計され

ました。

各 MCB コアは、表 1-1 に示す、メモ リ インターフェイスのデータ レート と メモ リの合計帯域幅の

仕様をサポート しています。単一 MCB メモ リ インターフェイスのピーク帯域幅が、サポートする

インターフェイスの 3 種類の幅について計算されています。

メモ : MCB は、選択した VCCINT の動作条件に合わせて、標準と拡張の性能モードをサポート しま

す。表 1-1 のピーク データ レートは、拡張性能モードで VCCINT の範囲を使用したと きの 大の性

能を示します。VCCINT の動作条件、および標準モード と拡張モードの性能の仕様の詳細は、DS162、『Spartan-6 FPGA データシート : DC 特性およびスイ ッチ特性』 の 「表 2 : 推奨動作条件」、 および

「パフォーマンス特性」 を参照して ください。

デバイス ファ ミ リのサポート

Spartan-6 デバイスで使用可能な MCB の個数は、そのデバイスの集積度によ り決ま り ます。小型デ

バイス (XC6SLX4) には MCB がなく、 中型の集積度デバイスには MCB が 2 個、 大型デバイスに

は MCB が 4 個あり ます。表 1-2 に、各デバイス/パッケージの組み合わせがサポートする MCB の個数を示します。

メモ : MCB は、単一の x4、x8、 または x16 のメモ リ コンポーネン ト と インターフェイスをと るよ

うに設計されています。単一の MCB と複数のコンポーネン ト とのインターフェイス (x16 モードで

の x8 メモ リ 2 個と MCB 1 個とのインターフェイスなど) はサポート されていません。

表 1-1 : 各 MCB のメモリ インターフェイスのデータ レート と ピーク帯域幅

メモリの

タイプ

データ レート : Mb/s DDR (MHz クロック)

MCB インターフェイスあたりのピーク帯域幅 (Gb/s)

最小値 最大値(1) 4 ビッ ト 8 ビッ ト 16 ビッ ト

DDR 167Mb/s(2)

(83.3MHz)400Mb/s

(200MHz)1.6Gb/s 3.2Gb/s 6.4Gb/s

DDR2 250 Mb/s(2)

(125MHz)800Mb/s

(400MHz)3.2Gb/s 6.4Gb/s 12.8Gb/s

DDR3 606 Mb/s(2)

(303MHz)800Mb/s

(400MHz)3.2Gb/s 6.4Gb/s 12.8Gb/s

LPDDR 60 Mb/s(2)

(30MHz)400Mb/s

(200MHz)1.6Gb/s 3.2Gb/s 6.4Gb/s

メモ :

1. 表に記載の MCB の 大データ レートが適用されないスピード グレード もあ り ます。 スピード グレード

別のパフォーマンスは、 DS162、 『Spartan-6 FPGA データシート : DC 特性およびスイ ッチ特性』 を参照

して ください。- 3N スピード グレードのデバイスは、 MCB をサポート していません。

2. MCB の 小周波数の要件は、 メモ リ規格の 小周波数の仕様に定められています。 関連する JEDEC の規

格は、 付録 A の 「メモ リの規格」 を参照してください。

Page 17: Spartan-6 FPGA メモリ コントローラ ユーザー ガイド (UG388)

Spartan-6 FPGA メモリ コン ト ローラ japan.xilinx.com 17UG388 (v2.3) 2010 年 8 月 9 日

サポートするメモリ設定

サポートするメモリ設定

Spartan-6 FPGA の MCB は、 表 1-3 に示すよ うに、 一般的なメモ リ タイプ、 設定、 および集積度

を広範にわたってサポート しています。

表 1-2 : デバイス/パッケージの組み合わせがサポートする MCB

デバイス パッケージ

TQG144 CPG196 CSG225 FT(G)256 CSG324 FG(G)484 CSG484 FG(G)676 FG(G)900

XC6SLX4 0 0 0

XC6SLX9 0 0 2(1) 2 2

XC6SLX16 0 2(1) 2 2

XC6SLX25 2 2 2

XC6SLX45 2 2 2 2

XC6SLX75 2(2) 2(2) 4

XC6SLX100 2(2) 2(2) 4

XC6SLX150 2(2) 2(2) 4 4

XC6SLX25T 2 2

XC6SLX45T 2 2 2

XC6SLX75T 2(2) 2(2) 4

XC6SLX100T 2(2) 2(2) 4 4

XC6SLX150T 2(2) 2(2) 4 4

メモ :

1. CSG225 パッケージのデバイスの場合、 MCB は、 x4 および x8 のメモ リ インターフェイス幅のオプシ ョ ンのみをサポート しています。つま り、 LPDDR デバイスはサポートできません。 さ らに、 このパッケージの MCB で使用できるのは 13 アドレス ビッ トのみなので、メモ リの 大集積度は、 DDR2 で 256Mb、 DDR と DDR3 で 512Mb に制限されます。

2. MCB が 4 つのデバイスの場合、 FGG484 と CSG484 のパッケージでは、 MCB が 2 個のみ外にボンディングされています。

表 1-3 : サポートするメモリ設定

メモリの集積度幅

(DQ ビッ ト数)メモリのタイプ

LPDDR DDR DDR2 DDR3

128Mb x16 X X

x8 X

x4 X

256Mb x16 X X X

x8 X X

x4 X X

512Mb x16 X X X X

x8 X X X

x4 X X X

Page 18: Spartan-6 FPGA メモリ コントローラ ユーザー ガイド (UG388)

18 japan.xilinx.com Spartan-6 FPGA メモリ コン ト ローラ

UG388 (v2.3) 2010 年 8 月 9 日

第 1 章 : メモリ コン ト ローラ ブロック の概要

ソフ トウェアとツールのサポート

Spartan-6 FPGA MCB は、ザイ リ ンクスが提供する他のソフ ト ブロッ クやエンベデッ ド IP ブロッ ク

など、 標準的なソフ ト ウェアやツールのフローでサポート されています。 従来の (非エンベデッ ド ) FPGA デザインの場合、 CORE Generator ツールに装備されている メモリ インターフェイス ジェネ

レータ (MIG) ツールを使用して、 MCB をデザインに統合できます。

MIG ツールは、 ザイ リ ンクスのすべての FPGA に対する メモ リ インターフェイスの生成に使用さ

れます。MIG ツールは、ザイ リ ンクスが提供する メモ リ ソ リ ューシ ョ ンのシ ミ ュレーシ ョ ンやイン

プリ メンテーシ ョ ンに必要な RTL デザイン ファ イル、 ユーザー制約ファイル (UCF)、 およびスク

リプ ト ファ イルを生成します。UG416、『Spartan-6 FPGA Memory Interface Solutions User Guide』の 「Getting Started」 の章には、 MIG ツールを使用して MCB ベースのメモ リ インターフェイスを

インプリ メン トする手順がステップごとに詳細に記載されています。

エンベデッ ド デザイン (MicroBlaze™ プロセッサのデザインなど) の場合、 EDK 環境の XilinxPlatform Studio ツールが装備する IP Configurator の GUI を使用して、メモ リ インターフェイスの

特性を指定できます。 このフローでは、 MCB は、 EDK ライブラ リに用意されている MPMC IP ブロ ッ クの下位ハードウェアのインプリ メンテーシ ョ ンと して機能します。 コン ト ローラ と メモ リの

属性を設定するだけでなく、 このツールは、 EDK ペリ フェラルと得られたメモ リ コン ト ローラの

ポート を接続するために必要な、 PLB バスへのソフ ト ブリ ッジ、 Xilinx Cache Link (XCL)、LocalLink (LL)、 その他の指定インターフェイスを生成します。

1Gb x16 X X X X

x8 X X X

x4 X X X

2Gb x16 X X

x8 X X

x4 X X

4Gb(1) x16 X

メモ :

1. MCB はシングルダイの 4Gb メモ リ コンポーネン ト をサポート しますが (メモ リのサプライヤから入手可能な場合)、 デュアルダイの 4Gb メモ リ コンポーネン トはサポート しません。

表 1-3 : サポートするメモリ設定 ?続き)

メモリの集積度幅

(DQ ビッ ト数)メモリのタイプ

LPDDR DDR DDR2 DDR3

Page 19: Spartan-6 FPGA メモリ コントローラ ユーザー ガイド (UG388)

Spartan-6 FPGA メモリ コン ト ローラ japan.xilinx.com 19UG388 (v2.3) 2010 年 8 月 9 日

第 2 章

MCB の機能の説明

この章では、 Spartan®-6 FPGA MCB の機能を詳し く説明します。 次のセクシ ョ ンがあ り ます。

• 「アーキテクチャの概要」

• 「ポート コンフ ィギュレーシ ョ ン」

• 「アービ ト レーシ ョ ン」

• 「プログラム可能な MCB」

• 「インターフェイスの詳細」

アーキテクチャの概要

MCB は、 単一コンポーネン トで構成される メモ リ デバイスとのインターフェイスをと る、 簡単で

信頼性の高い方法です。MCB ユーザー インターフェイスを使用するこ とで、DDR メモ リ とのイン

ターフェイスをと る面倒な作業がなくなるので、よ り多くのエンジニア リ ング リ ソースを FPGA デザイン固有の事象に向けるこ とができます。

MCB は、FPGA ロジッ クにインプリ メン ト される同等の 「ソフ ト 」 ソ リ ューシ ョ ンよ り も比較的速

い速度で動作できます。 大 800Mb/s のデータ レート を持つ MCB は、旧世代の低コス ト FPGA メモ リ インターフェイス ソ リ ューシ ョ ンの 2 倍を超える性能を発揮し、高レベルの帯域幅、またはよ

り狭いメモリ バスを使用できます。これによ り、メモリ デバイスとの通信に必要となる貴重な FPGAロジッ クや I/O リ ソースを節約できる という優れた利点が得られます。

図 2-1 は、第 1 章の MCB のブロ ッ ク図をさ らに詳し く示したもので、FPGA との内部ユーザー インターフェイスに対応する主要信号、 および外部メモリ デバイスに接続する I/O 信号を示します。

ユーザー インターフェイスは 大 6 つのポート をサポートするよ うに設定できますが、簡略化のた

めに、 図 2-1 には 1 つの双方向ポートの信号のみを記載しています。

Page 20: Spartan-6 FPGA メモリ コントローラ ユーザー ガイド (UG388)

20 japan.xilinx.com Spartan-6 FPGA メモリ コン ト ローラ

UG388 (v2.3) 2010 年 8 月 9 日

第 2 章 : MCB の機能の説明

ユーザー インターフェイスで設定できるポートには、 次の 3 つの基本タイプがあ り ます。

• 読み出しポート (一方向)

• 書き込みポート (一方向)

• 読み出しおよび書き込みポート (双方向)

各ポートには、 コマンド パスとデータパスがあ り ます。一方向ポートの場合、 コマンド パスは単一

の読み出し専用データパス、または単一の書き込み専用データパスと対になっています。ただし、双

方向ポートの場合、単一のコマンド パスが、そのポート と対応する読み出しデータパスと書き込み

データパスの両方によ り共用されます。 メモ リ要求のキュー処理、およびユーザー ク ロ ッ ク ド メ イ

ンから メモ リ コン ト ローラのクロ ッ ク ド メ インへの転送管理には、 コマンド パスとデータパスの

ユーザー インターフェイスで FIFO が使用されます。

ポートのコマンド パスの信号は、コマンド用 FIFO への要求送出に使用されます。コマンド用 FIFOには、 ユーザーがプログラムできるレベルが 大 4 つあり ます。 コマンド用 FIFO は、 要求したメ

モ リ ト ランザクシ ョ ンに対応する命令タイプ (読み出し、書き込み、 リ フレッシュなど)、アドレス、

およびバース ト長を格納します。 また、 コマンド パスには、 コマンド用 FIFO から出力された、 新

しい要求を受け取り可能かど うかを示すフルまたは空のステータス フラグも含まれます。 ハード

ウェアにはコマンド用 FIFO が 6 つあり、ポート設定によ り、ユーザー インターフェイスにアクセ

ス可能な個数が決ま り ます ( 「ポート コンフ ィギュレーシ ョ ン」 を参照)。 コマンド パスの信号の詳

細は、 29 ページの 「インターフェイスの詳細」 を参照して ください。

X-Ref Target - Figure 2-1

図 2-1 : MCB のアーキテクチャ、 および主要な内部信号と I/O 信号

UG388_c3_01_050409

Arbiter

Spartan-6 FPGA Memory Controller Block

IP Wrapper

32-Bit Bidirectional

CMD FIFO 0CMD FIFO 1CMD FIFO 2CMD FIFO 3CMD FIFO 4CMD FIFO 5

p0_cmd_clkp0_cmd_enp0_cmd_bl

p0_cmd_instrp0_cmd_addr

p0_cmd_full

mcbx_dram_clkmcbx_dram_clk_nmcbx_dram_ckemcbx_dram_ras_nmcbx_dram_cas_nmcbx_dram_we_nmcbx_dram_odtmcbx_dram_ddr3_rstmcbx_dram_bamcbx_dram_addrmcbx_dram_dqmcbx_dram_dqsmcbx_dram_dqs_nmcbx_dram_udmmcbx_dram_ldm

p0_cmd_empty

p0_rd_clkp0_rd_en

p0_rd_datap0_rd_empty

p0_rd_fullp0_rd_overflow

p0_rd_countp0_rd_error

p0_wr_clkp0_wr_en

p0_wr_datap0_wr_mask

p0_wr_emptyp0_wr_full

p0_wr_underrunp0_wr_countp0_wr_error

32-Bit Bidirectional

32-Bit Unidirectional

32-Bit Unidirectional

32-Bit Unidirectional

32-Bit Unidirectional

Spartan-6 FPGA Memory

Controller

Datapath

Dedicated R

outing

I/O C

lock Netw

ork

PHY

IOB

Page 21: Spartan-6 FPGA メモリ コントローラ ユーザー ガイド (UG388)

Spartan-6 FPGA メモリ コン ト ローラ japan.xilinx.com 21UG388 (v2.3) 2010 年 8 月 9 日

ポート コンフ ィギュレーシ ョ ン

データパスのハード ウェアには 32 ビッ ト ポートが 6 つあり、 そのうちの 2 つが本質的に双方向で

す。 残りの 4 つのポートは本質的に一方向ですが、 組み合わせるこ とで双方向ポート を作成できま

す。6 つのハードウェア ポート を組み合わせて、所望のユーザー インターフェイスをインプ リ メン

トするポート設定は、 5 とおりあ り ます ( 「ポート コンフ ィギュレーシ ョ ン」 を参照)。 ユーザー インターフェイスの読み出し と書き込みのデータ ワード フ ィールドの幅は、 選択したコンフ ィギュ

レーシ ョ ンによ り自動的に決ま り ます。

データパス用 FIFO の深さは 64 ワードで、指定の開始アドレスから 大 64 データ ワードのバース

ト長が使用できます。データ ワード フ ィールドに加えて、書き込みパスの FIFO には、 1 バイ ト単

位で書き込みデータにオプシ ョ ンのマスクを指定できるマスク ビッ ト フ ィールドがあ り ます。 フ

ル、空、アンダーラン、カウン ト、およびエラーの出力が、書き込みデータ用 FIFO の現在のステー

タスを示します。読み出しデータ用 FIFO には、類似のステータス出力のセッ トがあ り ます。読み出

しデータパスおよび書き込みデータパスの信号の詳細は、29 ページの「インターフェイスの詳細」を

参照して ください。

MCB 内部のアービタは、 アービ ト レーシ ョ ンの仕組みに基づく タイム スロ ッ ト を使用して、 ユー

ザー インターフェイスの 6 つあるポートのいずれのポートが現在メモリにアクセスするかを決定

します。 一部のポートに高い優先順位を割り当て、 メモ リに頻繁にアクセス可能にする方法もあ り

ます ( 「アービ ト レーシ ョ ン」 を参照)。

MCB のバンク管理ロジッ クでは 大 8 つのバンクを同時に開く こ とができるので、 複数のバンク

にわたるデータにアクセスする と きに、 コン ト ローラが高い効率を維持できます。 さ らに、 メモ リ

への読み出しおよび書き込み要求に、 ト ランザクシ ョ ンの完了時にバンクを自動的に閉じるオプ

シ ョ ンの自動プリチャージを含めて、 バンク内のランダム データ アクセスの効率を向上できます。

MCB は、 ト ランザクシ ョ ンの並べ替えを実行しません。

ポート コンフ ィギュレーシ ョ ン

図 2-2 に、ユーザー インターフェイスの 5 とおりのポート コンフ ィギュレーシ ョ ンを示します。コ

ンフ ィギュレーシ ョ ン 1 では、ユーザー ポートは本質的に、下位の 6 つの物理ハードウェア ポート

に直接マップされます。 他のコンフ ィギュレーシ ョ ンについては、 物理ポート を連結して別のユー

ザー ポートの組み合わせを作成する方法を図に示します。図 2-2 に示すよ うに、下位の物理ポート

番号とは無関係に、 MIG ツールは常にユーザー インターフェイスのポートに 0 から順番に番号を

付けます。

5 とおりのポート コンフ ィギュレーシ ョ ンのすべてで、特定ポートのコマンド パス、書き込みデー

タパス、および読み出しデータパスがすべて個別のクロ ッ クを持ち、独立したクロ ッ ク ド メ インに

接続できます。 ただし、 インターフェイスの要件を簡略にするために、 特定のポートに関連するパ

スはすべて、 単一のクロ ッ ク ド メ インに保持するこ とをお勧めします。

Page 22: Spartan-6 FPGA メモリ コントローラ ユーザー ガイド (UG388)

22 japan.xilinx.com Spartan-6 FPGA メモリ コン ト ローラ

UG388 (v2.3) 2010 年 8 月 9 日

第 2 章 : MCB の機能の説明

ポート コンフ ィギュレーシ ョ ンの選択

CORE Generator™ ツールの MIG ツールは、特定のアプリ ケーシ ョ ンに必要なポートの個数と タイ

プを設定するための単純なグラフ ィカル インターフェイスを装備しています。 ユーザー インター

フェイスの幅または機能をフルに必要と しないデザインでは、 未使用のポー ト を MIG インター

フェイスで簡単にディ スエーブルにできます。 MCB が装備している 6 つのポート よ り も多くの

ポートが必要な場合には、 追加のアービ ト レーシ ョ ンの仕組みを持つポート ブリ ッジを FPGA ロジッ クにインプリ メン ト して、 MCB のポートの機能を拡張できます。

アービ ト レーシ ョ ン

MCB 内部のアービタは、 アービ ト レーシ ョ ンの仕組みに基づく タイム スロ ッ ト を使用して、 ユー

ザー インターフェイスのいずれのポートが現在メモ リにアクセスするかを決定します。表 2-1 に示

すよ うに、アービ ト レーシ ョ ン テーブルには 12 個のタイム スロ ッ トがあ り ます。各タイム スロ ッ

トは、メモ リの 1 ク ロ ッ ク サイクルに対応します。あるタイム スロ ッ トにおけるポートの優先順位

は、 表の左から右に示された優先順位 1 ~優先順位 6 の列にあるポート番号によ り決ま り ます。

表 2-1 に、 大 6 つのポート を持つユーザー インターフェイスを設定した場合を示します。MCB を5 つ以下のポートに設定した場合、 優先順位の列が選択したポート数のみを持つよ うに、 アービ ト

レーシ ョ ン テーブルが自動的に調整されます。

X-Ref Target - Figure 2-2

図 2-2 : ユーザー インターフェイスのポート コンフ ィギュレーシ ョ ン

UG388_c3_02_072809

User Port 0128-Bit R/W

User Port 164-Bit R/W

User Port 132-Bit R/W

User Port 232-Bit R/W

User Port 232-Bit R/W

User Port 232-Bit R or W

User Port 332-Bit R or W

User Port 0

Configuration 1

64-Bit R/W

User Port 032-Bit R/W

2 32-Bit Bidirectional4 32-Bit Unidirectional

Configuration 31 64-Bit Bidirectional2 32-Bit Bidirectional

Configuration 24 32-Bit Bidirectional

Configuration 42 64-Bit Bidirectional

Configuration 51 128-Bit Bidirectional

User Port 132-Bit R/W

User Port 032-Bit R/W

User Port 132-Bit R/W

User Port 432-Bit R or W

User Port 532-Bit R or W

User Port 332-Bit R/W

User Port 064-Bit R/W

Page 23: Spartan-6 FPGA メモリ コントローラ ユーザー ガイド (UG388)

Spartan-6 FPGA メモリ コン ト ローラ japan.xilinx.com 23UG388 (v2.3) 2010 年 8 月 9 日

プログラム可能な MCB

あるクロ ッ ク サイクルについて、 そのタイム スロ ッ トで使用するポート をアービタが決定します。

アービタは優先順位の列を左から右に移動し、 コマンド用 FIFO にコマンドが保留されている 初

のポート をその行から見つけます。そのポート を使用して保留中のコマンドが実行され、その後、次

のクロ ッ ク サイ クルでアービタが次のタイム スロ ッ トに移動します。その行にあるどのポートにも

保留中のコマンドがない場合は、そのタイム スロ ッ トではアクシ ョ ンは実行されず、クロ ッ ク サイ

クルが経過します。

アービ ト レーシ ョ ン テーブル内のポートの優先順位はフルにプログラム可能です。 MIG ツールの

デフォルトのラウンド ロビン方式は表 2-1 に示すとおりで、すべてのポートについて、使用できる

タイム スロ ッ ト 12 のうちの 2 つに 高の優先順位が指定されています。ただし、MIG ツールには、

ユーザーが任意のアービ ト レーシ ョ ン テーブルを定義できるカスタム オプシ ョ ンもあ り ます。この

カスタム オプシ ョ ンを使用する と、一部のポートに、すべてのタイム スロ ッ トについてメモ リ デバ

イスへのアクセスの優先順位を高くするよ うに指定できます。 ただし、 このオプシ ョ ンを使用する

と きには、優先順位の割り当てによ り、 アクティブなポートがメモ リ デバイスにアクセス不可にな

らないよ うに注意する必要があ り ます。

ユーザー インターフェイスが 5 つのポート (32 ビッ トの双方向ポート 2 つと 32 ビッ トの一方向

ポート 3 つ) を持ち、 32 ビッ トの一方向ポート をディ スエーブルするよ うに設定するこ とができま

す。この場合、アービ ト レーシ ョ ン テーブルのタイム スロ ッ トは 10 個に減少します。タイム スロ ッ

トの個数がポート数で割り切れる場合、必要に応じて、各ポートは確実にメモ リ デバイスに同等に

アクセスできます。

プログラム可能な MCBMCB は、 メモリ デバイスのセッ ト と コン ト ローラの属性によ り高度に設定可能で、これによ り メモ

リの複数の規格やコンフ ィギュレーシ ョ ンをサポートできます。 CORE Generator ツール内の MIGツール、 および EDK 環境の Xilinx Platform Studio ツールに含まれる IP Configurator は、 MCB 属

表 2-1 : ラウンド ロビン設定を持つ MCB のアービ ト レーシ ョ ン テーブル

タイム スロッ ト

優先順位 1 優先順位 2 優先順位 3 優先順位 4 優先順位 5 優先順位 6

0 0 1 2 3 4 5

1 1 2 3 4 5 0

2 2 3 4 5 0 1

3 3 4 5 0 1 2

4 4 5 0 1 2 3

5 5 0 1 2 3 4

6 0 1 2 3 4 5

7 1 2 3 4 5 0

8 2 3 4 5 0 1

9 3 4 5 0 1 2

10 4 5 0 1 2 3

11 5 0 1 2 3 4

Page 24: Spartan-6 FPGA メモリ コントローラ ユーザー ガイド (UG388)

24 japan.xilinx.com Spartan-6 FPGA メモリ コン ト ローラ

UG388 (v2.3) 2010 年 8 月 9 日

第 2 章 : MCB の機能の説明

性を設定して所望のメモリ インターフェイスをインプリ メン トする簡単な手段です (例については、

UG416、 『Spartan-6 FPGA Memory Interface Solutions User Guide』 の 「Getting Started」 を参照)。

表 2-2 には MCB がサポートする メモ リ デバイス、表 2-3 には MCB がサポートするコン ト ローラ

属性を示します。各属性に対応する特定の HDL パラ メータ名、設定可能な値、および説明が記載さ

れています。通常、MIG ツールまたは IP Configurator のツールがすべてのパラ メータ値を設定する

ので、 パラ メータ値は直接変更しないでください。

メモ リのタイ ミ ング パラ メータはベンダーのデータシートから取得され、サポートするデバイスを

選択したと きにツールによ り自動的に割り当てられます。タイ ミ ング パラ メータは、カスタム デバ

イスの作成時に指定できます ( 『Spartan-6 FPGA Memory Interface Solutions User Guide』 の

「Setting Controller Options」 を参照)。

表 2-2 : メモリ デバイスの属性

メモリの属性 パラメータ名 説明/設定可能な値

メモ リのタイプ C_MEM_TYPE MCB にインプ リ メン ト されている メモ リの規

格を設定します。

設定可能な値 : DDR、 DDR2、 DDR3、 LPDDR

メモ リ データ バスの幅 C_NUM_DQ_PINS DQ バスのビッ ト幅を設定します。

設定可能な値 : 4、 8、 16

メモ リ アドレス バスの幅 C_MEM_ADDR_WIDTH メモ リのアドレス バスのビッ ト幅 (アドレス

ビッ トの合計数) を設定します。

設定可能な値 : MIG ツールで選択したデバイス

によって決ま り ます。

メモ リのバンク アドレス バスの幅

C_MEM_BANKADDR_WIDTH バンク アドレスのビッ ト数を設定します。

設定可能な値 : MIG ツールで選択したデバイス

によって決ま り ます。

メモ リの列アドレス バスの

C_MEM_NUM_COL_BITS 列アドレスのビッ ト数を設定します。

設定可能な値 : MIG ツールで選択したデバイス

によって決ま り ます。

メモ リのバース ト長 C_MEM_BURST_LEN 使用する メモ リのバース ト長を設定します。 メ

モ リの規格、ポート コンフ ィギュレーシ ョ ン、お

よびイ ン ターフ ェ イ スの幅に基づいて、 MIGツールが値を決定します。 DDR3 は常に 8 に設

定されます。

設定可能な値 : 4、 8

メモ リの CAS レイテンシ DDR、 DDR2、 LPDDR: C_MEM_CAS_LATENCY

DDR3 :

C_MEM_DDR3_CAS_LATENCY、

C_MEM_DDR3_CAS_WR_LATENCY

メモ リの CAS レイテンシ (READ コマンドから

初の出力データまでの遅延でクロ ッ ク サイク

ル単位で表される) を設定します。DDR3 は、別

の読み出しおよび書き込み CAS レイテンシの

値をと り ます。

設定可能な値 : メモ リのタイプによ り、2、3、4、5、 6、 7、 8、 9、 10

Page 25: Spartan-6 FPGA メモリ コントローラ ユーザー ガイド (UG388)

Spartan-6 FPGA メモリ コン ト ローラ japan.xilinx.com 25UG388 (v2.3) 2010 年 8 月 9 日

プログラム可能な MCB

部分的なアレイのセルフ

リ フレッシュ サイズ

C_MEM_MOBILE_PA_SR LPDDR 用 : セルフ リ フレッシュ動作のアレイ

サイズを設定します。

設定可能な値 : LPDDR: Full、 Half

メモ リの駆動電流 DDR、 DDR2 : C_MEM_DDR1_2_ODS

DDR3 : C_MEM_DDR3_ODS

LPDDR : C_MEM_MDDR_ODS

メモ リ デバイスの出力駆動電流を設定します。

設定可能な値 :

DDR/DDR2 : FULL、 REDUCED

DDR3 : DIV6 (RZQ/6)、 DIV7 (RZQ/7)

LPDDR : FULL、 THREEQUARTERS、HALF、 QUARTER

メモ リの終端値 (ODT) DDR2 : C_MEM_DDR2_RTT

DDR3 : C_MEM_DDR3_RTT

メモ リ デバイスのオンダイ終端抵抗を設定しま

す。

設定可能な値 :

DDR2 : OFF、 50OHMS、 75OHMS、150OHMS

DDR3 : OFF、 DIV2 (RZQ/2)、 DIV4 (RZQ/4)、 DIV6 (RZQ/6)、 DIV8 (RZQ/8)、DIV12 (RZQ/12)

メモ : RZQ = 240

メモ リの差動 DQS イネーブル

C_MEM_DDR2_DIFF_DQS_EN 差動 DQS のス ト ローブの使用をイネーブルに

します。 DDR3 ではこの属性は常にイネーブル

になり ます。DDR2 では、200MHz よ り高い周波

数で YES に設定されます。

設定可能な値 :

DDR2 : YES、 NO

メモ リのオート セルフ

リ フレッシュ

C_MEM_DDR3_AUTO_SR DDR3 のみ : オート セルフ リ フレッシュ機能に

よ り、 デバイス温度に基づいてメモ リが 適な

リ フレッシュ間隔を決定できます。 オート セル

フ リ フレ ッシュ機能を使用しない場合、 高温セ

ルフ リ フレッシュ レジスタを使用して、 動作温

度範囲を指定する必要があ り ます。

設定可能な値 : ENABLED、 MANUAL

メモ リの高温セルフ

リ フレッシュ

C_MEM_DDR2_3_HIGH_TEMP_SR DDR2 および DDR3 : メモ リ を高温セルフ リ フ

レッシュ モードにして、 リ フレッシュ間隔を短

くするこ とができます。

設定可能な値 :

DDR2/DDR3 : NORMAL (0–85°C)、EXTENDED (> 85°C)

表 2-2 : メモリ デバイスの属性 (続き)

メモリの属性 パラメータ名 説明/設定可能な値

Page 26: Spartan-6 FPGA メモリ コントローラ ユーザー ガイド (UG388)

26 japan.xilinx.com Spartan-6 FPGA メモリ コン ト ローラ

UG388 (v2.3) 2010 年 8 月 9 日

第 2 章 : MCB の機能の説明

メモ リの動的出力ド ラ イバの

終端

C_MEM_DDR3_DYN_WRT_ODT DDR3 用 : 動的出力ド ライバの終端値を指定し

ます。

設定可能な値 :

DDR3 : OFF、 DIV2 (RZQ/2)、 DIV4 (RZQ/4)

メモ リの tRAS 値 C_MEM_TRAS メモ リのアクテ ィブからプ リチャージまでの

小周期。

設定可能な値 (ピコ秒単位) : MIG ツールで選択

したデバイスによって決ま り ます。

メモ リの tRCD 値 C_MEM_TRCD メモ リのアクテ ィブから読み出しまたは書き込

みまでのコマンドの 小遅延。

設定可能な値 (ピコ秒単位) : MIG ツールで選択

したデバイスによって決ま り ます。

メモ リの tREFI 値 C_MEM_TREFI メモ リの平均リ フレッシュ間隔。MCB がメモ リ

を リ フレッシュする速度 (セルフ リ フレッシュ

間隔ではない) を設定します。

設定可能な値 (ピコ秒単位) : MIG ツールで選択

したデバイスによって決ま り ます。

メモ リの tRFC 値 C_MEM_TRFC メモ リのオート リ フレッシュからアクティブ コマンドまで、 またはオート リ フレッシュ コマン

ドの 小周期。

設定可能な値 (ピコ秒単位) : MIG ツールで選択

したデバイスによって決ま り ます。

メモ リの tRP 値 C_MEM_TRP メモ リのプリチャージ コマンドの 小周期。

設定可能な値 (ピコ秒単位) : MIG ツールで選択

したデバイスによって決ま り ます。

メモ リの tWR 値 C_MEM_TWR メモ リの書き込みリ カバリの 小時間。

設定可能な値 (ピコ秒単位) : MIG ツールで選択

したデバイスによって決ま り ます。

メモ リの tRTP 値 C_MEM_TRTP メモ リの読み出しからプ リチャージまでのコマ

ンドの 小遅延。通常、このパラ メータは、DDR2と DDR3 のデバイスにのみあ り ます。

設定可能な値 (ピコ秒単位) : MIG ツールで選択

したデバイスによって決ま り ます。

メモ リの tWTR 値 C_MEM_TWTR メモ リの書き込みから読み出しまでのコマンド

の 小遅延。

設定可能な値 (ピコ秒単位) : MIG ツールで選択

したデバイスによって決ま り ます。

表 2-2 : メモリ デバイスの属性 (続き)

メモリの属性 パラメータ名 説明/設定可能な値

Page 27: Spartan-6 FPGA メモリ コントローラ ユーザー ガイド (UG388)

Spartan-6 FPGA メモリ コン ト ローラ japan.xilinx.com 27UG388 (v2.3) 2010 年 8 月 9 日

プログラム可能な MCB

表 2-3 : コン ト ローラの属性

コン トローラの属性 パラメータ名 説明/設定可能な値

コン ト ローラのクロ ッ ク周期 C_MEMCLK_PERIOD メモ リのタイ ミ ング パラ メータをクロ ッ ク サイ ク

ルとピコ秒との間で変換します。

設定可能な値 (ピコ秒単位) : MIG ツールで選択し

た周波数によって決ま り ます。

コン ト ローラのポート コンフ ィギュレーシ ョ ン

C_PORT_CONFIG ユーザー インターフェイスのポート コンフ ィギュ

レーシ ョ ンを設定します。ポートの方向 (B = 双方向、

W = 一方向の書き込み、 R = 一方向の読み出し)、 お

よびデータ バスの幅 (32、 64、 128 ビッ ト ) を決定

します。

設定可能な値 :

B32_B32_W32_W32_W32_W32

B32_B32_W32_W32_W32_R32

B32_B32_W32_W32_R32_W32

B32_B32_W32_W32_R32_R32

B32_B32_W32_R32_W32_W32

B32_B32_W32_R32_W32_R32

B32_B32_W32_R32_R32_W32

B32_B32_W32_R32_R32_R32

B32_B32_R32_W32_W32_W32

B32_B32_R32_W32_W32_R32

B32_B32_R32_W32_R32_W32

B32_B32_R32_W32_R32_R32

B32_B32_R32_R32_W32_W32

B32_B32_R32_R32_W32_R32

B32_B32_R32_R32_R32_W32

B32_B32_R32_R32_R32_R32

B32_B32_B32_B32

B64_B32_B32

B64_B64

B128

ポートのデータ バスの幅 (ポート 0 およびポート 1)

C_P0_DATA_PORT_SIZE

C_P1_DATA_PORT_SIZE

ユーザー インターフェイスのポート 0 およびポー

ト 1 のデータ バスの幅は、選択したポート コンフ ィ

ギュレーシ ョ ンに合わせて別の値にする こ とがで

きます。ポート 3 ~ポート 5 (使用できる場合) は常

に 32 ビッ ト幅です。これらのパラ メータは、ポート

0 およびポート 1 のデータ幅を設定します。

設定可能な値 : 32、 64、 128

ポートのデータ マスク幅

(ポート 0 およびポート 1)

C_P0_MASK_SIZE

C_P1_MASK_SIZE

ポー ト コンフ ィ ギュレーシ ョ ンに指定したデータ

バス幅に合わせて、ポート 0 およびポート 1 のマス

ク ビッ ト数を設定します。

設定可能な値 : 4、 8、 16

Page 28: Spartan-6 FPGA メモリ コントローラ ユーザー ガイド (UG388)

28 japan.xilinx.com Spartan-6 FPGA メモリ コン ト ローラ

UG388 (v2.3) 2010 年 8 月 9 日

第 2 章 : MCB の機能の説明

コン ト ローラ ポート イネーブル

C_PORT_ENABLE この 6 ビッ ト値は、 下位のハードウェアの 32 ビッ

ト ポート 6 つのうち、 指定のポート コンフ ィギュ

レーシ ョ ンで使用するポート を指定します。

設定可能な値 :

例 : 6'b001111 はポート 0 ~ 3 をイネーブルに

指定

アドレスのマッピング順序 C_MEM_ADDR_ORDER ユーザー インターフェイスに渡されたバイ ト アド

レスを物理メモ リのバンク、 行、 および列のアドレ

ス ビッ トにマップする方法を指定します。この属性

は、 システムのア ド レ ス指定方式に基づき ます。

MCB のオープン バンク管理機能を 大に活用でき

るよ うに、 この値を設定する必要があ り ます。

設定可能な値 : BANK_ROW_COLUMN、

ROW_BANK_COLUMN

アービ ト レーシ ョ ンのタ イ ム

スロ ッ ト数

C_ARB_NUM_TIME_SLOTS アービ ト レーシ ョ ン テーブルのタイム スロ ッ ト数

を設定します。多くのポート コンフ ィギュレーシ ョ

ンのタイム スロ ッ ト数は 12 ですが、 アクティブ

ポートの数が 5 つのポート コンフ ィギュレーシ ョ

ンでは、 アービ ト レーシ ョ ンが等し く なるよ うに、

タイム スロ ッ ト数は 10 です。

設定可能な値 : 12、 10

アービ ト レーシ ョ ンのタ イ ム

スロ ッ トの値

C_ARB_TIME_SLOT[0:11] この 6 桁の 18 ビッ トの値は、各タイム スロ ッ トの

ポートの優先順位を設定します。

設定可能な値 :

例 : C_ARB_TIME_SLOT0 = 18'o012345 (ポート 0 の優先順位を 高と し、 それから順に優先順位

を下げ、 ポート 5 を 低の優先順位に設定)。

コ ン ト ローラのキャ リ ブレー

シ ョ ン バイパス (シ ミ ュレー

シ ョ ン)

C_MC_CALIB_BYPASS シ ミ ュレーシ ョ ンを高速処理するために、 シ ミ ュ

レーシ ョ ン ファ イル内にあるコン ト ローラのキャ

リブレーシ ョ ン シーケンスをスキップするよ うに MIG ツールに指示します。

メモ : このパラ メータは、 シ ミ ュレーシ ョ ン専用

です。

設定可能な値 : YES、 NO

表 2-3 : コン ト ローラの属性 (続き)

コン トローラの属性 パラメータ名 説明/設定可能な値

Page 29: Spartan-6 FPGA メモリ コントローラ ユーザー ガイド (UG388)

Spartan-6 FPGA メモリ コン ト ローラ japan.xilinx.com 29UG388 (v2.3) 2010 年 8 月 9 日

インターフェイスの詳細

インターフェイスの詳細

20 ページの図 2-1 のアーキテクチャ ブロ ッ ク図に示すよ うに、MCB には、FPGA ロジッ クへの内

部ユーザー インターフェイス、および事前定義済みの I/O ピンを経由する、メモ リ デバイスへの外

部インターフェイス という 2 つの基本的なインターフェイスがあ り ます。次の項で、 これら 2 つの

インターフェイスに関連するすべての信号について詳し く説明します。 これ以降、 この文書で説明

するインターフェイスはすべて、CORE Generator ツールまたは EDK ツールのフローによ り提供さ

れた IP ラ ッパのインターフェイスです。 下位のメモ リ コン ト ローラ ブロ ッ クのプリ ミ ティブのイ

ンターフェイスについては説明しません。

ユーザー (ファブリ ック側) インターフェイス

ユーザー インターフェイスには、FPGA ロジッ クに含まれるユーザー ロジッ クが MCB ポートのコ

マンド パスおよびデータパス と対話するために必要なすべての信号が含まれます。 また、 MCB 用の汎用クロ ッ ク信号と リセッ ト信号、およびキャ リブレーシ ョ ン、デバッグ、およびセルフ リ フレッ

シュ動作に関連する信号も含まれます。21 ページの 「ポート コンフ ィギュレーシ ョ ン」 に示すよ う

に、 ユーザー インターフェイスは、 1 ~ 6 個のポート を持つよ うに設定できます。

キャ リ ブレーシ ョ ン用に予約

するアドレス空間

C_MC_CALIBRATION_RA

C_MC_CALIBRATION_BA

C_MC_CALIBRATION_CA

キャ リブレーシ ョ ン用に予約する開始行、 開始バン

ク、および開始列を指定します。この属性は、再キャ

リ ブレーシ ョ ン時にアプ リ ケーシ ョ ン データの上

書きを防ぐために、一連のパターン データに使用し

ます。

設定可能な値 (任意の有効なアドレス)

例 :

C_MC_CALIBRATION_RA = 15'h0000

C_MC_CALIBRATION_BA = 3'h0

C_MC_CALIBRATION_CA = 12'h000

キャ リブレーシ ョ ン モード C_MC_CALIBRATION_MODE DQS のデータ ウ ィンド ウ内へのオフセッ トに、

MCB が DQS ス ト ローブの正確な位置合わせと

リ アルタイムの電圧/温度補正を実行するか (推奨)、ビ ッ ト 周期の固定比率を単純に使用するかを決定

します。

設定可能な値 : CALIBRATION (正確な DQS のア

ライ メン ト と電圧/温度補正)、 NOCALIBRATION (固定 DQS オフセッ ト遅延)

DQS オフセッ ト遅延値 C_MC_CALIBRATION_DELAY C_MC_CALIBRATION_MODE = NO

CALIBRATION のと きに、固定の DQS オフセッ ト

遅延を、 ビッ ト周期の割合と して設定します。

設定可能な値 : QUARTER、 HALF、THREEQUARTER、 FULL

表 2-3 : コン ト ローラの属性 (続き)

コン トローラの属性 パラメータ名 説明/設定可能な値

Page 30: Spartan-6 FPGA メモリ コントローラ ユーザー ガイド (UG388)

30 japan.xilinx.com Spartan-6 FPGA メモリ コン ト ローラ

UG388 (v2.3) 2010 年 8 月 9 日

第 2 章 : MCB の機能の説明

クロック、 リセッ ト、 およびキャリブレーシ ョ ンの信号

表 2-4 に、 MCB ユーザー インターフェイスのクロ ッ ク、 リセッ ト 、 およびキャ リブレーシ ョ ンに

関する信号を示します。

コマンド パス

表 2-5 に、 MCB ユーザー インターフェイスのコマンド パスに関する信号を示します。ポート信号

名にはすべて、 接頭辞 「pX」 が付いています。 「X」 は、 ポート番号を示します。 たとえば、 ポート

0 の信号には 「P0」、 ポート 1 の信号には 「P1」 とい う よ うに接頭辞が付けられます。

表 2-4 : クロック、 リセッ ト、 およびキャリブレーシ ョ ンの信号

信号名 方向 説明

async_rst 入力 MCB のメ イン システム リセッ ト 。

calib_done 出力

このアクティブ High 信号は、 MCB のスタート アップ シー

ケンス時にキャ リ ブレーシ ョ ンのすべてのフェーズが完了

したこ とを示します。この信号が High になり、キャ リブレー

シ ョ ンが完了したこ とを示すまで、 ト ランザクシ ョ ンは送信

しないでください。詳細は、第 4 章 の 「キャ リブレーシ ョ ン」

を参照して ください。

mcb_drp_clk 入力

このクロ ッ クは、 ソフ ト キャ リブレーシ ョ ン モジュールを

sysclk_2x ド メ インに同期します。 そのド メ インに確実に位

相同期するよ うに、sysclk_2x と同じ PLL でクロ ッ クを生成

する必要があ り ます。詳細は、第 3 章 の 「ク ロ ッ ク」 を参照

してください。

pll_ce_0 入力

BUFPLL_MCB からのス ト ローブをイネーブルする I/O クロ ッ ク。 この信号は、 sysclk_2x の 2 つのクロ ッ ク サイクル

ごとに、 High をパルス駆動します。 I/O ブロ ッ クのデータ転

送速度を 2 倍にするために使用されます。

pll_ce_90 入力

BUFPLL_MCB からのス ト ローブをイネーブルする I/O クロ ッ ク。 この信号は、 sysclk_2x_180 の 2 つのクロ ッ ク サイ

クルごとに、 High をパルス駆動します。 I/O ブロ ッ クのデー

タ転送速度を 2 倍にするために使用されます。

pll_lock 入力 BUFPLL_MCB ブロッ クからのロッ ク信号。

sysclk_2x 入力

MCB のメ イン システム ク ロ ッ ク。 この信号は Spartan-6FPGA PLL ブロッ クで生成され、I/O ク ロ ッ ク ネッ ト ワーク

に送出される前に BUFPLL_MCB ド ラ イバによ り再バッ

ファ されます。 メモ リのクロ ッ ク周波数の 2 倍の速度 (例 : 333MHz のメモ リ インターフェイスの場合は 667MHz)で動作します。

sysclk_2x_180 入力 この入力は、 sysclk_2x と同じ周波数で位相がシフ ト したク

ロ ッ クです。 同じ PLL/BUFPLL_MCB リ ソースで生成され

ます。

Page 31: Spartan-6 FPGA メモリ コントローラ ユーザー ガイド (UG388)

Spartan-6 FPGA メモリ コン ト ローラ japan.xilinx.com 31UG388 (v2.3) 2010 年 8 月 9 日

インターフェイスの詳細

表 2-5 : コマンド パスの信号

信号名 方向 説明

pX_cmd_addr[29:0] 入力

現在の ト ランザクシ ョ ンのバイ ト開始アドレス。 アド レス

はポートのサイズに合わせて位置合わせする必要があ り ま

す。

32 ビッ トのポート : 下位 2 ビッ トがすべて 0 である必

要があ り ます。

64 ビッ トのポート : 下位 3 ビッ トがすべて 0 である必

要があ り ます。

128 ビッ トのポート : 下位 4 ビッ トがすべて 0 である必

要があ り ます。

pX_cmd_bl[5:0] 入力

現在のト ランザクシ ョ ンのバース ト長 (単位: ユーザー

ワード )。バース ト長は 0 ~ 63 と してエンコード され、1 ~64 のユーザー ワードを表します。たとえば、6'b00011 は、

バース ト 長 4 の ト ランザクシ ョ ンを表し ます。 ユーザー

ワード幅は、ポート幅と等し くな り ます。たとえば、64-ビッ

ト ポートでのバース ト長 3 は、 3 x 64 (ビッ トのユーザー

ワード )、 つま り合計 192 ビッ ト を転送します。

pX_cmd_clk 入力 コマンド用 FIFO のユーザー ク ロ ッ ク。FIFO 信号が、この

クロ ッ クの立ち上がりエッジでキャプチャされます。

pX_cmd_empty 出力 これは、 コマンド用 FIFO のアクティブ High の空フラグ

で、FIFO のキューに入っているコマンドがないこ とを示し

ます。 ただし、 送信中のコマンドがある場合があ り ます。

pX_cmd_en 入力 このアクティブ High 信号は、コマンド用 FIFO の書き込み

イネーブル信号です。 この信号の詳細は、 第 4 章を参照し

てください。

pX_cmd_error 出力 この出力は、FIFO ポイン トが同期されていないためにコマ

ンド ポート エラーが発生したこ とを示します。この状態か

らのリ カバリには、 MCB のリセッ トが必要です。

pX_cmd_full 出力 このアクティブ High 信号は、 コマンド用 FIFO のフル フラグです。FIFO がこれ以上のコマンドを受信できないこ と

を示し、コマンド用 FIFO への書き込みをブロ ッ ク します。

pX_cmd_instr[2:0] 入力

現在の命令のコマンド コード。ビッ ト 0 は書き込み/読み出

しの選択、ビッ ト 1 は自動プリチャージのイネーブル、ビッ

ト 2 はリ フレッシュ (常に優先される) を示します。

書き込み : 3'b000

読み出し : 3'b001

書き込みと自動プリチャージ : 3'b010

読み出し と自動プリチャージ : 3'b011

リ フレッシュ : 3'b1xx

この信号の詳細は、 第 4 章を参照してください。

Page 32: Spartan-6 FPGA メモリ コントローラ ユーザー ガイド (UG388)

32 japan.xilinx.com Spartan-6 FPGA メモリ コン ト ローラ

UG388 (v2.3) 2010 年 8 月 9 日

第 2 章 : MCB の機能の説明

書き込みデータパス

表 2-6 に、 MCB ユーザー インターフェイスの書き込みデータパスに関する信号を示します。 ポー

ト信号名にはすべて、 接頭辞 「pX」 が付いています。 「X」 は、 ポート番号を示します。 たとえば、

ポート 0 の信号には 「P0」、 ポート 1 の信号には 「P1」 とい う よ うに接頭辞が付けられます。

表 2-6 : 書き込みデータパスの信号

信号名 方向 説明

pX_wr_clk 入力 この信号は、書き込みデータ用 FIFO のユー

ザー ク ロ ッ クです。

pX_wr_count[6:0] 出力

書き込みデータ用 FIFO のカウン ト値。この

出力は、FIFO に入っているユーザー ワード

数 (1 ~ 64) を示します。 カウン ト値 0 は、

FIFO が空であるこ とを示します。 この信号

のレイテンシは、 pX_wr_empty フラグよ り

も長いです。 このため、カウン トが 0 以外の

値でも、 FIFO が空である場合や FIFO がア

ンダーラン状態である場合があ り ます。

pX_wr_data[PX_SIZE-1:0] 入力

書き込みデータ用 FIFO にロード し、 メモ リ

に送信する書き込みデータの値。 PX_SIZEは、 ポート コンフ ィギュレーシ ョ ンによ り、

32、64、または 128 ビッ トの値をと るこ とが

できます。

pX_wr_empty 出力 このアクティブ High 信号は、 書き込みデー

タ用 FIFO の空フラグです。 FIFO に有効な

データがないこ とを示します。

pX_wr_en 入力

このアクティブ High 信号は、 書き込みデー

タ用 FIFO の書き込みイネーブルです。

pX_wr_data の値が、 FIFO へのロードに有

効であるこ とを示します。 pX_wr_en = 1 かつ pX_wr_full = 0 の場合、 データが pX_wr_clk の立ち上がりエッジでロード さ

れます。

pX_wr_error 出力

この信号は、 FIFO ポイン トが同期されてい

ないために書き込みデータ用 FIFO のエ

ラーが発生したこ とを示します。この状態か

らのリ カバリには、 MCB のリセッ トが必要

です。

pX_wr_full 出力

このアクティブ High 信号は、 書き込みデー

タ用 FIFO のフル フラグです。 この信号が

High の場合、データは FIFO にロード されま

せん。

Page 33: Spartan-6 FPGA メモリ コントローラ ユーザー ガイド (UG388)

Spartan-6 FPGA メモリ コン ト ローラ japan.xilinx.com 33UG388 (v2.3) 2010 年 8 月 9 日

インターフェイスの詳細

読み出しデータパス

表 2-7 に、 MCB ユーザー インターフェイスの読み出しデータパスに関する信号を示します。 ポー

ト信号名にはすべて、 接頭辞 「pX」 が付いています。 「X」 は、 ポート番号を示します。 たとえば、

ポート 0 の信号には 「P0」、 ポート 1 の信号には 「P1」 とい う よ うに接頭辞が付けられます。

pX_wr_mask[PX_MASKSIZE-1:0] 入力

書き込みデータのデータ マスク ビッ ト 。 こ

の マ ス ク は、 対応す る 書 き 込みデー タ

(pX_wr_data) と同期して FIFO にロード さ

れます。1 マスク ビッ トが各データ バイ トに

対応します。pX_wr_mask ビッ トが High の場合、 対応するデータ バイ トがマスク され、

メモ リには書き込まれません。

pX_wr_underrun 出力

このアクティブ High 信号は、 アンダーラン

フラグです。 ト ランザクシ ョ ンの完了に必要

なデータが、書き込みデータ用 FIFO にない

こ とを示します。 後に有効なデータ ワー

ドが、連続的に書き込まれてバース ト を終了

します。アンダーランが発生しないよ うにす

るには、コマンド用 FIFO に書き込み命令を

送出する と きに、 FIFO に十分なデータを確

保しておきます。このフラグを リセッ ト して

この状態から復旧するには、 sys_rst 信号を

アサートする必要があ り ます。

表 2-6 : 書き込みデータパスの信号 (続き)

信号名 方向 説明

表 2-7 : 読み出しデータパスの信号

信号名 方向 説明

pX_rd_clk 入力 この入力は、 読み出しデータ用 FIFO のユーザー クロ ッ クです。

pX_rd_en 入力

このアクティブ High 信号は、 読み出しデータ用 FIFO の読み出しイネーブルです。 pX_rd_en = 1 かつ pX_rd_empty = 0 の場合、 読み出しデータが pX_rd_clk の立ち上がりエッジでクロ ッ クに合わせ

て出力されます。

pX_rd_data[PX_SIZE-1:0] 出力

メモ リから返される読み出しデータの値。 この信号

は、 読み出しデータ用 FIFO から FPGA ロジッ クへ

の出力によ り駆動されます。PX_SIZE は、ポート コンフ ィギュレーシ ョ ンによ り、 32、 64、 または 128ビッ トの値をと るこ とができます。

pX_rd_full 出力 このアクティブ High 信号は、 読み出しデータ用 FIFO のフル フラグです。 High の場合、 メモ リから

返された追加データは FIFO にロード されません。

Page 34: Spartan-6 FPGA メモリ コントローラ ユーザー ガイド (UG388)

34 japan.xilinx.com Spartan-6 FPGA メモリ コン ト ローラ

UG388 (v2.3) 2010 年 8 月 9 日

第 2 章 : MCB の機能の説明

セルフリフレッシュ信号

表 2-8 に、ユーザー インターフェイスからアクセス可能なセルフ リ フレッシュ信号を示します。セ

ルフ リ フレッシュの詳細は、 第 4 章を参照してください。

pX_rd_empty 出力 このアクティブ High 信号は、 読み出しデータ用 FIFO の空フラグです。 FIFO に有効なデータがない

こ とを示します。

pX_rd_count[6:0] 出力

読み出しデータ用 FIFO のカウン ト値。 この信号は、

FIFO に入っているユーザー ワード数 (1 ~ 64) を示

します。カウン ト値 0 は、FIFO が空であるこ とを示

します。この信号のレイテンシは、pX_rd_full フラグ

よ り も長いです。 このため、カウン トが 64 未満の値

でも、FIFO がフルである場合やオーバーフローして

いる場合があ り ます。

pX_rd_overflow 出力

このアクティブ High 信号は、 オーバーフロー フラ

グです。 読み出しデータ用 FIFO がフルになった後

に読み出しデータ コマンドがメモ リから継続して

データを返したために、 データが失われたこ とを示

します。

オーバーフローを防止するには:

• コマンド用 FIFO に読み出し命令を送出する前

に、 要求した読み出しデータを格納するだけの十

分なスペースが FIFO にあるこ とを確認します。

• 必ず、 送信中のト ランザクシ ョ ンを考慮してく

ださい。

このフラグを リセッ ト してこの状態から復旧するに

は、 sys_rst 信号をアサートする必要があ り ます。

pX_rd_error 出力

この信号は、FIFO ポイン トが同期されていないため

に読み出しデータ用 FIFO のエラーが発生したこ と

を示します。 この状態からのリ カバリには、MCB のリセッ トが必要です。

表 2-7 : 読み出しデータパスの信号 (続き)

信号名 方向 説明

表 2-8 : セルフリフレッシュ信号

信号名 方向 説明

selfrefresh_enter 入力

この入力は、立ち上がりエッジの影響を受けます。この

入力をアサートする と、 MCB はメモ リ デバイスにセ

ルフ リ フレッシュ モードになるよ うに要求します。

selfrefresh_mode 信号がアクティブになるまで、 この

信号はアサート された状態である必要があ り ます。

selfrefresh_mode 出力 このアクティブ High 信号は、 メモ リ デバイスがセル

フ リ フレッシュ モードであるこ とを示します。

Page 35: Spartan-6 FPGA メモリ コントローラ ユーザー ガイド (UG388)

Spartan-6 FPGA メモリ コン ト ローラ japan.xilinx.com 35UG388 (v2.3) 2010 年 8 月 9 日

インターフェイスの詳細

メモリ デバイス インターフェイス

メモ リ デバイス インターフェイスには、 外部メモリ デバイスとの通信に必要なすべての信号があ

り ます。 これらの信号 (表 2-9) はすべて、 Spartan-6 デバイスにピン位置が事前定義されています。

各デバイス /パッケージの組み合わせについて、MCB ピン配置の詳細は UG385、『Spartan-6 FPGAPackaging and Pinout Specification』 を参照して ください。 さ らに、 MIG ツールが生成するソフ ト

キャ リブレーシ ョ ン モジュールでは、すべての MCB デザインについて、追加ピン (RZQ) を配置す

る必要があ り ます。 RZQ は必須のピンですが、 その位置は MCB バンク内で移動できます。 MIGツールでキャ リブレーシ ョ ン済み入力終端を選択した場合、ソフ ト キャ リブレーシ ョ ン モジュール

で使用する ZIO ピンも生成されます。 ZIO の位置も移動できますが、 MCB バンク内のボンディン

グされた I/O (有効なパッケージ ピン) に配置する必要があ り ます。RZQ と ZIO の詳細は、UG416、『Spartan-6 FPGA Memory Interface Solutions User Guide』 の 「Setting FPGA Options」 を参照して

ください。

メモ : MCB が使用されないと きには、事前定義済みのピンはすべて、汎用 I/O に戻り ます。さ らに、

アクティブな MCB の未使用のピンも、 汎用 I/O に戻り ます。 汎用 I/O に戻るものと して、 特定の

集積度のデバイスに不要な高次アドレス ピンやバンク アドレス ピン、 特定のインターフェイス幅

に不要な DQ データ ビッ ト 、 特定のメモ リ規格に不要な リセッ ト信号と ODT 信号、 x4 または x8のインターフェイスの UDQS / UDQS_n ス ト ローブなどがあ り ます。その他のインターフェイス ピンはすべて、MCB ベースのデザインすべてに必須です。 さ らに、汎用 I/O リ カバリ規則の例外が 2つあり ます。

a. データ マスク ピンは、LDM のみを使用する場合に UDM は汎用 I/O に使用できないよ う

に対になり ます。 ユーザー インターフェイスで可変バース ト長をサポートするために、

データ マスク ピンはすべての MCB デザインに必須です。 このため、 MCB を使用する と

きは常に、 LDM と UDM の両方が、 汎用 I/O と して使用できません。

b. データ ス ト ローブ ピンは、 DQS のみを使用する (シングルエンド ス ト ローブ) 場合に DQS_n は汎用 I/O に使用できないよ うに対になり ます。これは、UDQS と UDQS_n にも

当てはま り ます。

表 2-9 : メモリ デバイス インターフェイスの信号

信号名 方向 説明

mcbx_dram_addr[C_MEM_ADDR_WIDTH–1:0] 出力

メモ リ デバイスへのアドレス バス。

C_MEM_ADDR_WIDTH は、メモ リ デバイス

の設定に合わせて MIG ツールによ り設定され

ます ( 大値は 15)。

mcbx_dram_ba[2:0] 出力 メモ リ デバイスへのバンク アドレス バス。

MCB は、 メモ リ デバイスのバンクを 大 8 個サポート します。

mcbx_dram_cas_n 出力 この信号は、 メモ リ デバイスへのアクティブ

Low の列アドレス ス ト ローブです。

mcbx_dram_cke 出力 このアクティブ High 信号は、 メモ リ デバイス

のクロ ッ ク イネーブルです。

mcbx_dram_clk 出力 この出力は、メモ リ デバイスへの差動クロ ッ ク

(p 出力) です。

mcbx_dram_clk_n 出力 この出力は、メモ リ デバイスへの差動クロ ッ ク

(n 出力) です。

Page 36: Spartan-6 FPGA メモリ コントローラ ユーザー ガイド (UG388)

36 japan.xilinx.com Spartan-6 FPGA メモリ コン ト ローラ

UG388 (v2.3) 2010 年 8 月 9 日

第 2 章 : MCB の機能の説明

mcbx_dram_ddr3_rst 出力 この信号は、メモ リ デバイスへの DDR3 リセッ

トです。

mcbx_dram_dq[C_NUM_DQ_PINS–1:0] 双方向

メモリ デバイスへの双方向データ バス。

C_NUM_DQ_PINS は、メモ リ デバイスの設定

に合わせて MIG ツールによ り設定されます (有効な値は 4、 8、 16)。

mcbx_dram_dqs 双方向

DQ[7:0] の双方向データ ス ト ローブ。この信号

は、 読み出し ト ランザクシ ョ ンでは入力、 書き

込みト ランザクシ ョ ンでは出力です。

mcbx_dram_dqs_n 双方向

DQ[7:0] の双方向補完データ ス ト ローブ。この

信号は、 読み出し ト ランザクシ ョ ンでは入力、

書き込みト ランザクシ ョ ンでは出力です。

mcbx_dram_ldm 出力 この出力は、 x16、 x8、 または x4 の設定の下位

データ バイ ト (DQ[7:0]) のデータ マスクです。

mcbx_dram_odt 出力 この出力は、 オンダイ終端信号です。 ODT は、

DDR2 および DDR3 でサポート されます。

mcbx_dram_ras_n 出力 このアクティブ Low 信号は、 メモ リ デバイス

への行アドレス ス ト ローブです。

mcbx_dram_udm 出力 この出力は、 x16 デバイス と インターフェイス

をと る場合の上位データ バイ ト (DQ[15:8]) のデータ マスクです。

mcbx_dram_udqs 双方向

DQ[15:8] の双方向データ ス ト ローブ。 この信

号は、 読み出し ト ランザクシ ョ ンでは入力、 書

き込みト ランザクシ ョ ンでは出力です。

mcbx_dram_udqs_n 双方向

DQ[15:8] の双方向補完データ ス ト ローブ。 こ

の信号は、 読み出し ト ラ ンザクシ ョ ンでは入

力、 書き込みト ランザクシ ョ ンでは出力です。

mcbx_dram_we_n 出力 この信号は、 メモ リ デバイスへのアクティブ

Low 書き込みイネーブルです。

表 2-9 : メモリ デバイス インターフェイスの信号 (続き)

信号名 方向 説明

Page 37: Spartan-6 FPGA メモリ コントローラ ユーザー ガイド (UG388)

Spartan-6 FPGA メモリ コン ト ローラ japan.xilinx.com 37UG388 (v2.3) 2010 年 8 月 9 日

インターフェイスの詳細

メモ : メモ リ デバイスの CS#、ODT、および CKE のピンに関するボードの設計要件は、第 3 章 の「PCB レイアウ トでの考慮事項」 を参照してください。

rzq 双方向

すべての MCB デザインに必須のピン。 MIG ツールでキャ リ ブレーシ ョ ン済み入力終端を

選択した場合、RZQ ピンには、ピンからグラン

ドまで 2R の値を持つ抵抗が必要です。R は、所

望の入力終端値です。 それ以外の場合は、 RZQピンは、 接続のないピンにする必要があ り ま

す。 RZQ ピンは、 MCB バンク内の有効なパッ

ケージ ピンに移動できます。

zio 双方向

キャ リ ブレーシ ョ ン済み入力終端を選択した

場合、ソフ ト キャ リブレーシ ョ ン モジュールと

共に使用される接続なし信号。ZIO は、MCB バンク内の有効なパッケージ ピンに配置する必

要があ り、 このピンに基板ト レースを付属する

こ とはできません (接続なし )。 キャ リブレー

シ ョ ン済み入力終端を使用しないデザインで

は、 ZIO は生成されません。

表 2-9 : メモリ デバイス インターフェイスの信号 (続き)

信号名 方向 説明

Page 38: Spartan-6 FPGA メモリ コントローラ ユーザー ガイド (UG388)

38 japan.xilinx.com Spartan-6 FPGA メモリ コン ト ローラ

UG388 (v2.3) 2010 年 8 月 9 日

第 2 章 : MCB の機能の説明

Page 39: Spartan-6 FPGA メモリ コントローラ ユーザー ガイド (UG388)

Spartan-6 FPGA メモリ コン ト ローラ japan.xilinx.com 39UG388 (v2.3) 2010 年 8 月 9 日

第 3 章

MCB を使用したデザイン

この章では、 Spartan®-6 FPGA MCB を使用したデザインを作成する方法を詳し く説明します。

次のセクシ ョ ンがあ り ます。

• 「デザイン フロー」

• 「サポートする メモ リ デバイス」

• 「シ ミ ュレーシ ョ ン」

• 「 リ ソースの使用量」

• 「ク ロ ッ ク」

• 「移行とバンク指定」

• 「PCB レイアウ トでの考慮事項」

デザイン フロー

次の 2 種類の MCB のデザイン フローがサポート されています。

• 非エンベデッ ド デザイン フロー

• Xilinx® ISE® ツールのフローを使用する従来の FPGA デザイン

• MCB デザイン用 CORE Generator™ ツール内にある MIG ツールを使用します。

• エンベデッ ド デザイン フロー

• EDK ツールのフローを使用する、 プロセッサベースの FPGA システム

• MCB デザイン用 EDK 環境内で、Xilinx Platform Studio (XPS) の IP Configurator を使用

します。

両方のツールのフローは、外部メモ リ デバイスと接続する信頼性の高いインターフェイスを開発す

るための単純な方法です。ステップごとの GUI 方式によるフローによ り、アプリ ケーシ ョ ンのニー

ズに厳密に合わせて、 MCB ベースのデザインの設定とパラ メータ指定ができます。

MIG ツールのフローには、 実際、 下位ラ ッパ (mcb_raw_wrapper.v) と 上位ラ ッパ (memc3_wrapper.v など) の 2 レベルのラ ッパがあ り ます。下位ラ ッパには、 ソ リ ューシ ョ ンに必

要なシ リ コン ブロ ッ ク (MCB、 I/O など)、 およびソフ ト ロジッ ク (ソフ ト キャ リブレーシ ョ ン モジュール) がすべて組み込まれています。また、元のハード ウェアへのユーザー インターフェイスの

ポートやキャ リブレーシ ョ ン ロジッ クのインプリ メンテーシ ョ ンに対応するすべての信号へのア

クセスも提供します。 上位ラ ッパは信号の再割り当てを処理し、 必要に応じて下位ラ ッパ信号を

ま とめ、 MIG ツールの選択項目に基づいてパラ メータ値を下位ラ ッパに渡します。

Page 40: Spartan-6 FPGA メモリ コントローラ ユーザー ガイド (UG388)

40 japan.xilinx.com Spartan-6 FPGA メモリ コン ト ローラ

UG388 (v2.3) 2010 年 8 月 9 日

第 3 章 : MCB を使用したデザイン

上位ラ ッパは、 MIG ツールのフローで設定された MCB ベースのデザインのインプリ メンテー

シ ョ ンに必要な信号のみを持つ、 整理されたインターフェイスです。 たとえば、 下位レベルラ ッパ

は常に、ネイティブの 32 ビッ ト ポート 6 個をすべてユーザー インターフェイスに表示しますが、

上位ラ ッパは信号の再割り当てを行い、未使用ポート をま とめ、バスを連結して、単一の 64 ビッ ト

ポートのよ うな、 ユーザーが求めるポート インターフェイスを表示します。 上位ラ ッパは、 よ り

大きい FPGA デザインに後で統合されるラ ッパです。

下位ラ ッパ (mcb_raw_wrapper.v) は、 このユーザー ガイ ド全体で説明されています。 たとえば、

第 2 章のパラ メータ とシグナルの一覧では、 この下位ラ ッパに関してすべて説明しています。 この

下位ラ ッパは、MIG ツールの GUI フローでの選択項目によって変化しません。一方、 上位ラ ッパ

は、 ユーザーの選択項目と してカスタマイズされます。

さ らに、 エンベデッ ド デザイン フロー (EDK) では、 マルチポート メモ リ コン ト ローラ (MPMC)のペリ フェラルを作成する基礎と して、同じ下位ラ ッパを使用します。XPS の IP Configurator を使

用する と、下位ラ ッパの上に必要なソフ ト ブリ ッジを追加して、次に示すよ うなペリ フェラルのイ

ンターフェイスを作成できます。

• PLB インターフェイス

• Xilinx Cache Link (XCL) インターフェイス

• LocalLink (LL) インターフェイス

• EDK がサポートするその他のパーソナリティ インターフェイス モジュール (PIM)

図 3-1 に、非エンベデッ ド (MIG) とエンベデッ ド (EDK) の両方のデザイン フローで下位ラ ッパを

使用する方法を示します。

X-Ref Target - Figure 3-1

図 3-1 : 非エンベデッ ド デザインとエンベデッ ド デザインに共通の下位ラッパ

Top-levelUser

Interface

UG388_c4_01_050409

Top-levelUser

Interface

PLB Ports

SoftBridges

Top-level Wrapper (MIG)

Lower-level Wrapper

Top-level Wrapper (EDK)

Embedded Design(EDK / XPS)

Non-embedded Design(MIG/CORE Generator Tool)

Lower-level Wrapper

MCB

Soft CalibrationModule

I/OXCL

LL

Ports

MCB

PortGrouping

SignalTie Off

Soft CalibrationModule

I/O

Page 41: Spartan-6 FPGA メモリ コントローラ ユーザー ガイド (UG388)

Spartan-6 FPGA メモリ コン ト ローラ japan.xilinx.com 41UG388 (v2.3) 2010 年 8 月 9 日

サポートするメモリ デバイス

CORE Generator ツール

図 3-2 に、MCB ベースのメモ リ インターフェイスを非エンベデッ ド (従来の) FPGA デザインに統

合する高度なデザイン フローを示します。 UG416、 『Spartan-6 FPGA Memory Interface SolutionsUser Guide』 の 「Getting Started」 の章で、 このデザイン フローのフェーズ- 1 について、 ステップ

ごとのガイ ドを詳し く説明しています。 フェーズ 2 とフェーズ 3 はこの文書の範囲外ですが、 ISEツールのフローに関する詳しい手順がザイ リ ンクスの文書ライブラ リにあ り ます。

サポートするメモリ デバイス

表 3-1 に、ザイ リ ンクスの検証プラ ッ ト フォームで MCB との動作が検証される メモ リ デバイスを

示します。これらのデバイスは、MIG ツール (または EDK) の GUI フローで、サポートするデバイ

スのド ロ ップダウン リ ス トから選択できます。ザイ リ ンクスの将来のリ リースで、MIG のサポート

するデバイスのド ロ ップダウン リ ス トにデバイスを追加する予定ですが、 追加されるデバイスに

は、 「シ ミ ュレーシ ョ ンのみ」 の検証が実行されます。 さ らに、 MIG ツールでカスタム デバイスを

作成できますが、 カスタム デバイスには、ザイ リ ンクスのシ ミ ュレーシ ョ ンやハード ウェア検証は

実行されません。 詳細は、 UG416、 『Spartan-6 FPGA Memory Interface Solutions User Guide』 の

「Setting Controller Options」 を参照してください。

X-Ref Target - Figure 3-2

図 3-2 : 非エンベデッ ド (従来の) FPGA アプリケーシ ョ ン向けの MCB のデザイン フロー

Phase 2Phase 1 Phase 3

Integrate MIG UCFConstraints into OverallDesign Constraints File

Import MIG RTL andBuild Options intoISE Tool Project

Perform FunctionalSimulation with MIGDesign Integrated

Implement Design

UG388_c4_02_050409

Synthesis, MAP, PAR

Perform TimingSimulation on

Completed Design

Verify Designin Hardware

Generate RTL and UCF Files

Launch MIG Toolfrom Inside the

CORE Generator Tool

Make MIG selections forFPGA/Memory Parameters

Perform FunctionalSimulation on MIGExample Design

(optional)

表 3-1 : MCB 用にサポート されるメモリ デバイス

標準 ベンダー 製品番号 幅 集積度

DDR3 Micron MT41J64M16xx-187E 16 1Gb

DDR3 Micron MT41J256M8xx-187E 8 2Gb

DDR3 Micron MT41J128M8xx-187E 8 1Gb

DDR3 Micron MT41J256M4xx-187E 4 1Gb

DDR3 Micron MT41J512M4xx-187E 4 2Gb

DDR2 Micron MT47H256M4xx-25E 4 1Gb

DDR2 Micron MT47H64M8xx-25E-IT 8 512Mb

DDR2 Micron MT47H128M8xx-25 8 1Gb

Page 42: Spartan-6 FPGA メモリ コントローラ ユーザー ガイド (UG388)

42 japan.xilinx.com Spartan-6 FPGA メモリ コン ト ローラ

UG388 (v2.3) 2010 年 8 月 9 日

第 3 章 : MCB を使用したデザイン

シミ ュレーシ ョ ン

MIG (または EDK) のラ ッパに含まれる元の MCB のシ ミ ュレーシ ョ ン モデルは、 Verilog LRM-IEEE Std 1364-2005 の指定どおりに暗号化されます。 これは、PCI Express® デザインの GTP ト ラ

ンシーバや統合エンドポイン ト ブロ ッ クなど、 ザイ リ ンクスが提供する他の IP と同様です。

この暗号化方法向けに、 ザイ リ ンクスは次のシ ミ ュレータをサポート しています。

• ModelSim 6.4b 以降

コンピュータに適切なバージ ョ ンのシ ミ ュレータが用意されている場合、通常の COMPXLIB スク

リプ トの実行時に、 MCB の暗号化モデルが自動的にコンパイルされます。 Verilog ベースのデザイ

ンのシ ミ ュレーシ ョ ンを実行する と きには、 次のライブラ リが参照されます。

secureip

ほとんどのシ ミ ュレータで、 この参照は、 -L secureip のよ うに、 -L スイ ッチをシ ミ ュレータの

引数と して使用するこ とによ り実行できます。

メモ : デザイン入力言語と して VHDL を使用して、 ModelSim で MCB を含むデザインをシ ミ ュ

レートする場合は、 混合言語ライセンスが必要です。

secureip の方法を使用する IP ブロ ッ クのシ ミ ュレーシ ョ ンの詳細は、 UG626、 『合成/シ ミ ュレー

シ ョ ン デザイン ガイ ド』 を参照してください。

DDR2 Micron MT47H128M16xx-3 16 2Gb

DDR2 Micron MT47H256M4xx-3 4 1Gb

DDR2 Micron MT47H16M16xx-3 16 256Mb

DDR2 Micron MT47H32M16xx-37E 16 512Mb

DDR2 Micron MT47H32M8xx-37E 8 256Mb

DDR2 Micron MT47J64M16xx-3 16 1Gb

DDR2 Micron MT47J256M4xx-37E 4 1Gb

DDR2 Micron MT47J128M8xx-3 8 1Gb

DDR2 Elpida EDE1116ACBG-8E 16 1Gb

DDR2 Elpida EDE5116AJBG-8E 16 512Mb

DDR2 Hynix HYB18TC512160B2F-2.5 16 512Mb

DDR Micron MT46V32M16xx-5B-IT 16 512Mb

DDR Micron MT46V32M8xx-5B 8 256Mb

DDR Micron MT46V64M4xx-5B 4 256Mb

LPDDR Micron MT46H32M16xxxx-5 16 512Mb

LPDDR Micron MT46H16M16xxxx-6-IT 16 256Mb

LPDDR Micron MT46H16M16xxxx-75-IT 16 256Mb

LPDDR Micron MT46H64M16xxxx-5L-IT 16 1Gb

LPDDR Micron MT46H64M16xxxx-6L-IT 16 1Gb

表 3-1 : MCB 用にサポート されるメモリ デバイス (続き)

標準 ベンダー 製品番号 幅 集積度

Page 43: Spartan-6 FPGA メモリ コントローラ ユーザー ガイド (UG388)

Spartan-6 FPGA メモリ コン ト ローラ japan.xilinx.com 43UG388 (v2.3) 2010 年 8 月 9 日

リソースの使用量

リ ソースの使用量

GUI デザイン フローが生成する MIG (または EDK) ラ ッパには、 MCB ベースのメモ リ インター

フェイスのインプリ メンテーシ ョ ンに必要なデバイス リ ソースがすべて組み込まれています。ラ ッ

パ ファ イルの多くの部分は、信号名の再割り当て、およびシ リ コン リ ソース間の接続 (MCB と I/Oブロ ッ クの接続など) を単純に管理しているので、 測定可能な FPGA ロジッ クをまったく消費しま

せん。ただし、ラ ッパに含まれるソフ ト キャ リブレーシ ョ ン モジュールは、FPGA ロジッ ク リ ソー

スを少し消費します。 さ らに、MCB には特定のクロ ッ ク要件 ( 「ク ロ ッ ク」 を参照) があるので、一

部の一般的なクロ ッ ク リ ソースが使用されます。

表 3-2 に、MCB デザインに対応するインターフェイスの使用量を示します。ユーザー インターフェ

イスのポート を制御するユーザー デザインに必要となるロジッ クは除外しています。 この表では、

大ピン数を計算するために、バンク 8 個、差動ス ト ローブ、およびデータ マスクを持つ DDR3 を使用しています。 他のメモ リの規格や設定では、 使用するピン数は少なくな り ます。

クロック

このセクシ ョ ンでは、 MCB ベースのメモ リ インターフェイスをインプリ メン トするためのクロ ッ

ク要件について説明します。 MIG (または EDK) ツールは、 これらの要件をすべて満たすクロ ッ ク

インフラス ト ラ クチャを自動生成します。MCB には、次に示す 3 つの基本タイプのクロ ッ クが必要

です。

• MCB のシステム ク ロ ッ クによ り、 メモ リ コン ト ローラ、および外部メモ リ デバイスに接続す

る物理インターフェイスの動作周波数が決定されます。

• キャ リブレーシ ョ ン クロッ クによ り、キャ リブレーシ ョ ン ロジッ クの動作周波数が決ま り ます。

• ユーザー ク ロ ッ クによ り、ユーザー インターフェイスのポートの動作周波数が決ま り ます。こ

れらのクロ ッ クは、システム ク ロ ッ クやキャ リブレーシ ョ ン ク ロ ッ ク と まった く非同期にする

こ とができます。 コマンド用 FIFO とデータパス用 FIFO が、 ユーザー インターフェイスから

内部コン ト ローラ ロジッ クへの必要なクロ ッ ク ド メ イン転送を処理します。

図 3-3 に、MCB のシステム ク ロ ッ クおよびキャ リブレーシ ョ ン ク ロ ッ クの推奨クロ ッ ク分配方式

を示します。 MCB は、 デバイスの左側と右側の I/O 領域にあるので、 このため I/O ク ロ ッ ク ネッ

ト ワークで駆動する必要があ り ます。 I/O ク ロ ッ ク ネッ ト ワークは、 グローバル ク ロ ッ ク ネッ ト

ワークよ り も非常に高い周波数用に設計されており、 メモ リ インターフェイスが 大 800Mb/s で動作できます。

表 3-2 : MCB ベースのメモリ インターフェイスのリソース使用量

リソースメモリ インターフェイスの幅

x4 x8 x16

メモ リ コン ト ローラ ブロッ ク (MCB)

1 1 1

事前定義済みの I/O ピン : アドレス、

データ、 制御など35 39 50

ソフ ト キャ リブレーシ ョ ン モジュールのロジッ ク

100 スライス

未満

100 スライス

未満

100 スライス

未満

PLL ブロ ッ ク 1 1 1

BUFPLL_MCB バッファ 1 1 1

Page 44: Spartan-6 FPGA メモリ コントローラ ユーザー ガイド (UG388)

44 japan.xilinx.com Spartan-6 FPGA メモリ コン ト ローラ

UG388 (v2.3) 2010 年 8 月 9 日

第 3 章 : MCB を使用したデザイン

メモ : CLKOUT0 と CLKOUT1 のみが、 BUFPLL_MCB ド ラ イバに接続可能な PLL の出力です。

これらの接続は、 図 3-3 と厳密に同じにする必要があ り ます。

I/O ク ロ ッ ク ネッ ト ワークで所望のシステム ク ロ ッ ク周波数を作成するために、 外部クロ ッ ク リソースがデバイスの中央列にある PLL の 1 つを駆動します。 PLL が所望の MCB のシステム クロ ッ ク と同期可能な限り、 外部クロ ッ クの周波数は重要ではあ り ません。 通常、 PLL の推奨位置は

デバイス中央に も近い位置で、 PLL と BUFPLL_MCB ブロ ッ ク との物理的な距離を 小にしま

す。 PLL が 6 つある大型デバイスでは、 この PLL の位置を強くお勧めします。

PLL は、2 つのクロ ッ ク出力、sysclk_2x および sysclk_2x_180 を生成します。これらのクロ ッ ク出

力は所望のメモ リ ク ロ ッ ク周波数の 2 倍 (たとえば、 333MHz のメモ リ ク ロ ッ クを持つ 667Mb/sの DDR2 インターフェイスの場合、システム ク ロ ッ クは 667MHz に設定される) で、相互に 180度位相がずれています。PLL から I/O ク ロ ッ ク ネッ ト ワークを駆動するクロ ッ ク ラインは、デバイス

のそれぞれの側に 2 本のみ用意されています。システム ク ロ ッ クのペアは、これら 2 本のクロ ッ ク

ラ インを使用して、 デバイスの左側または右側にある MCB に接続します。 したがって、 MCB が 4 つあるデバイスでは、デバイスの同じ側にある 2 つの MCB が、同じクロ ッ ク ペアを共用する必

要があ り、 インプリ メン ト されたメモ リ規格が異なる値でも、同じデータ レートで動作する必要が

あ り ます。DCM は I/O ク ロ ッ ク ネッ ト ワークにアクセスしないので、MCB の駆動に使用するこ と

はできません。 また、単一の PLL からデバイスの両側にある MCB を駆動するこ と もできます。 こ

の場合、2 つの BUFPLL_MCB ブロ ッ ク (デバイスの各側に 1 つ) を共有 PLL で駆動する必要があ

り ます。

システム クロ ッ クのペアが I/O クロ ッ ク ネッ ト ワークに到達する と、このペアは BUFPLL_MCB ドライバによ り再度バッファ されます。また、 このド ライバは、MCB が必要とするクロ ッ ク イネーブ

ル ス ト ローブの pll_ce_0 および pll_ce_90 も作成します。 MCB に必要なクロッ ク イネーブル ス ト

ローブを作成するには、BUFPLL_MCB プリ ミティブの属性を次のよ うに設定する必要があり ます。

• LOCK_SRC = “LOCK_TO_0”

• DIVIDE = 2

X-Ref Target - Figure 3-3

図 3-3 : システム クロックとキャリブレーシ ョ ン クロックの推奨分配方法

CLKCLKIN1

PLLMIG WrapperI/O Clock

Network

BUFPLL_MCB

CLKFB IN

CLKOUT0

UG388_c4_03_080310

PLLIN0

PLLIN1

SERDESSTROBE0

IOCLK0

IOCLK1

SERDESSTROBE1

CLKOUT1

CLKOUT2

CLKFB OUT

CLKB

IBUFGDS

BUFG

To second MCB onsame side of device

(if available)

pll_ce_0

sysclk_2x

sysclk_2x_180

pll_ce_90

mcb_drp_clk

Page 45: Spartan-6 FPGA メモリ コントローラ ユーザー ガイド (UG388)

Spartan-6 FPGA メモリ コン ト ローラ japan.xilinx.com 45UG388 (v2.3) 2010 年 8 月 9 日

クロック

再バッファ されたフル レートのシステム ク ロ ッ ク (2X ク ロ ッ ク ) がインターフェイスの PHY レイ

ヤで使用され、I/O ピンの位置で必要な 2 倍のデータ レート (DDR) の信号が作成されます。たとえ

ば、I/O で実効値 667Mb/s の DDR 信号を生成するには、667MHz のクロ ッ クが使用されます。MCBの 2 分周回路が、 従来メモ リ ク ロ ッ ク周波数と見なされていた周波数を作成します (例 : 667Mb/sの DDR インターフェイスでは 333MHz)。 これらの 1X ク ロ ッ クは、 コン ト ローラ、 アービタ、 そ

の他のシングル データ レート (SDR) ロジッ クを駆動します。

キャ リブレーシ ョ ンに関連するクロ ッ ク mcb_drp_clk は PLL で生成する必要があ り、sysclk_2x ドメ インと位相同期する (同相である) 必要があ り ます。 キャ リブレーシ ョ ン ク ロ ッ ク レートは通常

のスタティ ッ ク タイ ミ ング解析によ り制限され、代表的な到達可能周波数は 100MHz です。通常、

MCB が適切な期間でキャ リブレーシ ョ ン動作を完了するには、50MHz 以上のキャ リブレーシ ョ ン

クロ ッ ク周波数を使用する必要があ り ます。

ユーザー ク ロ ッ クのセッ トは、デザインで使用されるユーザー インターフェイスの各ポート (ポー

ト番号 X = 0 ~ 5) に次のよ うに対応します。

• pX_cmd_clk : コマンド用 FIFO のユーザー ク ロ ッ ク。 FPGA ロジッ クから FIFO に渡される

アドレス、 命令、 およびバース ト長をクロ ッ ク駆動します。

• pX_wr_clk : 書き込みデータ用 FIFO のユーザー ク ロ ッ ク。メモ リへのバース トの準備と して、

FPGA ロジッ クから書き込みデータを FIFO にロードするために使用されます。

• pX_rd_clk : 読み出しデータ用 FIFO のユーザークロ ッ ク。 メモ リから FPGA ロジッ クに戻る

データの出力をクロ ッ ク駆動します。

ユーザー ク ロ ッ クはシステム ク ロ ッ クやキャ リブレーシ ョ ン ク ロ ッ ク とは非同期なので、 デザイ

ンの FPGA ロジッ ク部分に指定した任意の周波数で動作できます。 MCB 内の FIFO が必要なク

ロ ッ ク ド メ インの転送を処理します。使用できる メモ リの帯域幅を 大に活用するには、ユーザー

インターフェイス と外部メモ リ デバイス インターフェイスの割合によ り決定される周波数以上の

値にユーザー ク ロ ッ クを設定する必要があ り ます。 例 :

• DDR3 800Mb/s インターフェイス、メモ リ ク ロ ッ ク = 400MHz、および x8 ビッ トのメモ リ デバイスの場合 :

結果と して、 ク ロ ッ ク サイクルあたりのデータ転送が 16 ビッ トにな り ます (各クロ ッ ク エッ

ジで 8 ビッ ト )。

• x64 ビッ トのユーザー インターフェイスの場合 :

ユーザー ク ロ ッ クは、 (16/64) * 400MHz = 100MHz 以上の値に設定する必要があ り ます。

技術的に必要な場合を除いて、 ユーザー デザイン内の複雑なタイ ミ ングと同期の問題を防ぐため

に、 ポートの 3 つすべてのユーザー ク ロ ッ ク (pX_cmd_clk、 pX_wr_clk、 および pX_rd_clk) をFPGA ロジッ クからの同一クロ ッ ク ソースで駆動するこ とを強くお勧めします。

クロック設定の変更

MIG ツールはデフォルトでは、 ユーザー入力クロ ッ ク (PLL への CLKIN1) がメモリのクロ ッ ク周

波数で動作している という前提でクロ ッ ク インフラス ト ラ クチャを設定します。異なる入力クロ ッ

ク周波数から必要な MCB ク ロ ッ クを作成したり、ユーザー ク ロ ッ ク周波数やキャ リブレーシ ョ ン

クロ ッ ク周波数を調整する目的でクロ ッ ク設定を変更するには、 次に示す PLL パラ メータを MIGの例またはユーザー デザインの 上位で調整します。

• Cx_CLKFBOUT_MULT

• Cx_DIVCLK_DIVIDE

• Cx_CLKOUT0_DIVIDE (sysclk_2x 用)

Page 46: Spartan-6 FPGA メモリ コントローラ ユーザー ガイド (UG388)

46 japan.xilinx.com Spartan-6 FPGA メモリ コン ト ローラ

UG388 (v2.3) 2010 年 8 月 9 日

第 3 章 : MCB を使用したデザイン

• Cx_CLKOUT1_DIVIDE (sysclk_2x_180 用)

• Cx_CLKOUT2_DIVIDE (ユーザー ク ロ ッ ク用)

• Cx_CLKOUT3_DIVIDE (キャ リブレーシ ョ ン ク ロ ッ ク用)

「x」 は MCB ブロ ッ クの番号です。

これらのパラ メータの正しい値を決定する方法と して、 2 つの方法があ り ます。

1. CORE Generator ツールの Clocking Wizard を使用して、 PLL の所望の入力および出力のク

ロ ッ ク周波数に基づいて、 適切なパラ メータ設定を決定します。 ダイアログを開くページの

[Manual Selection] と [PLL_BASE] プリ ミ ティブを使用して、PLL を使用するこ とを確認しま

す。 Clocking Wizard が生成し、 一覧表示される PLL パラ メータの値のみを MIG デザインに

転送する必要があ り ます。 Clocking Wizard からのその他の出力は不要です。 Clocking Wizardは、特定の PLL コンフ ィギュレーシ ョ ンから得られる出力ジッタも決定します。この出力ジッ

タを使用して、メモ リ デバイスの入力クロ ッ ク ジッ タの要件に対してメ イン MCB のシステム

クロ ッ クを検証できます。

2. UG382、『Spartan-6 FPGA ク ロ ッ ク リ ソース ユーザー ガイ ド』の「PLL」の章を参照して、PLLの所望の入力および出力のクロ ッ ク周波数について記載されている PLL パラ メータの適切な

設定を確認します。この方法を使用するには、PLL VCO の動作周波数を特定の制限内に維持す

るなどの項目を十分に理解している必要があ り ます。

移行とバンク指定

デバイスの左側 (MCB が 2 個のデバイス) または左下側 (MCB が 4 個のデバイス) にある MCBは、 多くの場合に設計で も柔軟性が高いです (図 3-4 を参照)。 この位置にある MCB の事前定義

済みピンは、 「多機能」 ピンの機能が も少なく、一方、デバイスの右側にある MCB のピンは、 よ

り多くの共有機能を持つ傾向があ り ます。

たとえば、バンク 1 の MCB の数本のピンが、並列フラ ッシュ デバイスから Spartan-6 デバイスを

設定するために使用できるバイ ト幅ペリ フェラル インターフェイス (BPI) のピンと共用されます。

これらの 多目的ピンは BPI または MCB のインターフェイスに使用できますが、両方に使用するこ

とはできません。 このため、 MCB インターフェイスを計画する と きには、 システム内の他のコン

ポーネン トには何があるか、 さ らに Spartan-6 デバイスとどのよ うにインターフェイスをと るかを

考慮する必要があ り ます。デバイスの両側にある MCB には、グローバル ク ロ ッ ク (GCLK) ピンお

X-Ref Target - Figure 3-4

図 3-4 : MCB3 が移行とピンの柔軟性の面で推奨の位置

Four MCB DevicesTwo MCB Devices

MCB3

MCB1

MCB3

UG388_c4_04_050409

MCB1

MCB4

MCB5

Page 47: Spartan-6 FPGA メモリ コントローラ ユーザー ガイド (UG388)

Spartan-6 FPGA メモリ コン ト ローラ japan.xilinx.com 47UG388 (v2.3) 2010 年 8 月 9 日

PCB レイアウトでの考慮事項

よび PCI ピンと共用されるピンがあ り ますが、左側 (または左下側) の MCB 全体で、ピンの使用法

に関する制限は 小になっています。

さ らに、同じ MCB の事前定義済みピンの位置を保持したまま、同一パッケージ タイプの Spartan-6 ファ ミ リのメンバ間で移行できます。たとえば、同じ CSG324 パッケージの LX16 デバイスから

LX25 に移行できます。 これは、 MCB のすべての位置に適用されます。 通常、 任意のデバイスを、

同一パッケージ タイプで、少なく と も 1 段階集積度が上または下のデバイスに移行できます。使用

できるデバイス とパッケージ タイプの詳細は、 「Spartan-6 ファ ミ リの概要」 を参照してください。

PCB レイアウトでの考慮事項

このセクシ ョ ンでは、MCB ベースのメモリ インターフェイスのボード デザインを開始する前に、確

認する必要がある PCB レイアウ トの考慮事項を説明します。デバイスの適切なデカップリ ング、 全

体の配電システム デザイン、 その他の一般的な PCB のガイ ド ラインに関する情報は、 『Spartan-6FPGA PCB Designer’s Guide』 も参照してください。 DDR メモ リ インターフェイスの PCB レイア

ウ トおよびシグナル インテグ リティに関する追加資料は、付録 A 「参考資料」 を参照してください。

ト レース長のすべての計算で、信号ト レース 1 インチあたり平均 165ps の電気遅延を仮定しています。

一般的なガイ ド ライン

• FPGA と メモ リ デバイス との間にメモ リ インターフェイス信号を配線するには、内部 PCB レイヤのみを使用するこ と。 コンポーネン トのボールに接続するブレイ クアウ ト ビアには、 この

要件は適用されません。

• 外部終端抵抗を使用して、 メモ リ コンポーネン トの後に渡り配線で配置する場合、 上層また

は 下層の配線を、 外部終端抵抗への配線用と して考慮できます。

• 外部終端のないメモ リ インターフェイスは、 大 2 個のビアを持つこ と。

• 外部終端のある メモ リ インターフェイスは、 大 3 個のビアを持つこ と。

• 信号を内部信号レイヤに送出した場合、 信号の配線はそのレイヤで完結するこ と。 ビアへの信

号終端によ り、 コンポーネン ト パッ ドのビアへの 終的な配線、およびボードの 上層または

下層での接続が可能になり ます。 PCB レイヤのホッピングはできません。

• 全体のト レース長を 小にするこ と。 ト レースは 3 インチ未満にします。

• ト レース幅を 3 ~ 5 mil にするこ と。

• ト レース間隔は、 ト レース幅の 3 倍にするこ と。

• 信号を、 分割やボイ ドの上に配線しないこ と。

• ノ イズが多い信号ラインや、ク ロ ッ ク チップのよ うな高速スイ ッチ デバイスの隣に差動ペアを

配線するこ とは避けるこ と。

• 差動クロ ッ ク /ス ト ローブと、同じ PCB のレイヤ上にある他の信号との間隔は、20mil にするこ

と。 長さを一致させるために周回配線を使用する場合は、 20mil の間隔を維持するこ と。

• 差動クロ ッ ク /ス ト ローブは、 100 の差動信号と して配線するこ と。 ク ロ ッ ク ペアは、 同一

PCB レイヤに配線し、初期パッ ドからビアのブレイクアウ ト までレイヤの変更やホップがない

こ と。

• 直列終端を使用する場合は、 できる限り FPGA の近くに配置するこ と。

• 並列終端を使用する場合は、 できる限り DRAM の近くに配置するこ と。

• 並列終端抵抗は、 上層または 下層の VTT アイランドに配置するこ と。

Page 48: Spartan-6 FPGA メモリ コントローラ ユーザー ガイド (UG388)

48 japan.xilinx.com Spartan-6 FPGA メモリ コン ト ローラ

UG388 (v2.3) 2010 年 8 月 9 日

第 3 章 : MCB を使用したデザイン

• ターゲッ ト の差動インピーダンスを実現するために、 確実にク ロ ッ ク ラ インを差動的に配線

し、 正しい ト レース幅または間隔を維持するこ と。 信号を差動的に配線するこ とによ り、 シン

グルエンド信号と比較してクロッ クのフライ ト タイムが短縮されます。このため、多くの DDR2デザイン ガイ ドでは、 このタイ ミ ング変動を補正するために、 ク ロ ッ ク信号を、 アドレス、 制

御、 およびコマンドの信号以上の長さで配線するこ とを推奨しています。

データ、 データ マスク、 およびデータ ストローブのガイド ライン

データ (DQ)、データ マスク (DM)、およびデータ ス ト ローブ (DQS) の信号は、 高速の DDR 信号であるため、 優先順位を 高にする (つま り 初に配線する) 必要があ り ます。

• DQ、DM、および DQS の信号は、データ グループ (バイ ト別) 内に配線するこ と。 タイ ミ ング

とシグナル インテグ リティを保持するために、各グループに同様のロード方法と配線を使用す

る必要があ り ます。

• データ グループとその他の信号との間の間隔を 20mil にするこ と。

• ク ロス トークを防ぐために、 DQS 信号を、 他の信号から 20mil 離すこ と。

• DQ/DM と対応する DQS ス ト ローブとの間に、 大±25ps の電気遅延 (±150mil) があるこ と。

• データ グループの基準は GROUND プレーンであるこ と。

• レイアウ ト を容易にするために、メモ リ インターフェイスでの DQ ビッ トのスワッピングがで

きます。 スワッピングはデータ グループ内でのみ行う必要があ り ます。

• DQS と DQS_N のト レース長が一致するこ と (±10mil)。

• 外部終端を使用する場合、 メモ リ終端は、対応する メモ リ コンポーネン トの後に渡り配線方式

で配置するこ と。

• 16 ビッ ト DDR デバイスでは、 LDQS/LDQS_N と UDQS/UDQS_N のト レース長が電気遅延

±25ps (±150mil) で一致するこ と。

アドレス、 制御、 およびクロックのガイ ド ライン

データ グループを配線した後、次に優先順位が高いのは差動クロ ッ ク (CK/CK_N) です。 クロ ッ ク

を 初に配線する必要があ り ます。 この理由は、 アドレス と制御の ト レース長一致はすべて、 差動

クロ ッ クの PCB ト レース長を基準にする必要があ り、 レイアウ ト作業が進むにつれて調整の必要

が発生する可能性があるからです。

• CK と CK_N のト レース長が一致するこ と (±10mil)。

• セッ ト アップとホールドの余有を 大にするには、 CK と DSQ のト レース長が一致するこ と

(±250mil)。

• アドレス /制御信号と対応する CK および CK_N の差動クロ ッ ク FPGA 出力との間に、 大

±50ps の電気遅延 (±300mil) があるこ と。

• PCB スタ ッ クアップ内で GROUND プレーンがアドレス信号と制御信号のグループの隣にな

い場合は、 アドレス信号と制御信号の基準を POWER プレーンにするこ とができます。

• ク ロス トークを防ぐために、 アドレス信号と コマンド信号を、 DQ、 DQS、 および DM とは異

なる配線レイヤに保持するこ と。

• 外部終端を使用する場合、差動クロ ッ ク終端は、PCB のクロ ッ ク パッ ドの後でできるだけロー

ドの近くに配置するこ と。ト レース長一致に使用する PCB ト レース長は、メモ リ ボールから終

端抵抗まで、 PCB ト レースの CLINE 長を除外する必要があ り ます。

• 外部終端を使用する場合、 メモ リ終端は、対応する メモ リ コンポーネン トの後に渡り配線方式

で配置するこ と。

Page 49: Spartan-6 FPGA メモリ コントローラ ユーザー ガイド (UG388)

Spartan-6 FPGA メモリ コン ト ローラ japan.xilinx.com 49UG388 (v2.3) 2010 年 8 月 9 日

PCB レイアウトでの考慮事項

その他のボード デザインの要件

このセクシ ョ ンで説明した PCB レイアウ トのガイ ド ラ インだけでなく、 ボード デザインの要件に

も従う必要があ り ます。

• ターゲッ トのメモ リ デバイスのアクティブ Low チップ選択 (CS#) ピンを、 ボードのグランド

に接続するこ と。MCB は単一のメモ リ コンポーネン トへの接続のみをサポートするので、CS#入力を制御する信号は供給しません。 詳細が必要な場合は、 お使いのメモリのベンダーに問い

合わせてください。

• DDR3 メモ リ デバイスの場合、RESET と CKE の各信号がメモ リ初期化時に確実に Low にな

るよ うに、 各信号にグランド接続する 4.7kの抵抗があるこ と。

• DDR2 メモ リ デバイスの場合、ODT と CKE の各信号がメモ リ初期化時に確実に Low になる

よ うに、 各信号にグランド接続する 4.7kの抵抗があるこ と。

• Spartan-6 デバイスの HSWAPEN ピンが、コンフ ィギュレーシ ョ ン中に Low またはグランド接

続である場合、 MCB の使用に関する VREF ピンを含むデバイスのすべての I/O ピンについて、

コンフ ィギュレーシ ョ ンが完了するまで、 VCCO への内部プルアップがイネーブルになり ます。

VREF のレベルが抵抗分配器によ り生成される場合、デバイスのコンフ ィギュレーシ ョ ン中に一

時的な内部プルアップによ り VREF ピンのレベルが上昇するこ とがあり ます。 不正な VREF 値による MCB のキャ リブレーシ ョ ンと動作を防ぐために、 VREF のレベルが安定状態に戻るま

で、MCB を リセッ ト状態に確実に保持する必要があり ます。詳細は、UG393、『Spartan-6 FPGAPCB Design and Pin Planning Guide』 の 「I/O Pin and Clock Planning」 の章の 「Configuration」を参照してください。

同時スイッチ出力の考慮事項

第 1 章 の 「ブロ ッ ク図」 に示したよ うに、MCB は、事前定義済みのピン位置に対応する汎用 I/O ブロ ッ ク (IOB) を活用して、メモ リ デバイスに対する外部インターフェイスを作成します。MIG ツー

ルはこれらの IOB の位置を自動設定して、 選択したメモリ タイプに必要な I/O 規格 (DDR2 では

SSTL18、 DDR3 では SSTL15 など) をインプリ メン ト します。

MCB ベースのメモ リ インターフェイスのハード ウェア特性では、事前定義済みの IOB 位置を 大

に使用した場合 (インターフェイスの 大数のデータ ピンとアドレス ピンを使用した場合)、同時ス

イ ッチ出力 (SSO) に関連する制限がないこ とが示されています。 SSO 特性の詳細は、 DS162、『Spartan-6 FPGA データシート : DC 特性およびスイ ッチ特性』 および UG361、 『Spartan-6 FPGASelectIO リ ソース ユーザー ガイ ド』 を参照してください。バンクの残りのピンに信号を配置する と

きには、 次のよ うにピンを使用するこ とをお勧めします。

駆動電流の低いシングルエンド出力、 未終端の規格の LVCMOS 4mA または LVCMOS 2mA

Page 50: Spartan-6 FPGA メモリ コントローラ ユーザー ガイド (UG388)

50 japan.xilinx.com Spartan-6 FPGA メモリ コン ト ローラ

UG388 (v2.3) 2010 年 8 月 9 日

第 3 章 : MCB を使用したデザイン

Page 51: Spartan-6 FPGA メモリ コントローラ ユーザー ガイド (UG388)

Spartan-6 FPGA メモリ コン ト ローラ japan.xilinx.com 51UG388 (v2.3) 2010 年 8 月 9 日

第 4 章

MCB の動作

この章では、 Spartan®-6 FPGA MCB の動作を詳し く説明します。 次のセクシ ョ ンがあ り ます。

• 「スタート アップ シーケンス」

• 「キャ リブレーシ ョ ン」

• 「命令」

• 「アド レス指定」

• 「コマンド パスのタイ ミ ング」

• 「書き込みパスのタイ ミ ング」

• 「読み出しパスのタイ ミ ング」

• 「メモ リの ト ランザクシ ョ ン」

• 「セルフ リ フレッシュ」

• 「一時停止」

• 「バイ ト アドレスから メモ リ アドレスへの変換」

• 「 ト ランザクシ ョ ンの順序付けと一貫性」

スタートアップ シーケンス

図 4-1 に、 MCB のスタート アップ手順を示します。 FPGA がフルに設定され、 システム ク ロ ッ ク

を供給する PLL がロッ ク された後、通常の動作用に MCB を準備するために、多数の初期化ステッ

プとキャ リブレーシ ョ ン ステップが MCB によ り自動実行されます。

Page 52: Spartan-6 FPGA メモリ コントローラ ユーザー ガイド (UG388)

52 japan.xilinx.com Spartan-6 FPGA メモリ コン ト ローラ

UG388 (v2.3) 2010 年 8 月 9 日

第 4 章 : MCB の動作

図 4-1 の説明 :

1. ソフ ト キャ リブレーシ ョ ン モジュールは、 キャ リブレーシ ョ ンのフェーズ 1、 2、 および 3 の一部の項目をインプリ メン ト します。

2. MCB のハード キャ リブレーシ ョ ン ロジッ クは、 DQ データ バスのビッ ト ごとに個々のス

キュー調整を実行しません。 47 ページの 「PCB レイアウ トでの考慮事項」 のガイ ド ラインに

従って、 確実に DQ/DQS ボード ト レースの長さを適切に一致させてください。

初の主要な動作は、 フェーズ 1 のキャ リブレーシ ョ ンです。 このステップでは、 ソフ ト キャ リブ

レーシ ョ ン モジュールが RZQ ピンの外部抵抗値を測定し、 MCB の事前定義済みの複数のピン

(DQ バスなど) について、 所望のオンチップ入力終端の値を決定します。 これが実行されるのは、

MIG の GUI フローでユーザーが [Calibrated Input Termination] オプシ ョ ンを選択した場合のみで

す (UG416、『Spartan-6 FPGA Memory Interface Solutions User Guide』の「Setting FPGA Options」を参照)。 それ以外の場合は、概算のキャ リブレーシ ョ ンなしオンチップ終端、 または外部終端が仮

定され、 このスタート アップ ステップは省略されます。

スタート アップ シーケンスの 2 番目の主要なステップは、 メモ リ デバイス モード レジスタに、所

望のパラ メータをロードするこ とです。

メモ リ デバイスの設定後、 キャ リブレーシ ョ ンのフェーズ 2 が実行されます。 このフェーズでは、

FPGA に入力する DQS ス ト ローブの入力パスに遅延を加えます。この目的は、DQS ス ト ローブを、

読み出しデータのキャプチャ ウ ィンド ウの中央にシフ トするこ とです。

スタート アップ シーケンスのすべての動作が完了する と、 MCB は通常動作を開始します。 スター

ト アップ シーケンスの進行中に、コマンド とデータをユーザー インターフェイスの FIFO にロード

できますが、 キャ リブレーシ ョ ンが完了し、 ブロ ッ クが通常動作を開始するまで、 コマンドは実行

されません。

通常動作時に、 ソフ ト キャ リブレーシ ョ ン モジュールは継続的に、 DQS 入力パスの遅延に使用さ

れる IDELAY 要素のタップ遅延の値を監視します (IDELAY の詳細は、 『Spartan-6 FPGASelectIO™ リ ソース ユーザー ガイ ド』 を参照)。 目的は、 動作中の電圧や温度の変動によ り、 タ ッ

プあたりの遅延値の変化を測定するこ とです。タ ップ遅延値のシフ トが検出された場合、DQS 入力

パスのタ ップ遅延カウン ト を調整して、読み出しデータ キャプチャ ウ ィンド ウの中央に保持できま

す。 IDELAY 値の更新は、通常のデータ動作およびコン ト ローラへの影響を防ぐために、 メモ リの

REFRESH 動作時に実行されます。 キャ リブレーシ ョ ンのフェーズ 3 は、 連続 DQS チューニング

と して知られています。

X-Ref Target - Figure 4-1

図 4-1 : MCB のスタートアップ シーケンス

Phase 2 Calibration

DQS Centering

Normal OperationBegins

UG388_c5_01_021910

Phase 3 Calibration

ContinuousDQS Tuning

FPGAConfigurationand PLL Lock

Memory DeviceMode Registers

Loaded

Phase 1 Calibration

Input Termination

Page 53: Spartan-6 FPGA メモリ コントローラ ユーザー ガイド (UG388)

Spartan-6 FPGA メモリ コン ト ローラ japan.xilinx.com 53UG388 (v2.3) 2010 年 8 月 9 日

キャリブレーシ ョ ン

キャ リブレーシ ョ ンのすべてのフェーズの詳細は、 「キャ リブレーシ ョ ン」 を参照してください。

キャリブレーシ ョ ン

メモ リ インターフェイスで 良のシグナル インテグ リティ、および 大のタイ ミ ング余有 (つま り

高の性能) を 得るために、 MCB は、 51 ページの 「スタート アップ シーケンス」 で概説したキャ

リブレーシ ョ ンのいくつかの形式を自動実行します。 MCB のハード キャ リブレーシ ョ ン ロジッ

ク、 および MIG ツール (または EDK) が生成したソフ ト キャ リブレーシ ョ ン モジュールが共に動

作して、信頼性と柔軟性の高いキャ リブレーシ ョ ン方式をインプリ メン ト します。キャ リブレーシ ョ

ンの各フェーズについては、 以降で詳し く説明します。

メモ : このセクシ ョ ンでのキャ リブレーシ ョ ン フェーズ 2 および 3 の説明では、

C_MC_CALIBRATION_MODE 属性が 「CALIBRATION」 (24 ページの表 2-2 を参照) に設定され

ている と仮定しています。

フ ェーズ 1 : 入力終端

オンチップ終端は、 終端を信号伝送の終点にできる限り近い位置に移動するこ とによ り、 コンポー

ネン ト数が削減され、シグナル インテグ リティが向上します。MIG と EDK GUI のインターフェイ

スでは、MCB の事前定義済みのピンについて「キャ リブレーシ ョ ン済み入力終端」を選択できます。

この機能は、 外部抵抗に基づいてキャ リブレーシ ョ ン済みのオンチップ入力終端を MCB のピンに

作成するので、「キャ リブレーシ ョ ンなし入力終端」 の方法を使用する場合よ り も正確度が高くなり

ます。

ソフ ト キャ リブレーシ ョ ン モジュールは、 MIG ツール (または EDK) が生成する RZQ と ZIO の2 つの I/O ピンを使用して、入力終端のキャ リブレーシ ョ ンを実行します。RZQ は、すべての MCBデザインに必須のピンです。キャ リブレーシ ョ ン済み入力終端を使用する場合、RZQ ピンとグラン

ド との間に、所望のインピーダンスの 2 倍の値 (2R) を持つ抵抗を接続する必要があ り ます。たとえ

ば、50の実効入力終端を得るには、100の抵抗が必要です。キャ リブレーシ ョ ン済み入力終端を

使用しないデザインでは、RZQ を接続なし (NC) ピンと して残す必要があ り ます。さ らに、RZQ ピンは、 メモ リ インターフェイス ピンと同じ I/O バンク内にある必要があ り ます。

ZIO ピンは、 キャ リブレーシ ョ ン済み入力終端を使用するデザインにのみ必要で、 接続なしのピン

(どの PCB ト レースにも接続されない) と して、MCB バンク内の有効なパッケージ ピン (ボンディ

ングされた I/O) の位置に割り当てる必要があ り ます。 RZQ ピンと ZIO ピンのデフォルト位置は、

UCF 制約ファイルにあ り ます。

ソフ ト キャ リブレーシ ョ ン モジュールは、 SSTL I/O 規格に必要な入力終端のキャ リブレーシ ョ ン

の実行を、 VREF 電源に依存しています。 LPDDR メモ リは、 キャ リブレーシ ョ ン済み入力終端や

SSTL タイプの I/O 規格を使用しないため、 VREF を必要と しません。

キャ リブレーシ ョ ンのフェーズ 1 では、 外部 2R 抵抗の値を効果的に測定し、 MCB ピンの I/O ブロ ッ クをプログラムして、VCCO と GND との間に分割終端を作成します。この方式は、図 4-2 に示

す VCCO / 2 と R の値を持つテブナン等価終端を作成します。得られる入力終端は、MCB が出力と

して駆動される と き (書き込みト ランザクシ ョ ン時の DQ データ ピンなど) に動的にディ スエーブ

ルされ、 それ以外の場合はすべてイネーブルされて入力信号を適切に終端します。

Page 54: Spartan-6 FPGA メモリ コントローラ ユーザー ガイド (UG388)

54 japan.xilinx.com Spartan-6 FPGA メモリ コン ト ローラ

UG388 (v2.3) 2010 年 8 月 9 日

第 4 章 : MCB の動作

フ ェーズ 2 : DQS の中央配置

大の性能と 大のタイ ミ ング余有を得るには、入力キャプチャ フ リ ップフロ ップを基準と して読

み出しデータ キャプチャ ウ ィンド ウの中央に、 DQS ス ト ローブのエッジを配置する必要があ り ま

す。 キャ リブレーシ ョ ンのフェーズ 2 では、 この DQS の中央配置動作を実行します。

DDR メモ リ デバイスの出力ピンは、読み出しデータ (DQ) と DQS ス ト ローブを、FPGA 入力ピン

とエッジの位置を合わせて送信します (図 4-3 を参照)。動作の信頼性を向上するために、DQS ス ト

ローブは、 データ バスの遷移領域から離れた読み出しデータをキャプチャできるよ うに、 DQ ビッ

トに対して遅延する必要があ り ます。

このフェーズでは、キャプチャのフ リ ップフロ ップの位置にある内部 DQS 信号が、読み出しデータ

キャプチャ ウ ィンド ウの中央にシフ トするよ うに、DQS ス ト ローブ入力パスの IDELAY ブロ ッ ク

のタ ップ遅延カウン トが増加されます (図 4-3 を参照)。

X-Ref Target - Figure 4-2

図 4-2 : キャリブレーシ ョ ン済み入力終端

OUT

VCCO

IN

2R

2R RMCBPin

Split Termination Implemented

OUT

VCCO / 2

IN

MCBPin

Thevenin EquivalentUG388_c5_02_050109

X-Ref Target - Figure 4-3

図 4-3 : キャリブレーシ ョ ンのフェーズ 2 - DQS の中央配置

Data 0

NetDelay

DQS

External (at Pin)

Before Phase 2

DQ Bus

DQS

DQ Bus

Data 1 Data 2

Data 0 Data 1 Data 2

Internal (at FF)

Data 0

IDELAYShift

DQS

External (at Pin)

After Phase 2

DQ Bus

DQS

DQ Bus

Data 1 Data 2

Data 0 Data 1

UG388_c5_03_080409

Data 2

Internal (at FF)

Page 55: Spartan-6 FPGA メモリ コントローラ ユーザー ガイド (UG388)

Spartan-6 FPGA メモリ コン ト ローラ japan.xilinx.com 55UG388 (v2.3) 2010 年 8 月 9 日

命令

フ ェーズ 3 : DQS の連続調整

動作時の電圧と温度の変動によ り、IDELAY のタ ップ値が変化します。DQS ス ト ローブは DQ ビッ

ト よ り も 1/2 ビッ ト周期だけ遅延されているので、 非常に多くの IDELAY タ ップ数を使用します。

このため、IDELAY 要素のタップあたりの遅延値が、電圧や温度のド リ フ トに応じて変化する場合、

DQS ス ト ローブ入力パスの遅延は、 DQ ビッ トに対して比例しな くな り ます。

電圧や温度に起因する DQS ス ト ローブのシフ ト を補正するために、 キャ リブレーシ ョ ンのフェー

ズ 3 は、通常動作時に継続的に実行されます。フェーズ 3 では、ソフ ト キャ リブレーシ ョ ン モジュー

ルを使用して、 DQS 入力パスの遅延に使用される IDELAY 要素のタップ遅延値を継続的に監視し

ます。タ ップ遅延値のシフ トが検出された場合、DQS 入力パスのタ ップ遅延カウン ト を調整して、読

み出しデータ キャプチャ ウ ィンド ウの中央に保持できます。IDELAY 値の更新は、通常のデータ動

作およびコン ト ローラへの影響を防ぐために、 メモ リの REFRESH 動作時に実行されます。

命令

表 4-1 に、 MCB にインプリ メン ト されているすべてのメモリ命令の詳しい説明を示します。 ユー

ザー インターフェイス ポートのコマンド用 FIFO に命令をロードするには、 命令の 3 ビッ ト コー

ドが、pX_cmd_clk の立ち上がりエッジでクロ ッ クに合わせて、pX_cmd_instr[2:0] の入力に供給さ

れます。

表 4-1 : MCB にインプリ メン ト されている命令

命令 コード [2:0] 説明

書き込み 000

メモ リ書き込み。pX_cmd_bl[5:0] に指定されたデータ ワー

ド数を、 pX_cmd_addr[29:0] に指定されたバイ ト アドレス

を開始位置と してメモ リ デバイスに書き込みます。 ト ラン

ザクシ ョ ンを完了するには、命令の送出前に、十分なデータ

を書き込みデータ用 FIFO にロードする必要があ り ます。十

分なデータがない場合、データの 「アンダーラン」 条件が発

生します。この命令は、書き込み専用および双方向のポート

で有効です。

読み出し 001

メモ リ読み出し。pX_cmd_bl[5:0] に指定されたデータ ワー

ド数を、 pX_cmd_addr[29:0] に指定されたバイ ト アドレス

を開始位置と してメモ リ デバイスから読み出します。 ト ラ

ンザクシ ョ ンを完了するには、 命令の送出前に、 読み出し

データ用 FIFO に十分なスペースがある必要があ り ます。十

分なスペースがない場合、データの 「オーバーフロー」 条件

が発生します。 この命令は、 読み出し専用および双方向の

ポートで有効です。

Page 56: Spartan-6 FPGA メモリ コントローラ ユーザー ガイド (UG388)

56 japan.xilinx.com Spartan-6 FPGA メモリ コン ト ローラ

UG388 (v2.3) 2010 年 8 月 9 日

第 4 章 : MCB の動作

書き込みと自動

プリチャージ010

メモ リの書き込みと自動プ リチャージ。 この命令は書き込

み命令と同じですが、 バース ト完了後に自動プ リチャージ

が追加されています。自動プリチャージは、 ト ランザクシ ョ

ンの終了した DRAM バンクを閉じます。 これによ り、同一

バンク内の行間をジャンプする傾向を持つランダム アクセ

ス パターンを使用するアプリ ケーシ ョ ンのレイテンシを向

上できます。

メモ : MCB は、 以降のト ランザクシ ョ ンを先取り します。

後続の ト ランザクシ ョ ンが、 現在の ト ランザクシ ョ ンでア

ク セス し た同じ行に対する も のであ る場合、 自動プ リ

チャージは省略されます。

読み出し と自動

プリチャージ011

メモ リの読み出し と自動プ リチャージ。 この命令は読み出

し命令と同じですが、 バース ト完了後に自動プ リチャージ

が追加されています。自動プリチャージは、 ト ランザクシ ョ

ンの終了した DRAM バンクを閉じます。 これによ り、同一

バンク内の行間をジャンプする傾向を持つランダム アクセ

ス パターンを使用するアプリ ケーシ ョ ンのレイテンシを向

上できます。

注記 : MCB は、以降のト ランザクシ ョ ンを先取り します。後

続の ト ランザクシ ョ ンが、 現在の ト ランザクシ ョ ンでアク

セスした同じ行に対するものである場合、 自動プ リチャー

ジは省略されます。

リ フレッシュ 1xx

メモ リ リ フレッシュ。リ フレッシュ コマンドを メモ リ デバ

イスに送出するよ うに、 MCB に指示します。 tREFI カウン

タを リセッ ト し、 リ フレッシュ サイクル全体で中断せずに

データをス ト リーム送信できます。この命令は、高度にカス

タマイズしたデータフロー構造でのみ使用する必要があ り

ます。通常、MCB はリ フレッシュ コマンドを独自に自動送

出し、 これによ り定期的に ト ランザクシ ョ ンのレイテンシ

が増加します。

表 4-1 : MCB にインプリ メン ト されている命令 (続き)

命令 コード [2:0] 説明

Page 57: Spartan-6 FPGA メモリ コントローラ ユーザー ガイド (UG388)

Spartan-6 FPGA メモリ コン ト ローラ japan.xilinx.com 57UG388 (v2.3) 2010 年 8 月 9 日

アドレス指定

アドレス指定

ユーザー インターフェイスから見る と、MCB は、物理的な DRAM の単純でシーケンシャルなバイ

ト アドレス指定方式を提供します。DRAM がデータを固定セグメン トに格納する という事実は、こ

の方式によ り抽象化され、単純な SRAM のよ うなアドレス インターフェイスが可能になり ます。バ

ンク、 行、 および列のアドレス ビッ トからバイ ト アドレスへのマップ方法の詳細は、 67 ページの

「バイ ト アドレスから メモ リ アドレスへの変換」 を参照してください。

表 4-2 に、ユーザー インターフェイスに提示するバイ ト アドレスをポート幅に位置合わせする方法

を示します。ポート幅のバイ ト数によっては、連続するアドレスがデータ ワードの境界に確実に収

まるよ うに、一定数の下位アドレス ビッ ト を 0 に設定する必要があ り ます。ユーザー インターフェ

イスへの書き込みデータ マスク入力 (pX_wr_mask) を使用して、開始アドレスのバイ ト位置をオフ

セッ トできます。たとえば、32 ビッ ト (4 バイ ト ) ユーザー インターフェイスを使用して、バイ ト アドレス 0x01 から書き込みを開始するには、表 4-2 の要件に合わせて、ユーザー インターフェイス

のコマンド ポートに渡されるバイ ト アドレスを 0x00 にする必要があ り ます。 ただし、 アドレス

0x01 および上位のバイ トのみが実際に書き込まれるよ うに、 下位マスク ビッ ト を 1 に設定する

必要があ り ます。

また、 32 ビッ ト と 64 ビッ トのポート を共にユーザー インターフェイスで使用する場合、アドレス

指定の関係を理解するこ と も重要です (21 ページの 「ポート コンフ ィギュレーシ ョ ン」 を参照)。32ビッ ト ポートではメモ リは 4 バイ ト境界に位置合わせされているよ うに見えますが、 一方 64 ビッ

ト ポートではメモリは 8 バイ ト境界に位置合わせされているよ うに見えます。表 4-3 に、32 ビッ ト

ポートの 2 データ ワードを、64 ビッ ト ポートの 1 データ ワードのアドレス空間にマップする方法

を示します。

表 4-2 : バイ ト アドレスを位置合わせするためのアドレス要件

ポート幅 データ ワードあたりのバイ ト数 アドレス要件

32 ビッ ト 4 pX_cmd_addr[1:0] = 2'b00

64 ビッ ト 8 pX_cmd_addr[2:0] = 3'b000

128 ビッ ト 16 pX_cmd_addr[3:0] = 4'b0000

表 4-3 : 32 ビッ ト ポート と 64 ビッ ト ポートのアドレスの関係

32 ビッ ト ポート 64 ビッ ト ポート

アドレス データ アドレス データ

0x00 [31:0]0x00

[31:0]

0x04 [31:0] [63:32]

0x08 [31:0]0x08

[31:0]

0x0C [31:0] [63:32]

Page 58: Spartan-6 FPGA メモリ コントローラ ユーザー ガイド (UG388)

58 japan.xilinx.com Spartan-6 FPGA メモリ コン ト ローラ

UG388 (v2.3) 2010 年 8 月 9 日

第 4 章 : MCB の動作

コマンド パスのタイ ミング

ユーザー インターフェイスのコマンド パスは、単純な 4 ワードの FIFO 構造を使用して、保留して

いるコマンドを保持します。 要求した ト ランザクシ ョ ンの命令タイプ、 アドレス、 およびバース ト

長がすべて、 このコマンド用 FIFO にロード されます。 pX_cmd_clk の立ち上がりエッジで

pX_cmd_en がアサート された場合、新規コマンドを FIFO が受け取るには、コマンド用 FIFO から

のフル フラグ (pX_cmd_full) 信号は Low である必要があ り ます。 それ以外の場合、 コマンドは無

視されます。 図 4-4 と図 4-5 に、 コマンドを FIFO にロードするプロ ト コルを示します。

X-Ref Target - Figure 4-4

図 4-4 : コマンド パスのタイ ミング (書き込み)

p0_cmd_clk

p0_cmd_en

p0_cmd_instr[2:0]

p0_cmd_bl[5:0]

p0_cmd_byte_addr[29:0]

p0_cmd_empty

p0_cmd_full

26,520ns

001 000 010

26,530ns 26,540ns 26,550ns 26,560ns 26,570ns 26,580ns 26,590ns

UG388_c5_05_051409

3F 10 00

00D6E3FC 005AD3FD

Write 17 user words from byte address 0x005AD3F0.

cmd_empty is deassertedwith write to first positionin FIFO registered onconfigured edge whencmd_en is asserted.

Write with Auto Precharge1 user word to

byte address 0x00EE16FFC.

X-Ref Target - Figure 4-5

図 4-5 : コマンド パスのタイ ミング (読み出し )

p0_cmd_clk

p0_cmd_en

p0_cmd_instr[2:0]

p0_cmd_bl[5:0]

p0_cmd_byte_addr[29:0]

p0_cmd_ba[2:0]

p0_cmd_ra[14:0]

p0_cmd_ca[11:0]

p0_cmd_empty

p0_cmd_full

27,050ns

001 100

27,060ns 27,070ns

UG388_c5_06_051409

0F 3F

00B2D3FC 1EADBEEC

0 2

2CB4 2B6F

3FC 2EC

Read 16 user wordsfrom byte address

0x00B2D3FC.

Page 59: Spartan-6 FPGA メモリ コントローラ ユーザー ガイド (UG388)

Spartan-6 FPGA メモリ コン ト ローラ japan.xilinx.com 59UG388 (v2.3) 2010 年 8 月 9 日

書き込みパスのタイ ミング

書き込みパスのタイ ミング

ユーザー インターフェイスの書き込みパスは、単純な 64 ワードの FIFO 構造を使用して、メモ リへ

の書き込みト ランザクシ ョ ン用に準備するデータを保持します。 コマンド用 FIFO と同様に、

X_wr_clk の立ち上がりエッジで pX_wr_en がアサート された場合、 新規データを FIFO が受け取

るには、書き込みデータ用 FIFO からのフル フラグ (pX_wr_full) 信号が Low である必要があ り ま

す。 それ以外の場合、 データは無視されます。 フル フラグが Low の場合、 pX_wr_clk の立ち上が

りエッジで pX_wr_data バスが FIFO にキャプチャされます。 pX_wr_en がアサート された各ク

ロ ッ ク サイクルで、 pX_wr_data バスに有効なデータがある必要があ り ます。 図 4-6 に、 データを

書き込みデータ用 FIFO にロードするプロ ト コルを示します。

pX_wr_underrun 信号は、 書き込みデータ用 FIFO に存在するよ り も多くのデータの送信をメモ リ

コン ト ローラが試行し、メモ リに送信しよ う と したデータがメモリに到達しないこ とを示します。信

頼性の高い動作を確保するには、 この状態の発生を防止する必要があ り ます。 アンダーラン状態の

発生を防ぐには、コマンド用 FIFO へのト ランザクシ ョ ンを開始する前に、ト ランザクシ ョ ンに入れ

る必要なデータすべてが書き込みデータ用 FIFO に確実に存在する必要があ り ます。

カウン ト信号バス (pX_wr_count) は、 FIFO 内のエン ト リ数のカウン ト を提供します。 MCB の FIFO は非同期なので、カウン ト信号バスのレイテンシは、空フラグやフル フラグよ り も長くな り ま

す。 このため、 このバスは、中間参照と ウォーターマークにのみ使用すべきです。カウン トは、ユー

ザーが送出した FIFO 動作に対して即座に変化します。ただし、コン ト ローラが送出した動作がカウ

ン ト信号に反映されるまでの時間は、 フル信号や空信号よ り も長くな り ます。 このため、 書き込み

データ用 FIFO にデータを入れている と きには、カウン トは常に、FIFO 内にあるエン ト リ数以上の

数をレポート します。

たとえば、ユーザーが 8 ワードを FIFO に書き込んだ場合、FIFO への書き込みプロセスの途中でも

カウン ト数 8 がレポート されるこ とがあ り、 コン ト ローラが FIFO からデータの引き出しを開始し

ているこ とがあ り ます。 さ らに、コン ト ローラがデータを メモ リに送信し続ける場合、FIFO が既に

空になっている場合でも、カウン ト数が FIFO 内のエン ト リ数を示すこ とがあ り ます。書き込みデー

タ用 FIFO では、カウン ト数がフルよ り小さい場合は FIFO は絶対にフルになっていないので、カウ

ン ト信号バスを 「ほぼフル」 フラグと して適切に使用できます。 ただし、 アンダーラン状態の発生

を確実に防ぐ他の方法を使用するこ とが、 非常に重要です。

X-Ref Target - Figure 4-6

図 4-6 : 書き込みパスのタイ ミング

pX_wr_clk

pX_wr_en

pX_wr_mask[3:0]

pX_wr_data[31:0]

pX_wr_empty

pX_wr_full

pX_wr_underrun

pX_wr_count[6:0]

247,100,000ps

0

247,120,000ps 247.140,000ps 247,160,000ps 247,180,000ps 247,200,000ps

UG388_c5_07_051409

0000

00 0001 02 0203 04 0405 0506 07 0708

C0C0 C1C1 C2C2 C3C3 C4C4 C5C5 C6C6 C7C7C7C7

user_empty deassertedwith write to first position

in FIFO registered onconfigured edge D0

written to FIFO.

WE deasserted withlast data. D7 written to FIFO.

Count should reflect thetotal number of cycles

in which WE was asserted.

Latency from MemC side readpointer to user interface count is flexible.

Count can jump inundefined increments.

Page 60: Spartan-6 FPGA メモリ コントローラ ユーザー ガイド (UG388)

60 japan.xilinx.com Spartan-6 FPGA メモリ コン ト ローラ

UG388 (v2.3) 2010 年 8 月 9 日

第 4 章 : MCB の動作

読み出しパスのタイ ミング

ユーザー インターフェイスの読み出しパスは、単純な 64 ワードの FIFO 構造を使用して、読み出し

ト ランザクシ ョ ンから戻るデータを保持します。 読み出しデータ用 FIFO からの空フラグ (pX_rd_empty) は、データの有効ステータス信号と して使用できます。pX_rd_empty をアサート解

除したと きは常に、 有効なデータが pX_rd_data バスに存在します。 読み出しデータ用 FIFO から

FPGA ロジッ クにデータを転送するには、 pX_rd_clk の立ち上がりエッジで pX_rd_en 信号をア

サートする必要があ り ます。 pX_rd_data バスは、 pX_rd_clk の立ち上がりエッジで遷移します。

pX_rd_en 信号は常にアサートの状態にでき、 pX_rd_empty 信号は、 必要に応じて、 データの有効

ステータス信号と して使用できます。 図 4-7 に、 読み出しデータ用 FIFO から出したデータをロー

ドするプロ ト コルを示します。

pX_rd_overflow 信号は、読み出しデータ用 FIFO のサイズよ り も多くのデータを メモ リが返し、そ

のデータが失われたこ とを示します。 信頼性の高い動作を確保するには、 この状態の発生を防止す

る必要があ り ます。オーバーフロー状態の発生を防ぐには、コマンド用 FIFO にト ランザクシ ョ ンを

送出する前に、 ト ランザクシ ョ ンを受け入れるために十分なスペースが書き出しデータ用 FIFO に確実に存在する必要があ り ます。

カウン ト信号バス (pX_rd_count) は、FIFO 内のエン ト リ数のカウン ト を提供します。MCB の FIFOは非同期なので、 カウン ト信号のレイテンシは、空フラグやフル フラグよ り も長くな り ます。 この

ため、 このバスは、 中間参照と ウォーターマークにのみ使用すべきです。 カウン トは、 ユーザーが

送出した FIFO 動作に対して即座に変化します。ただし、コン ト ローラが送出した動作がカウン ト信

号に反映されるまでの時間は、 フル信号や空信号よ り も長くな り ます。 このため、 読み出しデータ

用 FIFO からデータを出している と きには、カウン トは常に、実際に FIFO 内にあるエン ト リ数以下

の数をレポート します。

たとえば、FIFO に 8 ワードがある場合、FIFO からの読み出しプロセスの途中でもカウン ト数 8 がレポート されるこ とがあ り、 コン ト ローラが FIFO によ り多くのデータを入れ始めているこ とがあ

り ます。 さ らに、 コン ト ローラがデータを FIFO に入れ続ける場合、FIFO が既にフルかオーバーフ

ローした場合でも、カウン ト数が FIFO のエン ト リ数を少なく示すこ とがあ り ます。読み出しデータ

用 FIFO の場合、 特に送信中のト ランザクシ ョ ンでは、 カウン ト数が、 レポーティングよ り多くの

データが FIFO に存在する可能性があるので、注意してカウン ト数を使用する必要があ り ます。カウ

ン ト数は 「ほぼ空」 フラグと して使用できますが、 コマンド用 FIFO に入るスロ ッ トル コマンドに

ではなく、 スロ ッ トル読み出しデータパス パイプラインに対してのみ使用できます。

X-Ref Target - Figure 4-7

図 4-7 : 読み出しパスのタイ ミング

pX_rd_clk

pX_rd_en

pX_rd_data[31:0]

pX_rd_empty

pX_rd_full

pX_rd_overflow

pX_rd_count[6:0]

247,320,000ps 247.340,000ps 247,360,000ps 247,380,000ps

UG388_c5_08_051409

00 02 04 05 07 0208 000607 0405 0103

XXXX> 03020100 131> 232> 333> 434> 535> 636> 737> XXXXX

user_empty deasserted with write offirst data in FIFO coincident

with configured edge.Transistions due to controller

side clock domain allow foradditional latency.

user_empty assertedwith read of last

data in FIFO.

Count and data presentedon configured edge.

Count must go throughdecode logic.

Count can jump inundefined increments.

D0 presented transparently before the first RE.

Page 61: Spartan-6 FPGA メモリ コントローラ ユーザー ガイド (UG388)

Spartan-6 FPGA メモリ コン ト ローラ japan.xilinx.com 61UG388 (v2.3) 2010 年 8 月 9 日

メモリのト ランザクシ ョ ン

メモリのト ランザクシ ョ ン

書き込みまたは読み出しの ト ランザクシ ョ ンを実行するには、 コマンド パスからデータパスまで、

適切なシーケンスが必要です。 次の項で、 単純な書き込みと単純な読み出しの ト ランザクシ ョ ンの

プロ ト コルを説明します。

単純な書き込み

書き込みト ランザクシ ョ ンをインプリ メン トするには、 はじめに、 コマンド用 FIFO に入力される

バース ト長の値で指定される、 要求を完了するために十分なデータを書き込みデータ用 FIFO に

ロードする必要があ り ます。それ以外の場合は、ト ランザクシ ョ ンが実行を試行する と きにアンダー

ラン状態が発生します。

図 4-8 に、 書き込みデータ用 FIFO へのロードの も基礎的なプロ ト コルを示します。 データは pX_wr_data バスで渡され、pX_wr_en は、pX_wr_clk の立ち上がりエッジで FIFO にデータが書き

込まれるよ うに、アクティブになり ます。pX_wr_empty と pX_wr_count の値は、データが FIFO にロード された事実を反映します。 この例では、 合計 3 データ ワード (各データ ワードは 32 ビッ ト

) が FIFO にロード されます。

図 4-9 に、 データを書き込みデータ用 FIFO にロード した後に、 コマンド用 FIFO に書き込み要求

を入力するプロ ト コルを示します。pX_cmd_bl の値 (b'10 = バース ト長 3) は、ロード したデータ

ワード数と一致します。書き込み要求がコマンド用 FIFO にロード される と、アービタがこのポート

をサービスする と きに、 MCB がメモ リ デバイスへの ト ランザクシ ョ ンを自動実行します。

X-Ref Target - Figure 4-8

図 4-8 : 書き込みデータ用 FIFO のロード

p0_wr_clk

p0_wr_en

p0_wr_count[6:0]

p0_wr_full

p0_wr_data[31:0]

p0_wr_empty

UG388_c5_09_051409

00 01 02 03

00000000 0C255418 AE82E2D5 62F5AEC5 FB324838

860ns 870ns 880ns 890ns

Write data into data path priorto asserting write enable.

Subsequent writes update count immediatelyif data not being pulled off the FIFO.

Data written into FIFOon positive edge ofwr_clk where write

enable present.

From an empty state, empty flag is deasserted one cycle after data is written into the FIFO due to the synchronization register, and the count begins to update.

Page 62: Spartan-6 FPGA メモリ コントローラ ユーザー ガイド (UG388)

62 japan.xilinx.com Spartan-6 FPGA メモリ コン ト ローラ

UG388 (v2.3) 2010 年 8 月 9 日

第 4 章 : MCB の動作

単純な読み出し

読み出し ト ランザクシ ョ ンをインプリ メン トするには、 はじめに、 コマンド用 FIFO に入力される

バース ト長の値で指定される、 要求を完了するために十分なスペースが読み出しデータ用 FIFO にある必要があ り ます。それ以外の場合は、ト ランザクシ ョ ンが実行を試行する と きにオーバーフロー

状態が発生します。

図 4-10 に、 コマンド用 FIFO に読み出し要求を入力するプロ ト コルを示します。 pX_cmd_bl の値

は、 メモ リに要求するデータ ワード数を指定します。読み出し要求がコマンド用 FIFO にロード さ

れる と、 アービタがこのポート をサービスする と きに、 MCB がト ランザクシ ョ ンを自動実行しま

す。

図 4-11 に、 メモ リから返されて読み出しデータ用 FIFO にロード される要求データを示します。次

に、 このデータは、 FPGA ロジッ クからアクセスできるよ うに pX_rd_data バスに渡されます。

pX_rd_empty と pX_rd_count の値は、 データが FIFO にロード されたこ とを示します。

X-Ref Target - Figure 4-9

図 4-9 : コマンド用 FIFO への書き込み要求の入力

p0_cmd_clk

p0_cmd_en

p0_cmd_instr[2:0]

p0_cmd_bl[5:0]

p0_cmd_addr[29:0]

UG388_c5_10_051409

0

00

0000

0

10

1DE7

1

0F

12E1

830ns 850ns 860ns840ns 870ns 880ns

Write command with instruction,burst length, and starting address.

Command and addresswritten into FIFO on positiveedge of cmd_clk wherecmd_en present.

X-Ref Target - Figure 4-10

図 4-10 : コマンド用 FIFO への読み出し要求の入力

p0_cmd_clk

p0_cmd_en

p0_cmd_instr[2:0]

p0_cmd_bl[5:0]

p0_cmd_addr[29:0]

p0_cmd_full

p0_cmd_empty

UG388_c5_11_051409

0 1

10

0706

3E

39D2

3452ns 3460ns 3464ns3456ns 3468ns 3472ns

Command and address written into FIFO on the positiveedge of cmd_clk where cmd_en present.

Read command with instruction,burst length, and starting address.

Page 63: Spartan-6 FPGA メモリ コントローラ ユーザー ガイド (UG388)

Spartan-6 FPGA メモリ コン ト ローラ japan.xilinx.com 63UG388 (v2.3) 2010 年 8 月 9 日

読み出しレイテンシ

読み出しデータ用 FIFO から FPGA ロジッ クにデータを転送するには、 pX_rd_clk の立ち上がり

エッジで pX_rd_en 信号をアクティブにする必要があ り ます (図 4-12 を参照)。 それに合わせて、

pX_rd_count の値が更新されます。

読み出しレイテンシ

読み出しレイテンシは、 ユーザー インターフェイスのコマンド パス FIFO に READ コマンドが書

き込まれてから、対応する 初のデータ ワードが読み出しデータパス FIFO で使用可能になるまで

のメモ リのクロ ッ ク サイクル数で定義されます。

読み出しレイテンシのベンチマークを実行する と きには、 測定の実行条件を厳密に指定するこ とが

重要です。 読み出しレイテンシは、 次のよ うな条件によって変化します。

• READ コマンドの送出前に、 FIFO パイプラインに既にあるコマンド数。

• 新しいバンク /行を開くために、 ACTIVATE コマンドを送出する必要の有無。

• 以前開いたバンクを閉じるために、 PRECHARGE コマンドを送出する必要の有無。

• tRAS と tRCD のよ うなメモ リの特定のタイ ミ ング パラ メータ、およびバス ク ロ ッ ク周波数の組

み合わせ。

X-Ref Target - Figure 4-11

図 4-11 : メモリ デバイスから返されたデータの読み出し

dqs[0]

dq[7:0]

p0_rd_clk

p0_rd_en

p0_rd_count[6:0]

p0_rd_full

p0_rd_data[31:0]

p0_rd_empty

UG388_c5_12_051409

00

20352035 20355BE8 747F5BE8 1B693F36

01 00

ZZE8 5B 7F 74 36 3F 69 1B 10 C8 22 88 1C 84 47 8E 29

2170ns 2180ns 2190ns

Data readfrom memory.

Empty deasserts andcount reflects data in FIFO.

First valid dataword available

on rd_data bus.

X-Ref Target - Figure 4-12

図 4-12 : 読み出しデータの FPGA ロジックへの転送

dqs[0]

dq[7:0]

p0_rd_clk

p0_rd_en

p0_rd_count[6:0]

p0_rd_full

p0_rd_data[31:0]

p0_rd_empty

UG388_c5_13_051409

8E

00

1B693F36 8822C810

01 02 03 04 03

29 3D A1 14 DF E4 9E EF AC 0A 3F D6 9B B8 E3 CD 4C

2190ns 2200ns 2210ns

Count updates to reflectdata written into the FIFO.

First valid dataword is availableon rd_data bus.

Rd_en pops data off the FIFOand count decrements.

Page 64: Spartan-6 FPGA メモリ コントローラ ユーザー ガイド (UG388)

64 japan.xilinx.com Spartan-6 FPGA メモリ コン ト ローラ

UG388 (v2.3) 2010 年 8 月 9 日

第 4 章 : MCB の動作

• マルチポート デザインのアービタの状態。

• メモ リ デバイスの CAS レイテンシ。

• メモ リ と FPGA の両方について、 ボードレベルとチップレベルの伝搬遅延。

表 4-4 に、2 種類のメモ リ ク ロ ッ ク周波数における 2 つの異なる状況での MCB の読み出しレイテ

ンシを示します。 1 番目のシナリオでは、 メモ リ デバイスで既に開いている行で読み出しが発生し

ます。つま り、要求するデータにアクセスする前に、 プリチャージ コマンドや行をアクティブにす

るコマンドは不要です。2 番目のシナリオでは、新しい行アドレス位置で読み出しが発生します (バンク /行の競合)。 この場合、以前開いた行をプリチャージで閉じ、その後新規行をアクティブにする

必要があ り、これによ り読み出しレイテンシが増加します。表 4-4 の両方のシナリオでは、単一ポー

トの MCB ユーザー インターフェイスで保留中のその他のコマンドがな く (読み出し要求の前は

MCB はアイ ドル)、 メモ リ デバイスのレイテンシは 5 である と仮定しています。

セルフリフレッシュ

セルフ リ フレッシュ インターフェイスは、メモ リのセルフ リ フレッシュ モードの開始や終了をユー

ザーが要求できる仕組みです。セルフ リ フレッシュは、LPDDR、DDR2、および DDR3 のメモ リで

のみサポート されています。 セルフ リ フレッシュによ り、 メモ リがアクティブにデータを送信する

必要がなく、 データを保持している状態ではメモリの電力を節約できます。

セルフ リ フレッシュ インターフェイスは、セルフ リ フレッシュ モードの開始と終了に、簡単なプロ

ト コルを使用します。 1 本のモード ステータス ピン (selfrefresh_mode) が、 メモ リが現在セルフ リ

フレッシュ モードであるかど うかを示します。非同期の selfresh_enter 信号が MCB のコア ク ロ ッ

クでサンプルされます。多くの場合、 MCB のコア ク ロ ッ クはユーザー インターフェイスのクロ ッ

ク よ り も非常に高速で動作します。

表 4-4 : MCB の読み出しレイテンシ

読み出しレイテンシのシナリオ

読み出しレイテンシ (メモリのクロック サイクル)

MEMCLK = 333MHz (667Mb/s)

MEMCLK = 400MHz (800Mb/s)

開いた行からの読み出し

送信コマンド パス 12.5 12.5

メモ リの CAS レイテンシ (CL) 5 5

受信読み出しデータパス 4.5 4.5

レイテンシ合計 (単位 : サイ クル)(ns 単位の時間)

22 サイクル

(66ns)22 サイクル

(55ns)

新規行からの読み出し

送信コマンド パス 12.5 12.5

プリチャージ/アクティブ化 10 12

メモ リの CAS レイテンシ (CL) 5 5

受信読み出しデータパス 4.5 4.5

レイテンシ合計 (単位 : サイ クル)(ns 単位の時間)

32 サイクル

(96ns)34 サイクル

(85ns)

Page 65: Spartan-6 FPGA メモリ コントローラ ユーザー ガイド (UG388)

Spartan-6 FPGA メモリ コン ト ローラ japan.xilinx.com 65UG388 (v2.3) 2010 年 8 月 9 日

一時停止

セルフ リ フレッシュ モードを開始するには、 selfrefresh_enter 信号をアサート して、

selfrefresh_mode を High にします (図 4-13 を参照)。 セルフ リ フレッシュ モードを維持するには、

selfrefresh_enter 信号を High に保持する必要があ り ます。セルフ リ フレッシュ モードを終了するに

は、 selfrefresh_enter 信号をオフにします (図 4-14 を参照)。その後、 selfrefresh_mode 信号が Lowになり、 セルフ リ フレッシュ モードが終了したこ とを示します。

ラ インのグ リ ッチはすべて、要求と して解釈されるこ とがあるので、selfresh_enter 信号を安定した

状態に維持する必要があ り ます。 通常、 ユーザーが必要とするタイ ミ ングでのみこれらの信号を確

実に切り替えるには、 これらの信号が MCB に到達する前にレジスタに入れる必要があ り ます。

外部メモ リがセルフ リ フレッシュ モードのと きに、Spartan-6 デバイスを一時停止モードにして、シ

ステムの消費電力をさ らに削減できます。ただし、 メモ リ デバイスがセルフ リ フレッシュ モードの

と きには、Spartan-6 デバイスのリ コンフ ィギュレーシ ョ ンはできません。 リ コンフ ィギュレーシ ョ

ンによ り MCB の状態が失われ、 セルフ リ フレッシュ モードを適切に終了できな くな り ます。

一時停止

このセクシ ョ ンでは、 MCB ベースのインターフェイスを含むデザインで、 Spartan-6 デバイスの一

時停止モードの機能を使用するための 2 とおりの推奨方法を説明します。

DRAM データを保持しない一時停止モード

DRAM デバイスに格納されたデータの保持が重要でない場合は、 一時停止ピンを単純にアクティ

ブ High の状態にして、一時停止モードを開始します。一時停止ピンを High にする前に、async_rstをアクティブ High の状態にして、MCB を リセッ ト状態にする必要があ り ます。一時停止モードで

は、 MCB はリセッ ト状態に保持されます。

一時停止ピンを Low にして一時停止モードを終了する と、PLL_LOCK 信号がアクティブになって

MCB への安定したクロ ッ ク ソースがあるこ とを示すまで、MCB はリセッ ト状態に保持されます。

その後、MCB がリセッ ト状態を終了し、MCB の初期電源投入またはシステム リセッ トで実行され

るスタート アップ シーケンスを使用して DRAM を初期化します。 このシナリオで一時停止モード

を終了したと きには、 DRAM のデータはすべて無効と見なす必要があ り ます。

X-Ref Target - Figure 4-13

図 4-13 : セルフリフレッシュ モードの開始

sysclk90

usrclk

selfrefresh_enter

selfrefresh_mode

UG388_c5_14_050709

3140ns 3150ns 3160ns 3170ns 3180ns 3190ns 3200ns 3210ns

X-Ref Target - Figure 4-14

図 4-14 : セルフリフレッシュ モードの終了

sysclk90

usrclk

selfrefresh_enter

selfrefresh_mode

UG388_c5_15_050709

3300ns 3400ns 3500ns 3600ns 3700ns 3800ns

Page 66: Spartan-6 FPGA メモリ コントローラ ユーザー ガイド (UG388)

66 japan.xilinx.com Spartan-6 FPGA メモリ コン ト ローラ

UG388 (v2.3) 2010 年 8 月 9 日

第 4 章 : MCB の動作

DRAM データを保持する一時停止モード

DRAM のデータを保持する必要がある場合は、SUSPEND_SYNC プリ ミ ティブを MCB のセルフ

リ フレッシュ インターフェイス と組み合わせて使用して、一時停止モードを適切にインプリ メン ト

する必要があ り ます。 SUSPEND_SYNC プリ ミ ティブは、MCB が確実に、 FPGA を一時停止モー

ドにする前の状態を保持して DRAM デバイスをセルフ リ フレッシュ モード ( 「セルフ リ フレッ

シュ」 を参照) にするために使用されます。

図 4-15 に、 DRAM データを保持する一時停止モードをインプリ メン トするために、

SUSPEND_SYNC プリ ミ ティブを一時停止ピン ロジッ クおよび MCB インターフェイスに接続す

る方法を示します。図 4-16 のタイ ミ ング図に、 このシナリオで、FPGA の一時停止モードの正常な

開始および終了に必要な信号の関係を示します。

アクティブ High の一時停止ピンに対応して、SUSPEND_SYNC プリ ミ ティブは、一時停止モード

を開始するこ とを示す一時停止要求 (SREQ) 信号を MCB に送信します。 SREQ 信号は、 上位の

MIG (または EDK) ラ ッパの selfrefresh_enter 入力に直接接続し、 そこから ソフ ト キャ リブレー

シ ョ ン モジュールに配線されます。ソフ ト キャ リブレーシ ョ ン モジュールは、現在の動作を完了し

てからセルフ リ フレッシュ要求を MCB に転送し、 次に MCB から メモ リ デバイスに転送します。

MCB が DRAM デバイスを正常にセルフ リ フレッシュ モードにする と、 selfrefresh_mode 出力が

High になり ます。 この信号は、SUSPEND_SYNC プリ ミ ティブの一時停止確認 (SACK) 入力に直

接接続し、FPGA を一時停止モードにするこ とができるこ とを示します。一時停止になると、PLL_lock信号は失われます。

一時停止ピンが Low になって一時停止モードが終了する と、SREQ および selfrefresh_enter の信号

が非アクティブになり、FPGA の一時停止状態が終了します。 PLL が受信するクロ ッ クへのロ ッ ク

を再度試行するので、 PLL_lock は当初 Low です。 ただし、 selfrefresh_mode 信号がアクティブな

ので、この PLL_lock が Low の状態では、MCB の通常動作とは異なりシステム リセッ トは実行さ

れません。 PLL がロ ッ ク状態になる と、 ソフ ト キャ リブレーシ ョ ン モジュールはセルフ リ フレッ

シュ モードの終了要求を MCB に転送し、 次に MCB から メモ リ デバイスに転送します。

X-Ref Target - Figure 4-15

図 4-15 : SUSPEND_SYNC の接続

UG388_c4_15_021610

SUSPEND_SYNC

Suspend PinLogicSuspend Pin

MCB(MIG Wrapper)

selfrefresh_enterSREQ

SACK selfrefresh_mode

X-Ref Target - Figure 4-16

図 4-16 : 一時停止モードのタイ ミング図

UG388_c4_16_021910

selfrefresh_mode

SREQ

SACK

SUSPEND pin

PLL_lock

selfrefresh_enter

Page 67: Spartan-6 FPGA メモリ コントローラ ユーザー ガイド (UG388)

Spartan-6 FPGA メモリ コン ト ローラ japan.xilinx.com 67UG388 (v2.3) 2010 年 8 月 9 日

バイ ト アドレスからメモリ アドレスへの変換

DRAM デバイスがセルフ リ フレッシュ モードを正常に終了する と、 selfrefresh_mode 信号が Low状態に戻り、 DRAM データを喪失するこ とな く通常の MCB 動作を再開できます。

一時停止モードの追加要件

Spartan-6 デバイスが一時停止モードのと きには、 DRAM デバイスを駆動する一部の重要な信号

を、既知の状態に維持する必要があ り ます。セルフ リ フレッシュ モードをサポートする メモ リ デバ

イスで一時停止モードを使用する と きには、 一時停止モード中に Spartan-6 デバイスの CKE 出力

に、ピンの 後の状態を保持する制約を追加する必要があ り ます。ユーザー制約ファイル (UCF) に次のよ うな文を追加する必要があ り ます。

NET "mcbx_dram_cke" SUSPEND="drive_last_value";

これによ り、DRAM デバイスがセルフ リ フレッシュ モードを適切に実行できます。さ らに、DDR3の場合、 DRAM のリセッ ト信号にも、次のよ うな同様の制約を UCF ファ イルに追加する必要があ

り ます。

NET "mcbx_dram_reset_n" SUSPEND="drive_last_value";

これによ り、 一時停止モードでの DRAM デバイスの意図しないリセッ トが防止されます。

バイ ト アドレスからメモリ アドレスへの変換

ユーザー インターフェイスから見る と、MCB は、物理的な DRAM の単純でシーケンシャルなバイ

ト アドレス指定方式を提供します。DRAM がデータを固定セグメン トに格納する という事実は、こ

の方式によ り抽象化され、 単純な SRAM のよ うなアドレス インターフェイスが可能になり ます。

MCB は、ユーザー インターフェイスのバイ ト アドレスを、特定のメモ リ デバイスの設定に必要な

行、 バンク、 および列のアドレスに自動変換します。 物理メモリのアドレス指定の詳細を抽象化す

るために、 MCB は、 行とバンクの自動的な通過をユーザー インターフェイスには透過的に管理し

ます。

メモ リ規格、 バス幅、および集積度のすべてが、 ユーザー インターフェイスがどのよ うにアドレス

ビッ ト を対応する行、バンク、および列のアドレス ビッ トにマップするかに影響します。MIG ツー

ルでメモ リ デバイスを選択するこ とによ り、適切なアドレス ビッ トの割り当てを作成するために必

要なパラ メータが、MCB に渡されます。69 ページの表 4-5 に、指定のメモ リ デバイス コンフ ィギュ

レーシ ョ ンに基づいてどのよ うに割り当てが行われるかを示します。これらのマップは、JEDEC 規格のアドレス指定方式に基づきます。

表 4-5 に示すよ うに、 メモ リ幅 (x4、x8、 または x16) が、バイ ト アドレスを物理アドレスにマップ

する方法に影響します。 x4 デバイスの場合、列アドレスの LSB は常に外部アドレス バスで 0 に設

定され、 メモ リ デバイスのバイ ト位置を合わせたアドレス指定を作成します。 ユーザー インター

フェイスのビッ ト 0 が、 列アドレス ビッ ト 1 にマップされます。 x8 デバイスはネイティブのバイ

ト アドレス指定を使用するので、MCB は、バイ ト アドレスの物理アドレス ビッ トへの直接マップ

を使用します。ユーザー インターフェイスのビッ ト 0 が、列アドレス ビッ ト 0 にマップされます。

x16 デバイスの場合、マップがシフ ト され、 2 バイ ト境界にアドレスの位置合わせが作成されます。

ユーザー インターフェイスのビッ ト 1 が、 列アドレス ビッ ト 0 にマップされます。

MCB は、ユーザー インターフェイスのバイ ト アドレスを メモ リ インターフェイスの物理アドレス

にマップする一般的な方式と して、ROW_BANK_COLUMN および BANK_ROW_COLUMN の 2種類をサポート しています。 MIG ツールの [Port Configuration] ページを使用して、 特定のアプリ

ケーシ ョ ンに 適な方式を選択できます (UG416、 『Spartan-6 FPGA Memory Interface SolutionsUser Guide』 の 「Creating an MCB Design」 を参照)。表 4-5 に、 ROW_BANK_COLUMN のアド

レス指定のみのマップを示します。BANK_ROW_COLUMN のアドレス指定については、バンクの

アドレス ビッ トが、ユーザー インターフェイスのバイ ト アドレスに対して MSB の位置になるよ う

Page 68: Spartan-6 FPGA メモリ コントローラ ユーザー ガイド (UG388)

68 japan.xilinx.com Spartan-6 FPGA メモリ コン ト ローラ

UG388 (v2.3) 2010 年 8 月 9 日

第 4 章 : MCB の動作

に、行とバンクのアドレス グループの位置が入れ替わり ます。列のアドレス ビッ トのマップは、変

化しません。

ROW_BANK_COLUMN のアドレス指定方式は、 シーケンシャル アドレス空間で発生する ト ラン

ザクシ ョ ン (長いデータ バース ト など) について、既存の行の 後に達した場合、MCB が DRAM デバイスの次のバンクにある同じ行を自動的に開いて ト ランザクシ ョ ンを継続する こ と を意味しま

す。これによ り、 ト ランザクシ ョ ンを継続するために、現在の行を閉じて (プリチャージ コマンド )、同じバンクの別の行を開く (アクティブ化コマンド ) 動作によるオーバーヘッ ドが低減されます。

ROW_BANK_COLUMN のアドレス方式は、 シーケンシャルなアドレス位置に対して大きいデー

タ パケッ トのバース ト を必要とするアプ リ ケーシ ョ ンに 適で、複数バンクにデータをス ト リ ップ

するこ とによ り効率を向上できます。

一方、BANK_ROW_COLUMN のアドレス指定は、行の境界を越える とその行が閉じられ、同一バ

ンクの別の行が開かれるこ とを意味します。バンクのアドレス ビッ トはユーザー インターフェイス

のバイ ト アドレスの MSB 位置にあ り、別のバンクにある主なアドレス空間の切り替えに使用でき

ます。 たとえば、 特定期間、 メモ リのあるブロ ッ クに対して短く ランダム性の高いト ランザクシ ョ

ンを持ち、その後別のブロ ッ ク (バンク ) にジャンプする傾向があるマイクロプロセッサまたはマイ

クロコン ト ローラをベースにするアプリ ケーシ ョ ンでは、 このアドレスのマップ方式が望ましいこ

とがあ り ます。

アプリ ケーシ ョ ンの仕様によ り、 アドレス指定方式と して ROW_BANK_COLUMN と BANK_ROW_COLUMN のいずれを使用するかが決ま り ます。

メモ : 表 4-5 を使用する と きには、適切なデータ ワード境界が保持されるよ うに、57 ページの表 4-2に記載されている要件が満たされているこ とを確認する必要があ り ます。

Page 69: Spartan-6 FPGA メモリ コントローラ ユーザー ガイド (UG388)

Spartan-6 FPGA メモリ コン ト ローラ japan.xilinx.com 69UG388 (v2.3) 2010 年 8 月 9 日

バイ ト アドレスからメモリ アドレスへの変換

表 4-5 : メモリ デバイスのマップ

バイ ト アドレス 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 V

タイ

プ 幅

ワー

ド数

DDR

x16

128Mb

256Mb

512Mb

1Gb

x8

128Mb

256Mb

512Mb

1Gb

x4

128Mb

256Mb

512Mb

1Gb

DDR2

x16

256Mb

512Mb

1Gb 2Gb 4Gb

x8

256Mb

512Mb

1Gb 2Gb

x4

256Mb

512Mb

1Gb 2Gb

Page 70: Spartan-6 FPGA メモリ コントローラ ユーザー ガイド (UG388)

70 japan.xilinx.com Spartan-6 FPGA メモリ コン ト ローラ

UG388 (v2.3) 2010 年 8 月 9 日

第 4 章 : MCB の動作

ト ランザクシ ョ ンの順序付けと一貫性

MCB のアーキテクチャでは、 メモ リに対する ト ランザクシ ョ ンは、 シングル ポートに対して ト ラ

ンザクシ ョ ンが確認された順序で実行されます。したがって、シングル ポートでは、ト ランザクシ ョ

ンは要求順に完了します。

MCB の複数ポートでは、 異なるポートから送出された ト ランザクシ ョ ンが要求順に完了する保証

はあ り ません。 あるポート を別のポート よ り も優先するよ うに、 アービ ト レーシ ョ ンのアルゴ リズ

ムを変更できます。 ト ランザクシ ョ ンの順序付けに影響を与える仕組みと して、 変更したアルゴ リ

ズムを使用できますが、 特定の順序は保証されません。

MCB では、書き込みト ランザクシ ョ ンを MCB 内部にバッファできます。バッファ リ ングによ り、

書き込みト ランザクシ ョ ンがコマンド用 FIFO に受け取られてから、 メモ リへの書き込みが完了す

るまでの時間は未定義です。複数のポートにわたる ト ランザクシ ョ ンの順序は保証されないため、あ

るポートによ り書き込まれるアドレス位置から読み出しを行う別のポートは、 メモ リ内の新しい値

を読み出すこ と も、 古い値を読み出すこ と もあ り ます。

一部のアプリ ケーシ ョ ンでは、 メモ リへの書き込みが完了したこ とを確認してから、 その位置の読

み出しを送出するこ とが重要です。 一貫性を確保する方法には、 次の 3 つがあ り ます。

1. コマンド用 FIFO の空フラグの監視 :

• 特定ポートについて、 コマンド 1 つのみがキューに入っている と仮定した場合、 コマンド

用 FIFO の空フラグを監視できます。MCB が書き込みコマンドの送出を開始したと きに、

DDR3

x16

512Mb

1Gb 2Gb 4Gb

x8

512Mb

1Gb 2Gb

x4

512Mb

1Gb 2Gb

LPDDR

x16

128Mb

256Mb

512Mb

1Gb

列アドレス ビッ ト

バンク アドレス ビッ ト CA[0] は 4 ビッ ト メモ リの Low に接続

行アドレス ビッ ト

表 4-5 : メモリ デバイスのマップ (続き)バイ ト アドレス 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 V

Page 71: Spartan-6 FPGA メモリ コントローラ ユーザー ガイド (UG388)

Spartan-6 FPGA メモリ コン ト ローラ japan.xilinx.com 71UG388 (v2.3) 2010 年 8 月 9 日

ト ランザクシ ョ ンの順序付けと一貫性

このフラグは High になり ます。データが書き込みデータ用 FIFO に存在している場合は、

コマンドを開始する時点でコマンドの終了が保証されます。

• デザインが、コマンド用 FIFO の空フラグが High になるまで待機してから、読み出しが実

行可能である信号を送出できます。

2. デザインは、 特定ポートで ト ランザクシ ョ ンが順番に完了したという事実を活用できます。

• メモ リの重要な部分への書き込み後、 デバイスは、 ダ ミーの読み出しを送出して、 そのダ

ミーの読み出しが完了してデータを返すまで待機できます。

• ダ ミーの読み出しが完了したこ とによ り、 メモ リへのその前の書き込みが完了したこ とを

確認できます。

3. アービ ト レーシ ョ ンのアルゴ リズムが調整可能 :

• 書き込みを実行するポートが常に、 読み出しを実行するポート よ り も高い優先順位に設定

されている場合、これによ り、2 つのポートにわたる読み出しよ り も先に、書き込みが確実

に完了します。 ポートで、 書き込み要求と読み出し要求との間に 「バブル」 サイ クルを持

つ可能性がある場合、 この方法を使用する と きには注意が必要です。

メモ : 一貫性を確保するためにこれらの方法を使用する と、 システムの性能が低下するこ とがあ り

ます。 これらの方法は、 必要な場合にのみ使用すべきです。

Page 72: Spartan-6 FPGA メモリ コントローラ ユーザー ガイド (UG388)

72 japan.xilinx.com Spartan-6 FPGA メモリ コン ト ローラ

UG388 (v2.3) 2010 年 8 月 9 日

第 4 章 : MCB の動作

Page 73: Spartan-6 FPGA メモリ コントローラ ユーザー ガイド (UG388)

Spartan-6 FPGA メモリ コン ト ローラ japan.xilinx.com 71UG388 (v2.3) 2010 年 8 月 9 日

付録 A

参考資料

メモリの規格

次のリ ンクに、 MCB にインプリ メン ト されている各メモ リ規格の詳細が示されています。

• JEDEC DDR3 仕様

http://www.jedec.org/sites/default/files/docs/JESD79-3D.pdf

• JEDEC DDR2 仕様

http://www.jedec.org/sites/default/files/docs/JESD79-2F.pdf

• JEDEC DDR 仕様

http://www.jedec.org/sites/default/files/docs/JESD79F.pdf

• JEDEC LPDDR 仕様

http://www.jedec.org/sites/default/files/docs/JESD209A.pdf

PCB のレイアウト とシグナル インテグリテ ィ

次の参考資料には、DDR メモ リの PCB レイアウ ト とシグナル インテグ リ ティ解析の追加情報が記

載されています。 ザイ リ ンクスは、 こ こに示す参考資料の正確さや情報に不足がないこ とは保証し

ません。

• 『Hardware Tips for Point-to-Point System Design: Termination, Layout, and Routing』

http://download.micron.com/pdf/technotes/DDR/tn4614.pdf

• 『Interfacing the RC32434/5 with DDR SDRAM Memory』

http://www.idt.com/products/getDoc.cfm?docID=571565

• 『DDR-SDRAM Layout Considerations for MCF547x/8x Processors』

http://www.freescale.com/files/32bit/doc/app_note/AN2826.pdf

• 『Hardware and Layout Design Considerations for DDR2 SDRAM Memory Interfaces』

http://www.freescale.com/files/32bit/doc/app_note/AN2910.pdf

• 『DDR System Design Considerations』

http://download.micron.com/pdf/presentations/dram/plat7justin.pdf

• 『DDR2 Package Sizes and Layout Requirements』

http://download.micron.com/pdf/technotes/ddr2/TN4708.pdf

Page 74: Spartan-6 FPGA メモリ コントローラ ユーザー ガイド (UG388)

72 japan.xilinx.com Spartan-6 FPGA メモリ コン ト ローラ

UG388 (v2.3) 2010 年 8 月 9 日

付録 A : 参考資料

• 『DDR2 (Point-to-Point) Package Sizes and Layout Basics』

http://download.micron.com/pdf/technotes/ddr2/TN4720.pdf

• 『Understanding TI’s PCB Routing Rule-Based DDR Timing Specification』

http://focus.ti.com.cn/cn/lit/an/spraav0a/spraav0a.pdf

• 『Implementing DDR2 PCB Layout on the TMS320C6454/5』

http://focus.ti.com/lit/an/spraaa7e/spraaa7e.pdf