複数のレガシーDDR/DDR2 SDRAMコントローラ

複数のレガシー DDR/DDR2 SDRAM
コントローラ・インタフェースの実装
この資料は英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。こちらの日本語版は参考用としてご利用
ください。設計の際には、最新の英語版で内容をご確認ください。
Application Note 392
2007 年 7 月 ver 2.0
はじめに
このアプリケーション・ノートでは、複数のレガシー DDR2 コントローラを 1 個
の FPGA で設計するためのステップを詳細に説明しています。このアプリケー
ション・ノートを読めば、PLL および DLL リソースの割り当て、タイミング解
析、デバッギングなどの重要なデザイン検討事項を理解できるようになるはずです。
ALTMEMPHY ベースの複数のコントローラを実装する場合については、ここで
は説明していませんので、
「AN 462: ALTMEMPHY メガファンクションを使用し
た複数のメモリ・インタフェースの実装」を参照してください。
複数コントローラのデザイン・フローは、DDR/DDR2 SDRAM コントローラを
使用した 2 コントローラ・デザインと 3 コントローラ・デザインの例を示しなが
ら説明しています。
■
2 つの独立したコントローラ(図 1)
●
●
■
3 つのコントローラ(図 2)
●
●
デザインの
詳細
1 つがデバイスのトップに、もう 1 つがデバイスのボトムにあります。
コントローラ間でリソースの共有なし
2 つがデバイスのトップに、もう 1 つがデバイスのボトムにあります。
デバイスのトップにある2つのインタフェースのためのPLLおよびDLL
リソースの共有
この項では、メモリ周波数、メモリ・インタフェース幅、コントローラの PLL 数
などのデザイン仕様を説明します。正しいデバイスを使用することが最大性能の
達成に役立つため、これらの詳細をあらかじめ把握しておくことが大切です。以
下に仕様を示します。
■
ターゲット・デバイス : EP2S60F1020C3
■
DDR2 コントローラ・バージョン : Quartus® II 6.1 以降
■
Quartus II ソフトウェア : バージョン 6.1 以降
■
コントローラ・インタフェース周波数 : デザインのすべてのコントローラで
266.67 MHz
■
インタフェースの幅 : 各コントローラで 32 ビット
■
PLL 数 : 両デザインの各コントローラとも 2 個
(システム PLL およびフィード
バック PLL)
Altera Corporation
AN-392-2.0/JP
1
複数のレガシー DDR/DDR2 SDRAM コントローラ・インタフェースの実装
図 1 に 2 コントローラ実装を示します。このデザインでは、各コントローラは独
自の PLL リソースと DLL リソースを備えています。
図 1.
2 コントローラの実装
SDRAM Memory
System PLL
FPGA
DLL
PLL 5
DDR2 Controller
PLL11
PLL 12
DLL
PLL 6
Fedback PLL
Fedback PLL
DDR2 Controller
System PLL
SDRAM Memory
図 2 に 3 コントローラ実装を示します。この実装で、DLL リソースと PLL リソー
スは 2 つのコントローラで共有されます。
3つのコントローラで共有されるクロック・リソースについて詳しくは、
図 4 を参照してください。
2
Altera Corporation
2007 年 7 月
デザインの検討事項
図 2.
3 コントローラ実装
SDRAM Memory
SDRAM Memory
PLL 11
(Fedback PLL)
DDR2 Controller
Top_left
DLL
DLL
PLL 5
(System
PLL)
PLL 6
(Fedback
PLL)
DDR2 Controller
Top_right
DDR2 Controller
Bottom_right
SDRAM Memory
デザインの
検討事項
Altera Corporation
2007 年 7 月
設計者がカスタム・ロジックとコントローラ間で、FPGA のどのリソースを共有
する必要があるかを知っておくことが大切です。以下のデザイン検討事項は、2
または 3 コントローラ・デザインに適用されます。
1.
各インタフェースに FPGA からメモリに 1 つまたは複数のクロック・ペア
(clk_to_sdram[] および clk_to_sdram_n[])が使用できること。
2.
各コントローラに 1 個のシステム PLL と 1 個のフィードバック PLL が使用
可能なこと。各コントローラで、システム PLL がシステム・クロックを生
成し、フィードバック PLL がフィードバック・クロックを生成します。図 3
に、200 MHz 以上のレガシー・ベース・メモリ・インタフェースのクロー
ズ・タイミングに関してアルテラが推奨する構成を示します。
3
複数のレガシー DDR/DDR2 SDRAM コントローラ・インタフェースの実装
フィードバックおよびシステムPLLの機能について詳しくは、
「DDRおよびDDR2
SDRAM コントローラ・コンパイラ・ユーザガイド」の「付録 A、再同期化」の
項を参照してください。
図 3 に、システム PLL およびフィードバック PLL としてコンフィギュレーショ
ンされた PLL を含む、2 個の PLL リード・データパスの実装を示します。
図 3.
フィードバック PLL とシステム PLL の両方を使用した DDR2 SDRAM コントローラ
Optional, depending on setting of
"Insert intermediate resynchronization
registers."
Gclk - Global Clock
Rclk - Regional Clock
dq_capture
D
resynched_data
Q
D
feedback_resynched_data
Q
D
Q
inter_rdata
D
Q
User logic
dq
DLL
Gclk
Gclk
D
dqs
Q
D
dq_enable_reset
Q
D
Q
address/cmd
doing_rd_delayed
Q
D
Gclk
D
Q
dqs
clk2 (resync clock)
PLL 11 or PLL 12
clk0
(write clock) D
clk0 (fedback clock)
Rclk
Feedback
clock in
clk1 (postamble clock)
Q
dq
System
PLL
Gclk clk1
clk3
PLL 5 or PLL 6
Feedback
clock out
DLL リソース
の検討事項
4
Stratix® II および Stratix II GX シリーズの FPGA デバイスは、FPGA のトップで
1 個の DLL、ボトムで 1 個の DLL をサポートします。したがって、すべてのコン
トローラが共通 DLL からの出力を共有しなければならないため、デバイスの同じ
サイドにあるメモリ・コントローラが同じ周波数で動作する必要があります。
Altera Corporation
2007 年 7 月
PLL リソースの検討事項
PLL リソース
の検討事項
固定数の PLL 出力タップしか使用できないため PLL リソースは重要です。グロー
バル・クロック・リソースとリージョナル・クロック・リソースは、数に制限が
あり、またデバイスに応じて異なるためこれらを選択するときには注意が必要で
す。ここでは、各種クロックに使用するリソースのタイプについて説明します。
PLL リソースについて詳しくは、「Stratix II デバイス・ハンドブック volume 2」
の「Stratix II および Stratix II GX デバイスの PLL」の章にある「enhanced PLL」
および「fast PLL」の項を参照してください。
2 コントローラ・デザインでは、2 つのコントローラが独立しているため、PLL は
IP ツール・ベンチでインスタンス化され、変更する必要はありません。
両方のメモリ・インタフェースが同じ周波数の場合は、PLL リソース
を共有できます。
2 個の独立した PLL から出力されるクロックによって駆動されるデー
タが境界を越える必要がある場合は、適切なデータ同期化に配慮しなけ
ればなりません。
3 コントローラ・デザインでは、3 つすべてのコントローラをドライブするのに必
要な PLL の最小タップ数は 11 です。表 1 に 3 コントローラのデザイン例に必要
なクロックについて説明します。
表 1.
3 コントローラのデザイン例に必要なクロック
クロック名
説明
クロック数
システム・クロック
1 つのシステム・クロックで 3 つのコントローラを
すべてドライブ。
1
ライト・クロック
1 つのライト・クロックで 3 つのコントローラをす
べてドライブ。
1
再同期化クロック
各コントローラに 1 つの再同期化クロックがあり
ます。(1)
3
フィードバック再同期化
クロック
各コントローラに 1 つのフィードバック再同期化
クロックがあります。(1)
3
ポストアンブル・クロック
各コントローラに 1 つのポストアンブル・クロッ
クがあります。(1)
3
11
合計
表 1 の注 :
(1)
2 つ以上のコントローラが 1 つの再同期化 / フィードバック / ポストアンブル・クロックを共有する場合は、外部メモリのボー
ド・トレース遅延およびボード・レイアウトにマッチング制約を課す必要があります。このような制約を克服するには、3 つの独
立した再同期化 / フィードバック / ポストアンブル・クロックを使用します。図 4 に示すとおり、3 個の enhanced PLL から 11
個の PLL タップが選択されます。
Altera Corporation
2007 年 7 月
5
複数のレガシー DDR/DDR2 SDRAM コントローラ・インタフェースの実装
I/O バンク 3 および 4 の DLL 基準クロックは、enhanced PLL5 またはデバイス
の適切なサイドにある専用クロック入力ピン CLK[4-7] または CLK[12-15] に
よってのみドライブ可能です。I/O バンク 7 および 8 の DLL 基準クロックは、
enhanced PLL6 またはデバイスの適切なサイドにある専用クロック入力ピンに
よってのみドライブ可能です。例えば、PLL 入力基準クロック周波数が 100 MHz
で、所要出力周波数が 266.67 MHz の場合、乗算係数は 8/3 になります。この場
合、266 MHz の周波数を持つ必要がある DLL 基準クロックは、どの専用クロッ
ク入力ピンでもドライブできないので、enhanced PLL5 または enhanced PLL6 で
ドライブしなければなりません。
フィードバック・クロックは信号がチップから出力されてからチップに戻るので、
一般にジッタが大きくなるため、DLL 基準をドライブするのにフィードバック・
クロックは使用しないでください。システム PLL はトップのコントローラに対し
ては PLL5、ボトムのコントローラに対しては PLL6 でなければなりません。
6
Altera Corporation
2007 年 7 月
PLL リソースの検討事項
図 4 に、3 コントローラ・デザインにおける PLL リソースの用途を示します。こ
の図はどの PLL タップがグローバル / リージョナル・リソースとして使用される
かも示しています。
C4 resync_clk_2
R30
Enh PLL 6
C3 mem_clk_dedicated R31
C2 resync_clk_3
G14
C1 wr_clk(-90)
G13
R14
fb_resync_clk_3
C4
Co clk
G12
R15
postamble_clk_3
C5
C5 fb_resync_clk_1
R31
C4 postamble_clk_2
R30
C3
C2 postamble_clk_1
R26
Bank 7/Controller bottom_right
R29
B7_fb_clk_in
C5 resynch_clk_1
Enh PLL 12
Enh PLL 5
Enh PLL 11
B34_fb_clk_in
Bank 3/Controller top_left
Clock_src
PLL リソースの割り当て
Bank 4/Controller top_right
図 4.
C1
C0 fb_resync_clk_2
R24
図 4 の注 :
(1)
mem_clk-dedicated は、FPGA デザインではオプションですが、HardCopy® II アプリケーションで clk_to_sdram 出力
をドライブする必要があります。
Altera Corporation
2007 年 7 月
7
複数のレガシー DDR/DDR2 SDRAM コントローラ・インタフェースの実装
図 4 に示すとおり、3 個の enhanced PLL を使用する場合は、グローバル配線リ
ソースが最少数で済みます。表 2 は、3 コントローラ・デザインで fast PLL また
はより少ない enhanced PLL を使用する前に、検討する必要があるトレードオフ
について説明しています。
表 2.
enhanced PLL と fast PLL の間のトレードオフ
PLL の可能性
2 個の enhanced PLL —
両方ともトップ
注記
デバイスのいずれかのサイドから 4 つのチップワイドのグローバル信号のみドラ
イブ可能です。ただし、チップのボトムにあるコントローラに対するシステム・
クロック、ライト・クロック、再同期化クロック、フィードバック再同期化クロッ
ク、およびポストアンブル・クロックはすべてグローバル・クロックを必要とし
ます。これは使用可能な数よりも 1 つ多くなります。再同期化クロック、フィー
ドバック再同期化クロック、またはポストアンブル・クロックの 1 つを別のイン
タフェースと共有することによって達成できます。ただし、ボード・レイアウト
は制約されることになります。トップ DDR インタフェースに対するすべての再
同期化クロック、フィードバック再同期化クロック、およびポストアンブル・ク
ロックはデュアル・リージョンでなければなりません。
2 個の enhanced PLL —
システム PLL が 2 DDR インタフェースと共にトップに配置された場合、ボトム・
1つがトップで1つがボトム インタフェースに対するシステム・クロック、ライト・クロック、および再同期
化クロックは、グローバル・ネットワークにドライブしなければならず、トップ
で 1 つのグローバル・ネットワークがフリーになります。フィードバック PLL に
は、トップの DDR インタフェースに到達するには、4 つすべてのボトム・グロー
バル・ネットワークが必要です。システム PLL がシングル DDR インタフェース
と共にボトムに配置された場合、システム・クロック、ライト・クロック、およ
び 2 つの再同期化クロックは、チップのボトムからグローバルにしなければなり
ません。トップのフィードバック PLL はトップから 2 つの信号をグローバルにド
ライブすることのみ必要になります。したがって、2 DDR インタフェースとチッ
プの同じサイドにフィードバック PLL を配置するのが望ましい構成です。
2 個の enhanced PLL と
1 個の fast PLL
8
フィードバック PLL の目的は、基本的に I/O バッファ入力および出力遅延の変動
を補正するためのものです。フィードバック PLL に fast PLL を使用する場合は、
トップやボトムではなくチップのサイドの I/O を使用します。これらのピンは特
性が異なるため変動を追跡することはできません。fast PLL には 4 つの出力タッ
プしかないので、3 DDR インタフェースをサポートするにはそれらのうち 2 つ以
上が必要です。もう 1 つの問題は、fast PLL にはチップの反対側に信号をドライ
ブする(すなわち、左から右または右から左に)ためのグローバル・ネットワー
クが必要なので、トップまたはボトムにのみ入る必要がある信号をドライブする
には、グローバル信号を使用しなければならない可能性があります。メモリ・イ
ンタフェース数によっては、
fast PLLをシステムPLLとして使用することも可能です。
Altera Corporation
2007 年 7 月
PLL リソースの検討事項
表 3 では、システム・クロック(clk)、ライト・クロック(wr_clk)
、および再
同期化クロック(resync_clk_3)をグローバルにして Gclk で表記しています。
これはシステム・クロックとライト・クロックでチップの両サイドにある 3 つの
コントローラをすべてドライブする必要があり、また信号がチップのトップから
チップのボトムまで縦断してボトムの右コントローラの再同期化レジスタをドラ
イブしなければならないため、再同期化クロック(resync_clk_3)はグローバ
ルとなっています。
表 3.
クロック・リソースのタイプ
注 (1)
enhanced
PLL #
リソース・
タイプ
注記
clk
11
グローバル
このクロックは 3 つのエリ
アに配置された 3 つのコン
トローラをドライブします。
write_clk
11
グローバル
このクロックは 3 つのエリ
アに配置された 3 つのコン
トローラをドライブします。
dedicated_resynch_or_capture_clk_bot
tom_right
11
グローバル
この信号はエリアを横断し
なければなりません。
mem_clk_dedicated
11
なし
専用クロック出力ピンをド
ライブするためにのみ必要
です。必須ではありません。
dedicated_resynch_or_capture_clk_top
_right
11
リージョナル
—
dedicated_resynch_or_capture_clk_top
_left
11
リージョナル
—
fedback_resynch_clk_top_left
5
リージョナル
—
dedicated_postamble_clk_top_left
5
リージョナル
—
dedicated_postamble_clk_top_right
5
リージョナル
—
fedback_resynch_clk_top_right
5
リージョナル
—
fedback_resynch_clk_bottom_right
6
リージョナル
—
dedicated_postamble_clk_bottom_right
6
リージョナル
—
信号
表 3 の注 :
(1)
リージョナル・クロックおよびグローバル・クロックに対するこれらの設定は、各コントローラが 32 ビット以下の幅の DQ イン
タフェースを備えているときに動作します。DQ インタフェースが 32 ビットまたは 40 ビットを超える場合は、チップのトップま
たはボトム・サイド全体に及びます。この場合、デュアル・リージョナル・クロックを使用しなければなりません。これはイン
タフェースが2つのエリアをまたがるためです。PLL配線リソースはデザインごとに異なり、
デザイン例で1つのケースを示します。
Altera Corporation
2007 年 7 月
9
複数のレガシー DDR/DDR2 SDRAM コントローラ・インタフェースの実装
DDR/DDR2
SDRAM
メモリ・
コントローラの
インスタンス化
この項では、このデザイン用のコントローラの生成方法を説明します。最小の繰
り返しで適切なタイミングを達成するのに必要な設定を説明しているため、徹底
的に検討することが重要です。
Quartus II プロジェクトを作成した後、MegaWizard® Plug-In Manager を使用し
て DDR/DDR2 SDRAM コントローラを生成します。
同 じ プ ロ ジ ェ ク ト で 新 し い コ ン ト ロ ー ラ を 生 成 す る た び に、
MegaWizard Plug-In Manager を起動する必要があります。
MegaWizard Plug-In Manager を使用した SDRAM コントローラのパラメータ化
および生成について詳しくは、
「DDR および DDR2 SDRAM コントローラ・コン
パイラ・ユーザガイド」を参照してください。
MegaWizardPlug-In Manager を使用してコアを生成する場合、以下の 4 ページ
が重要です。
■
MegaWizard Plug-In Manager、ページ 2a
■
IP Toolbench - ステップ 1: Parameterize - Controller ページ
■
IP Toolbench - ステップ 1: Parameterize - Project Settings ページ
■
IP Toolbench - ステップ 1: Parameterize - Manual Timings ページ
MegaWizard Plug-In Manager ページ 2a
別個のディレクトリにコントローラを生成。例えば、デザインに 1 つはトップ、
も う 1 つ は ボ ト ム に 2 つ の コ ン ト ロ ー ラ が あ る 場 合 は、
<quartus_project_dir>/top_ddr2.v および <quartus_project_dir>/bottom_ddr2.v に
DDR2 コントローラ・メガファンクションを生成します。これは多くのファイル
をすべて 1 つのディレクトリに持たせないようにするのに役立ちます。
2 つのコントローラが別々のディレクトリに生成されると、PLL は両方の
コ ン ト ロ ー ラ と も 同 じ 名 前(ddr_pll_stratixii お よ び
ddr_fb_pll_stratixii)でインスタンス化されます。PLL インスタ
ンスの名前を変更して、デザイン内で 2 つのコントローラに共通した名
前にならないようにします。また、何らかの理由でコントローラを再生
成すると、PLL ファイル(ddr_pll_stratixii.v および ddr_fb_pll_stratixii.v)
は上書きされるので、名称変更プロセスを繰り返す必要があります。
10
Altera Corporation
2007 年 7 月
DDR/DDR2 SDRAM メモリ・ コントローラのインスタンス化
コントローラを生成すると、MegaWizardPlug-In Manager はシステム
PLL とフィードバック PLL の 2 個の PLL を生成します。これらの PLL
は、ディレクトリ top_right、top_left および bottom_right 内のファイ
ル multiple_ddr2_top.v でインスタンス化されます。3 コントローラ・
デザインの場合、これらの PLL はトップレベル・デザインでは使用さ
れず、デザインの要求に合わせ、MegaWizard Plug-In Manager を使用
して 3 つの独立した PLL が生成されます。これらの PLL はディレクト
リ pll_1_top、pll_2_top、および pll_bottom 内に生成されます。3 コ
ン ト ロ ー ラ・デ ザ イ ン の ト ッ プ レ ベ ル の デ ザ イ ン・フ ァ イ ル
(multiple_ddr2_top.v)を参照して、PLL インスタンスをそれらの出力
接続と併せて確認してください。
Controller ページ
a.
DQS mode をオンにします。
b.
Use fedback clock をオンにします。
このオプションがイネーブルされると、読み出し中に DQ ピンからの
データをキャプチャするレジスタは DOS を遅延した信号でクロックさ
れます。そうでない場合、PLL で生成されたクロックがデータをキャ
プチャします(Stratix シリーズのみ)。DQS モードは非 DQS モードよ
りも高い性能を提供します。非 DQS モードでは、DQ ピンをサイド・
バンクに配置できるため、より柔軟にピンを配置できます。トップおよ
びボトム・バンクだけが、DQS 信号を遅延させてリード・データをキャ
プチャするのに必要な回路をサポートします。
DQS および非 DQS モードについて詳しくは、
「AN 328: Stratix II デバイスによる
DDR2 SDRAM インタフェース」を参照してください。
c.
Insert pipeline registers on address and command outputs をオンにし
ます。
このレジスタは 200 MHz の周波数での所要性能を達成するのに役立ち
ます。このオプションがイネーブルされているとき、ウィザードはメモ
リ・コントローラとコマンドおよびアドレス出力間にパイプライン・レ
ジスタ・ステージを挿入します。このオプションをオンにすると、ロー
カル・インタフェースで local_read_req または local_write_req
信号がアサートされてからメモリ・インタフェースにアドレス / コマ
ンドが現れるまでの間に、
余分なレイテンシ・サイクルが追加されます。
d.
Altera Corporation
2007 年 7 月
Clock address/command output registers on the negative edge をオン
にします。
11
複数のレガシー DDR/DDR2 SDRAM コントローラ・インタフェースの実装
このオプションにより、アドレスおよびコマンド信号の出力タイミング
を調整して、メモリ・デバイスのセットアップおよびホールド要件を満
たすことができます。ただし、アドレス / コマンド・タイミングの独
自のタイミング解析を実行しなければなりません。一般に、このオプ
ションは 200 MHz 以上で動作する Stratix II デザインを除いて、オンに
します。
Project Settings ページ
対応するコントローラを生成している間に、デバイスのすべてのピンの先頭に適
切な名前を付加します。これを行うことにより、図 5 に示すとおり、IP Toolbench
はコントローラのトップレベルのピン名の前に、与えられた名前を付加します。
図 5.
12
Project Settings ページ
Altera Corporation
2007 年 7 月
DDR/DDR2 SDRAM メモリ・ コントローラのインスタンス化
2 コントローラ・デザインの場合 :
a.
ddr2_bottom_
b.
ddr2_top_
PLL 位相を後で変更したり、PLL MegaWizard Plug-In Manager を使用して編集
しなければならない場合は、Update the example design PLLs をオフにします。
Update the example design PLLs オ プシ ョ ンを オ ンに し た場 合、
MegaWizard Plug-In Manager での PLL および位相の変更は、PLL 設
定に自動的に反映され、PLL MegaWizard Plug-In Manager で位相を編
集する必要はありません。
Manual Timings ページ
Altera Corporation
2007 年 7 月
a.
Manual resynchronization control をオンにします。
b.
Manual postamble control をオンにします。
c.
Enable DQS postamble logic をオンにします。
d.
図 6 に示すように、Resynchronization Options セクションと Postamble
Options セクションの両方に、適切な Dedicated clock phase 設定を入
力します。
13
複数のレガシー DDR/DDR2 SDRAM コントローラ・インタフェースの実装
図 6.
Manual Timings ページ
最初に、クロック位相に適当な数値を入力し、後でそれらの値を DTW
タイミング解析スクリプトで変更することができます。
ページ設定について詳しくは、「DDR/DDR2 SDRAM Controller Compiler User
Guide」を参照してください。
14
Altera Corporation
2007 年 7 月
RTL コードの変更
RTL コードの
変更
2 つまたは 3 つのコントローラを生成した後、これらのコントローラを統合して
トップレベルのファイルを作成しなければなりません。図 1 および図 2 に、2 ま
たは 3 コントローラ・デザインのトップレベルのデザインを示します。この技術
資料と共に参考のために、2 および 3 コントローラ・デザイン両方のトップレベ
ル・ファイルが提供されていますが、設計者がこれらを複製してカスタマイズす
る必要があります。
トップレベル・ファイル(multiple_ddr2_top.v)に行われた主な変更は、以下の
とおりです。
1.
3 つすべてのコントローラからの pnf 出力には、独立した信号として、以下の
名前が付けられています。
a.
pnf_top_right
b.
pnf_top_left
c.
pnf_bottom_right
2.
pnf_per_byte[0:7] は、信号 pnf_per_byte_top_right |
pnf_per_byte_top_left | pnf_per_byte_bottom_rightのORです。
3.
test_complete は、信号 test_complete =
test_complete_top_right | test_complete_top_left |
test_complete_bottom_right の OR です。
4.
Quartus II の
コンパイル
表 4.
PLL および DLL 接続を図 1 および図 2 に示します。
最大性能を達成するために、Quartus II ソフトウェアの表 4 に示す設定を使用し
なければなりません。
Quartus II で最大性能を達成するための主な設定 (1 / 2)
ページ名
設定
Analysis and Synthesis 設定
Optimization Technique セクションで、Speed を選択します。
Fitter の設定
タイミング・ドリブン・コンパイル・セクションでは、Optimize hold timing
オプションをオフにします。
Optimize fast-corner timing オプションをオフにします。
Fitter Effort セクションで、Standard Fit (highest effort) を選択します。
Altera Corporation
2007 年 7 月
15
複数のレガシー DDR/DDR2 SDRAM コントローラ・インタフェースの実装
表 4.
Quartus II で最大性能を達成するための主な設定 (2 / 2)
ページ名
Timing Analysis 設定
設定
Timing analysis processing セクションで、Use TimeQuest Timing Analyzer
during compilationまたはUse Classic Timing Analyzer during compilation
を選択します。(1)
表 4 の注 :
(1)
アルテラでは、TimeQuest タイミング・アナライザの使用を推奨しています。
詳しくは、
「DDR Timing Wizard User Guide」のデザイン・フロー・セクション
のステップ 4「Add other assignments for the design」を参照してください。
I/O 規格の
アサインメント
制約ファイル auto_add_constraints.tcl を提供して、I/O 規格をデザインのトッ
プレベル・ピンに割り当てます。このファイルは、複数のコントローラを生成し
ている間に自動的に生成され、デザインで使用されるコントローラの .tcl ファイ
ル へ の リ フ ァ レ ン ス が 含 ま れ ま す。3 コ ン ト ロ ー ラ 例 の 場 合、
auto_add_constraints.tcl ファイルは以下のファイルを参照します。
top_right/add_constraints_for_ddr2_top_right.tcl
bottom_right/add_constraints_for_ddr2_bottom_right.tcl
top_left/add_constraints_for_ddr2_top_left.tcl
デザイン例のコンパイルについて詳しくは、
「DDR and DDR2 SDRAM Controller
User Guide」を参照してください。
I/O 位置の
アサインメント
アドレス、データ、および dqs 信号などのトップレベルのピンを最も近い I/O バ
ンクに割り当てます。例えば、top_right コントローラのトップレベルの信号
を I/O バンク 3 に、top_left コントローラ信号を I/O バンク 4 に、そして
bottom_right コントローラ信号を I/O バンク 7 に割り当てます。
clock_source を A16 に、ddr2_top_right_fedback_clk_in を A17 に、
ddr2_bottom_right_fedback_clk_in を AM16 に割り当てます。
これらのピンを選択したのは、ドライブしている PLL と同じデバイス
のサイドにある専用クロック入力ピンであるためです。
16
Altera Corporation
2007 年 7 月
I/O 位置のアサインメント
以下のガイドラインに従って、clk_to_sdram および sdram_n ピンをすべて割
り当てます。
1.
2.
メモリ・インタフェースと同じバンクにある専用クロック・ピン・ペア。例
を以下に記します。
a.
Bank3 = CLK14p/n および CLK15p/n
b.
Bank4 = CLK12p/n および CLK13p/n
c.
Bank7 = CLK6p/n および CLK7p/n
d.
Bank8 = CLK4p/n および CLK5p/n
メモリ・インタフェースと同じデバイス・サイドの専用クロック・ピン・ペ
ア。例を以下に記します。
a.
トップ・サイド = CLK12/13/14/15p および n
b.
PLL5_OUT[2..0]p および n
c.
PLL11_OUT[2..0]p および n
d.
ボトム・サイド = CLK4/5/6/7p および n
e.
PLL6_OUT[2..0]p および n
f.
PLL12_OUT[2..0]p および n
まず同じバンク内で、次にコントローラと同じサイドで、適切な差動ピン・ペア
を探します。
ピン reset_n、test_complete、pnf、および pnf_per_byte[7:0] の信号
がクロージャ問題を発生しないように、これらのピンをサイド・バンク 5 および
6 に配置します。
タイミング違反が発生する可能性があるので、
これらのピンは対応する
コントローラから遠すぎない位置に配置してください。
Altera Corporation
2007 年 7 月
17
複数のレガシー DDR/DDR2 SDRAM コントローラ・インタフェースの実装
図 7 に、複数のメモリ・インタフェース・コントローラを実装するために実施し
たステップを要約するチャートを示します。
図 7.
複数のメモリ・インタフェース・コントローラを実装するためのステップ
Create Quartus
Project
Generate the
Controllers
Create the Top
Level File
Add Constraints
Set Quartus II
Compilation
Settings
Assign Pins
Through Pin
Planner
次のステップは DTW(DDR Timing Wizard)の実行です。
Quartus MegaWizard Plug-In Manager で生成されるタイミング解析ス
クリプト(auto_verify_ddr_timing.tcl)は、リージョナル・クロック
が使用されているときには、複数のコントローラでは動作しません。
Quartus II ソフトウェアは、以下のエラー・メッセージを生成します。
Error: Evaluation of Tcl script auto_verify_ddr_timing.tcl
unsuccessful.
Error: Quartus II Shell was unsuccessful. 2 errors, 8 warnings
Error: Quartus II Full Compilation was unsuccessful. 2 errors,
774 warnings
18
Altera Corporation
2007 年 7 月
DTW スクリプトの実行
このプロジェクトでは、多くの利点があるため DTW を使用してください。DTW
について詳しくは、
「DDR Timing Wizard User Guide」を参照してください。
DTW
スクリプトの
実行
DTW スクリプトを実行するには、Tools メニューの Tcl Scripts をクリックします。
dtw を選択します。別々の名前を持つ各コントローラに対して、独立した *.dwz
ファイルを生成します。例えば、3 コントローラ・デザインに対しては、以下の 3
つのファイルが生成されます。
■
■
■
top_right_ddr_settings.dwz
top_left_ddr_settings.dwz
bottom_right_ddr_settings.dwz
DTWタイミング解析スクリプトの使用法について詳しくは、
「DDR Timing Wizard
User Guide」を参照してください。
デザインの
コンパイル
DTW スクリプトはデザイン制約を SDC ファイルの形式で使用しており、この制
約ファイルはデザインをコンパイルする前にデザイン・ファイルに追加する必要
があります。
DTWタイミング解析スクリプトの使用法について詳しくは、
「DDR Timing Wizard
User Guide」を参照してください。
DTW
タイミング
解析
これでデザインはすべての制約を設定してコンパイルされました。タイミングが
満たされたかどうかを確認する必要があります。
DTW の使用およびタイミング解析の実行方法について詳しくは、
「DDR Timing Wizard User Guide」を参照してください。
コ マ ン ド・プ ロ ン プ ト で 以 下 の ス テ ッ プ を 実 行 し ま す。ス ク リ プ ト
dtw_timing_analysis.tcl ファイルは、Quartus II プロジェクト・ディレクトリに
あります。
quartus_sh -t dtw_timing_analysis.tcl -dwz_file
top_right_ddr_settings.dwz
quartus_sh -t dtw_timing_analysis.tcl -dwz_file
top_left_ddr_settings.dwz
quartus_sh -t dtw_timing_analysis.tcl -dwz_file
bottom_right_ddr_settings.dwz
スクリプトを実行した後、コンパイル・レポートを閉じてから再び開いて、タイ
ミング解析結果を検証します。
Altera Corporation
2007 年 7 月
19
複数のレガシー DDR/DDR2 SDRAM コントローラ・インタフェースの実装
DTW スクリプトは、図 8 に示すとおり、タイミングが満たされなかった場合に、
次に何を行うかについての詳細を提供します。
図 8.
DTW スクリプトのタイミングの詳細
図 9 に示すとおり、一般にサイクル調整が必要です。
図 9.
サイクル調整
サイクル調整を行うには、以下のステップを実行します。
20
Altera Corporation
2007 年 7 月
DTW タイミング解析
quartus_sh -t dtw_timing_analysis.tcl -dwz_file
top_right_ddr_settings.dwz -extract_tcos ignore
–read_side tq –auto_adjust_cycles
このステップはサイクルを調整する必要がある場合に、対応するコントローラに
対して行われます。DTW スクリプトの実行後、Quartus II ソフトウェアに次に何
を行うかが示されます。
サイクル調整後、次のステップは 3 つすべてのクロックの位相を調整することで
す。これは IP Toolbench で、または対応する PLL の設定を編集して行うことが
できます。
一度、位相調整を行えば、次のステップは新しい PLL 位相でデザインをコンパイ
ルすることです。
quartus_sh -t dtw_timing_analysis.tcl -dwz_file
top_right_ddr_settings.dwz -extract_tcos no –read_side
tq –after_iptb import_and_compile
PLL 位相調整が行われたすべてのコントローラに対して、前のステップを繰り返
します。3 つのコントローラすべてに位相調整が行われた場合は、以下の例に示
すように、コンパイルは一度だけ実行でき、タイミング解析は 3 つのコントロー
ラに対して実行できます。
quartus_sh -t dtw_timing_analysis.tcl -dwz_file
top_right_ddr_settings.dwz -extract_tcos no –read_side
tq –after_iptb import_and_compile
quartus_sh -t dtw_timing_analysis.tcl -dwz_file
top_left_ddr_settings.dwz -extract_tcos no
quartus_sh -t dtw_timing_analysis.tcl -dwz_file
bottom_right_ddr_settings.dwz -extract_tcos no
この場合、デザインを 3 回コンパイルしなくてもすみます。
Altera Corporation
2007 年 7 月
21
複数のレガシー DDR/DDR2 SDRAM コントローラ・インタフェースの実装
トラブルシュー
ティング
DTW スクリプトで記述されるすべてのステップを実行します。
デスティネーショ
ン・レジスタに関連する違反がある場合は、
「デスティネーション・レジスタに関
連する違反」に示すとおり、inter_rdata[*] という名前で表示されます。
例 1–1. デスティネーション・レジスタに関連する違反
ddr2_bottom_right:ddr2_bottom_right_ddr_sdram|ddr2_bottom_right_auk_ddr_sdram:ddr2
_bottom_right_auk_ddr_sdram_inst|ddr2_bottom_right_auk_ddr_datapath:ddr_io|ddr2_bo
ttom_right_auk_ddr_dqs_group:\g_datapath:1:g_ddr_io|inter_rdata[5]
inter_rdata[*] 違反を受け取った場合は、Manual Page 設定の下にある Insert
intermediate synchronization registers オプションを切り替えます。この設定が
オンの場合はオフにし、オフの場合はオンにします。図 10 に、このオプションが
オンになっているところを示します。
22
Altera Corporation
2007 年 7 月
まとめ
図 10. チェックなしでの中間再同期化レジスタの挿入
まとめ
Altera Corporation
2007 年 7 月
このアプリケーション・ノートに示すように、DDR/DDR2 SDRAM コントロー
ラを使用して複数のコントローラ・デザインを作成する方法が複数あります。こ
のアプリケーション・ノートでは、2 種類の複数コントローラ・デザインの性能
要件を作成および適合させるのに必要なステップについて説明しています。ユー
ザ・デザインがこのアプリケーション・ノートで説明した内容と異なる場合は、
ガイドラインに従い、必要に応じて適切な変更を行わなければなりません。複数
メモリ・インタフェースの要件と制限を事前に知っておくと、より良いシステム
を構築できます。
23
複数のレガシー DDR/DDR2 SDRAM コントローラ・インタフェースの実装
改訂履歴
表 5.
表 5 に、本資料の改訂履歴を示します。
改訂履歴
日付 & ドキュメント・
バージョン
2007 年 7 月 v2.0
2005 年 8 月 v1.0
101 Innovation Drive
San Jose, CA 95134
www.altera.com
Technical Support:
www.altera.com/support/
Literature Services:
[email protected]
変更内容
概要
「はじめに」の項を更新。
「プロジェクトの設定」、
「DDR
SDRAM コントローラ MegaCore ファンクションの起
動」、
「トップレベル・デザイン・ファイルの編集」
、
「制
約の追加」、
「付録」の項(および関連する項)を削除。
削除した項を「デザインの詳細」、「デザインの制約」、
「DLL リソースの検討事項」
、「PLL リソースの検討事
項」、
「DDR/DDR2 SDRAM メモリ・コントローラのイ
ンスタンス化」、
「RTL コードの変更」、「Quartus II の
コンパイル」
、
「I/O 規格のアサインメント」、
「I/O 位置
のアサインメント」
、「DTW スクリプトの実行」、
「デザインのコンパイル」、
「DTW タイミング解析」、
「ト
ラブルシューティング」、「まとめ」に置き換え。
すべての図を新しい図に置き換え。
—
初版
—
Copyright © 2007 Altera Corporation. All rights reserved. Altera, The Programmable Solutions Company,
the stylized Altera logo, specific device designations, and all other words and logos that are identified as
trademarks and/or service marks are, unless noted otherwise, the trademarks and service marks of Altera
Corporation in the U.S. and other countries. All other product or service names are the property of their respective holders. Altera products are protected under numerous U.S. and foreign patents and pending
applications, maskwork rights, and copyrights. Altera warrants performance of its semiconductor products
to current specifications in accordance with Altera's standard warranty, but reserves the right to make changes to any products and services at any time without notice. Altera assumes no responsibility or liability
arising out of the application or use of any information, product, or service described
herein except as expressly agreed to in writing by Altera Corporation. Altera customers
are advised to obtain the latest version of device specifications before relying on any published information and before placing orders for products or services.
Altera Corporation