論理回路デザイン
ArchiTek home page
全体像

Request制御モジュール(sdcCntl)について

Read Dataパスモジュール(sdcRd)について

Write Dataパスモジュール(sdcWr)について

DDR Dataパスモジュール(sdcTerm)について

回路デザイン > 設計例 [DDR制御(論理)] > 実装にあたって    次のページ(コーディング1)   このページのTOP ▲

[1]
400MHz動作だとDDR2のPC2-6400相当です。ではDDR3の800MHzはどうするのか?と言うことですなのですが、単純に800MHzと言うのは無理です。

いくつかのアイデアはあるのですが、手っ取り早いのは、今の回路を400MHzで動作させてDDRの信号を倍の密度に圧縮することです(ちょっと説明し辛いのですが、DDR信号だけ800MHzで動く)。

4サイクルに1回のパターンではなく4サイクルに2回のパターンになります。と言うことはバースト長は8から16になります。ランダム性は犠牲になります。
[2]
レイアウト的にはPADと機能モジュールとの中間に位置付けられるので、一旦ラッチしておきたいところです。ただ、レイテンシ最短化は最初から諦められないので、このままにします。
[3]
中間モジュールとして遅延を緩和するとともに、Writeなのでレイテンシの増減は性能に影響しません(むしろ早めにラッチしてレイテンシを縮めます)。
[4]
PHYには90°180°270°位相をずらしたクロックが必要なので、ここには180°位相をずらしたクロックを使用します。clkの反転は'0'と'1'のDuty比が保証できない限り使用するのは危険です。
[5]
ページ機能やPower-down-mode(細かなCKEのトグル操作)を実現しようとすると、状態数は16を越えるくらいになります。RTLコードに少し名残を残しています。
[6]
Self-refreshは、制御が面倒なのであまり使っていません。また、Auto-refreshもバンク単位でなく、全バンクリフレッシュを想定しています。

リフレッシュもバンク単位に出来ないことはないのですが、通常アクセスのようにバンクごとのスケジュール表が必要なり、そこまでの価値があるかは不明なので。している人はいるんでしょうかね。
[7]
iTermのスケジュール表を見て細かな制御をしたくなりますね。必然とiGnt信号を参照した回路になり、速度のボトルネックになる可能性が高くなります。

iGntをラッチするには2サイクルに1回しか受け付けなくてもよいことを利用します(分周と同じ)。
[8]
Readは受け身のタイミングなので遅延加算は不要ですが、Writeは先んじて出力バッファのOpen制御をする必要があるので遅延がかさみます。と言ってもPHY次第でどう変わるかは保証できないところです。

RLとWLが独立して可変設定でないと困る理由でもあります。