ザイリンクス ug416 spartan-6 fpga メモリ インターフェイス ソ … · mig...

74
Spartan-6 FPGA メモリ インターフェイス ソリューション ユーザー ガイド UG416 (v1.3.1) 2010 10 18

Upload: others

Post on 31-Aug-2019

9 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ザイリンクス UG416 Spartan-6 FPGA メモリ インターフェイス ソ … · mig ツールは、ユーザーが求めるメモリ インターフェイスを構築するために必要なすべての属性

Spartan-6 FPGA メモリ インターフェイス ソリューシ ョ ン

ユーザー ガイド

UG416 (v1.3.1) 2010 年 10 月 18 日

Page 2: ザイリンクス UG416 Spartan-6 FPGA メモリ インターフェイス ソ … · mig ツールは、ユーザーが求めるメモリ インターフェイスを構築するために必要なすべての属性

Spartan-6 FPGA メモリ インターフェイス ソ リューシ ョ ン japan.xilinx.com UG416 (v1.3.1) 2010 年 10 月 18 日

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.

© Copyright 2009–2010 Xilinx, Inc. XILINX, the Xilinx logo, Virtex, Spartan, ISE, and other designated brands included hereinare trademarks of Xilinx in the United States and other countries. AMBA is a registered trademark of ARM in the EU and othercountries. All other trademarks are the property of their respective owners.

本資料は英語版 (v1.3.1) を翻訳したもので、 内容に相違が生じる場合には原文を優先します。資料によっては英語版の更新に対応していないものがあ り ます。日本語版は参考用と してご使用の上、 新情報につきましては、 必ず 新英語版をご参照ください。

この資料に関するフ ィードバッ クおよびリ ンクなどの問題につきましては、 [email protected] までお知らせく

ださい。 いただきましたご意見を参考に早急に対応させていただきます。 なお、 このメール アドレスへのお問い合わせは受け

付けており ません。 あらかじめご了承ください。

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

日付 バージョ ン 改訂内容

2009 年 12 月 2 日 1.0 初版リ リース

2010 年 2 月 23 日 1.1 図 1-30 の変更。 27 ページの 「調整 (キャ リブレーシ ョ ン) 済み入力終端」 の下のテキ

ス ト を修正。 45 ページの 「ファンクシ ョ ン シ ミ ュレーシ ョ ン」 の第 1 段落に XilinxISim を追加。

2010 年 3 月 3 日 1.2 28 ページにデバイスの移行についてのメモを追加。

Page 3: ザイリンクス UG416 Spartan-6 FPGA メモリ インターフェイス ソ … · mig ツールは、ユーザーが求めるメモリ インターフェイスを構築するために必要なすべての属性

UG416 (v1.3.1) 2010 年 10 月 18 日 japan.xilinx.com Spartan-6 FPGA メモリ インターフェイス ソリューシ ョ ン

2010 年 5 月 10 日 1.3 「参考資料」 に ARM® AMBA® 仕様書のリ ンクを追加。 第 1 章 「はじめに」 の 初

のページに EDK 環境で MCB ベースのメモ リ インターフェイスを作成する際の説明

を追加。 手順 1 の後にメモを追加し、 10 ページの 「新規プロジェ ク ト の設定」 の手

順 5 を変更。 「メモ リ規格の選択」 の手順 1 の説明を追加。 図 1-10 および図 1-23 を変更。 図 1-11 の後の axi_s6_ddrx インスタンスの説明を追加。 17 ページの 「コン ト

ローラーのオプシ ョ ン設定」 の周波数を変更。 「マルチポート コンフ ィギュレーシ ョ

ン」 の手順 8 と手順 9 を変更し、 手順 10 と図 1-27 を追加。 27 ページの 「FPGA オプシ ョ ンの設定」 の 初の段落と手順 14 および手順 15 を変更。 図 1-38 の後のメモ

を変更。 表 1-1 を追加。 34 ページの 「<componentname>/example_design/rtl/mcb_controller」 を追加。表 1-6 の後のメモを変更。表 1-11のパラ メーター CMD_PATTERN の説明を変更。 「カスタム コマンド シーケンス」 に後の段落 (コマンド パターンの変更について) を追加。

第 2 章 「EDK フローの詳細」 の追加。

表 3-1 の ctrl_state[4:0] を ctrl_state[144:0] へ ctrl_cmd を ctrl_cmd[2:0] へ

cal_state[3:0] を cal_state[144:0] へ変更。表 3-1 の ctrl_state[144:0] と cal_state[144:0]の説明に ASCII radix を追加。

2010 年 10 月 18 日 1.3.1 ドキュ メン ト ファ イル名を変更。

日付 バージョ ン 改訂内容

Page 4: ザイリンクス UG416 Spartan-6 FPGA メモリ インターフェイス ソ … · mig ツールは、ユーザーが求めるメモリ インターフェイスを構築するために必要なすべての属性

Spartan-6 FPGA メモリ インターフェイス ソ リューシ ョ ン japan.xilinx.com UG416 (v1.3.1) 2010 年 10 月 18 日

Page 5: ザイリンクス UG416 Spartan-6 FPGA メモリ インターフェイス ソ … · mig ツールは、ユーザーが求めるメモリ インターフェイスを構築するために必要なすべての属性

Spartan-6 FPGA メモリ インターフェイス ソ リューシ ョ ン japan.xilinx.com 5UG416 (v1.3.1) 2010 年 10 月 18 日

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

このユーザー ガイドについて内容 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7参考資料. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7その他のリ ソース . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

第 1 章 : はじめにMIG の概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9システム要件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10MIG ツール : 手順を追った指示 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

新規プロジェク トの設定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10MIG の起動 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13MCB デザインの作成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15

メモ リ規格の選択 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15コン ト ローラーのオプシ ョ ン設定. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17メモ リ デバイス オプシ ョ ンの設定. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19マルチポート コンフ ィギュレーシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .22アービ ト レーシ ョ ン テーブル プログラ ミ ング. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .26FPGA オプシ ョ ンの設定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27デザイン サマリ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .30メモ リ モデル ライセンス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .31PCB 情報 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .31デザイン ノート . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .31完了 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .31

MIG のディレク ト リ構造とファ イルの説明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32出力ディ レク ト リの構造 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .32ディ レク ト リおよびファイルの内容 (CORE Generator ツール フローのみ) . . . . . . . . . . . . . .32

<component name>/docs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .32<component name>/example_design/ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .32<component name>/user_design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .35

ト ラフ ィ ッ ク ジェネレーター付きの MIG デザイン例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38(CORE Generator ツール、 ネイティブ インターフェイスのみ) . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

ト ラフ ィ ッ ク ジェネレーターの動作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .39データ パターンと してのアドレス (デフォルト ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .40Hammer データ パターン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .41Neighbor データ パターン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .42Walking 1 および Walking 0 データ パターン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .43PRBS データ パターン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .45

シ ミ ュレーシ ョ ンの設定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .45ファンクシ ョ ン シ ミ ュレーシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .45

デザイン例のインプリ メンテーシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .46デザイン例の変更 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .46

上位のパラ メーター . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .46ト ラフ ィ ッ ク ジェネレーターのパラ メーター . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .48ト ラフ ィ ッ ク ジェネレーターの信号説明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .49ポート アドレス空間の変更. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .52カスタム コマンド シーケンス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .53メモ リ初期化およびト ラフ ィ ッ ク テス ト フロー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .53

目次

Page 6: ザイリンクス UG416 Spartan-6 FPGA メモリ インターフェイス ソ … · mig ツールは、ユーザーが求めるメモリ インターフェイスを構築するために必要なすべての属性

6 japan.xilinx.com Spartan-6 FPGA メモリ インターフェイス ソリューシ ョ ン

UG416 (v1.3.1) 2010 年 10 月 18 日

第 2 章 : EDK フローの詳細EDK の概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55AXI Spartan-6 FPGA DDRx メモ リ コン ト ローラー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

機能の概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .56機能の説明および AXI プロ ト コルのサポート . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .56

インターフェイス幅. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .56インターフェイス ク ロ ッ ク . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .56アドレス幅 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .56読み取り専用または書き込み専用の AXI ポート . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .57リセッ ト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .57バース ト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .57キャ ッシュ ビッ ト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .57保護ビッ ト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .58排他的アクセス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .58応答信号. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .58ID、 スレッ ド、 リオーダ リ ング . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .58読み出し /書き込み受け入れの深さ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .58読み出し /書き込みアービ ト レーシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .58エンディアン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .58リージ ョ ン ビッ ト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .58低電力インターフェイス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .58制限 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .58

上位のパラ メーター . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .59ポートおよび I/O 信号 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .60

第 3 章 : MCB デザインのデバッグ概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63デバッグ ツール. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

デザイン例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .64デバッグ信号 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .64リ ファレンス ボード . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .64ChipScope Pro ツール . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .65

シ ミ ュレーシ ョ ンのデバッグ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65その他のデバッグ信号 (シ ミ ュレーシ ョ ン専用) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .65デザイン例を使用したシ ミ ュレーシ ョ ン検証 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .68

合成およびインプ リ メンテーシ ョ ンのデバッグ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69合成およびインプリ メンテーシ ョ ンの検証 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .69MIG 出力の変更を検証 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .69タイ ミ ング エラーの認識および解析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .69

ハードウェアのデバッグ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70メモ リ インプリ メンテーシ ョ ン ガイ ド ラインの確認 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .70

ク ロ ッキング . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .70ボード上のピン配置の検証 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .71IBIS モデルを使用したシグナル インテグ リティ シ ミ ュレーシ ョ ンの実行 . . . . . . . . . .71デザイン例の実行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .71

一般的なハードウェア問題のデバッグ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .71ビッ ト エラーの特定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .72

ボードの測定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .73

Page 7: ザイリンクス UG416 Spartan-6 FPGA メモリ インターフェイス ソ … · mig ツールは、ユーザーが求めるメモリ インターフェイスを構築するために必要なすべての属性

Spartan-6 FPGA メモリ インターフェイス ソ リューシ ョ ン japan.xilinx.com 7UG416 (v1.3.1) 2010 年 10 月 18 日

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

このユーザー ガイ ドでは、 Spartan®-6 FPGA のメモ リ コン ト ローラー ブロ ッ ク (MCB) を使用し

て外部メモ リ インターフェイスを構築するデザイン ツール フローとデバッグ方法を説明します。

MCB の機能および動作の詳細は、 『Spartan-6 FPGA メ モ リ コ ン ト ローラ ユーザー ガイ ド』

(UG388) を参照して ください。

内容

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

• 第 1 章 「はじめに」 では、 CORE Generator™ やエンベデッ ド開発キッ ト (EDK) 環境で利用

できる MIG ツールを使用して、 MCB ベースのメモ リ インターフェイスをインプ リ メ ン トす

る方法を説明します。

• 第 2 章 「EDK フローの詳細」 では、 EDK 環境の Xilinx® Platform Studio (XPS) から MIG を起動して MCB デザインを生成する方法について説明します。

• 第 3 章 「MCB デザインのデバッグ」 では、 各設計プロセスで生じる可能性がある問題を認識

し、 デバッグする手順を説明します。

参考資料

次のザイ リ ンクス資料は、 このユーザー ガイ ドの内容を補う情報が記載されています。

1. UG626 : 『合成/シ ミ ュレーシ ョ ン デザイン ガイ ド』 2. ChipScope™ Pro Logic Analyzer ツール

http://japan.xilinx.com/tools/cspro.htm

3. UG628 : 『コマンド ライン ツール ユーザー ガイ ド、 COMPXLIB』

4. PlanAhead™ Design Analysis ツールhttp://japan.xilinx.com/tools/planahead.htm

5. UG612 : 『タ イ ミ ング制約ユーザー ガイ ド』

6. UG199 : 『Virtex®-5 FPGA ML561 メモ リ インターフェイス開発ボード ユーザー ガイ ド』

7. ARM® AMBA® 仕様書http://www.arm.com/products/system-ip/amba/amba-open-specifications.php

その他のリソース

その他の資料は、 ザイ リ ンクスのウェブサイ トから入手できます。

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

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

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

http://japan.xilinx.com/support

Page 8: ザイリンクス UG416 Spartan-6 FPGA メモリ インターフェイス ソ … · mig ツールは、ユーザーが求めるメモリ インターフェイスを構築するために必要なすべての属性

8 japan.xilinx.com Spartan-6 FPGA メモリ インターフェイス ソリューシ ョ ン

UG416 (v1.3.1) 2010 年 10 月 18 日

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

Page 9: ザイリンクス UG416 Spartan-6 FPGA メモリ インターフェイス ソ … · mig ツールは、ユーザーが求めるメモリ インターフェイスを構築するために必要なすべての属性

Spartan-6 FPGA メモリ インターフェイス ソ リューシ ョ ン japan.xilinx.com 9UG416 (v1.3.1) 2010 年 10 月 18 日

第 1 章

はじめに

こ こでは、CORE Generator™ やエンベデッ ド開発キッ ト (EDK) 環境で使用できる MIG ツールを

使用して、MCB ベースのメモ リ インターフェイスを構築する方法について説明します。この章は、

次のセクシ ョ ンに分かれています。

• 「MIG の概要」

• 「システム要件」

• 「MIG ツール : 手順を追った指示」

• 「MIG のディ レク ト リ構造とファ イルの説明」

• 「 ト ラフ ィ ッ ク ジェネレーター付きの MIG デザイン例」

CORE Generator ソフ ト ウェアから MIG ツールを起動する場合、 MCB デザインは標準 (ネイティ

ブ) インターフェイスまたは拡張インターフェイス (AXI4) のいずれかを使用して構築できます。

EDK 環境から MIG ツールを起動する場合は、AXI4 インターフェイス オプシ ョ ンのみサポート さ

れています。 EDK 環境で MCB ベースのメモ リ インターフェイスを構築する方法については、 第

2 章 「EDK フローの詳細」 で詳し く説明しています。

MIG の概要

MIG ツールは、 ユーザーが求める メモ リ インターフェイスを構築するために必要なすべての属性

を定義するプロセスを順を追ってガイ ド します。 これらの属性は一般的に、 メモ リ インターフェイ

スに次のよ うな特長を与えます。

• メモ リ デバイスの属性

メモ リの種類、 データ幅、 タイ ミ ング特性、 その他のメモリ動作

• ユーザー (ファブリ ッ ク側) インターフェイスのコンフ ィギュレーシ ョ ン

ポート数、 ポートの種類、 ポート幅

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

アドレス順序、 アービ ト レーシ ョ ン (調停) 方法、 コン ト ローラーのその他の動作

すべてのプロセスが完了する と、 MIG ツールはメモ リ インターフェイスを構築するための RTLコード とユーザー制約ファイル (UCF) を生成します。 Spartan®-6 デバイスの場合、 RTL コードに

は、 要求する メモ リ ソ リ ューシ ョ ンのインプ リ メ ン トに必要な MCB ハード ブロ ッ ク とその他の

FPGA リ ソースを統合する 上位のラ ッパー ファ イルが含まれます。CORE Generator ソフ ト ウェ

アから起動する場合は、 シ ミ ュレーシ ョ ンやデザインのインプリ メンテーシ ョ ンで必要なスク リプ

ト ファ イルも生成されます。

後に、 MIG ツールは、 シ ミ ュレーシ ョ ンやハード ウェア環境 (CORE Generator ツールを使用し

たネイティブ インターフェイスのみ) で MCB ベースのメモ リ インターフェイスの検証またはデモ

Page 10: ザイリンクス UG416 Spartan-6 FPGA メモリ インターフェイス ソ … · mig ツールは、ユーザーが求めるメモリ インターフェイスを構築するために必要なすべての属性

10 japan.xilinx.com Spartan-6 FPGA メモリ インターフェイス ソリューシ ョ ン

UG416 (v1.3.1) 2010 年 10 月 18 日

第 1 章 : はじめに

を行うため、 合成可能なテス トベンチ (Traffic Generator) を生成します。 このフローで生成される

ビ ッ ト ス ト リームは、 DDR2 や DDR3 インターフェイスのデモを行う ために、 Spartan-6 FPGASP601 または SP605 ハード ウェア評価ボードを使用します。 また、 このデザイン例は MCB ベー

スの メモ リ インターフェ イ スを使用するすべてのハード ウ ェア環境で使用できます。 詳細は、

38 ページの 「 ト ラフ ィ ッ ク ジェネレーター付きの MIG デザイン例」 を参照してください。

システム要件

MIG ツールを使用するには、 次の環境が必要です。

• オペレーティング システム

• Windows XP Professional 32 ビッ ト /64 ビッ ト

• Linux Red Hat Enterprise 4.0 32 ビッ ト /64 ビッ ト

• Linux Red Hat Enterprise 5.0 Desktop 32 ビッ ト /64 ビッ ト

• Windows Vista Business 32 ビッ ト /64 ビッ ト

• SUSE 10 Enterprise 32 ビッ ト /64 ビッ ト

• ザイ リ ンクスのソフ ト ウェア

• ISE® ソフ ト ウェア - バージ ョ ン 12.3 またはそれ以降 (適切なサービス パッ クを含む)

適切なサービス パッ クについては MIG の リ リース ノー ト を確認して ください。 ISE のサービス

パッ クは、 ザイ リ ンクス ウェブサイ トのダウンロード ページから入手できます。

MIG ツール : 手順を追った指示

このセクシ ョ ンでは、 MCB ベースの Spartan-6 FPGA メモ リ インターフェイスをインプリ メン ト

する際に必要なすべての手順を MIG ツールの GUI を示しながら説明します。

メモ : この章で示すスク リーンシ ョ ッ トは、各手順を概念的に表したもので、一般的な情報のみを提

示しています。 新情報は、 MIG GUI ツールで確認して ください。 MIG ツールの正確な動作や表

示されるページは、 選択したユーザー インターフェイスの種類や MIG ツールの起動経路

(CORE Generator または XPS (EDK)) によって異なる場合があ り ます。これらの相違が生じる部分

には注記が追加されています。

新規プロジェク トの設定

これらの手順では、 MIG ツールの起動に備えて、 CORE Generator ツールのプロジェク ト を新規作

成します。

1. [スター ト ] → [すべてのプログラム] → [Xilinx ISE Design Suite 11] → [ISE] → [アクセ

サ リ ] → [CORE Generator] をク リ ッ ク して CORE Generator システムを起動します。

メモ : XPS から MIG ツールを起動する場合は、XPS IP カタログ (新しい IP をシステムに追加する

場合) から [Memory and Memory Controller] → [AXI S6 Memory Controller] を選択するか、[XPSSystem Assembly] ビューの axi_s6_ddrx コンポーネン ト を右ク リ ッ ク し、[Configure IP] を選択し

て 15 ページの 「MCB デザインの作成」 へ進んでください。

Page 11: ザイリンクス UG416 Spartan-6 FPGA メモリ インターフェイス ソ … · mig ツールは、ユーザーが求めるメモリ インターフェイスを構築するために必要なすべての属性

Spartan-6 FPGA メモリ インターフェイス ソ リューシ ョ ン japan.xilinx.com 11UG416 (v1.3.1) 2010 年 10 月 18 日

MIG ツール : 手順を追った指示

2. [File] → [New project] を選択して [New Project] ダイアログ ボッ クスを開きます。

3. プロジェク ト名 (例 : Spartan6_MIG_Example_Design) 入力し、 場所を選択して [Save] をク リ ッ ク します。

X-Ref Target - Figure 1-1

図 1-1 : CORE Generator ツール

X-Ref Target - Figure 1-2

図 1-2 : CORE Generator の新規プロジェク ト作成

UG416_c1_01_091409

UG416_c1_02_091409

Page 12: ザイリンクス UG416 Spartan-6 FPGA メモリ インターフェイス ソ … · mig ツールは、ユーザーが求めるメモリ インターフェイスを構築するために必要なすべての属性

12 japan.xilinx.com Spartan-6 FPGA メモリ インターフェイス ソリューシ ョ ン

UG416 (v1.3.1) 2010 年 10 月 18 日

第 1 章 : はじめに

4. [Project Options] ページで、Spartan-6 ファ ミ リ を選択し、その後にターゲッ ト デバイス、パッ

ケージ、 スピード グレード (例 : xc6slx16、 cs324、 -2) を選択します。 左側のペインにある

[Generation] をク リ ッ ク して、 デザイン フローのオプシ ョ ン設定へ進みます。

5. [Design Entry] と して [Verilog] または [VHDL] を選択し、 [Flow Settings] の [Vendor] では

[ISE] を選択します。 [OK] をク リ ッ ク して [Project Options] の設定を完了します。

X-Ref Target - Figure 1-3

図 1-3 : 新規プロジェク ト名の入力

X-Ref Target - Figure 1-4

図 1-4 : デバイス選択

UG416_c1_03_091409

UG416_c1_04_091409

Page 13: ザイリンクス UG416 Spartan-6 FPGA メモリ インターフェイス ソ … · mig ツールは、ユーザーが求めるメモリ インターフェイスを構築するために必要なすべての属性

Spartan-6 FPGA メモリ インターフェイス ソ リューシ ョ ン japan.xilinx.com 13UG416 (v1.3.1) 2010 年 10 月 18 日

MIG ツール : 手順を追った指示

MIG の起動

このセクシ ョ ンの手順では、 MCB をベースと したメモ リ インターフェイスを作成する際の準備と

して、 MIG ツールを起動します。

1. 右側のウインド ウの [Information] セクシ ョ ンにあるプロジェク ト設定のサマリ情報に間違い

がないこ とを確認します。

X-Ref Target - Figure 1-5

図 1-5 : デザイン フローのオプシ ョ ン設定

UG416_c1_05_091409

X-Ref Target - Figure 1-6

図 1-6 : プロジェク ト ページ

UG416_c1_06_091409

Page 14: ザイリンクス UG416 Spartan-6 FPGA メモリ インターフェイス ソ … · mig ツールは、ユーザーが求めるメモリ インターフェイスを構築するために必要なすべての属性

14 japan.xilinx.com Spartan-6 FPGA メモリ インターフェイス ソリューシ ョ ン

UG416 (v1.3.1) 2010 年 10 月 18 日

第 1 章 : はじめに

2. MIG ツールへアクセスするには、左側のウ ィンド ウにある [Memories & Storage Elements] を展開表示します。 [Memories & Storage Elements] → [Memory Interface Generators] の下にあ

る 新版 MIG ツールをダブルク リ ッ ク して MIG ツールを起動します。

3. MIG ツールの起動画面が表示されたら、[Next] をク リ ッ ク して MIG 出力オプシ ョ ンのページ

まで進みます。

X-Ref Target - Figure 1-7

図 1-7 : MIG ツールの起動

X-Ref Target - Figure 1-8

図 1-8 : MIG ツールの起動画面

UG416_c1_07_091409

UG416_c1_08_091409

Page 15: ザイリンクス UG416 Spartan-6 FPGA メモリ インターフェイス ソ … · mig ツールは、ユーザーが求めるメモリ インターフェイスを構築するために必要なすべての属性

Spartan-6 FPGA メモリ インターフェイス ソ リューシ ョ ン japan.xilinx.com 15UG416 (v1.3.1) 2010 年 10 月 18 日

MIG ツール : 手順を追った指示

4. MCB ベースのメモ リ インターフェイスを新規に作成するため、 [Create Design] を選択しま

す。 [Component Name] にメモ リ インターフェイス名を入力します。 [Next] をク リ ッ ク して、

MCB ベースのメモ リ インターフェイスの定義へ進みます。

MIG ツールで生成される出力ファイルやディ レク ト リは、 <Component Name> という名前のフォ

ルダーに配置されます。

メモ : <Component Name> に特殊文字を含むこ とはできません。コンポーネン ト名には英数字のみ

使用可能であ り、 初の文字は必ずアルファベッ ト (a-z) の必要があ り ます。

MCB デザインの作成

このセクシ ョ ンでは、 MIG ツールで MCB ベースのメモ リ インターフェイスをカスタマイズして

生成する手順を説明します。

メモリ規格の選択

[Memory Selection] ページを使用して、 1 つまたは複数のメモリ コン ト ローラー ブロッ クでサポー

ト される メモ リ規格 (DDR SDRAM、 DDR2 SDRAM、 DDR3 SDRAM、 LPDDR) を選択します。

Spartan-6 ファ ミ リの場合、 デバイス サイズによって 2 つまたは 4 つの MCB が含まれます。 通常、

シングル メモ リ インターフェイスをインプリ メン トする場合は、左または左下のメモリ コン ト ロー

ラー ブロ ッ クを 初に選択します。 このコアの既に定義されている MCB I/O の位置には、 マルチ

ファンクシ ョ ン ピンがあま り多くあ り ません (例 : コンフ ィギュレーシ ョ ンに関連したピンと共有

しない)。 さ らに、 同じパッケージ タイプの異なる Spartan-6 デバイス間でのデザイン移行をサポー

トするため、 この位置には優先順位が付けられています。

X-Ref Target - Figure 1-9

図 1-9 : MIG の出力オプシ ョ ン

UG416_c1_09_091409

Page 16: ザイリンクス UG416 Spartan-6 FPGA メモリ インターフェイス ソ … · mig ツールは、ユーザーが求めるメモリ インターフェイスを構築するために必要なすべての属性

16 japan.xilinx.com Spartan-6 FPGA メモリ インターフェイス ソリューシ ョ ン

UG416 (v1.3.1) 2010 年 10 月 18 日

第 1 章 : はじめに

MCB が 4 つある Spartan-6 デバイスを使用する場合、 同じ側に位置する 2 つの MCB は、 1 つの

オンチップ PLL ブロッ クが生成したシステム ク ロ ッ ク ペアを共有する必要があ り ます。 したがっ

て、 この 2 つの MCB でインプ リ メン ト されたメモ リ インターフェイスのデータ レートは同一に

な り ます。 MCB ク ロ ッキング要件の詳細は、 『Spartan-6 FPGA メモ リ コン ト ローラ ユーザー ガイ ド』 (UG388) の 「ク ロ ッキング」 セクシ ョ ンを参照してください。

1. [Enable AXI] をオンにして、 すべての MCB に AXI ユーザー インターフェイスを追加します

(このオプシ ョ ンは Verilog デザインのみ有効)。これを設定しない場合、MIG デザインはデフォ

ルトで標準 (ネイティブ) ユーザー インターフェイスを使用して生成されます。 メモ リ イン

ターフェイスをインプリ メン トする各 MCB の [Memory Type] から メモリ規格を選択します

(AXI インターフェイスを使用する場合は、 SSR2 と DDR3 のみ選択可能)。 [Next] をク リ ッ ク

します。

XPS (EDK) から起動した場合、axi_s6_ddrx インスタンスに対して 1 つの MCB サイ トがアクティ

ブになり ます。 複数のコン ト ローラーの場合、 XPS では複数の個別インスタンス axi_s6_ddrxと し

てインプリ メン ト されます。

X-Ref Target - Figure 1-10

図 1-10 : [Memory Selection] ページ

X-Ref Target - Figure 1-11

図 1-11 : メモリ規格の選択

UG416_c1_10_081010

UG416_c1_11_091409

Page 17: ザイリンクス UG416 Spartan-6 FPGA メモリ インターフェイス ソ … · mig ツールは、ユーザーが求めるメモリ インターフェイスを構築するために必要なすべての属性

Spartan-6 FPGA メモリ インターフェイス ソ リューシ ョ ン japan.xilinx.com 17UG416 (v1.3.1) 2010 年 10 月 18 日

MIG ツール : 手順を追った指示

コン ト ローラーのオプシ ョ ン設定

[Controller Options] ページを使用して、 メモ リ インターフェイスの一般的な特性を定義します。デ

ザインにコン ト ローラーが複数ある場合は、 各コン ト ローラーに対してこのページが繰り返し表示

されます。 このオプシ ョ ン ページでは、 次に示すメモ リ ソ リ ューシ ョ ン特性を定義できます。

• [Frequency]

コン ト ローラーの動作周波数を示します (メモ リ ク ロ ッ ク周波数と同じで、たとえば、800Mb/sDDR インターフェイスの場合は 400MHz)。こ こで指定する周波数は、MCB の BUFPLL ド ラ

イバーで生成されるクロ ッ ク レートの半分の必要があ り ます (MCB ク ロ ッキング要件の詳細

は、 『Spartan-6 FPGA メモ リ コン ト ローラ ユーザー ガイ ド』 (UG388) の 「ク ロ ッキング」 セ

クシ ョ ンを参照)。 コン ト ローラーの周波数は、 選択した FPGA デバイスやスピード グレード

などの要因によって制限されます。 EDK フローの場合、 ユーザーは追加のチェッ クボッ クス (デフォルトで有効) を使用して、周波数情報が EDK から自動的に計算されるよ うに定義できま

す。

• [Memory Part]

デザインで使用される メモ リ デバイスを選択します。リ ス トから既存のサポート デバイスを選

択するか、 新しいカスタム デバイスを作成します。

2. スピン ボッ クスの矢印を使用して適切な周波数値を選択するか、 周波数値を直接入力します。

入力値は、 サポート される 大/ 小周波数範囲内に制限されます。

X-Ref Target - Figure 1-12

図 1-12 : [Controller Options] ページ

UG416_c1_12_102709

Page 18: ザイリンクス UG416 Spartan-6 FPGA メモリ インターフェイス ソ … · mig ツールは、ユーザーが求めるメモリ インターフェイスを構築するために必要なすべての属性

18 japan.xilinx.com Spartan-6 FPGA メモリ インターフェイス ソリューシ ョ ン

UG416 (v1.3.1) 2010 年 10 月 18 日

第 1 章 : はじめに

3. ド ロ ップダウン リ ス トから適切なメモ リ デバイスを選択します (図 1-14 参照)。希望するデバ

イスがリ ス トにない場合は、新規メモ リ デバイスを作成できます。カスタム デバイスを作成す

る場合は、 オプシ ョ ン リ ス トから [Create Custom Part] を選択する と、 新しいページが表示さ

れます (図 1-15 参照)。 カスタム デバイスを作成しない場合は、 手順 5 を飛ばしてください。

[Create Custom Part] ウ ィ ン ド ウでは、 サポー ト されるデバイス リ ス ト から既存デバイスのパラ

メーターを変更するこ とによって、 新しいデバイスを定義できます。

X-Ref Target - Figure 1-13

図 1-13 : メモリ インターフェイス周波数の入力

X-Ref Target - Figure 1-14

図 1-14 : メモリ デバイスの選択

X-Ref Target - Figure 1-15

図 1-15 : カスタム メモリ デバイスの作成

UG416_c1_13_091409

UG416_c1_14_091409

UG416_c1_15_091409

Page 19: ザイリンクス UG416 Spartan-6 FPGA メモリ インターフェイス ソ … · mig ツールは、ユーザーが求めるメモリ インターフェイスを構築するために必要なすべての属性

Spartan-6 FPGA メモリ インターフェイス ソ リューシ ョ ン japan.xilinx.com 19UG416 (v1.3.1) 2010 年 10 月 18 日

MIG ツール : 手順を追った指示

4. カスタム メモ リ デバイスを作成する場合、[Select Base Part] でサポート されるデバイスから、

作成中のデバイス と同じパラ メーターがあるデバイスを選択します。 [Enter New MemoryPart Name] に新しいデバイス名を入力します (例 : MIG-Custom_MEM)。必要に応じて、 タ

イ ミ ング パラ メーター値、および行/列/バンクのアドレス ビッ ト数を変更します。[Save] をク

リ ッ ク して、 サポート されるデバイス リ ス ト に新しいデバイスを追加します (図 1-16 参照)。追加された新しいデバイスはローカルの MIG データベースに保存されるため、将来的に使用

可能です。

5. [Data Mask] をオンまたはオフにして (図 1-17 参照)、生成される MIG デザインにデータ マス

ク ピンを含めるかを判断します。 [Controller Options] ページの一番下にあるセクシ ョ ンでは、

選択したメモ リ コンフ ィギュレーシ ョ ンの詳細を示します (図 1-18 参照)。 [Next] をク リ ッ ク

して [Memory Options] のページへ移動します。

メモリ デバイス オプシ ョ ンの設定

[Memory Options] ページを使用して、 初期化中にメモ リ デバイスへロード されるさまざまモード

レジスタの値を設定します。 選択可能な設定リ ス トは、 そのインターフェイス用に選択したメモ リ

規格によって決定します。 バース ト長および CAS レイテンシは、 高パフォーマンスになるよ うに

MIG ツールで自動設定されます。

図 1-19 に、 例と して DDR2 コン ト ローラー用の設定画面を示します。 図 1-20 ~ 図 1-22 では、

DDR、 DDR3、 LPDDR コン ト ローラーのそれぞれの設定を示しています。

X-Ref Target - Figure 1-16

図 1-16 : メモリ デバイスのリストからカスタム メモリ デバイスを選択する

X-Ref Target - Figure 1-17

図 1-17 : データ マスク オプシ ョ ンの選択

X-Ref Target - Figure 1-18

図 1-18 : メモリ コンフ ィギュレーシ ョ ンの詳細

UG416_c1_16_091409

UG416_c1_17_091409

UG416_c1_18_091409

Page 20: ザイリンクス UG416 Spartan-6 FPGA メモリ インターフェイス ソ … · mig ツールは、ユーザーが求めるメモリ インターフェイスを構築するために必要なすべての属性

20 japan.xilinx.com Spartan-6 FPGA メモリ インターフェイス ソリューシ ョ ン

UG416 (v1.3.1) 2010 年 10 月 18 日

第 1 章 : はじめに

X-Ref Target - Figure 1-19

図 1-19 : DDR2 SDRAM コン ト ローラーのモード レジスタ設定

X-Ref Target - Figure 1-20

図 1-20 : DDR コン ト ローラーのモード レジスタ設定

UG416_c1_19_091409

UG416_c1_20_091409

Page 21: ザイリンクス UG416 Spartan-6 FPGA メモリ インターフェイス ソ … · mig ツールは、ユーザーが求めるメモリ インターフェイスを構築するために必要なすべての属性

Spartan-6 FPGA メモリ インターフェイス ソ リューシ ョ ン japan.xilinx.com 21UG416 (v1.3.1) 2010 年 10 月 18 日

MIG ツール : 手順を追った指示

6. 各ページで任意のモード レジスタ設定を選択します。 そして [Next] をク リ ッ ク して、 マルチ

ポート コンフ ィギュレーシ ョ ンの設定画面へ進みます。

X-Ref Target - Figure 1-21

図 1-21 : DDR3 コン ト ローラーのモード レジスタ設定

X-Ref Target - Figure 1-22

図 1-22 : LPDDR コン ト ローラーのモード レジスタ設定

UG416_c1_21_091409

UG416_c1_22_091409

Page 22: ザイリンクス UG416 Spartan-6 FPGA メモリ インターフェイス ソ … · mig ツールは、ユーザーが求めるメモリ インターフェイスを構築するために必要なすべての属性

22 japan.xilinx.com Spartan-6 FPGA メモリ インターフェイス ソリューシ ョ ン

UG416 (v1.3.1) 2010 年 10 月 18 日

第 1 章 : はじめに

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

FPGA ロジッ クに対する MCB ユーザー インターフェイスには 5 つのポート コンフ ィ ギュレー

シ ョ ンがあ り ます。ポート コンフ ィギュレーシ ョ ンの詳細は、『Spartan-6 FPGA メモ リ コン ト ロー

ラ ユーザー ガイ ド』 (UG388) の 「ポート コンフ ィギュレーシ ョ ン」 セクシ ョ ンを参照してくださ

い。 選択したコンフ ィギュレーシ ョ ンに基づいて、 MIG ツールは 上位のラ ッパー ファ イルに必

要なユーザー信号名と割り当てを生成します。

7. [Configuration] を選択する ド ロ ップダウン メニュー (図 1-24 参照) から任意のポート コン

フ ィギュレーシ ョ ンを選択します。 このポート セレクシ ョ ン テーブルは、 選択したコンフ ィ

ギュレーシ ョ ンに基づいて変更します。

8. [Port Selection] 列の下にある、 デザインで使用される各ポートのチェ ッ ク ボッ クスをオンに

します。選択されていないポートは無効とな り ます。単一方向ポートの場合は、 [Direction] 列で [Read] または [Write] のいずれかに設定して ください。[Interface] 列では、すべてのポート

がすでに GUI で選択した設定に基づいて、 ネイティブ (標準) または AXI ユーザー インター

フェイス と してインプ リ メ ン ト されるこ とを示しています。 ネイティブ インターフェイスを

選択した場合、 そのポートは標準の MCB ユーザー インターフェイスを使用するこ とにな り

ます。AXI インターフェイスを選択する と、ネイティブ インターフェイスに AXI メモ リ マッ

X-Ref Target - Figure 1-23

図 1-23 : ポート コンフ ィギュレーシ ョ ンのページ

X-Ref Target - Figure 1-24

図 1-24 : ポート コンフ ィギュレーシ ョ ンの選択

UG416_c1_23_081010

UG416_c1_24_091409

Page 23: ザイリンクス UG416 Spartan-6 FPGA メモリ インターフェイス ソ … · mig ツールは、ユーザーが求めるメモリ インターフェイスを構築するために必要なすべての属性

Spartan-6 FPGA メモリ インターフェイス ソ リューシ ョ ン japan.xilinx.com 23UG416 (v1.3.1) 2010 年 10 月 18 日

MIG ツール : 手順を追った指示

プされたスレーブ ブ リ ッジが追加されます (AXI4 インターフェイスは、EDK フローでのみ有

効なオプシ ョ ンです)。AXI4 スレーブ インターフェイスの詳細は、第 2 章 「EDK フローの詳

細」 を参照して ください。

ユーザー インターフェイス アドレス バスと物理的メモ リの行、バンク、および列のマッピングは、

コンフ ィギュレーシ ョ ン可能です。 アプリ ケーシ ョ ン データの構成方法によって異なるため、アド

レス指定方法を変更してコン ト ローラーの効率を 適化するこ とが望ましい場合があ り ます。 たと

えば、 行/バンク /列のアドレス指定では、 アクティブ行の終点を超える長いバース ト転送を要求し

た場合、 コン ト ローラーは新しいバンクをアクティブにしてバース ト転送を続けます。 これによっ

て、 アクティブ行をク ローズ (プリチャージ コマンド ) して同じバンク内で別の行をアクティブに

するコマンドを発行する というペナルティ (効率損失) を回避できます。

9. アプリ ケーシ ョ ンに 適なメモ リ アドレス マッピングを選択します (図 1-26 参照)。画面右側

のユーザー インターフェイス コンフ ィギュレーシ ョ ンの図では、 完成されたマルチポート コンフ ィギュレーシ ョ ンが表示されます (図 1-27 参照)。 [Next] をク リ ッ ク して次へ進みます。

X-Ref Target - Figure 1-25

図 1-25 : [Port Selection] および [Direction] の設定

X-Ref Target - Figure 1-26

図 1-26 : メモリ アドレスのマッピング方法を選択

X-Ref Target - Figure 1-27

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

UG416_c1_25_091409

UG416_c1_26_091409

UG416_c1_27_091409

Page 24: ザイリンクス UG416 Spartan-6 FPGA メモリ インターフェイス ソ … · mig ツールは、ユーザーが求めるメモリ インターフェイスを構築するために必要なすべての属性

24 japan.xilinx.com Spartan-6 FPGA メモリ インターフェイス ソリューシ ョ ン

UG416 (v1.3.1) 2010 年 10 月 18 日

第 1 章 : はじめに

AXI ユーザー インターフェイスを使用するデザインの場合、 各 AXI ポート用のパラ メーターを設

定するページが表示されます (図 1-28 参照)。

この設定によって、 コン ト ローラーの AXI パラ メーター セレクシ ョ ンが決定します。 これらは、

標準の AXI パラ メーター、 あるいは AXI インターフェ イス特定のパラ メーターです。 詳細は、

ARM® AMBA® の仕様書 [参照 7] を参照して ください。

EDK フローでは、 インターコネク ト パラ メーターもあ り ます。 これらのパラ メーターの詳細は、

EDK の資料を参照してください。次に示すパラ メーター オプシ ョ ンは、EDK フローでのみ利用可

能な場合があ り ます。

• Address Width および AXI ID Width : XPS から起動した場合、 アドレス幅や ID 幅の設定

は XPS で自動設定されるため、 このオプシ ョ ンは表示されません。

• Base and High Address (EDK フローのみ) : メモ リ コン ト ローラーへ割り当てられるシステ

ム アドレス空間を設定します。 これらの値は、 4KB 以上かつ 2 の累乗とな り、 ベース アドレ

スはメモ リ空間のサイズに揃う必要があ り ます。

• Narrow Burst Support (EDK フローのみ) : このオプシ ョ ンの選択を解除する と、 AXI イン

ターフェイスはリ ソースを節約してタイ ミ ングを向上させるために、AXI ナロー方式バース ト

転送を行う ロジッ クを削除します。 通常、 XPS は、 接続されている AXI マスターの既知の動

作に基づいて、ナロー方式バース ト転送のサポート を無効にできるかど うかを自動計算します。

• Enforce Strict of Write Coherency Across All Ports : BRESP (AXI Write Response) を、 特

定ポートの ト ランザクシ ョ ンが完了したと きに提供 (オフ)、 あるいはすべてのポートにおいて

ト ランザクシ ョ ンが完了した後のみ提供 (オン) するよ うに設定します。

• Enable Auto-Precharge On Each Transaction :オンの場合、 ト ランザクシ ョ ン完了後にポー

ト上のすべての MCB 読み出し /書き込み ト ランザクシ ョ ンが、 ク ローズされるべきバンク /ページを閉じます (オートプ リチャージ)。

Page 25: ザイリンクス UG416 Spartan-6 FPGA メモリ インターフェイス ソ … · mig ツールは、ユーザーが求めるメモリ インターフェイスを構築するために必要なすべての属性

Spartan-6 FPGA メモリ インターフェイス ソ リューシ ョ ン japan.xilinx.com 25UG416 (v1.3.1) 2010 年 10 月 18 日

MIG ツール : 手順を追った指示

10. 各ポート で書き込みコ ヒーレンシの厳しいチェ ッ クを実行すべきかを選択します。これは、複

数ポート を有するデザインで推奨されます。 各 AXI ポート のオート プ リチャージを有効/無効に選択します。各ポート のデータ、アド レス、および AXI ID の幅を選択します (図 1-28 参照)。 [Next] をク リ ッ ク します。

X-Ref Target - Figure 1-28

図 1-28 : AXI ユーザー インターフェイス パラメーターの選択

UG416_c1_45_081010

Page 26: ザイリンクス UG416 Spartan-6 FPGA メモリ インターフェイス ソ … · mig ツールは、ユーザーが求めるメモリ インターフェイスを構築するために必要なすべての属性

26 japan.xilinx.com Spartan-6 FPGA メモリ インターフェイス ソリューシ ョ ン

UG416 (v1.3.1) 2010 年 10 月 18 日

第 1 章 : はじめに

アービ ト レーシ ョ ン テーブル プログラ ミング

MIG ツールは、デフォルトでラウンド ロビン方式によるアービ ト レーシ ョ ンを行いますが、カスタ

ム アービ ト レーシ ョ ンの定義も可能です。ポートの優先順は左が も高く、右へ行くほど低くな り

ます。

カスタム オプシ ョ ンを使用する場合は、 すべてのポートがメモ リ デバイスへアクセスするよ うに

注意が必要です。 通常、各ポートは少なく と も 1 つのタイム スロ ッ トで 高優先順位を受信する必

要があ り ます。ガイ ド ラインに従っていない場合、MIG ツールは赤色の警告インジケーターを生成

しますが、 エラーを防ぐ機能はあ り ません。 UG388 : 『Spartan-6 FPGA メモ リ コン ト ローラ ユー

ザー ガイ ド』 の 「アービ ト レーシ ョ ン」 セクシ ョ ンを参照してください。

11. [Select Arbitration Algorithm] で [Round Robin] または [Custom] のいずれかを選択します。

[Custom] を選択した場合は、それぞれのタイム スロ ッ トにポートの優先順位を入力します。そ

して [Next] をク リ ッ ク します。

X-Ref Target - Figure 1-29

図 1-29 : アービ ト レーシ ョ ン方法の設定

UG416_c1_28_091409

Page 27: ザイリンクス UG416 Spartan-6 FPGA メモリ インターフェイス ソ … · mig ツールは、ユーザーが求めるメモリ インターフェイスを構築するために必要なすべての属性

Spartan-6 FPGA メモリ インターフェイス ソ リューシ ョ ン japan.xilinx.com 27UG416 (v1.3.1) 2010 年 10 月 18 日

MIG ツール : 手順を追った指示

FPGA オプシ ョ ンの設定

[FPGA Options] ページを使用して、 メモ リ インターフェイス ソ リ ューシ ョ ンのその他の設定を行

います。 EDK フローの場合は、 このページが 後とな り ます。 [Finish] をク リ ッ クする と、 変更が

保存されて XPS の画面へ戻り ます。

12. [Address and Control] および [Data] の両方のピンに対して、 FPGA 出力ド ライバーの強度を

SSTL [Class I] または [Class II] のいずれかに設定します。デフォルトの [Class II] を推奨しま

すが、一部のアプリ ケーシ ョ ンでは [Class I] の方がシグナル インテグ リ ティが向上する場合が

あ り ます。

MIG ツールは、 複数のFPGA 入力終端オプシ ョ ンを提供します。 基本的な 2 つの入力終端は次の

とおりです。

• 調整 (キャ リブレーシ ョ ン) 済み入力終端

このオプシ ョ ンは、メモ リ インターフェイス ピンから外部抵抗値の入力インピーダンスを一致

させるために MIG (または EDK) ツールで自動生成される Soft Calibration モジュールを使用

します。調整された入力終端によって、オンチップに正確な調整済み終端が提供されるため、シ

グナル インテグ リティが大幅に向上し、その他の終端オプシ ョ ンによ り使用コンポーネン ト数

が減少します。

X-Ref Target - Figure 1-30

図 1-30 : FPGA のオプシ ョ ン ページ

X-Ref Target - Figure 1-31

図 1-31 : FPGA 出力ドライバー強度の設定

UG416_c1_29_021710

UG416_c1_30_091409

Page 28: ザイリンクス UG416 Spartan-6 FPGA メモリ インターフェイス ソ … · mig ツールは、ユーザーが求めるメモリ インターフェイスを構築するために必要なすべての属性

28 japan.xilinx.com Spartan-6 FPGA メモリ インターフェイス ソリューシ ョ ン

UG416 (v1.3.1) 2010 年 10 月 18 日

第 1 章 : はじめに

Soft Calibration モジュールは、MIG (または EDK) ツールで生成された 2 つの I/O ピン (RZQと ZIO) を使用して、入力終端の調整を行います。RZQ は、すべての MCB デザインで必要と

なるピンです。調整済み入力終端を使用するデザインの場合、目的とする入力インピーダンス

の 2 倍の値で RZQ ピンとグランド間に抵抗を接続する必要があ り ます (例 : 50W の入力終

端を達成するには 100Ω)。 調整済み入力終端を使用しないデザインの場合は、RZQ を NC (未接続) のままにして ください。 また、 RZQ ピンは、 メモ リ インターフェイス ピンと同じ I/Oバンク内に配置されている必要があ り ます。

ZIO ピンは、キャ リブレート された入力終端を使用しているデザインでのみ必要であ り、MCBバンク内の有効なパッケージ ピンの位置に割り当てられた (例 : ボンド された I/O) 未接続ピン

(例 : いかなる PCB ト レースにも接続されていない) となる必要があ り ます。RZQ と ZIO ピン

のデフォルト ロケーシ ョ ンは、 UCF ファ イルで確認できます。 調整済み入力終端の詳細は、

『Spartan-6 FPGA メモ リ コン ト ローラ ユーザー ガイ ド』 (UG388) の「キャ リブレーシ ョ ン」セ

クシ ョ ンを参照して ください。

メモ : デバイスを移行する必要がある場合 (例 : 同じパッケージ タイプでデバイス サイズを変

更する)、選択された RZQ と ZIO の位置が、使用を予定しているすべてのデバイスのユーザー

I/O と して利用可能である (ボンド されていない) こ とを確認する必要があ り ます。 これらのピ

ンは、 必要に応じて UCF ファ イルを変更して移動させるこ とができます。

• 未調整入力終端

このオプシ ョ ンは、 2 つの入力終端方法を提供します。

• [DQ/DQS] および [Address/Control] で 25W、50W、 または 75W の値を選択するこ とで、

FPGA はおおよそのオンダイ入力終端値を作成できます。

または

• 外部抵抗が提供されている場合は、 これらの設定を [none] のままにできます。

いずれの場合においても、終端値を 適化するためにスタティ ッ ク (アクティブ) キャ リブレー

シ ョ ンは行われません。

13. 調整済み入力終端、 あるいは未調整入力終端のいずれかを選択します。 未調整入力終端を選択

した場合は、 [DQ/DQS] からピンを選択します。

MCB は、 初期の DQ および DQS キャ リブレーシ ョ ン プロセスを開始させるインターフェイスを

提供します (DQ/DQS キャ リブレーシ ョ ンの詳細は、 『Spartan-6 FPGA メモ リ コン ト ローラ ユー

ザー ガイ ド』 (UG388) の 「キャ リブレーシ ョ ン」 セクシ ョ ンを参照)。 これは、特にサスペンド モー

ド動作が必要なアプリ ケーシ ョ ンで重要とな り ます。 MIG ツールは、 キャ リブレーシ ョ ン プロセ

ス中にユーザー アプ リ ケーシ ョ ン データが上書きされないよ うにするため、 ユーザーが指定した

キャ リブレーシ ョ ン メモ リ アドレスを予約できます。再キャ リブレーシ ョ ンが要求される と き、指

定された位置にト レーニング パターンが書き込まれ、 MIG ツールがキャ リブレーシ ョ ン アドレス

空間を検証し、 行バウンダ リ を超えていないかチェ ッ ク した り、 ユーザー アプ リ ケーシ ョ ン デー

タを保護するためにセーフガードを追加します。

X-Ref Target - Figure 1-32

図 1-32 : 入力終端方法の選択

UG416_c1_31_091409

Page 29: ザイリンクス UG416 Spartan-6 FPGA メモリ インターフェイス ソ … · mig ツールは、ユーザーが求めるメモリ インターフェイスを構築するために必要なすべての属性

Spartan-6 FPGA メモリ インターフェイス ソ リューシ ョ ン japan.xilinx.com 29UG416 (v1.3.1) 2010 年 10 月 18 日

MIG ツール : 手順を追った指示

14. 再キャ リブレーシ ョ ン プロセス実行中に使用されるキャ リブレーシ ョ ン メモ リ アドレスを選

択します。EDK フローの場合、これらの値はメモリの上位で自動設定されるため、このオプシ ョ

ンは表示されません。

MIG ツールには、 シ ミ ュレーシ ョ ン時間を短縮するため、 ファンクシ ョ ン シ ミ ュレーシ ョ ン中に

初期キャ リブレーシ ョ ン プロセスを省略するオプシ ョ ンがあ り ます。

15. [Bypass Calibration] をオンにして、 ファンクシ ョ ン シ ミ ュレーシ ョ ン中に初期キャ リブレー

シ ョ ンを省略します (EDK フローでは利用不可)。

MIG ツールでは、 ChipScope™ ツール デバッグ用のメモ リ デザインの設定プロセスがシンプルに

なり ます。必要に応じて、MIG ツールはユーザー デバッグ信号を 上位デザインの ChipScope ツー

ル モジュールへポート マップできるため (EDK フローでは不可)、ChipScope によるユーザー イン

ターフェ イ ス ポー ト の ト ラ フ ィ ッ クのモニタ リ ングが可能にな り ます (ChipScope ツール モジュールに接続されているユーザー インターフェイス信号の詳細は、 第 3 章の 「デバッグ信号」 を参照)。 デザインの PAR フォルダーにある ise_flow.bat バッチ モード スク リプ ト を使用してメモ リ

デザインがインプ リ メ ン ト される場合は、 CORE Generator ソフ ト ウェアが自動的に呼び出されて

ChipScope ツール モジュールを生成し (つま り NGC ファ イルが生成され)、デバッグ信号のモニタ

リ ングを行います。デバッグ オプシ ョ ンが選択されない場合は、デザインの 上位モジュールでデ

バッグ信号を未接続のままにする と、 ChipScope ツール モジュールは生成されません。

16. [Debug Signals for Memory Controller] を [Enable] に設定し、ChipScope ツールを使用してデ

バッグ信号をモニタ リ ングします。モニタ リ ングが不要な場合は、このオプシ ョ ンを [Disable]に設定して ください。 [Next] をク リ ッ ク して、 現在のプロジェク トの全オプシ ョ ンと設定のサ

マリ ページへ進みます。

X-Ref Target - Figure 1-33

図 1-33 : キャリブレーシ ョ ン メモリ アドレスの設定

X-Ref Target - Figure 1-34

図 1-34 : ファンクシ ョ ン シミ ュレーシ ョ ン中にキャリブレーシ ョ ンを省略

X-Ref Target - Figure 1-35

図 1-35 : デバッグ信号制御の設定

UG416_c1_32_091409

UG416_c1_33_091409

UG416_c1_34_091409

Page 30: ザイリンクス UG416 Spartan-6 FPGA メモリ インターフェイス ソ … · mig ツールは、ユーザーが求めるメモリ インターフェイスを構築するために必要なすべての属性

30 japan.xilinx.com Spartan-6 FPGA メモリ インターフェイス ソリューシ ョ ン

UG416 (v1.3.1) 2010 年 10 月 18 日

第 1 章 : はじめに

デザイン サマリ

[Summary] ページ (EDK フローにはない) には、 デザイン パラ メーター、 インターフェイス パラ

メーター、CORE Generator ツール オプシ ョ ン、およびメモ リ インターフェイス デザインの FPGAオプシ ョ ンなどの詳細サマリが表示されます (図 1-36 参照)。

17. [Summary] ページですべての情報が正しいこ とを確認した後、 [Next] をク リ ッ ク して

[Memory Model License] の契約ページへ進みます。

X-Ref Target - Figure 1-36

図 1-36 : [Summary] ページ

UG416_c1_35_091409

Page 31: ザイリンクス UG416 Spartan-6 FPGA メモリ インターフェイス ソ … · mig ツールは、ユーザーが求めるメモリ インターフェイスを構築するために必要なすべての属性

Spartan-6 FPGA メモリ インターフェイス ソ リューシ ョ ン japan.xilinx.com 31UG416 (v1.3.1) 2010 年 10 月 18 日

MIG ツール : 手順を追った指示

メモリ モデル ライセンス

MIG ツールは、 DDR、 DDR2、 DDR3、 および LPDDR デバイスのシ ミ ュレーシ ョ ンをサポート

するためにベンダー メモ リ モデルを出力できます (EDK フローでは不可)。 出力 SIM フォルダー

のモデルへアクセスするには、 ユーザーがベンダー ライセンス合意書に同意する必要があ り ます。

ラ イセンス合意書に同意しない場合は、 メモ リ モデルが生成されず、デザインをシ ミ ュレーシ ョ ン

できません。

18. ベンダー ライセンス合意書を読み、[Accept License Agreement] のチェッ ク ボッ クスをオンに

して、 デザインのメモ リ モデルを生成します。 そして [Next] をク リ ッ ク します。

PCB 情報

[PCB Information] ページでは、 MIG が生成したデザインの PCB デザイン ガイ ド ラインを一覧で

きます。

19. [Next] をク リ ッ ク して [Design Notes] ページへ進みます。

デザイン ノート

[Design Notes] ページには、 メモ リ インターフェイスの作成に使用された特定 MIG リ リースの詳

細情報があ り ます。

20. [Generate] をク リ ッ クする と、指定したメモ リ インターフェイス ソ リ ューシ ョ ンのシ ミ ュレー

シ ョ ンおよびインプリ メンテーシ ョ ンで必要なすべてのデザイン ファ イルが MIG ツールに

よって生成されます。

MIG ツールでは、 2 つの出力ディ レク ト リ (example_design と user_design) が生成されます。

完了

デザイン生成後、 追加の情報を伴う [README] ページが表示されます。

21. [Close] をク リ ッ ク して MIG ツール フローを完了します。

X-Ref Target - Figure 1-37

図 1-37 : ベンダーのメモリ モデル ライセンス合意書

UG416_c1_36_021810

Page 32: ザイリンクス UG416 Spartan-6 FPGA メモリ インターフェイス ソ … · mig ツールは、ユーザーが求めるメモリ インターフェイスを構築するために必要なすべての属性

32 japan.xilinx.com Spartan-6 FPGA メモリ インターフェイス ソリューシ ョ ン

UG416 (v1.3.1) 2010 年 10 月 18 日

第 1 章 : はじめに

MIG のディレク ト リ構造とファイルの説明

このセクシ ョ ンでは、MIG ツールのディ レク ト リ構造および出力ファ イルについて詳し く説明し

ます。

出力ディ レク ト リの構造

MIG ツール (EDK フロー以外) は、 <component name> とい う フォルダー名の中にすべての出力

ディ レ ク ト リ を配置し ます。 <component name> の場所は、 MCB デザイン作成フローの [MIGOutput Options] ページ (15 ページの手順 4) で指定しました。

図 1-38 に、 メモ リ コン ト ローラー デザインの出力ディ レ ク ト リ構造を示します。 <componentname> ディ レク ト リには、 次の 3 つのフォルダーが作成されます。

• docs

• example_design

• user_design

メモ : EDK フローの場合、 MIG プロジェク ト ファ イルおよびその関連ファイルは <EDK ProjectDirectory>/__xps/<Instance Name> 内に格納されており、XPS プロジェク トが構築される と きに再

生成されます。 ピンの位置情報を含む MIG UCF ファ イルは、 <EDK ProjectDirectory>/__xps/<Instance Name>/mig.ucf へ書き込まれ、 ビルド プロセス時に <EDK ProjectDirectory>/implementation/<Instance Name>_wrapper/<Instance Name>.ucf にある EDK コア レベル UCF ファ イルへ変換されます。これらのファイルはビルド中に再生成されますが、デバッグを

目的と してそれらを保持あるいは参照するこ とは有用です。

ディ レク ト リおよびファイルの内容 (CORE Generator ツール フローのみ)

<component name>/docs

docs ディレク ト リには、 メモリ デザインに関連する全 PDF 資料 (このユーザー ガイ ドを含む) が含

まれています。

<component name>/example_design/

example_design ディ レク ト リには、ト ラフ ィ ッ ク ジェネレーターを含む完全な MIG デザイン例の

シ ミ ュレーシ ョ ンやインプ リ メ ンテーシ ョ ンに必要なすべての RTL、 制約ファ イル、 ス ク リプ ト

ファ イルがあ り ます。デザイン例の詳細は、38 ページの「 ト ラフ ィ ッ ク ジェネレーター付きの MIG

X-Ref Target - Figure 1-38

図 1-38 : ネイティブ インターフェイス デザインの MIG ディレク ト リ構造

UG416_c1_37_081610

Page 33: ザイリンクス UG416 Spartan-6 FPGA メモリ インターフェイス ソ … · mig ツールは、ユーザーが求めるメモリ インターフェイスを構築するために必要なすべての属性

Spartan-6 FPGA メモリ インターフェイス ソ リューシ ョ ン japan.xilinx.com 33UG416 (v1.3.1) 2010 年 10 月 18 日

MIG のディレク ト リ構造とファイルの説明

デザイン例」 を参照してください。オプシ ョ ンの ChipScope ツール モジュールも、 このディ レク ト

リに含まれます。

<component name>/example_design/rtl

このデ ィ レ ク ト リ の rtl フ ォルダーには、 MIG で生成された 上位フ ァ イルが含まれます (表 1-1 参照)。

<component name>/example_design/rtl/traffic_gen

traffic_gen サブフォルダーには、 ト ラフ ィ ッ ク ジェネレーター用の合成可能な HDL ファ イルが含

まれます。 表 1-2 では、 このフォルダー内の全ファイルについて説明します。

表 1-1 : example_design/rtl/ ディレク ト リにあるファイル

ファイル名 説明

example_top.v MIG ツールが生成した 上位ファイルです。

infrastructure.vメモ リ デザインで必要な Spartan-6 FPGA PLL と ク ロ ッ ク ネッ ト

ワーク リ ソースです。

memc_tb_top.v

Init Memory Control ブロッ ク と Traffic Pattern Generator を含むテ

ス トベンチ スティ ミ ュラス モジュールです。 すべてのポートが使用

されない場合でも、テス トベンチ用に 6 つすべての MCB ポート をイ

ンスタンシエートできます。 未使用のインターフェイス ポートは無

視できます。

memc_wrapper.v

任意のメモリ インターフェイスを作成するために必要な MCB やそ

の他の FPGA リ ソースを含む 上位ラ ッパー ファ イルです。 この

ファ イルには、 MIG ツールの設定に関わらず、 ネイティブ インター

フェイス と AXI インターフェイスの両方のポート オプシ ョ ンが含

まれます。 未使用インターフェイスのポート オプシ ョ ンは無視でき

ます。

表 1-2 : example_design/rtl/traffic_gen ディレク ト リにあるファイル

ファイル名 説明

a_fifo.v このモジュールは、 LUT RAM を使用した同期 FIFO です。

cmd_gen.vこのモジュールは、コマンド ジェネレーターです。コマンド、ア

ド レスおよびバース ト長の種類を個別に生成するよ うに制御し

ます。

cmd_prbs_gen.vこのモジュールは、 PRBS ジェネレーターです。 PRBS コマン

ド、 PRBS アドレス、 および PRBS バース ト長を生成します。

data_prbs_gen.v PRBS データ パターンを生成するための 32 ビッ ト LFSR です。

init_mem_pattern_ctr.vト ラフ ィ ッ ク ジェネレーター用のフロー制御ロジッ クを生成

します。

mcb_flow_control.vメモ リ コン ト ローラー コアと cmd_gen、read_data_path および

write_data_path モジュール間のフロー制御ロジッ クを生成し

ます。

mcb_traffic_gen.v ト ラフ ィ ッ ク ジェネレーターの 上位モジュールです。

Page 34: ザイリンクス UG416 Spartan-6 FPGA メモリ インターフェイス ソ … · mig ツールは、ユーザーが求めるメモリ インターフェイスを構築するために必要なすべての属性

34 japan.xilinx.com Spartan-6 FPGA メモリ インターフェイス ソリューシ ョ ン

UG416 (v1.3.1) 2010 年 10 月 18 日

第 1 章 : はじめに

<component name>/example_design/rtl/mcb_controller

このディ レク ト リには、 MCB 用のソフ ト キャ リブレーシ ョ ン モジュールと下位ラ ッパー ファ イ

ルが含まれます。

メモ : AXI インターフェイスが有効な場合は、 AXI RTL ファ イルを含む <componentname>/example_design/rtl/axi ディ レク ト リが追加されます。AXI インターフェイスの詳細は、第 2章 「EDK フローの詳細」 を参照して ください。

<component name>/example_design/par

par フォルダーには、 デザインのインプ リ メ ンテーシ ョ ンに必要な制約ファ イルおよびスク リプ ト

ファ イルが含まれます。 表 1-3 では、 このフォルダー内の全ファイルについて説明します。

注意 : 推奨ビルド オプシ ョ ン : component name ディ レク リの par フォルダーにある

ise_flow.bat ファ イルには、デザインで推奨されるビルド オプシ ョ ンが含まれています。この推

奨オプシ ョ ンに従わない場合は、 予期しない結果が生成される可能性があ り ます。

pipeline_inserter.v パイプライン ステージの挿入に使用されるモジュールです。

rd_data_gen.vmcb_flow_control.v モジュールに対する読み出し信号および

Ready 信号のタイ ミ ングを制御します。

read_data_path.v 読み出しデータ パスの 上位モジュールです。

read_posted_fifo.vメモ リ コン ト ローラーへ送信された読み出しコマンドを格納

するモジュールです。この FIFO 出力は、読み出しデータ比較に

対する予想データを生成します。

sp6_data_gen.v 異なるデータ パターンを生成します。

wr_data_gen.vmcb_flow_control.v モジュールに対する読み出し信号および

Ready 信号のタイ ミ ングを制御します。

write_data_path.v 書き込みデータパスの 上位モジュールです。

表 1-3 : example_design/par ディレク ト リにあるファイル

ファイル名 説明

example_top.ucf コアおよびデザイン例の UCF ファ イルです。

create_ise.bat

ダブルク リ ッ クする と、 ISE プロジェク トが作成されます。 生

成された ISE プロジェク トには、そのデザイン用の推奨される

ビルド オプシ ョ ンが含まれます。 プロジェク ト を GUI モード

で実行するには、ユーザーが ISE プロジェク ト をダブルク リ ッ

ク し、 プロジェク ト設定がすべて整った GUI モードで ISE プロジェク トが開きます。

ise_flow.bat

このスク リプ ト ファ イルは、合成、 ビルド、 マップ、配置配線

を実行します。 必要なオプシ ョ ンをすべて設定します。 デザイ

ンで推奨されるビルド オプシ ョ ンについては、このファイルを

参照してください。

表 1-2 : example_design/rtl/traffic_gen ディレク ト リにあるファイル (続き)

ファイル名 説明

Page 35: ザイリンクス UG416 Spartan-6 FPGA メモリ インターフェイス ソ … · mig ツールは、ユーザーが求めるメモリ インターフェイスを構築するために必要なすべての属性

Spartan-6 FPGA メモリ インターフェイス ソ リューシ ョ ン japan.xilinx.com 35UG416 (v1.3.1) 2010 年 10 月 18 日

MIG のディレク ト リ構造とファイルの説明

<component name>/example_design/synth

synth フォルダーには、 サンプル デザインを合成する際に必要なツール制約ファイルおよびスク リ

プ ト ファ イルが含まれます。 表 1-4 では、 このフォルダー内の全ファイルについて説明します。

<component name>/example_design/sim

sim フォルダーには、デザイン例をシ ミ ュレーシ ョ ンする際に必要なベンダー メモ リ モデルや 上

位シ ミ ュレーシ ョ ン モデルなど、 その他のファ イルが含まれています。 表 1-5 では、 このフォル

ダー内の全ファイルについて説明します。

<component name>/user_design

user_design ディ レ ク ト リ構造には、 一般的な FPGA アプ リ ケーシ ョ ンへ統合する準備ができた

MCB ベース メモ リ インターフェ イスのシ ミ ュレーシ ョ ンやインプ リ メ ンテーシ ョ ンで必要な

RTL、 制約ファイル、 およびスク リプ ト ファ イルがすべて含まれます。

<component name>/user_design/rtl

このディ レク ト リ内の rtl フォルダーには、 表 1-6 で説明した MIG で生成された 上位のデザイ

ン ファ イルが含まれます。

表 1-4 : example_design/synth ディレク ト リにあるファイル

ファイル名 説明

mem_interface_top_synp.sdcSynplify Pro 合成ツール用のデザイン制約が含ま

れています。

script_synp.tclこれらのスク リプ ト ファ イルは、 さまざまなツー

ル オプシ ョ ンを設定します。

表 1-5 : example_design/sim ディレク ト リにあるファイル

ファイル名 説明

ddr<n>_model_c<x>.v DDR SDRAM メモ リ モデルです。

ddr<n>_model_parameters_c<x>.vDDR メモ リ モデルのパラ メーター設定が含まれて

います。

sim.doサンプル デザインの ModelSim シ ミ ュレータ スク

リプ ト ファ イルです。

sim.exeダブルク リ ッ クする と、 ModelSim シ ミ ュレータを

使用してデザインが自動的にシ ミ ュレーシ ョ ンされ

ます。

sim_tb_top.v シ ミ ュレーシ ョ ンの 上位ファイルです。

表 1-6 : user_design/rtl ディレク ト リにあるファイル

ファイル名 説明

<component_name>.v専用メモ リ コン ト ローラー ブロ ッ クのカスタマイズされた 上位

のラ ッパー ファ イルです。

infrastructure.vメモ リ デザインに必要な Spartan-6 FPGA PLL およびネッ ト ワーク

リ ソースです。

memc_wrapper.v任意のメモ リ インターフェイスを作成する際に必要な MCB やその

他の FPGA リ ソースを含む 上位のラ ッパー ファ イルです。

Page 36: ザイリンクス UG416 Spartan-6 FPGA メモリ インターフェイス ソ … · mig ツールは、ユーザーが求めるメモリ インターフェイスを構築するために必要なすべての属性

36 japan.xilinx.com Spartan-6 FPGA メモリ インターフェイス ソリューシ ョ ン

UG416 (v1.3.1) 2010 年 10 月 18 日

第 1 章 : はじめに

メモ : AXI インターフェイスが有効な場合は、 AXI RTL ファ イルを含む <componentname>/example_design/rtl/axi ディ レク ト リが追加されます。AXI インターフェイスの詳細は、第 2章 「EDK フローの詳細」 を参照して ください。

<component name>/user_design/par

par フォルダーには、 デザインのインプ リ メ ンテーシ ョ ンに必要な制約ファ イルおよびスク リプ ト

ファ イルが含まれます。 表 1-7 では、 このフォルダー内の全ファイルについて説明します。

注意 : 推奨ビルド オプシ ョ ン : component name ディ レク リの par フォルダーにある

ise_flow.bat ファ イルには、デザインで推奨されるビルド オプシ ョ ンが含まれています。 この

推奨オプシ ョ ンに従わない場合は、 予期しない結果が生成される可能性があ り ます。

<component name>/user_design/synth

synth フォルダーには、 ユーザー デザインを合成する際に必要なツール制約ファイルおよびスク リ

プ ト ファ イルが含まれています。表 1-8 では、このフォルダー内の全ファイルについて説明します。

<component name>/user_design/sim

sim フォルダーには、 ユーザー デザインをシ ミ ュレーシ ョ ンする際に使用するベンダー メモ リ モデル、 上位シ ミ ュレーシ ョ ン モジュール、 およびその他に必要なファ イルが含まれています。

表 1-9 では、 このフォルダー内の全ファイルについて説明します。

表 1-7 : user_design/par ディレク ト リにあるファイル

ファイル名 説明

<component_name>.ucf コアおよびデザイン例の UCF ファ イルです。

create_ise.bat

ダブルク リ ッ クする と、 ISE プロジェク トが作成されます。生

成された ISE プロジェク トには、 そのデザイン用の推奨され

るビルド オプシ ョ ンが含まれます。プロジェク ト を GUI モー

ドで実行するには、 ユーザーが ISE プロジェク ト をダブルク

リ ッ ク し、 プロジェク ト設定がすべて整った GUI モードで

ISE プロジェク トが開きます。

ise_flow.bat

このスク リプ ト ファ イルは、合成、ビルド、マップ、配置配線

を実行します。必要なオプシ ョ ンをすべて設定します。デザイ

ンで推奨されるビルド オプシ ョ ンについては、 このファイル

を参照して ください。

表 1-8 : user_design/synth ディレク ト リにあるファイル

ファイル名 説明

mem_interface_top_synp.sdc Synplify Pro 合成ツール用のデザイン制約があ り ます。

script_synp.tclこれらのスク リプ ト ファ イルは、さまざまなツール オプ

シ ョ ンを設定します。

Page 37: ザイリンクス UG416 Spartan-6 FPGA メモリ インターフェイス ソ … · mig ツールは、ユーザーが求めるメモリ インターフェイスを構築するために必要なすべての属性

Spartan-6 FPGA メモリ インターフェイス ソ リューシ ョ ン japan.xilinx.com 37UG416 (v1.3.1) 2010 年 10 月 18 日

MIG のディレク ト リ構造とファイルの説明

表 1-9 : user_design/sim ディレク ト リにあるファイル

ファイル名 説明

a_fifo.v LUT RAM を使用する同期 FIFO です。

cmd_gen.vコマンド ジェネレーターを含むモジュールです。コマンド、アドレスおよび

バース ト長の種類を個別に生成するよ うに制御します。

cmd_prbs_gen.vPRBS ジェネレーターを含むモジュールです。 PRBS コマンド、 PRBS アド

レス、 PRBS バース ト長を生成します。

data_prbs_gen.v PRBS データ パターンを生成するための 32 ビッ ト LFSR です。

ddr<n>_model_c<x>.v DDR SDRAM メモ リ モデルです。

ddr<n>_model_parameters_c<x>.vh DDR メモ リ モデルのパラ メーター設定が含まれています。

init_mem_pattern_ctr.vト ラフ ィ ッ ク ジェネレーター用のフロー制御ロジックを生成するファイルで

す。

mcb_flow_control.vメモ リ コン ト ローラー コアと cmd_gen、 read_data_path および

write_data_path モジュール間のフロー制御ロジッ クを生成します。

mcb_traffic_gen.v ト ラフ ィ ッ ク ジェネレーターの 上位です。

pipeline_inserter.v パイプライン ステージの挿入に使用されるファイルです。

rd_data_gen.vmcb_flow_control.vモジュールに対する読み出し信号および Ready 信号の

タイ ミ ングを制御します。

read_data_path.v 読み出しデータパス用の 上位ファイルです。

read_posted_fifo.vメモ リ コン ト ローラーへ送信された読み出しコマンドを格納するモジュー

ルです。 この FIFO 出力は、 読み出しデータの比較に対して予期データを生

成します。

sim.do ユーザー デザイン用の ModelSim スク リプ ト ファ イルです。

sim.exeこの実行ファイルをダブルク リ ッ クする と、 ModelSim シ ミ ュレータを使用

してデザインを自動的にシ ミ ュレーシ ョ ンします。

sim_tb_top.v シ ミ ュレーシ ョ ンの 上位ファイルです。

sp6_data_gen.v 異なるデータ パターンを生成します。

wr_data_gen.vmcb_flow_control.v モジュールに対する読み出し信号および Ready 信号の

タイ ミ ングを制御します。

write_data_path.v 書き込みデータ パスの 上位ファイルです。

Page 38: ザイリンクス UG416 Spartan-6 FPGA メモリ インターフェイス ソ … · mig ツールは、ユーザーが求めるメモリ インターフェイスを構築するために必要なすべての属性

38 japan.xilinx.com Spartan-6 FPGA メモリ インターフェイス ソリューシ ョ ン

UG416 (v1.3.1) 2010 年 10 月 18 日

第 1 章 : はじめに

ト ラフ ィ ッ ク ジェネレーター付きの MIG デザイン例

(CORE Generator ツール、 ネイテ ィブ インターフェイスのみ)

このセクシ ョ ンでは、MIG で生成されたデザイン例をシ ミ ュレーシ ョ ンおよびインプリ メン トする

方法について説明します。 このデザインには、 MCB ベースのメモ リ インターフェイスのデモおよ

びテス ト を行うための ト ラフ ィ ッ ク ジェネレーターが含まれています。デザイン例のインプ リ メン

テーシ ョ ンで生成されたビッ ト ス ト リームは、Spartan-6 FPGA SP601 または SP605 ハードウェア

評価ボードで使用して、 DDR2 や DDR3 インターフェイスそれぞれのデモを実行できます。

デザイン例には、 図 1-39 に示すモジュールが含まれています。

• Spartan-6 FPGA MIG ラ ッパー : MIG ツールで生成される 上位ラ ッパー ファ イルであ り、

任意のメモ リ インターフェイスを作成する際に必要な MCB やその他の リ ソースが含まれて

います。

• TB_top : Init Memory Control ブロ ッ クや Traffic Pattern Generator を含むテス トベンチ スティ ミ ュ ラス モジュールです。

• ク ロ ッ ク インフラス ト ラ クチャ : メモ リ デザインで必要な Spartan-6 FPGA PLL およびク

ロ ッ ク ネッ ト ワーク リ ソースが含まれています。

X-Ref Target - Figure 1-39

図 1-39 : 合成可能なト ラフ ィ ッ ク ジェネレーターを含む MIG デザイン例

Example Design

UG416_c1_38_091409

TB_Top

Clock Infrastructure

Spartan-6 FPGA MIG Wrapper

Parameter:BEGIN_ADDR,END_ADDR,DATA_PATTERN,CMD_PATTERN

P0

P1

P2

P3

P4

P5

Command_Instr

Spartan-6FPGA

MemoryController

Block

Burst LengthUser_AddressCommand_Full

wr_fullwr_enwr_data

rd_enrd_datard_empty

Init MemoryControl

TrafficPattern

Generator

DDR Memory

Page 39: ザイリンクス UG416 Spartan-6 FPGA メモリ インターフェイス ソ … · mig ツールは、ユーザーが求めるメモリ インターフェイスを構築するために必要なすべての属性

Spartan-6 FPGA メモリ インターフェイス ソ リューシ ョ ン japan.xilinx.com 39UG416 (v1.3.1) 2010 年 10 月 18 日

(CORE Generator ツール、 ネイテ ィブ インターフェイスのみ)

ト ラフ ィ ッ ク ジェネレーターの動作

合成可能なテス トベンチに含まれる ト ラフ ィ ッ ク ジェネレーター モジュールは、 パラ メーターを

変更してメモ リ デザインのさまざまなスティ ミ ュ ラス パターンを作成できます。 このジェネレー

ターは、 実際の ト ラフ ィ ッ クをモデル化する擬似ランダム データ ス ト リームやデザインの完全性

を検証する反復的なテス ト パターンを生成可能です。

MIG ツールは、 ユーザー インターフェイスの各イネーブル ポート に個別の ト ラフ ィ ッ ク ジェネ

レーターを作成します。各ト ラフ ィ ッ ク ジェネレーターは、関連するポートのアドレス空間全体に

対して ト ラフ ィ ッ ク パターンを作成できます。 各ポートのデフォル ト アドレス空間は、 上位の

テス トベンチ ファ イル (tb_top.v) にある BEGIN_ADDRESS と END_ADDRESS パラ メーター

を使用して MIG ツールによって割り当てられます。 これらのパラ メーターを使用して、 ポート アドレス空間を変更する場合は、 46 ページの 「デザイン例の変更」 を参照してください。

テス トベンチは、まず 初に要求されたデータ パターンでポートの全アドレス空間を初期化します

(データ パターンのオプシ ョ ンについては、 次のサブセクシ ョ ンで説明)。 Init Memory Control ブロ ッ クは、 ポート アドレス空間の全アドレスを連続的に実行するよ うに ト ラフ ィ ッ ク ジェネレー

ターへ指示し、 選択されたデータ パターンで適切な値が判断されて、 メモ リ デバイスの各ロケー

シ ョ ンへ書き込まれます。デフォルトで、 テス トベンチはアドレスをデータ パターンと して使用し

ます。

メモ リ の初期化完了後、 ト ラフ ィ ッ ク ジェネレーターはユーザー インターフェイス ポート のス

ティ ミ ュレート を開始し、 メモ リ デバイスからまたはメモ リ デバイスへの ト ラフ ィ ッ クを生成し

ます。 デフォル トで、 ト ラフ ィ ッ ク ジェネレーターはポートへ擬似ランダム コマンドを送信しま

す。 つま り、 命令シーケンス (例 : R/W、 R、 W)、 アド レス、 およびバース ト長は、 テス トベンチ

の PRBS ジェネレーター ロジッ クで決定されます。 アドレス空間やデータ パターンと同様に、デ

フォル トの PRBS コマンド パターンは、46 ページの「デザイン例の変更」 に従って変更できます。

メモ リ デバイスから返される読み出しデータは、 ユーザー インターフェ イスの読み出しデータ

ポート を介して ト ラフ ィ ッ ク ジェネレーターによってアクセスされ、内部生成された予想データ と

比較されます。 エラーが検出される と (つま り、 読み出しデータ と予想データが不一致)、 エラー信

号がアサー ト されて、 リ ー ド バ ッ ク ア ド レ ス、 リ ー ド バ ッ ク データ、 および予想データが

error_status 出力にラ ッチされます。

各スティ ミ ュ ラス データ パターンについては、 次のサブセクシ ョ ンで説明します。

Page 40: ザイリンクス UG416 Spartan-6 FPGA メモリ インターフェイス ソ … · mig ツールは、ユーザーが求めるメモリ インターフェイスを構築するために必要なすべての属性

40 japan.xilinx.com Spartan-6 FPGA メモリ インターフェイス ソリューシ ョ ン

UG416 (v1.3.1) 2010 年 10 月 18 日

第 1 章 : はじめに

データ パターンと してのアドレス (デフォルト )

このパターンは、 各メモ リ アド レスにぞれぞれのアドレスを書き込みます。 アドレス バス関連の

問題を検出するためのシンプルなテス トです (図 1-40 参照)。

X-Ref Target - Figure 1-40

図 1-40 : DQ バス上のデータ パターンとしてのアドレス

mcb_cmd_addr_o[29:0]

Write 5 words to byteaddress 0x440 with thebegin data the same asthe starting address

Read Command with burstlength of 10 to address 0x200is accepted to the MCB whenmcb_cmd_full is deasserted

Next UserWrite data toaddress 0x800

Write Command is accepted tothe MCB when FIFO full is deassertedfor the user write data words0x440, 0x444, 0x448, 0x44C, 0x450

mcb_cmd_instr_o[2:0]

mcb_cmd_bl_o[5:0]

mcb_cmd_en_o

mcb_cmd_full_i

mcb_wr_data_o[31:0]

mcb_wr_en

UG416_c1_39_091409

00000200

00000440 00000448

00000450

00000800

00000804

00000808

0000080C

00000810

00000814

0000

0000044C00000444

00000440

01

49

Page 41: ザイリンクス UG416 Spartan-6 FPGA メモリ インターフェイス ソ … · mig ツールは、ユーザーが求めるメモリ インターフェイスを構築するために必要なすべての属性

Spartan-6 FPGA メモリ インターフェイス ソ リューシ ョ ン japan.xilinx.com 41UG416 (v1.3.1) 2010 年 10 月 18 日

(CORE Generator ツール、 ネイテ ィブ インターフェイスのみ)

Hammer データ パターン

このパターンは、 同時スイ ッチング出力 (SSO) が発生している メモ リ インターフェイスを強調し

ます (図 1-41 参照)。 複数の出力ド ラ イバーが同時にスイ ッチする場合、 PCB あるいはデバイス

パッケージ内で電圧降下やグランド バウンスを生じる可能性があ り ます。

X-Ref Target - Figure 1-41

図 1-41 : DQ バス上の Hammer データ パターン

mcbx_dram_addr[12:0]

mcbx_dram_ras_n

mcbx_dram_cas_n

mcbx_dram_we_n

mcbx_dram_dq[15:0]

mcbx_dram_dq[15]

mcbx_dram_dq[14]

mcbx_dram_dq[13]

mcbx_dram_dq[12]

mcbx_dram_dq[11]

mcbx_dram_dq[10]

mcbx_dram_dq[9]

mcbx_dram_dq[8]

mcbx_dram_dq[7]

mcbx_dram_dq[6]

mcbx_dram_dq[5]

mcbx_dram_dq[4]

mcbx_dram_dq[3]

mcbx_dram_dq[2]

mcbx_dram_dq[1]

mcbx_dram_dq[0]

mcbx_dram_dqs

UG416_c1_40_091409

0000 0000

0000zzzzzzzz

000 000 000 000 000 000000 00

Page 42: ザイリンクス UG416 Spartan-6 FPGA メモリ インターフェイス ソ … · mig ツールは、ユーザーが求めるメモリ インターフェイスを構築するために必要なすべての属性

42 japan.xilinx.com Spartan-6 FPGA メモリ インターフェイス ソリューシ ョ ン

UG416 (v1.3.1) 2010 年 10 月 18 日

第 1 章 : はじめに

Neighbor データ パターン

このパターンは、 あるサイ クルにおいて 1 つの DQ ピンが Low を保持する という例外があ り ます

が、 それ以外は Hammer パターンと同じです (図 1-42 参照)。 このパターンを使用して、 別のピン

によって生成された SSO ピンが原因となる、 スタティ ッ ク I/O ピンのノ イズ カップリ ング レベル

を測定できます。

X-Ref Target - Figure 1-42

図 1-42 : DQ バス上の Neighbor データ パターン

UG416_c1_41_091409

mcbx_dram_dqs

mcbx_dram_dq[15:0]

mcbx_dram_dq[15]

mcbx_dram_dq[14]

mcbx_dram_dq[13]

mcbx_dram_dq[12]

mcbx_dram_dq[11]

mcbx_dram_dq[10]

mcbx_dram_dq[9]

mcbx_dram_dq[8]

mcbx_dram_dq[7]

mcbx_dram_dq[6]

mcbx_dram_dq[5]

mcbx_dram_dq[4]

mcbx_dram_dq[3]

mcbx_dram_dq[2]

mcbx_dram_dq[1]

mcbx_dram_dq[0]

mcbx_dram_we_n

mcbx_dram_cas_n

mcbx_dram_ras_n

zzzzzzF 0 F 0 F 0 F 0 F 0 F 0 F 0 F 0 F 0 F 0 F 0 F 0 E 0 D 0 B 0 7 0

Page 43: ザイリンクス UG416 Spartan-6 FPGA メモリ インターフェイス ソ … · mig ツールは、ユーザーが求めるメモリ インターフェイスを構築するために必要なすべての属性

Spartan-6 FPGA メモリ インターフェイス ソ リューシ ョ ン japan.xilinx.com 43UG416 (v1.3.1) 2010 年 10 月 18 日

(CORE Generator ツール、 ネイテ ィブ インターフェイスのみ)

Walking 1 および Walking 0 データ パターン

Walking 1 と Walking 0 パターン (図 1-43 および 図 1-44 を参照) は、 各メモ リ ビッ トの位置を個

別に 別のビッ トから1 や 0 へ確実に設定します。 このテス トによって、 PCB 上の DQ バス コネク

ティビティ も確認できます。

X-Ref Target - Figure 1-43

図 1-43 : DQ バス上の Walking 1 データ パターン

mcbx_dram_dq[15:0]

mcbx_dram_dq[15]

mcbx_dram_dq[14]

mcbx_dram_dq[13]

mcbx_dram_dq[12]

mcbx_dram_dq[11]

mcbx_dram_dq[10]

mcbx_dram_dq[9]

mcbx_dram_dq[8]

mcbx_dram_dq[7]

mcbx_dram_dq[6]

mcbx_dram_dq[5]

mcbx_dram_dq[4]

mcbx_dram_dq[3]

mcbx_dram_dq[2]

mcbx_dram_dq[1]

mcbx_dram_dq[0]

mcbx_dram_dqs

mcbx_dram_we_n

mcbx_dram_cas_n

mcbx_dram_ras_n

zzzzzzzz

UG416_c1_42_091409

Page 44: ザイリンクス UG416 Spartan-6 FPGA メモリ インターフェイス ソ … · mig ツールは、ユーザーが求めるメモリ インターフェイスを構築するために必要なすべての属性

44 japan.xilinx.com Spartan-6 FPGA メモリ インターフェイス ソリューシ ョ ン

UG416 (v1.3.1) 2010 年 10 月 18 日

第 1 章 : はじめに

X-Ref Target - Figure 1-44

図 1-44 : DQ バス上の Walking 0 データ パターン

mcbx_dram_dq[15:0]

mcbx_dram_dq[15]

mcbx_dram_dq[14]

mcbx_dram_dq[13]

mcbx_dram_dq[12]

mcbx_dram_dq[11]

mcbx_dram_dq[10]

mcbx_dram_dq[9]

mcbx_dram_dq[8]

mcbx_dram_dq[7]

mcbx_dram_dq[6]

mcbx_dram_dq[5]

mcbx_dram_dq[4]

mcbx_dram_dq[3]

mcbx_dram_dq[2]

mcbx_dram_dq[1]

mcbx_dram_dq[0]

mcbx_dram_we_n

mcbx_dram_cas_n

mcbx_dram_ras_n

zzzzzzzz

UG416_c1_43_091409

mcbx_dram_dqs

Page 45: ザイリンクス UG416 Spartan-6 FPGA メモリ インターフェイス ソ … · mig ツールは、ユーザーが求めるメモリ インターフェイスを構築するために必要なすべての属性

Spartan-6 FPGA メモリ インターフェイス ソ リューシ ョ ン japan.xilinx.com 45UG416 (v1.3.1) 2010 年 10 月 18 日

(CORE Generator ツール、 ネイテ ィブ インターフェイスのみ)

PRBS データ パターン

このパターンは PRBS データを作成します。 各データ バース トの開始アドレスは 32 ビッ ト LFSR回路のシード (初期値) と して使用され、実際のアプリ ケーシ ョ ン テス トに近い形で、ランダム デー

タを含むバース ト を生成します。

シミ ュレーシ ョ ンの設定

シ ミ ュレーシ ョ ンでは、 ト ラフ ィ ッ ク ジェネレーターのユーザー ポートには小さなアドレス範囲

が割り当てられ、システムがインス トールされる物理メモ リ を制限した場合でのメモ リ オーバーフ

ローを回避します。ハード ウェア検証を行う場合は、よ り大きなアドレス空間範囲用に example_topの HWTESTING パラ メーターを手動で変更できます。

MCB デザインのシ ミ ュレーシ ョ ンの詳細は、 『Spartan-6 FPGA メモ リ コン ト ローラ ユーザー ガイ ド』 (UG388) の 「シ ミ ュレーシ ョ ン」 セクシ ョ ンを参照してください。

ファンクシ ョ ン シミ ュレーシ ョ ン

MIG デザイン例やユーザー デザインをシ ミ ュレーシ ョ ンする場合は、ザイ リ ンクスの unisim ライ

ブラ リ をコンパイルしてシ ミ ュレータにマップする必要があ り ます。 現在、 ISim と ModelSim のバージ ョ ン 6.4b またはそれ以降に対してのみ、 Spartan-6 FPGA MCB の暗号化されたモデルが提

供されています。

デザイン例と共に提供されている Traffic Generator テス トベンチを使用して、生成されたメモ リ インターフェイス ソ リ ューシ ョ ンのインプ リ メ ンテーシ ョ ン前のファンクシ ョ ン シ ミ ュレーシ ョ ン

を実行できます。

X-Ref Target - Figure 1-45

図 1-45 : DQ バス上の PRBS データ パターン

mcb_cmd_addr_o[29:0]

Write 11 random wordsto starting byte address0x480. 0x480 is the seedused in the LFSR forgenerating the random data.

Asserting WriteCommand toaddress 0x480.

mcb_cmd_instr_o[2:0]

mcb_cmd_bl_o[5:0]

mcb_cmd_en_o

mcb_cmd_full_i

mcb_wr_data_o[31:0]

mcb_wr_full_i

mcb_wr_en

MCB Controlleraccepted WriteCommand data.

UG416_c1_44_091409

00000200

CA492BD8 2924AE2F 492B8C62

925718C4

24AE314D

CA4930D8

A49

52495C5E94925775

00000480

01

1012

492571BD 2495C631

A492B8BC 924AE37A

Page 46: ザイリンクス UG416 Spartan-6 FPGA メモリ インターフェイス ソ … · mig ツールは、ユーザーが求めるメモリ インターフェイスを構築するために必要なすべての属性

46 japan.xilinx.com Spartan-6 FPGA メモリ インターフェイス ソリューシ ョ ン

UG416 (v1.3.1) 2010 年 10 月 18 日

第 1 章 : はじめに

シ ミ ュレーシ ョ ンの実行

1. 次のディ レク ト リへ移動します。

<project_dir>/<component_name>/example_design/sim/functional

2. 選択したシ ミ ュレーシ ョ ン ツールとオペレーティング システムに対応するスク リプ ト コマン

ドを実行します。

• Windows の場合

- ModelSim の場合はプロンプ ト画面に 「sim.do」 と入力します。

- ISim の場合はプロンプ ト画面に 「isim」 と入力します。

• Linux の場合

- ModelSim の場合はプロンプ ト画面に 「source sim.do」 と入力します。

- ISim の場合はプロンプ ト画面に 「source isim.do」 と入力します。

デザイン例のインプリ メンテーシ ョ ン

MIG ツールは、 デザイン例の par フォルダー内に ise_flow.bat スク リプ ト ファイルを自動生成しま

す。 このスク リプ ト ファイルは、 デザインの合成、 変換、 マップおよび配置配線を実行します。 デ

ザインで推奨されるすべてのビルド オプシ ョ ンに関しては、 このファイルを参照してください。

デザイン例の変更

MIG で生成されたデザイン例のテス トベンチは、 別のデータやコマンド パターンを実行するよ う

に変更できます。 このセクシ ョ ンでは、サンプル デザインに変更を加える際に注意すべきテス トベ

ンチ パラ メーターおよび信号名について説明します。

最上位のパラメーター

上位のテス トベンチ ファ イル (tb_top.v) には変更可能なパラ メーターがあ り、ト ラフ ィ ッ ク ジェ

ネレーターの動作を変更できます。表 1-10 に、 これらのパラ メーターの説明およびデフォルト値を

示します。 通常、 ほとんどのデータ パターンおよびアドレス空間パラ メーターは変更可能ですが、

メモ リや MCB コンフ ィギュレーシ ョ ンの特性など一部のパラ メーターは固定されています。

ト ラフ ィ ッ ク ジェネレーターでインプ リ メ ン ト されたデータ パターンを変更する も簡単な方法

は、 rtl ディ レク ト リ内の example_top.v ファ イルを開いて、 Data Mode のローカル パラ メーター

(例 : C3_p0_DATA_MODE) を変更します。 このパラ メーターの 4 ビッ ト コードは、 49 ページの

表 1-12 にある data_mode_i[3:0] 信号で定義されているバイナリ値を使用して変更できます。

Page 47: ザイリンクス UG416 Spartan-6 FPGA メモリ インターフェイス ソ … · mig ツールは、ユーザーが求めるメモリ インターフェイスを構築するために必要なすべての属性

Spartan-6 FPGA メモリ インターフェイス ソ リューシ ョ ン japan.xilinx.com 47UG416 (v1.3.1) 2010 年 10 月 18 日

(CORE Generator ツール、 ネイテ ィブ インターフェイスのみ)

表 1-10 : TB_TOP モジュールのパラメーター

パラメーター パラメーターの説明 パラメーター値

BEGIN_ADDRESS メ モ リ の開始ア ド レス

境界を設定

ポート アドレス空間の開始地点を定義します。この値の LSB [3:0]は無視されます。

DATA_PATTERN 生成されるデータ パターンを設定

有効な設定は次のとおりです。

ADDR (デフォルト ) - アドレスはデータ パターンと して使用さ

れます。

HAMMER - DQS の立ち上がりエッジでは DQ ピンがすべて 1 とな り、 DQS の立ち下がりエッジでは DQ ピンがすべて 0 とな り ます。

WALKING1 - Walking 1 が DQ ピンに現れ、開始位置 1 はアド

レス値によって異なり ます。

0 - Walking 0 が DQ ピンに現れ、 開始位置 1 はアドレス値に

よって異なり ます。

NEIGHBOR - 1 つを除くすべての DQ ピンに Hammer パター

ンが現れ、 そのアドレスが例外ピンの位置を指定します。

PRBS - 32 ステージの LFSR がランダム データを生成し、開始

アドレスでシード されます。

DWIDTH MIG ツールがユーザー

データ ポート幅に基づ

いてデフォル ト 値を設

有効な設定は、 32、 64、 および 128 ビッ トです。

END_ADDRESS メ モ リ の終了ア ド レス

境界を設定

ポート アドレス空間の終点を定義します。この値の LSB [3:0] は無

視されます。

FAMILY ファ ミ リの種類 値は 「SPARTAN6」 です。

NUM_DQ_PINS 選択した メ モ リ のデー

タ (DQ) ピン数に基づ

いて、 MIG ツールがデ

フォルト値を設定

有効な設定は、 4、 8、 および 16 です。

PORT_MODE ポート コンフ ィギュ

レーシ ョ ン (双方向、書き込みのみ、

読み出しのみ) に基づい

て、 MIG ツールがデ

フォルト値を設定

有効な設定は次のとおりです。

BI_MODE - WRITE データ パターンを生成し、 比較用に READ データをモニタ リ ングします。

WR_MODE - WRITE データ パターンのみ生成します。ポート

用の比較ロジッ クは生成されません。

RD_MODE - ポートの READ コン ト ロール ロジッ クのみ生成sされます。

Page 48: ザイリンクス UG416 Spartan-6 FPGA メモリ インターフェイス ソ … · mig ツールは、ユーザーが求めるメモリ インターフェイスを構築するために必要なすべての属性

48 japan.xilinx.com Spartan-6 FPGA メモリ インターフェイス ソリューシ ョ ン

UG416 (v1.3.1) 2010 年 10 月 18 日

第 1 章 : はじめに

ト ラフ ィ ッ ク ジェネレーターのパラメーター

CMD_PATTERN は、Traffic Generator モジュール内で変更できます (表 1-11 参照)。このパラ メー

ターは、 通常の状況では変更すべきではないため、 上位のテス トベンチには含まれません。 ただ

し、 アドレス、 バース ト長、 および命令値がブロ ッ ク RAM から提供されているなど、 特別な場合

にはデフォルト値に変更する必要があ り ます (53 ページの 「カスタム コマンド シーケンス」 参照)。

PRBS_EADDR_MASK_POS 32 ビッ ト の ANDMASK の位置を設定

PRBS アドレス ジェネレーターと共に使用され、 ポート アドレス

空間へランダム アドレスをシフ ト ダウンします。

END_ADDRESS と PRBS アドレスの論理積を取って、マスクの 1を含むビッ ト位置を求めます。

PRBS_SADDR_MASK_POS 32 ビッ ト の OR MASKの位置を設定

ポート アドレス空間へランダム アドレスをシフ ト アップするた

めに PRBS アドレス ジェネレーターと共に使用されます。

BEGIN_ADDRESS と PRBS アドレスの論理和を取って、 マスク

の 1 を含むビッ ト位置を求めます。

表 1-10 : TB_TOP モジュールのパラメーター (続き)

パラメーター パラメーターの説明 パラメーター値

表 1-11 : Traffic Generator モジュールのパラメーター

パラメーター名 パラメーターの説明 パラメーター値

CMD_PATTERN 生成されるコマンド パターン回路を設定。大規

模デバ イ ス の場合は、

CMD_PATTERN を

CGEN_ALL に設定可

能。生成される全サポー

ト コマンド回路を有効

にする。ただし、一部の

小規模デバイ スの場合

は、リ ソースが限られて

いるため、特定のコマン

ド パターンに制限する

必要がある。

有効な設定は次のとおりです。

CGEN_FIXED - アドレス、 バース ト長、 命令

は、 fixed_addr_i、 fixed_bl_i、 fixed_instr_i 入力から直接取り込まれます。

CGEN_SEQUENTIAL - アドレスは連続的に

インク リ メン ト され、 インク リ メン トはデー

タ ポート サイズによって決定されます。

CGEN_BRAM - アドレス、 バース ト長、 命令

は、 bram_cmd_i 入力から直接取り込まれます。

CGEN_PRBS - 32 ステージの LFSR が疑似ラ

ンダム アドレス、 バース ト長、 および命令

シーケンスを生成します。 シードは、 32 ビッ

トの cmd_seed 入力で設定できます。

CGEN_ALL (デフォルト ) - 上記オプシ ョ ンす

べてを有効にし、 ddr_mode_i、 instr_mode_i、および bl_mode_i でランタイム中の生成タイ

プが選択可能になり ます。

Page 49: ザイリンクス UG416 Spartan-6 FPGA メモリ インターフェイス ソ … · mig ツールは、ユーザーが求めるメモリ インターフェイスを構築するために必要なすべての属性

Spartan-6 FPGA メモリ インターフェイス ソ リューシ ョ ン japan.xilinx.com 49UG416 (v1.3.1) 2010 年 10 月 18 日

(CORE Generator ツール、 ネイテ ィブ インターフェイスのみ)

ト ラフ ィ ッ ク ジェネレーターの信号説明

表 1-12 では、 すべての ト ラフ ィ ッ ク ジェネレーターの信号を説明しています。 デザイン例では、

デフォルト テス ト フローを実行するために、 Init Memory Control ブロ ッ クがこれらの信号のほと

んどを制御します (例 : データ パターンでメモ リ を初期化し、 疑似ランダム コマンド パターンを

生成して ト ラフ ィ ッ クの実行を開始する)。 これらの信号を制御するデザインに変更を加える場合

は、 それらの動作を熟知している必要があ り ます。

表 1-12 : ト ラフ ィ ッ ク ジェネレーターの信号説明

信号名 方向 説明

addr_mode_i[1:0] 入力

有効な設定は次のとおりです。

00 : ブロ ッ ク RAM アドレス モード - アドレスは bram_cmd_i 入力バスか

ら提供されます。

01 : FIXED アドレス モード - アドレスは fixed_addr_i 入力バスから提供

されます。

10 : PRBS アドレス モード (デフォルト ) - アドレスは 32 ビッ トの内部 LFSR 回路から生成されます。 cmd_seed 入力バスを使用して、 シードを

変更できます。

11 : SEQUENTIAL アドレス モード - アドレスは、 内部アドレス カウン

ターから生成されます。 ユーザー インターフェイス ポート幅によって増

加分が決定します。

bl_mode_i[1:0] 入力

有効な設定は次のとおりです。

00 : ブロ ッ ク RAM バース ト モード - バース ト長は、 bram_cmd_i 入力バ

スから提供されます。

01 : FIXED バース ト モード - バース ト長は、 fixed_instr_i 入力バスから

提供されます。

10 : PRBS バース ト モード (デフォルト ) - バース ト長は 16 ビッ トの内部 LFSR 回路から生成されます。 シードは、 パラ メーター セクシ ョ ンでのみ

変更可能です。

bram_cmd_i[38:0] 入力ブロッ ク RAM インターフェイス ポート {BL、 INSTR、ADDRESS} が含ま

れます。

bram_rdy_o 出力この出力は、 ト ラフ ィ ッ ク ジェネレーターが bram_cmd_i バスからの入力信

号を受信する準備が整っているこ とを示します。

bram_valid_i 入力ブロ ッ ク RAM インターフェイスでは、 bram_cmd_i バスは、 bram_valid_iと bram_rdy_o の両方がアサート されている場合に受信します。

clk_i 入力 クロ ッ ク入力信号です。

cmd_seed_i[31:0] 入力 コマンド PRBS ジェネレーターのシードを示します。

counts_rst 入力この信号がアサート される と、 wr_data_counts と rd_data_counts が 0 にリ

セッ ト されます。

Page 50: ザイリンクス UG416 Spartan-6 FPGA メモリ インターフェイス ソ … · mig ツールは、ユーザーが求めるメモリ インターフェイスを構築するために必要なすべての属性

50 japan.xilinx.com Spartan-6 FPGA メモリ インターフェイス ソリューシ ョ ン

UG416 (v1.3.1) 2010 年 10 月 18 日

第 1 章 : はじめに

data_mode_i[3:0] 入力

有効な設定は次のとおりです。

0000 : 予約済み

0001 : FIXED データ モード - データは fixed_data_i 入力バスから提供さ

れます。

0010 : DGEN_ADDR (デフォルト ) - アドレスはデータ パターンと して使

用されます。

0011 : DGEN_HAMMER - DQS の立ち上がりエッジでは DQ ピンがすべ

て 1 とな り、 DQS の立ち下がりエッジでは DQ ピンがすべて 0 とな り ま

す。 このオプシ ョ ンは、 DATA_PATTERN = DGEN_HAMMER または DGEN_ALL の場合のみ有効です。

0100 : DGEN_NEIGHBOR - 1 つのピンを除いて、 DQS の立ち上がりで

は、 DQ ピンにすべて 1 が現れます。 アドレスが、 その例外ピン位置を決

定します。 このオプシ ョ ンは、DATA_PATTERN = DGEN_ADDR または DGEN_ALL の場合のみ有効です。

0101 : DGEN_WALKING1 - DQ ピンに Walking 1 が現れます。開始位置 1 は、 アドレス値に依存します。 このオプシ ョ ンは、 DATA_PATTERN = DGEN_WALKING または DGEN_ALL の場合のみ有効です。

0110 : DGEN_WALKING0 - DQ ピンに Walking 0 が現れます。開始位置 0 は、 アドレス値に依存します。 このオプシ ョ ンは、 DATA_PATTERN = DGEN_WALKING0 または DGEN_ALL の場合のみ有効です。

0111 : DGEN_PRBS - 32 ステージの LFSR がランダム データを生成し、

開始アドレスでシード されています。 このオプシ ョ ンは、

DATA_PATTERN = DGEN_PRBS または DGEN_ALL の場合のみ有効で

す。

data_seed_i[31:0] 入力 データ PRBS ジェネレーターのシードを示します。

end_addr_i[31:0] 入力 ポート アドレス空間の終点を定義します。 LSB [3:0] は無視されます。

error 出力 リードバッ ク データが予期する値と異なる場合に、 アサート されます。

error_status[n:0] 出力

この信号がアサート される と、 次の値をラ ッチします。

[31:0] : 読み出し開始アドレス

[37:32] : 読み出しバース ト長

[39:38] : 予約済み

[40] : mcb_cmd_full

[41] : mcb_wr_full

[42] : mcb_rd_empty

[64 + (DWIDTH - 1):64] : expected_cmp_data

[64 + (2*DWIDTH - 1):64 + DWIDTH] : read_data

fixed_addr_i[31:0] 入力 32 ビッ トの固定アドレス入力バスです。

fixed_bl_i[5:0] 入力 6 ビッ トの固定バース ト長入力バスです。

表 1-12 : ト ラフ ィ ッ ク ジェネレーターの信号説明 (続き)

信号名 方向 説明

Page 51: ザイリンクス UG416 Spartan-6 FPGA メモリ インターフェイス ソ … · mig ツールは、ユーザーが求めるメモリ インターフェイスを構築するために必要なすべての属性

Spartan-6 FPGA メモリ インターフェイス ソ リューシ ョ ン japan.xilinx.com 51UG416 (v1.3.1) 2010 年 10 月 18 日

(CORE Generator ツール、 ネイテ ィブ インターフェイスのみ)

fixed_data_i[31:0] 入力 32 ビッ トの固定データ入力バスです。

fixed_instr_i[2:0] 入力 3 ビッ トの固定命令入力バスです。

instr_mode_i[3:0] 入力

有効な設定は次のとおりです。

0000 : ブロッ ク RAM 命令モード - 命令は bram_cmd_i 入力バスから提供

されます。

0001 : FIXED 命令モード - 命令は fixed_instr_i 入力バスから提供されま

す。

0010 : W/R 命令モード (デフォルト ) - 疑似ランダム WRITE および READ 命令シーケンスを生成します。

0011 : WP/RP 命令モード - 疑似ランダム WRITE プリチャージおよび READ プリチャージ命令シーケンスを生成します。

0100 : W/WP/R/RP - 疑似ランダム WRITE、 WRITE プリチャージ、

READ、 および READ プリチャージ命令シーケンスを生成します。

0101 : W/WP/R/RP/RF - 疑似ランダム WRITE、 WRITE プリチャージ、

READ、 READ プリチャージ、 および REFRESH 命令シーケンスを生成

します。

mcb_cmd_addr_o[29:0] 出力 MCB のコマンド ポート インターフェイスです。

mcb_cmd_bl_o[5:0] 出力 MCB のコマンド ポート インターフェイスです。

mcb_cmd_en_o 出力 MCB のコマンド ポート インターフェイスです。

mcb_cmd_full_i 入力 MCB のコマンド ポート インターフェイスです。

mcb_cmd_instr_[2:0] 出力 MCB のコマンド ポート インターフェイスです。

mcb_rd_data_i[DWIDTH-1:0] 入力 MCB のデータ ポート インターフェイスです。

mcb_rd_empty_i 入力 MCB のデータ ポート インターフェイスです。

mcb_rd_en_o 入力 MCB のデータ ポート インターフェイスです。

mcb_wr_data_o[DWIDTH-1:0] 出力 MCB のデータ ポート インターフェイスです。

mcb_wr_en_o 出力 MCB のデータ ポート インターフェイスです。

mcb_wr_full_i 入力 MCB のデータ ポート インターフェイスです。

mode_load_i 入力

この信号がアサート (High) される と、 addr_mode_i、 instr_mode_i、bl_mode_i、 および data_mode_i の値がラ ッチされて、 次の ト ラフ ィ ッ ク パターンは新しい設定に基づきます。

rd_data_counts[47:0] 出力MCB の読み出しデータ ポートからデータが読み出される と、このバスの値が

インク リ メン ト されます。

rst_i 入力 リセッ ト入力信号です。

run_traffic_i 入力

この信号がアサート (High) される と、 ト ラフ ィ ッ ク ジェネレーターがコマン

ドおよびデータ パターンを生成開始します。 この信号は、 mode_load_i がア

サート されていない場合のみアサート されるものです。

表 1-12 : ト ラフ ィ ッ ク ジェネレーターの信号説明 (続き)

信号名 方向 説明

Page 52: ザイリンクス UG416 Spartan-6 FPGA メモリ インターフェイス ソ … · mig ツールは、ユーザーが求めるメモリ インターフェイスを構築するために必要なすべての属性

52 japan.xilinx.com Spartan-6 FPGA メモリ インターフェイス ソリューシ ョ ン

UG416 (v1.3.1) 2010 年 10 月 18 日

第 1 章 : はじめに

ポート アドレス空間の変更

ポー ト のア ド レ ス空間は、 上位テス ト ベンチ フ ァ イルにあ る BEGIN_ADDRESS および

END_ADDRESS パラ メーターを使用して容易に変更できます。これらの 2 つの値は、ポート デー

タ幅に揃う よ うに設定する必要があ り ます。 デフォルト PRBS アドレス モードでは、 追加で 2 つのパラ メーター (PRBS_SADDR_MASK_POS および PRBS_EADDR_MASK_POS) が使用され、

範囲外のアドレスがポートへ送信されないよ うになっています。

PRBS_SADDR_MASK_POS パラ メーターは、 BEGIN_ADDRESS 以下の PRBS が生成したアド

レ スを有効なポー ト ア ド レ ス空間にシフ ト ア ッ プする OR マス ク を作成し ます。 この値は、

BEGIN_ADDRESS パラ メ ーター と 同じ 32 ビ ッ ト 値であ る必要があ り ます。

PRBS_EADDR_MASK_POS パラ メーターは、 END_ADDRESS 以上の PRBS が生成したアドレ

スを有効なポート アドレス空間にシフ ト ダウンする AND マスクを作成します。 この値は 32 ビッ

ト値とな り、END_ADDRESS の MSB アドレス ビッ ト よ り上にあるすべてのビッ トは 1 に設定さ

れ、 その他のビッ トはすべて 0 に設定されます。 表 1-13 に、 2 つのマスク パラ メーターの設定例

を示します。

start_addr_i[31:0] 入力 ポート アドレス空間の開始地点を定義します。 LSB [3:0] は無視されます。

wr_data_counts[47:0] 出力MCB の書き込みデータ ポートへデータが送られる と、この出力値がインク リ

メン ト されます。

表 1-12 : ト ラフ ィ ッ ク ジェネレーターの信号説明 (続き)

信号名 方向 説明

表 1-13 : アドレス空間および PRBS マスクの設定例

SADDR EADDR PRBS_SADDR_MASK_POS PRBS_EADDR_MASK_POS

0x1000 0xFFFF 0x00001000 0xFFFF0000

0x2000 0xFFFF 0x00002000 0xFFFF0000

0x3000 0xFFFF 0x00003000 0xFFFF0000

0x4000 0xFFFF 0x00004000 0xFFFF0000

0x5000 0xFFFF 0x00005000 0xFFFF0000

0x2000 0x1FFF 0x00002000 0xFFFFE000

0x2000 0x2FFF 0x00002000 0xFFFFD000

0x2000 0x3FFF 0x00002000 0xFFFFC000

0x2000 0x4FFF 0x00002000 0xFFFF8000

0x2000 0x5FFF 0x00002000 0xFFFF8000

0x2000 0x6FFF 0x00002000 0xFFFF8000

0x2000 0x7FFF 0x00002000 0xFFFF8000

0x2000 0x8FFF 0x00002000 0xFFFF0000

0x2000 0x9FFF 0x00002000 0xFFFF0000

0x2000 0xAFFF 0x00002000 0xFFFF0000

0x2000 0xBFFF 0x00002000 0xFFFF0000

0x2000 0xCFFF 0x00002000 0xFFFF0000

0x2000 0xDFFF 0x00002000 0xFFFF0000

Page 53: ザイリンクス UG416 Spartan-6 FPGA メモリ インターフェイス ソ … · mig ツールは、ユーザーが求めるメモリ インターフェイスを構築するために必要なすべての属性

Spartan-6 FPGA メモリ インターフェイス ソ リューシ ョ ン japan.xilinx.com 53UG416 (v1.3.1) 2010 年 10 月 18 日

(CORE Generator ツール、 ネイテ ィブ インターフェイスのみ)

カスタム コマンド シーケンス

ト ラフ ィ ッ ク ジェネレーターは、bram_cmd_i 入力バスを介してブロ ッ ク RAM から直接アドレス、

命令、 およびバース ト長を読み出すこ とで、 ユーザー インターフェイス ポートへカスタム コマン

ド シーケン ス を送信でき ます。 こ の動作モード の場合は、 Traffic Generator モジ ュールの

CMD_PATTERN パラ メーターを CGEN_ALL (デフォルト ) または CGEN_BRAM に設定する必

要があ り ます。 CGEN_ALL の場合、 addr_mode_i、 instr_mode_i、 および bl_mode_i 入力を、 そ

れぞれのブロ ッ ク RAM 値に設定する必要があ り ます。

bram_cmd_i 入力バスは、 次に示すよ うにバース ト長、 命令、 およびアドレス値の組み合わせとな

り ます。

bram_cmd_i[38:0] = {BL[5:0], INSTR[2:0], ADDRESS[29:2]}

アドレス ビッ ト [1:0] および [31:30] には 0 が入り ます。bram_valid_i と bram_rdy_o の両方がア

サート (High) される と、 ト ラフ ィ ッ ク ジェネレーターは bram_cmd_i の値を受信します。

traffic_gen モジュールのコマンド パターン (instr_mode_i、 addr_mode_i、 bl_mode_i ) は、 個別に

設定できます。 提供されている init_mem_pattern_ctr モジュールには、 ChipScope ツールの VIOを使用して リ アルタイムにコマンド パターンを変更できるインターフェイスがあ り ます。コマンド

パターンの変更手順は次のとおりです。

1. vio_modify_enable を 1 に設定します。

2. vio_addr_mode_value を次のよ うに設定します。

0 : bram アドレス入力

1 : fixed_address

2 : prbs アドレス

3 : シーケンシャル アドレス

3. vio_bl_mode_value を次のよ うに設定します。

0 : bram bl 入力

1 : fixed bl

2 : prbs bl (bl_mode の値が 2 の場合、 addr_mode の値は必ず 2 となる)

4. vio_fixed_bl_value を 1 ~ 64 に設定します。

メモリ初期化およびト ラフ ィ ッ ク テスト フロー

電源投入後、 Init Memory Control ブロ ッ クは ト ラフ ィ ッ ク ジェネレーターに対して、 選択された

データ パターンでメモ リ を初期化するよ う命令し、 メモ リの初期化プロセスが開始します。

メモリの初期化

1. data_mode_i 入力が設定され、データ パターン (例 : data_mode_i[3:0] = 0010、アドレスがデー

タ パターンと して使用される) が選択される

2. start_addr_i 入力が設定され、 下位アドレス境界が定義される

3. end_addr_i 入力が設定され、 上位アドレス境界が定義される

0x2000 0xEFFF 0x00002000 0xFFFF0000

0x2000 0xFFFF 0x00002000 0xFFFF0000

表 1-13 : アドレス空間および PRBS マスクの設定例 (続き)

SADDR EADDR PRBS_SADDR_MASK_POS PRBS_EADDR_MASK_POS

Page 54: ザイリンクス UG416 Spartan-6 FPGA メモリ インターフェイス ソ … · mig ツールは、ユーザーが求めるメモリ インターフェイスを構築するために必要なすべての属性

54 japan.xilinx.com Spartan-6 FPGA メモリ インターフェイス ソリューシ ョ ン

UG416 (v1.3.1) 2010 年 10 月 18 日

第 1 章 : はじめに

4. bl_mode_i が 01 に設定され、 fixed_bl_i 入力からバース ト長が取得される

5. fixed_bl_i 入力が 16 または 32 のいずれかに設定される

6. instr_mode_i が 0001 に設定され、 fixed_instr_i 入力から命令が取得される

7. fixed_instr_i 入力がメモ リ デバイスの WR コマンド値に設定される

8. addr_mode_i が 11 に設定され、 シーケンシャル モードでメモ リ空間を満たす

9. mode_load_i が 1 ク ロ ッ ク サイクル間アサート される

メモ リ空間が選択されたデータ パターンで初期化された後、 Init Memory Control ブロ ッ クは ト ラ

フ ィ ッ ク ジェネレーターへト ラフ ィ ッ ク テス ト フローを実行するよ うに命令します (デフォルト

で addr_mode_i、 instr_mode_i、および bl_mode_i 入力は PRBS モードを選択するよ うに設定され

ている)。

ト ラフ ィ ッ ク テスト フロー

1. addr_mode_i 入力が任意のモードに設定される (デフォルトは PRBS)

2. cmd_seed_i および data_seed_i の入力値が、内部 PRBS ジェネレーター用に設定される (この

手順は、 ほかのパターンでは不要)

3. instr_mode_i 入力が任意のモードに設定される (デフォルトは PRBS)

4. bl_mode_i 入力が任意のモードに設定される (デフォルトは PRBS)

5. data_mode_i 入力には、「メモ リの初期化」 で説明されている メモ リ パターンの初期化ステージ

と同じ値が入る

6. run_traffic_i 入力がアサート されて ト ラフ ィ ッ クの実行が開始する

7. テス ト中にエラーが生じた場合 (例 : 読み出しデータが予期値と一致しない) は、エラー ビッ ト

が設定され、 リセッ ト されるまで保持される

8. エラー発生時、 error_status バスが 49 ページの表 1-12 で定義されている値をラ ッチする

デザイン例を一部修正すれば、run_traffic_i がディアサート されている と きに動的に addr_mode_i、instr_mode_i、 あるいは bl_mode_i を変更できます。 ただし、 設定変更後は、 適切なパターンがメ

モ リ空間にロード されるよ うにメモ リの初期化手順を再度行う必要があ り ます。

Page 55: ザイリンクス UG416 Spartan-6 FPGA メモリ インターフェイス ソ … · mig ツールは、ユーザーが求めるメモリ インターフェイスを構築するために必要なすべての属性

Spartan-6 FPGA メモリ インターフェイス ソ リューシ ョ ン japan.xilinx.com 55UG416 (v1.3.1) 2010 年 10 月 18 日

第 2 章

EDK フローの詳細

この章では、 Xilinx® Platform Studio (XPS) で利用可能な MIG ツールの使用方法について説明し

ます。 この章は、 次のセクシ ョ ンに分かれています。

• 「EDK の概要」

• 「AXI Spartan-6 FPGA DDRx メモ リ コン ト ローラー」

EDK の概要

エンベデッ ド開発キッ ト (EDK) は、CORE Generator™インターフェイスの MIG ツール フローの

場合とは別の RTL パッケージを提供します。 XPS IP カタログには、 MIG ツールで提供されるも

のと同じ RTL の IP コア axi_s6_ddrx が含まれます。 異なる点は、 エンベデッ ド プロセッサ ベー

スのシステムでの使用に 適な EDK pcore と して RTL がパッ ケージ化されている こ と です。

axi_s6_ddrx pcore は、 有効な各ポートに対してのみ AXI4 スレーブ インターフェイスを提供しま

す。 ネイティブ MCB ポートが必要な場合は、 代替手段と して EDK で提供されるマルチポート メモ リ コン ト ローラー (MPMC) を参照して ください。

axi_s6_ddrx IP は、 CORE Generator ツールと同じ MIG ツールを使用してコンフ ィギュレーシ ョ

ンされています。GUI フローは、第 1 章 「MIG の概要」 で説明したものと同じです。ただし、MIGツールは UCF/RTL を生成する代わりに、 XPS MHS ファ イルで RTL のパラ メーターを設定しま

す。 これらのパラ メーターから、 platgen 実行中に pcore が適切な制約を生成できるよ うにな り ま

す。 pcore はシステム内の唯一のコンポーネン トであるため、 ク ロ ッ ク / リ セッ ト構造も XPS で設

定する必要があ り ます (CORE Generator RTL では自動生成)。 IP がコンフ ィギュレート され、ポー

ト接続が完了した後は、 ビッ ト ス ト リームの生成やシ ミ ュレーシ ョ ンの実行など、 その他すべての

IP 管理を XPS が実行するこ とにな り ます。 EDK および XPS の詳細は、 『EDK コンセプ ト、 ツー

ル、 テクニッ ク』 (UG683) および 『エンベデッ ド システム ツール リ ファレンス ガイ ド』 (UG111)を参照して ください。

axi_s6_ddrx メモ リ コン ト ローラーを も簡単に使用する方法は、 XPS のベース システム ビル

ダー (BSB) を用いるこ とです。 BSB はさまざまなオプシ ョ ンを通して、 エンベデッ ド プロジェク

ト全体にオプシ ョ ンの axi_s6_ddrx メモ リ コン ト ローラーを適用するよ うガイ ド します。メモ リ コン ト ローラーを選択する と、 SP601 や SP605 ボードなど特定のリ ファレンス ボード用にコンフ ィ

ギュレーシ ョ ン、 接続、 およびテス ト済みの axi_s6_ddrx コン ト ローラーが提供されます。

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

Advanced eXtensible Interface (AXI) Spartan®-6 FPGA DDRx メ モ リ コ ン ト ローラー コ アは、

LPDDR SDRAM/DDR/DDR2/DDR3 外部メモ リに対して高性能でマルチ ポート を使用する AXI4フロン トエンド接続を提供します。 このコアは、 メモ リ コン ト ロール ブロ ッ ク (MCB) プリ ミ ティ

ブを使用して、 スレーブ インターフェイスを使用するために MCB ネイティブ インターフェイス

を適合させます。 また、 このコアは Spartan-6 FPGA MCB コアの全機能を提供します。

Page 56: ザイリンクス UG416 Spartan-6 FPGA メモリ インターフェイス ソ … · mig ツールは、ユーザーが求めるメモリ インターフェイスを構築するために必要なすべての属性

56 japan.xilinx.com Spartan-6 FPGA メモリ インターフェイス ソリューシ ョ ン

UG416 (v1.3.1) 2010 年 10 月 18 日

第 2 章 : EDK フローの詳細

機能の概要

MCB の機能に加えて、 次のよ うな AXI 機能があ り ます。

• 読み取り専用/書き込み専用モードをサポート

• AXI4 INCR/WRAP ト ランザクシ ョ ンをサポート

• ポート間の書き込みのコ ヒーレンシ (一貫性) を保証するモードをサポート

• ト ランザクシ ョ ンの順序付けを行わない

• ラウンド ロビン式の読み出し /書き込みアービ ト レーシ ョ ン

• リ トルエンディアン形式の AXI4 スレーブ インターフェイス

• AXI4 スレーブ準拠のメモ リ インターフェイス (1 ~ 6 つ)

• Spartan-6 FPGA MCB コン ト ローラー ポート インターフェイスに対して 1:1 のクロ ッ ク レー

トで動作する AXI スレーブ インターフェイス (メモ リ と非同期にできる)

• AXI4 スレーブ インターフェイス データ幅 (32、 64、 または 128 ビッ ト )。 AXI4 データ幅は、

MCB ネイティブ データ幅よ り大き くならない

• MCB がサポートする メモ リ をすべてサポート (LPDDR、 DDR、 DDR2、 および DDR3)

• 大 256 データ ビート までの AXI4 ロング バース ト をサポート

機能の説明および AXI プロ ト コルのサポート

このセクシ ョ ンでは、AXI Spartan-6 FPGA DDRx メモ リ コン ト ローラーがどのよ うに AXI4 仕様

を解釈し、サポートするかについて説明します。 メモ リ コン ト ローラーに関する AXI4 の仕様の解

釈は、 パフォーマンス、 サイズ、複雑性のバランスを保つというザイ リ ンクス デザインの規則に沿

う ものです。

インターフェイス幅

AXI の読み出しおよび書き込みデータ幅は 32、64、または 128 のいずれかに設定でき、MCB デー

タ幅と同じ必要があ り ます。 MCB データ幅は、 MCB のコンフ ィギュレーシ ョ ンに基づいて、 32、64、 または 128 のいずれかになり ます。

インターフェイス クロック

すべての AXI インターフェイス チャネルは、 MCB コン ト ローラー ポート と同じ クロ ッ ク ド メ イ

ンを使用します。 このクロ ッ クはメモ リ と非同期であるため、 任意の値に設定できます。 ク ロ ッ ク

変換は不要であ り、 AXI Spartan-6 FPGA DDRx メモ リ コン ト ローラーには提供されません。すべ

ての MCB チャネルのクロ ッ クは同一周波数で動作します。

アドレス幅

アド レス幅は、 必要なシステム アドレス バス幅をサポートするよ うにパラ メーター設定する必要

があ り ます。 システム アドレス バスがメモ リ サイズよ り広く定義された場合、 アドレス空間でメ

モ リ をエ リ アス/ラ ップできます。 MCB インターフェイスは、 大 30 ビッ ト までのアドレス幅を

サポート します。 AXI アドレスの MSB は必要に応じて削除されます。 EDK との互換性を踏まえ

た場合は、 32 ビッ トのアドレス幅を使用します。 ベースおよびハイ アドレスで指定したアドレス

範囲がメモ リ サイズよ り小さい場合でもアドレスはラ ップします。

Page 57: ザイリンクス UG416 Spartan-6 FPGA メモリ インターフェイス ソ … · mig ツールは、ユーザーが求めるメモリ インターフェイスを構築するために必要なすべての属性

Spartan-6 FPGA メモリ インターフェイス ソ リューシ ョ ン japan.xilinx.com 57UG416 (v1.3.1) 2010 年 10 月 18 日

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

読み取り専用または書き込み専用の AXI ポート

各 AXI インターフェイスは、双方向の MCB ポートへ接続されている場合であっても、読み取り専

用または書き込み専用と して構成できます。 これによ り、双方向データ フローが必要でない場合に

は、 ロジッ クの 適化が可能です。 単一方向の MCB ポートへ接続されている場合は、 読み取り専

用または書き込み専用の AXI ポートが必要です。 読み取り専用/書き込み専用モードに構成された

場合は、 不要な読み出し /書き込みアービ ト レーシ ョ ン ロジッ クやデータパス ロジッ クが削除され

ます。 MCB ポートが元々双方向ポートの場合は、 MIG GUI やソース RTL を使用し、 読み取り専

用または書き込み専用の AXI インターフェイスを選択するこ とで、 FPGA リ ソースを節約できま

す。

リセッ ト

AXI インターフェイスには、 コア全体を リセッ ト して既知の状態に初期化する、 アクテ ィブ Lowの同期リセッ ト信号があ り ます。 リセッ トが生じる と、 コン ト ローラーの再キャ リブレーシ ョ ンを

含むすべてのリセッ ト動作が実行されます。

バースト

次の規則が適用されます。

• AXI Spartan-6 FPGA DDRx メモ リ コン ト ローラーは、 INCR および WRAP バース ト をサ

ポート します (AXI の INCR バース トの場合は 大 256 データ ビート までサポート )。

• FIXED バース トは AXI インターフェイスを中断しませんが、 メモ リ コン ト ローラーに対し

て論理的意味を持ちません。FIXED バース ト コマンドは簡潔にするために、結果的に INCRコマンド とな り ます。 エラー フラグはあ り ません。

• 小 1 バイ ト幅のバース ト サイズをサポー ト します。 MCB ポー ト コン ト ローラー データ

パスのネイテ ィブ データ幅よ り小さいバース ト サイズは、 サブサイズ転送または 「ナロー

(狭い)」 転送と呼ばれます。 サブサイズ バース ト はサポー ト されていますが、 AXI プロ ト

コルで適切なバイ ト レーンでデータを循環させる よ う定められている こ とに注意して くだ

さい。 ナロー バース ト のサポー ト は条件付きです。 システムにナロー バース ト を生成する

マスターがない場合は、 ナロー バース ト のサポー ト を削除する こ とで、 大幅なロジッ ク節

約が可能とな り ます。これは、C_S<Port_Num>_AXI_SUPPORTS_NARROW_BURSTパラ メーターで管理できます。

• AXI Spartan-6 FPGADDRx メモ リ コン ト ローラーでは、AXI4 仕様で定義されている とおり、

4KB アドレス境界を超えるバース トは想定されていません。 ただし、 4KB 境界を超えるバー

ス トが生じてもインターフェイスは中断されず、メモ リ コンテンツでは動作が不定のト ランザ

クシ ョ ンが生じます。

キャッシュ ビッ ト

次の規則が適用されます。

• AXI Spartan-6 FPGA DDRx メモ リ コン ト ローラーは、 ブリ ッジング、 推論的なプリ フェッ

チ、 あるいは L2 キャ ッシング機能をインプリ メン ト しないため、 すべての CACHE ビッ ト を

無視し、 00000 と して扱う こ とができます。

• AXI Spartan-6 FPGA DDRx メモ リ コン ト ローラーは、B レスポンスを待つマスターのレイテ

ンシを削減するため、 AXI の順序規則に違反せずに、 できるだけ迅速に B レスポンスを返す

よ うにします。

• AXI Spartan-6 FPGA DDRx メモ リ コン ト ローラーは、 マルチポート接続されたハード メモ

リ コン ト ローラーへ接続されているため、 メモ リへの書き込みが完了するまで、 B レスポンス

を発行できません。 B レスポンスは、 同じ メモ リ位置へアクセスする別の MCB ポートでのほ

Page 58: ザイリンクス UG416 Spartan-6 FPGA メモリ インターフェイス ソ … · mig ツールは、ユーザーが求めるメモリ インターフェイスを構築するために必要なすべての属性

58 japan.xilinx.com Spartan-6 FPGA メモリ インターフェイス ソリューシ ョ ン

UG416 (v1.3.1) 2010 年 10 月 18 日

第 2 章 : EDK フローの詳細

かの書き込みまたは読み出しが、 現在の書き込みト ランザクシ ョ ンよ り先に完了しないよ うに

する必要があ り ます。パラ メーター C_S<Port_Num>_AXI_STRICT_COHERENCY を 0 に設

定して書き込みコ ヒーレンシを緩和するこ とによ り、 そのポートに対して ト ランザクシ ョ ンが

完了したこ とがわかっている場合、 B レスポンスが遅延する代わりに早く返されて、 すべての

ポートで書き込みが完了するよ う保証します。

保護ビッ ト

AXI Spartan-6 FPGA DDRx メモ リ コン ト ローラーは、 AXI PROT ビッ ト を無視するため、 すべ

ての ト ランザクシ ョ ンは正常で、 安全性が保証されていないアクセス と して認識されます。

排他的アクセス

現在、 この IP は排他的アクセスをサポート していません。

応答信号

AXI Spartan-6 FPGA DDRx メモ リ コン ト ローラーは、 常に OKAY 応答を生成します。

ID、 スレッ ド、 リオーダリング

MCB インターフェイスはリニアであるため、 ブ リ ッジで リオーダ リ ングやスレッ ドは実装されま

せん。 ト ランザクシ ョ ンは正確に受信順で返されます。

読み出し /書き込み受け入れの深さ

読み出し受け入れの深さは 5 つの Outstanding ト ランザクシ ョ ンとな り、 書き込み受け入れの深さ

は 4 つの Outstanding ト ランザクシ ョ ンです。

読み出し /書き込みアービ ト レーシ ョ ン

AXI には、 読み出しチャネルと書き込みチャネルが個別にあ り ます。 外部メモ リには、 アド レス

バスが 1 つしかあ り ません。 したがって、 AXI Spartan-6 FPGA DDRx メモ リ コン ト ローラーは、

同時に生じた読み出し要求と書き込み要求を調整して、 メモ リに対してどの要求を実行するかを決

定しなければなり ません。読み出し要求や書き込み要求のアービ ト レーシ ョ ン アルゴ リズムは、 ラ

ウンド ロビン式です。

エンディアン

AXI Spartan-6 FPGA DDRx メモ リ コン ト ローラーは、 リ トルエンディアンのみです。

リージ ョ ン ビッ ト

AXI Spartan-6 FPGA DDRx メモ リ コン ト ローラーは、 REGION ビッ ト を利用する必要がないた

め、 この信号は無視できます。

低電力インターフェイス

AXI Spartan-6 FPGA DDRx メモ リ コン ト ローラーは、低消費電力インターフェイスをサポート し

ていません。

制限

AXI Spartan-6 FPGA DDRx メモ リ コン ト ローラーは、 QoS をサポート していません。

Page 59: ザイリンクス UG416 Spartan-6 FPGA メモリ インターフェイス ソ … · mig ツールは、ユーザーが求めるメモリ インターフェイスを構築するために必要なすべての属性

Spartan-6 FPGA メモリ インターフェイス ソ リューシ ョ ン japan.xilinx.com 59UG416 (v1.3.1) 2010 年 10 月 18 日

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

最上位のパラメーター

表 2-1 に、 AXI Spartan-6 FPGA DDRx メモ リ コン ト ローラーで使用される AXI パラ メーターを

示します。 <Port_Num> は 1 ~ 6 です。 その他のパラ メーターの詳細は 『Spartan-6 FPGA メモ リ

コン ト ローラー』 (UG388) を参照してください。

表 2-1 : AXI のポート別、 最上位 パラメーター

パラメーター名デフォル

ト値

形式

(範囲)説明

C_S<Port_Num>_AXI_ENABLE 0 整数 (0、 1)

AXI/MCB ポート を有効にします。

C_S<Port_Num>_AXI_ADDR_WIDTH 32 整数 (32)

すべての ADDR 信号の幅を示します。

C_S<Port_Num>_AXI_DATA_WIDTH 32 整数 (32、 64、

128)

AXI の WDATA および RDATA 信号

の幅を示します。

C_S<Port_Num>_AXI_ENABLE_AP 0 整数 (0、 1)

メモ リ コン ト ローラーへ送信される

各ト ランザクシ ョ ンのオート プリ

チャージを有効にします。

C_S<Port_Num>_AXI_ID_WIDTH 4 整数 (1-16)

すべてのチャネルの全 ID 信号の幅を

示します。

C_S<Port_Num>_AXI_PROTOCOL AXI4 文字 (AXI3、AXI4)

AXI プロ ト コルを指定します。

C_S<Port_Num>_AXI_REG_EN0 0x00000 16 進数 予約済み

C_S<Port_Num>_AXI_REG_EN1 0x01000 16 進数 予約済み

C_S<Port_Num>_AXI_STRICT_COHERENCY 1 整数 (0、 1)

メモ リ に対して書き込みが完了する

まで B チャネル応答信号を遅延させ

ます。異なるポート間で同じアドレス

へアクセスする際に必要です。

C_S<Port_Num>_AXI_SUPPORTS_NARROW_BURST 1 整数 (0、 1)

MCB でナロー転送をサポートする

ロジッ クを有効にします。 AXI/MCBネイティブ データ幅よ り小さい ト ラ

ンザクシ ョ ンをスレーブが受信する

場合に必要となり ます。

C_S<Port_Num>_AXI_SUPPORTS_READ 1 整数 (0、 1)

AXI AR/R チャネルを使用するか否

かを示します。

C_S<Port_Num>_AXI_SUPPORTS_WRITE 1 整数 (0、 1)

AXI AW/W/B チャネルを使用するか

否かを示します。

Page 60: ザイリンクス UG416 Spartan-6 FPGA メモリ インターフェイス ソ … · mig ツールは、ユーザーが求めるメモリ インターフェイスを構築するために必要なすべての属性

60 japan.xilinx.com Spartan-6 FPGA メモリ インターフェイス ソリューシ ョ ン

UG416 (v1.3.1) 2010 年 10 月 18 日

第 2 章 : EDK フローの詳細

ポートおよび I/O 信号

表 2-2 に、 AXI Spartan-6 FPGA DDRx メモ リ コン ト ローラーで使用されるポート名、 信号方向、

幅を示します。

表 2-2 : ポートおよび I/O 信号

ポート名 方向 幅

システム信号

sysclk_2x 入力 N/A

sysclk_2x_180 入力 N/A

pll_ce_0 入力 N/A

pll_ce_90 入力 N/A

pll_lock 入力 N/A

pll_lock_bufpll_o 出力 N/A

sysclk_2x_bufpll_o 出力 N/A

sysclk_2x_180_bufpll_o 出力 N/A

pll_ce_0_bufpll_o 出力 N/A

pll_ce_90_bufpll_o 出力 N/A

sys_rst 入力 N/A

ui_clk 入力 N/A

uo_done_cal 出力 N/A

AXI 信号 (各ポート )s<Port_Num>_axi_aclk 入力 N/A

s<Port_Num>_axi_awid 入力 [C_s<Port_Num>_AXI_ID_WIDTH-1:0]

s<Port_Num>_axi_awaddr 入力 [C_s<Port_Num>_AXI_ADDR_WIDTH-1:0]

s<Port_Num>_axi_awlen 入力 [7:0]

s<Port_Num>_axi_awsize 入力 [2:0]

s<Port_Num>_axi_awburst 入力 [1:0]

s<Port_Num>_axi_awlock 入力 [1:0]

s<Port_Num>_axi_awcache 入力 [3:0]

s<Port_Num>_axi_awprot 入力 [2:0]

s<Port_Num>_axi_awqos 入力 [3:0]

s<Port_Num>_axi_awvalid 入力 N/A

s<Port_Num>_axi_awready 出力 N/A

s<Port_Num>_axi_wdata 入力 [C_S<Port_Num>_AXI_DATA_WIDTH-1:0]

s<Port_Num>_axi_wstrb 入力 [C_S<Port_Num>_AXI_DATA_WIDTH/8-1:0]

s<Port_Num>_axi_wlast 入力 N/A

s<Port_Num>_axi_wvalid 入力 N/A

s<Port_Num>_axi_wready 出力 N/A

s<Port_Num>_axi_bid 出力 [C_S<Port_Num>_AXI_ID_WIDTH-1:0]

Page 61: ザイリンクス UG416 Spartan-6 FPGA メモリ インターフェイス ソ … · mig ツールは、ユーザーが求めるメモリ インターフェイスを構築するために必要なすべての属性

Spartan-6 FPGA メモリ インターフェイス ソ リューシ ョ ン japan.xilinx.com 61UG416 (v1.3.1) 2010 年 10 月 18 日

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

s<Port_Num>_axi_bresp 出力 [1:0]

s<Port_Num>_axi_bvalid 出力 N/A

s<Port_Num>_axi_bready 入力 N/A

s<Port_Num>_axi_arid 入力 [C_S<Port_Num>_AXI_ID_WIDTH-1:0]

s<Port_Num>_axi_araddr 入力 [C_S<Port_Num>_AXI_ADDR_WIDTH-1:0]

s<Port_Num>_axi_arlen 入力 [7:0]

s<Port_Num>_axi_arsize 入力 [2:0]

s<Port_Num>_axi_arburst 入力 [1:0]

s<Port_Num>_axi_arlock 入力 [1:0]

s<Port_Num>_axi_arcache 入力 [3:0]

s<Port_Num>_axi_arprot 入力 [2:0]

s<Port_Num>_axi_arqos 入力 [3:0]

s<Port_Num>_axi_arvalid 入力 N/A

s<Port_Num>_axi_arready 出力 N/A

s<Port_Num>_axi_rid 出力 [C_s<Port_Num>_AXI_ID_WIDTH-1:0]

s<Port_Num>_axi_rdata 出力 [C_s<Port_Num>_AXI_DATA_WIDTH-1:0]

s<Port_Num>_axi_rresp 出力 [1:0]

s<Port_Num>_axi_rlast 出力 N/A

s<Port_Num>_axi_rvalid 出力 N/A

s<Port_Num>_axi_rready 入力 N/A

メモリ信号

mcbx_dram_addr 出力 [C_MEM_ADDR_WIDTH-1:0]

mcbx_dram_ba 出力 [C_MEM_BANKADDR_WIDTH-1:0]

mcbx_dram_ras_n 出力 N/A

mcbx__dram_cas_n 出力 N/A

mcbx_dram_we_n 出力 N/A

mcbx_dram_cke 出力 N/A

mcbx_dram_clk 出力 N/A

mcbx_dram_clk_n 出力 N/A

mcbx_dram_dq 入力/出力 [C_NUM_DQ_PINS-1:0]

mcbx_dram_dqs 入力/出力 N/A

mcbx_dram_dqs_n 入力/出力 N/A

mcbx_dram_udqs 入力/出力 N/A

mcbx_dram_udqs_n 入力/出力 N/A

mcbx_dram_udm 出力 N/A

mcbx_dram_ldm 出力 N/A

表 2-2 : ポートおよび I/O 信号 (続き)

ポート名 方向 幅

Page 62: ザイリンクス UG416 Spartan-6 FPGA メモリ インターフェイス ソ … · mig ツールは、ユーザーが求めるメモリ インターフェイスを構築するために必要なすべての属性

62 japan.xilinx.com Spartan-6 FPGA メモリ インターフェイス ソリューシ ョ ン

UG416 (v1.3.1) 2010 年 10 月 18 日

第 2 章 : EDK フローの詳細

mcbx_dram_odt 出力 N/A

mcbx_dram_ddr3_rst 出力 N/A

rzq 入力/出力 N/A

zio 入力/出力 N/A

表 2-2 : ポートおよび I/O 信号 (続き)

ポート名 方向 幅

Page 63: ザイリンクス UG416 Spartan-6 FPGA メモリ インターフェイス ソ … · mig ツールは、ユーザーが求めるメモリ インターフェイスを構築するために必要なすべての属性

Spartan-6 FPGA メモリ インターフェイス ソ リューシ ョ ン japan.xilinx.com 63UG416 (v1.3.1) 2010 年 10 月 18 日

第 3 章

MCB デザインのデバッグ

この章では、各設計プロセスで生じる可能性がある問題を認識し、デバッグする手順を説明します。

この章は、 次のセクシ ョ ンに分かれています。

• 「概要」

• 「デバッグ ツール」

• 「シ ミ ュレーシ ョ ンのデバッグ」

• 「合成およびインプリ メンテーシ ョ ンのデバッグ」

• 「ハード ウェアのデバッグ」

概要

Spartan®-6 FPGA MCB は、 メモ リ インターフェイス デザインにおける課題点を改善しています

が、 アプリ ケーシ ョ ン環境はそれぞれに特有であるため、 確実なデザインを構築するには適切な配

慮が必要です。 シ ミ ュレーシ ョ ン、 適切な合成と インプ リ メ ンテーシ ョ ン、 PCB レイアウ ト ガイ

ド ラ インの順守などの機能検証や、 IBIS シ ミ ュレーシ ョ ンやシグナル インテグ リ テ ィ解析などの

ボード検証を注意深く実行して ください。

この章では、 設計プロセスで生じる問題を検出および修正するデバッグ手順について詳し く説明し

ます。 内容は次のとおりです。

• MCB シ ミ ュレーシ ョ ン モデルを使用した機能検証

• デザイン インプ リ メンテーシ ョ ンの検証

• ボード レイアウ ト検証

• MCB 物理層を使用したボード レベル問題のデバッグ

• 一般的なボード レベル デバッグ手法

メモ リ インターフェイスの検証で確認される主な 2 つの問題は次のとおりです。

• キャ リブレーシ ョ ンが正常に完了しない

• 通常動作中でデータが破損する

さまざまな原因によ り、 シ ミ ュレーシ ョ ンおよびハード ウェアのいずれか、 あるいは両方で問題が

発生します。 図 3-1 に、 これら 2 つの問題をデバッグする際の概略フローを示します。

Page 64: ザイリンクス UG416 Spartan-6 FPGA メモリ インターフェイス ソ … · mig ツールは、ユーザーが求めるメモリ インターフェイスを構築するために必要なすべての属性

64 japan.xilinx.com Spartan-6 FPGA メモリ インターフェイス ソリューシ ョ ン

UG416 (v1.3.1) 2010 年 10 月 18 日

第 3 章 : MCB デザインのデバッグ

この章の説明で問題が解決できない場合は、 7 ページの 「その他のリ ソース」 を参照してください。

デバッグ ツール

メモ リ インターフェイス デザインをデバッグするツールは数多くあ り ます。 このセクシ ョ ンでは、

特定条件ごとに 適なデバッグ リ ソースを紹介します。

デザイン例

MIG ツールで MCB デザインを生成する と、 デザイン例とユーザー デザインが作成されます。 デ

ザイン例には、 シ ミ ュレーシ ョ ンおよびハード ウェアで完全に検証された、 ト ラフ ィ ッ ク ジェネ

レーターを含む合成可能なテス トベンチがあ り ます。 このデザインは、 MCB デザインの動作を確

認するために使用でき、 ボードに関連する問題を特定する際にも有用です。 デザイン例の詳細は、

38 ページの 「 ト ラフ ィ ッ ク ジェネレーター付きの MIG デザイン例」 を参照してください。 この章

では、 デザイン例を使用したシ ミ ュレーシ ョ ン環境の設定方法やハードウェア検証の実行方法につ

いて詳し く説明しています。

デバッグ信号

MIG ツールの FPGA オプシ ョ ン画面に [Debug Signals Control] オプシ ョ ンがあ り ます。 この機能

を有効にするこ とによって、 『Spartan-6 FPGA メモ リ コン ト ローラ ユーザー ガイ ド』 (UG388) の「ユーザー (ファブリ ッ ク側) インターフェイス」 セクシ ョ ンで説明されているすべてのコマンド パス、書き込みパス、および読み出しパス信号が ChipScope™ Analyzer でモニタ リ ングされます。こ

のオプシ ョ ンをオンにする と、 デバッ グ信号がデザイ ンの 上位モジ ュールの ChipScopeILA/ICON モジュールにポート マップされます。 ChipScope ILA モジュールは、 calib_done (キャ

リブレーシ ョ ン完了) やエラー信号 (デザイン例の場合は、 ト ラフ ィ ッ ク ジェネレーターからのエ

ラー信号が実際のデータ と予想データの不一致を示す) で ト リ ガーするデフォル ト の ChipScopeツールも設定します。 このデバッグ機能の詳細は、 第 1 章を参照して ください。

リファレンス ボード

SP601 および SP605 は、MCB を外部の DDR2 や DDR3 メモ リ デバイスへインターフェイスする

ザイ リ ンクスの開発ボードです。 このボードは完全に検証済みであ り、 これを使用するこ とでユー

ザー デザイン検証やボード レイアウ ト解析ができます。

X-Ref Target - Figure 3-1

図 3-1 : Spartan-6 FPGA MCB のデバッグ フロー図

UG416_c2_01_091409

Symptoms in Simulation/Hardware

- Calibration Failure- Data Bit/Byte Corruption/Errors

Simulation Debug

Synthesis/Implementation Debug

Hardware Debug

Page 65: ザイリンクス UG416 Spartan-6 FPGA メモリ インターフェイス ソ … · mig ツールは、ユーザーが求めるメモリ インターフェイスを構築するために必要なすべての属性

Spartan-6 FPGA メモリ インターフェイス ソ リューシ ョ ン japan.xilinx.com 65UG416 (v1.3.1) 2010 年 10 月 18 日

シミ ュレーシ ョ ンのデバッグ

ChipScope Pro ツール

ChipScope Pro ツールはロジッ ク アナライザー、 バス アナライザー、 VIO ソフ ト ウェアのコアを

デザインへ直接組み込みます。 ChipScope Pro ツールでは、 ハード ウェアでアプリ ケーシ ョ ン信号

や MCB ポート信号をキャプチャする ト リガー条件をユーザーが設定できます。その後、キャプチャ

した信号は、 ChipScope Pro Logic Analyzer ツールで解析可能です ([参照 2] 参照)。

シミ ュレーシ ョ ンのデバッグ

図 3-2 に、 シ ミ ュレーシ ョ ンのデバッグ フローを示します。

その他のデバッグ信号 (シミ ュレーシ ョ ン専用)上位の MIG ラ ッパー内の MCB プ リ ミ テ ィブの unisim モデルは暗号化されているため、 内部

ノードへのアクセスを防ぐこ とができます。ただし、 シ ミ ュレーシ ョ ン デバッグで使用される可能

性がある一部の信号は、 unisim モデルの 上位へ配置するこ とでアクセス可能になっています。 こ

れらの信号は、 シ ミ ュレーシ ョ ンでのみ表示され、 ハード ウェアではアクセスできません。 表 3-1に、 シ ミ ュレーシ ョ ン デバッグ信号を示します。

X-Ref Target - Figure 3-2

図 3-2 : シミ ュレーシ ョ ンのデバッグ フロー図

Verify Successful Simulation Using Example Design. Identify any Issues with

Simulation Environment

Debug Issues with User Design Simulation

UG416_c2_02_091409

Open WebCase

表 3-1 : シミ ュレーシ ョ ン デバッグ信号

ブロック ド メイン 内部信号名 説明 クロック ド メイン

ク ロ ッ クsysclk sysclk2x から内部生成されたクロ ッ ク (位相シフ ト 0°) N/A

sysclk_90 sysclk2x から内部生成されたクロ ッ ク (位相シフ ト 90°) N/A

コン ト ローラー

ctrl_state[144:0] コン ト ローラー ステート (表 3-2 参照) ASCII radix sysclk90

ctrl_rd_en コン ト ローラー読み出しイネーブル sysclk90

ctrl_wr_en コン ト ローラー書き込みイネーブル ~sysclk90

ctrl_cmd_in アービタまたはキャ リブレーシ ョ ン ロジッ クからのコン

ト ローラー入力コマンド フラグ~sysclk90

ctrl_cmd[2:0] 受信されるコン ト ローラー コマンド ~sysclk90

ctrl_cmd_cnt[9:0] コン ト ローラーの現在のコマンド数。 現在のコマンド実行

回数を示す~sysclk90

Page 66: ザイリンクス UG416 Spartan-6 FPGA メモリ インターフェイス ソ … · mig ツールは、ユーザーが求めるメモリ インターフェイスを構築するために必要なすべての属性

66 japan.xilinx.com Spartan-6 FPGA メモリ インターフェイス ソリューシ ョ ン

UG416 (v1.3.1) 2010 年 10 月 18 日

第 3 章 : MCB デザインのデバッグ

アービタおよび

データ キャプチャ

arb_cmd_en[5:0] コマンド FIFO に対するアービタ イネーブル信号 ~sysclk90

arb_p_en[7:0] データ FIFO に対するアービタ イネーブル信号 ~sysclk90

dqi_p[15:0] キャプチャ ブロ ッ ク とデータ FIFO 間のシングル データ

レート DQ バス (立ち上がりエッジ)sysclk90

dqi_n[15:0] キャプチャ ブロ ッ ク とデータ FIFO 間のシングル データ

レート DQ バス (立ち下がりエッジ)sysclk90

sysclk_sync DQ バスの 初の有効データ。 次の sysclk_90 エッジでレ

ジスタされるN/A

dqs_first DQS の 初のエッジ。この信号は、読み出しキャプチャ サイクルの開始を示す

N/A

キャ リブレー

シ ョ ン

cal_start キャ リブレーシ ョ ン開始。このピンは、キャ リブレーシ ョ ン

サイクルの開始を示すui_clk

cal_active キャ リブレーシ ョ ン実行中 sysclk90

cal_dq_done_cnt[3:0] DQ 信号のキャ リブレーシ ョ ン sysclk90

cal_state[144:0] キャ リブレーシ ョ ン ステート (表 3-3 参照) ASCII radix sysclk90

cal_dqs_state[2:0] DQS キャ リブレーシ ョ ン ステート。 ステートは 0 ~ 7 の番号順に移動

sysclk90

cal_dqs_p シングル データ レート DQSP。 キャ リブレーシ ョ ン中は、

すべて 1 になるsysclk90

cal_dqs_n シングル データ レート DQSN。キャ リブレーシ ョ ン中は、

すべて 0 になるsysclk90

cal_udqs_p シングル データ レート UDQSP。 キャ リブレーシ ョ ン中

は、 すべて 1 になるdqs_ioi_m

cal_udqs_n シングル データ レート UDQSN。 キャ リブレーシ ョ ン中

は、 すべて 0 になるdqs_ioi_m

cal_dq_p cal_dq_done_cnt で選択されたシングル データ レート

DQP。 キャ リブレーシ ョ ン中は、 すべて 1 になるsysclk90

cal_dq_n cal_dq_done_cnt で選択されたシングル データ レート

DQN。 キャ リブレーシ ョ ン中は、 すべて 0 になる~sysclk90

表 3-1 : シミ ュレーシ ョ ン デバッグ信号 (続き)

ブロック ド メイン 内部信号名 説明 クロック ド メイン

表 3-2 : ctrl_state の FSM ステート

ステート 説明

0x00 アイ ドル

0x01 モード レジスタのロード

0x02 モード レジスタ待機

0x03 プリチャージ

Page 67: ザイリンクス UG416 Spartan-6 FPGA メモリ インターフェイス ソ … · mig ツールは、ユーザーが求めるメモリ インターフェイスを構築するために必要なすべての属性

Spartan-6 FPGA メモリ インターフェイス ソ リューシ ョ ン japan.xilinx.com 67UG416 (v1.3.1) 2010 年 10 月 18 日

シミ ュレーシ ョ ンのデバッグ

0x04 プリチャージ待機

0x05 オート リ フレッシュ

0x06 オート リ フレッシュ待機

0x07 アクティブ

0x08 アクティブ待機

0x09 初の読み出し

0x0A バース ト読み出し

0x0B 読み出し待機

0x0C 初の書き込み

0x0D バース ト書き込み

0x0E 書き込み待機

0x0F Init Count 200

0x10 Init Count 200 待機

0x11 ZQCL

0x12 書き込み読み出し

0x13 読み出し書き込み

0x14 ダ ミー 初の読み出し

0x15 ディープ メモ リ ステート

0x16 ジャンプ ステート

0x17 初期化完了

0x18 リセッ ト

0x19 リセッ ト待機

0x1A すべてプリチャージ

0x1B すべてプリチャージ待機

0x1C セルフ リ フレッシュへ入る

0x1D セルフ リ フレッシュ待機

0x1E セルフ リ フレッシュ終了

0x1F セルフ リ フレッシュ終了待機

表 3-2 : ctrl_state の FSM ステート (続き)

ステート 説明

Page 68: ザイリンクス UG416 Spartan-6 FPGA メモリ インターフェイス ソ … · mig ツールは、ユーザーが求めるメモリ インターフェイスを構築するために必要なすべての属性

68 japan.xilinx.com Spartan-6 FPGA メモリ インターフェイス ソリューシ ョ ン

UG416 (v1.3.1) 2010 年 10 月 18 日

第 3 章 : MCB デザインのデバッグ

デザイン例を使用したシミ ュレーシ ョ ン検証

MIG ツールで生成されるデザイン例には、 シ ミ ュレーシ ョ ン テス トベンチ、 MIG ツールで選択し

た メモ リ タ イプに基づいて適切に設定された メモ リ モデルとパラ メーター フ ァ イル、 および

ModelSim .do ス ク リ プ ト フ ァ イルが含まれます。 デザイ ン例のシ ミ ュ レーシ ョ ンの詳細は、

38 ページの 「 ト ラフ ィ ッ ク ジェネレーター付きの MIG デザイン例」 を参照して ください。

このデザイン例のシ ミ ュレーシ ョ ンが正常に完了する と、 適切なシ ミ ュレーシ ョ ン環境であるこ と

が保証されます。 つま り、 シ ミ ュレーシ ョ ン ツールおよびザイ リ ンクス ラ イブラ リが正し くセッ

ト アップされている こ と を示します。 ザイ リ ンク ス ラ イブラ リ の設定方法は、 『コマン ド ラ イン

ツール ユーザー ガイ ド』 [参照 3] の第 26 章 「Compclib」 および 『合成/シ ミ ュレーシ ョ ン デザイ

ン ガイ ド』 [参照 1] を参照して ください。 シ ミ ュレータ サポートおよび MCB シ ミ ュレーシ ョ ン

モデルの詳細は、 「シ ミ ュレーシ ョ ンのデバッグ」 を参照してください。

デザイン例のシ ミ ュレーシ ョ ンはメモ リの初期化を完了し、 ト ラフ ィ ッ ク ジェネレーターのスティ

ミ ュ ラスに対応して ト ラフ ィ ッ クを実行します。 メモ リの初期化およびキャ リブレーシ ョ ンが完了

する と、 calib_done 信号がアサート されます。 この信号がアサート される と、 ト ラフ ィ ッ ク ジェネ

レーターがパラ メーター値に基づいて読み出しおよび書き込みを開始します。 使用可能な ト ラ

フ ィ ッ ク ジェネレーターのデータ パターンおよび関連する 上位パラ メーターの詳細は、 38 ペー

ジの 「 ト ラフ ィ ッ ク ジェネレーター付きの MIG デザイン例」 を参照してください。

表 3-3 : cal_state の FSM ステートの説明

ステート 説明

0x00 初期化

0x02 DRP インターフェイスのリセッ ト

0x16 プリ アンブル プルダウン

0x17 プリ アンブル読み出し

0x18 プリ アンブル無効

0x01 DRP/IOI のキャ リブレート

0x03 書き込みコマンド発行

0x04 書き込みコマンド待機

0x05 読み出しコマンド発行

0x06 読み出しコマンド待機

0x07 DRP インターフェイス待機

0x08 DQS キャ リブレーシ ョ ン

0x09 キャ リブレーシ ョ ン完了前

0x0E キャ リブレーシ ョ ン完了

Page 69: ザイリンクス UG416 Spartan-6 FPGA メモリ インターフェイス ソ … · mig ツールは、ユーザーが求めるメモリ インターフェイスを構築するために必要なすべての属性

Spartan-6 FPGA メモリ インターフェイス ソ リューシ ョ ン japan.xilinx.com 69UG416 (v1.3.1) 2010 年 10 月 18 日

合成およびインプリ メンテーシ ョ ンのデバッグ

合成およびインプリ メンテーシ ョ ンのデバッグ

図 3-3 に、 合成およびインプリ メンテーシ ョ ンのデバッグ フローを示します。

合成およびインプリ メンテーシ ョ ンの検証

MIG ツールによって生成されるデザイン例およびユーザー デザインには、 合成/インプリ メンテー

シ ョ ン スク リプ ト ファ イルと制約ファイル (.ucf) が含まれます。これらのファイルを使用してター

ゲッ ト デザインを合成およびインプ リ メ ン ト し、 ビッ ト ス ト リームを生成します。 合成/インプ リ

メ ンテーシ ョ ン ス ク リプ ト ファ イル (ise_flow.bat) は、 example_design/par ディ レク ト リおよび

user_design/par ディレク ト リの両方にあ り ます。 このスク リプ ト を実行する と、デザイン例または

ユーザー デザインがインプ リ メンテーシ ョ ン プロセス (合成、 変換、 MAP、 PAR、 TRACE、 およ

び BITGEN) を実行します。 これらのプロセスに設定されたオプシ ョ ンのみが、 MCB MIG デザイ

ンで検証されます。 インプリ メンテーシ ョ ンが 後まで完了したデザインは、 すべてのプロセスが

エラーなしで完了したこ とを示します (タイ ミ ング エラーがゼロ)。

MIG 出力の変更を検証

MIG ツールでは、 メモ リ インターフェイスに使用する MCB をユーザーが選択できます。 選択し

た MCB に基づいて、MIG ツールは必要なすべてのピン ロケーシ ョ ン制約を記述した UCF ファ イ

ルを出力します。 このファ イルは、 example_design/par ディ レク ト リおよび user_design/par ディ

レク ト リにそれぞれ配置され、 変更はできません。 選択されたピンは、 MCB との適切なインター

フェイスに必要です。

MIG ツールは、 MCB ラ ッパー ファ イルを出力します。 このファイルは変更しないでください。変

更はサポート されてないため、 ビヘイビア シ ミ ュレーシ ョ ン、合成、およびインプリ メンテーシ ョ

ンそれぞれで検証する必要があ り ます。

タイ ミ ング エラーの認識および解析

MCB デザインは、 タイ ミ ングを満たすよ う検証されています。 タイ ミ ング違反がある場合は、 そ

れらのエラーを取り除く必要があ り ます。TRACE で出力されるタイ ミ ング レポート (.twx/.twr) を解析し、 MIG MCB デザインまたは MIG MCB デザインへのユーザー インターフェイスにエラー

となっているパスがないかを確認します。 エラーが確認された場合は、 ise_flow.bat ファ イルで指

定したビルド オプシ ョ ン (例 : XST、 MAP、 PAR) が適切に使用されているかを確認します。

X-Ref Target - Figure 3-3

図 3-3 : 合成/インプリ メンテーシ ョ ンのデバッグ フロー図

Verify Successful Synthesis andImplementation Using Example Design

Verify Any Modification to the MIG Output

Verify Successful Synthesis and Implementation Using User Design

UG416_c2_03_091409

Verify Design Timing in TRACE

Open WebCase

Page 70: ザイリンクス UG416 Spartan-6 FPGA メモリ インターフェイス ソ … · mig ツールは、ユーザーが求めるメモリ インターフェイスを構築するために必要なすべての属性

70 japan.xilinx.com Spartan-6 FPGA メモリ インターフェイス ソリューシ ョ ン

UG416 (v1.3.1) 2010 年 10 月 18 日

第 3 章 : MCB デザインのデバッグ

エラーが解消されない場合は、さまざまなザイ リ ンクス リ ソースを使用し、タイ ミ ング ク ロージャ

を達成します。 PlanAhead ツール [参照 4] は、パフォーマンスおよびデザイン全体の品質を改善し

ます。ザイ リ ンクスの制約に関する詳細は、『ザイ リ ンクス制約ユーザー ガイ ド』 [参照 5] を参照し

て ください。

ハードウェアのデバッグ

図 3-4 に、 ハードウェアのデバッグ フローを示します。

メモリ インプリ メンテーシ ョ ン ガイド ラインの確認

ピン配置ガイ ド ラ イン、 終端、 I/O 規格、 およびト レース一致の詳細は、 『Spartan-6 FPGA メモ リ

コン ト ローラ ユーザー ガイ ド』 (UG388) の 「PCB レイアウ トのガイ ド ライン」 セクシ ョ ンを参照

して ください。 このガイ ド ラインは、 メモ リ テク ノ ロジや MIG 出力デザインによって異なり ます。

ボード レイアウ ト時に、 これらのガイ ド ラインに準拠しているかを検証する必要があ り ます。ガイ

ド ラ インに反している場合は、 ハード ウェアの動作にこの章で説明したよ うな問題が生じる可能性

があ り ます。

クロッキング

周波数、安定性 (ジッター )、および FPGA ピンの使用率をすべて実現するには、外部クロ ッ ク ソー

スを評価する必要があ り ます。

デザインは、『Spartan-6 FPGA メモ リ コン ト ローラ ユーザー ガイ ド』 (UG388) の 「ク ロ ッキング」

セクシ ョ ンで説明されている、 すべてのクロ ッキング ガイ ド ラインに従っている必要があ り ます。

ク ロ ッキング ガイ ド ラインに沿ったデザインでは、 次のステップと してインターフェイスをさらに

低速で動作させます。 すべてのデザインまたはボードが、 低速動作に対応するわけではあり ません。

周波数が低下する と、 PCB ト レースの不一致、 シグナル インテグ リティの低下、 または過剰負荷に

よって、 限界セッ トアップおよびホールド時間が増加します。

X-Ref Target - Figure 3-4

図 3-4 : ハードウェアのデバッグ フロー図

Verify Memory Implementation Guidelinesare Properly Followed

Run SI Simulation Using IBIS

Run Example Design

UG416_c2_04_091409

Isolate Bit Errors

Board Measurements

- Measure Signal Integrity- Measure Supply and VREF Voltages- Measure Bus Timing

Check Clocking/Run Interface at Slower Frequency

Open WebCase

Page 71: ザイリンクス UG416 Spartan-6 FPGA メモリ インターフェイス ソ … · mig ツールは、ユーザーが求めるメモリ インターフェイスを構築するために必要なすべての属性

Spartan-6 FPGA メモリ インターフェイス ソ リューシ ョ ン japan.xilinx.com 71UG416 (v1.3.1) 2010 年 10 月 18 日

ハードウェアのデバッグ

ボード上のピン配置の検証

ボード回路図を PAR で生成された <design_name>.pad レポート と比較する必要があ り ます。 これ

によって、 ボードのピン配置がインプリ メン ト されたデザインのピン割り当てと一致しているかを

確認できます。

メモ : MIG が生成した UCF で選択されたピン LOC は、MCB との適切なインターフェイスに必要

であ り、 変更はできません。

IBIS モデルを使用したシグナル インテグリテ ィ シミ ュレーシ ョ ンの実行

ボード レイアウ トのガイ ド ラインに準拠しているかを検証するには、 IBIS を使用してシグナル インテグ リティ シ ミ ュレーシ ョ ンを実行する必要があ り ます。 これらのシ ミ ュレーシ ョ ンは、ボード

レイアウ トの前後の両方で実行します。 目的は、 ボード上のシグナル インテグ リティの検証です。

『Virtex-5 FPGA ML561 メモ リ インターフェイス開発ボード ユーザー ガイ ド』 [参照 6] の「ML561Hardware-Simulation Correlation」 の章に記載の説明をガイ ド ラ インと して使用できます。 この章

では、 ML561 ボードにおけるシグナル インテグ リ ティの相互作用について詳細に説明しているた

め、 確認すべき部分の参照例と して使用できます。 また、 デザイン特有の IBIS モデルを生成する

手順も提供されており、 シ ミ ュレーシ ョ ン セッ ト アップに役立ちます。 このユーザー ガイ ドは、

Virtex®-5 デバイス と ML561 開発ボードをターゲッ ト と して説明していますが、原則は Spartan-6FPGA MCB デザインに適用できます。

デザイン例の実行

MIG で生成されるデザイン例は完全に検証済みであ り、 ボード上のメモ リ インターフェイスの検

証に使用可能です。 MCB と接続するユーザーのバッ クエンド ロジッ クに関する問題をデバッグし

ます。 さ らに、 MIG ツールで提供される ト ラフ ィ ッ ク ジェネレーターのパラ メーターを指定し、

ボード レベルでのテス ト用に異なるデータ パターンを送信できます。 たとえば、 Hammer パター

ンを使用してメモ リ インターフェイスの SSO に焦点を当て、 「Walking 1」 または 「Walking 0」 パ

ターンによって、メモ リの各 DQ ビッ トがほかのビッ ト とは無関係に 0 または 1 になっていないか

をテス ト します。使用可能なデータ パターンの詳細は、38 ページの「 ト ラフ ィ ッ ク ジェネレーター

付きの MIG デザイン例」 を参照して ください。

一般的なハードウェア問題のデバッグ

ハード ウェアでキャ リブレーシ ョ ン エラーやデータ エラーが生じた場合は、 ChipScope Analyzerを使用してデータパス信号の動作を解析する必要があ り ます。MIG ツールは、 この解析をサポート

するため、 メモ リ コン ト ローラー機能のデバッグ信号を与えます。 MIG ツールでこのオプシ ョ ン

が有効になっている場合は、出力 example_design および user_design に ChipScope Generator ILAと ICON コアがインスタンシエート されます。 ハード ウェアで example_design が使用される場合

は、 example_design/rtl/example_top.v モジュールを参照がされ、 user_design が使用される場合

は、 user_design/rtl/<component_name>_debug_en.v モジュールを参照される必要があ り ます。

ILA コ アにマ ッ プ された信号を解析するには、 まず、 適切な出力 par デ ィ レ ク ト リ にあ る

ise_flow.bat を実行し、ビッ ト ス ト リームを生成する必要があ り ます。これによ り、ChipScope ツー

ル コアが適切に生成されて、 それらが出力ビ ッ ト ス ト リ ームに含まれます。 次に、 ChipScopeAnalyzer を起動して、 デバイスのコンフ ィギュレーシ ョ ンを実行します。

メモ : ChipScope Analyzer の使用方法の詳細は、 『ChipScope Pro ソフ ト ウェアおよびコアのユー

ザーガイ ド』 を参照してください。

Page 72: ザイリンクス UG416 Spartan-6 FPGA メモリ インターフェイス ソ … · mig ツールは、ユーザーが求めるメモリ インターフェイスを構築するために必要なすべての属性

72 japan.xilinx.com Spartan-6 FPGA メモリ インターフェイス ソリューシ ョ ン

UG416 (v1.3.1) 2010 年 10 月 18 日

第 3 章 : MCB デザインのデバッグ

コンフ ィギュレーシ ョ ン後、ChipScope Analyzer ツールに [Data] ウ ィンド ウ と [Trigger] ウ ィンド

ウがロード されます。 これらのウ ィンド ウのポートは、 DataPort および TriggerPort 信号と して リ

ス ト されます。 これらの信号を適切にポートマップする (名前を付ける) には、前段落で記載されて

いる適切な rtl ファ イルを開いて、 cx_dbg_data 信号と cx_dbg_trig 信号の割り当てを確認します。

DataPort および TriggerPort 信号それぞれで右ク リ ッ ク し、 適切なデータ信号またはト リガー信号

の名前に変更します。

『Spartan-6 FPGA メモ リ コン ト ローラ ユーザー ガイ ド』 (UG388) の 「インターフェイスの詳細」

セクシ ョ ンで説明されている とおり、デバッグ ポートに割り当てられているデータ信号には、 コマ

ンド パス、 書き込みデータパス、 および読み出しデータパス信号があ り ます。 ト リ ガー ポートに

割り当てられている ト リガー信号には、 alib_done や エラー (example_design のみ) 信号があ り ま

す。 キャ リブレーシ ョ ン後のデータ エラーをデバッグするため、 キャ リブレーシ ョ ン失敗やエラー

をデバッグする calib_done 信号とは別に ト リ ガー信号をアサートできます。 データ エラーの解析

では、 「ビッ ト エラーの特定」 を参照してエラーの発生場所を判断してください。

ハード ウェア デバッグの開始にあたって 良の方法は、 ターゲッ ト ボードに、 メモ リ コン ト ロー

ラー機能用のデバッグ信号が有効になった example_design をロードするこ とです。 これは、 デー

タ エラーをチェッ クする ト ラフ ィ ッ ク ジェネレーター デザインを使用した既知のソ リ ューシ ョ ン

です。 このデザインは calib_done 信号がアサート され、エラー信号がアサート されるこ とな く完了

する必要があ り ます。 calib_done 信号のアサートは、 キャ リブレーシ ョ ンが問題なく完了したこ と

を示し、 エラー信号がアサート されてない状態は、 メモ リへ書き込まれたデータ と メモ リから読み

出されたデータが一致しているこ とを示します。example_design はボード上で二度実行する必要が

あ り ます。 一度目は、 ト リガー ウ ィンド ウの ト リ ガーを calib_done に設定し、 二度度目はエラー

に設定します。

ビッ ト エラーの特定

ハード ウェアのデバッグ ステップと しては、 ビッ ト エラーが生じるタイ ミ ングおよび位置を特定

するこ とが重要です。 ビッ ト エラーをモニタ リ ングする際は、 次を確認する必要があ り ます。

• エラーは、 特定の DQS グループに属するデータ ビッ トで発生しているか

• エラーは、 特定のアドレスまたはバンクへアクセスする と きに発生しているか

• エラーは、 特定のデータ パターンまたはシーケンスで発生するか

これで、PCB 上の短絡またはオープン接続を特定できます。また、SSO やクロス トークの問題

があるもわかり ます。

データ破損が書き込みよるものか、 または読み出しによるものかを特定するこ とが必要な場合があ

り ます。 書き込みが原因であ り、 データのリードバッ ク も問題がある場合には、 その特定が難し く

な り ます。 また、 制御またはアドレスのタイ ミ ングの問題は、 書き込みと読み出しの両方に影響を

及ぼします。

次に示す方法のいずれかを使用して問題を特定して ください。

• エラーが断続的な場合は、 コン ト ローラーに書き込みコマンドをいくつか発行させ、 その後に

それらの位置から連続して読み出しを実行します。 読み出しに断続的な破損データが含まれる

場合は、 読み出しに問題がある と考えられます。

• ODT を使用する場合、 メモ リ デバイスで適切な値が有効になっているかを確認し、 また書き

込みバース トに対する ODT 信号のタイ ミ ングが正しいこ とを確認します。

Page 73: ザイリンクス UG416 Spartan-6 FPGA メモリ インターフェイス ソ … · mig ツールは、ユーザーが求めるメモリ インターフェイスを構築するために必要なすべての属性

Spartan-6 FPGA メモリ インターフェイス ソ リューシ ョ ン japan.xilinx.com 73UG416 (v1.3.1) 2010 年 10 月 18 日

ハードウェアのデバッグ

ボードの測定

ボードのシグナル インテグ リティおよびバスのタイ ミ ングを解析する必要があ り ます。バスのシグ

ナル インテグ リティの詳細は、 『Virtex-5 FPGA ML561 メモ リ インターフェイス開発ボード ユー

ザー ガイ ド』 [参照 6] の 「ML561 Hardware-Simulation Correlation」 の章を参照してください。 こ

のユーザー ガイ ドは、 Virtex-5 デバイス と ML561 開発ボードをターゲッ ト と して説明しています

が、 原則は Spartan-6 FPGA MCB デザインに適用できます。

ボード測定では、 参照電圧レベルも重要です。 バスがアクティブな状態でこれらの電圧レベルを測

定する必要があ り ます。 バスがアイ ドルのと きに適正値であっても、 アクティブのと きに降下する

可能性があ り ます。

Page 74: ザイリンクス UG416 Spartan-6 FPGA メモリ インターフェイス ソ … · mig ツールは、ユーザーが求めるメモリ インターフェイスを構築するために必要なすべての属性

74 japan.xilinx.com Spartan-6 FPGA メモリ インターフェイス ソリューシ ョ ン

UG416 (v1.3.1) 2010 年 10 月 18 日

第 3 章 : MCB デザインのデバッグ