2014年9月27日土曜日

SDRAMのメモ

http://pdf.datasheetarchive.com/indexerfiles/Datasheet-093/DSA0072064.pdf
を参考にしてSDRAMのコントローラを作る。

実装例は
http://www.hmwr-lsi.co.jp/fpga/fpga_10.htm

実際に使うSDRAMは、
http://akizukidenshi.com/catalog/g/gI-08265/
SDRAM EDS1216AGTA-75-E



CS(ChipSelect)に関係なく、readやwriteしていない時は、DQ(データバス)はHi-Z

ただし、

page.34

備考 初期化シーケンス中は、出力がハイ・インピーダンス状態であることを保証するため,CKE とDQM を
ハイレベルの状態に保持することを推奨します。

->FPGAのIOが足りないので無理。
大丈夫だと祈って諦める。


page.38

例 2)バースト長:フル・ページ(512)の場合
1 回のコマンド入力により,フル・ページ分のデータを連続して入出力します。
このとき,入出力データはラップ・アラウンド動作をするため,データの入出力を止める場合,バース
ト・ストップ・コマンド,リード/ライト・コマンド,プリチャージ・コマンドを用いて止める必要があ
ります。


なお,バースト長をフル・ページに設定した場合,オート・プリチャージ付きリード/ライト・コマン
ドを入力しないでください。





page.35~
4.1 モード・レジスタ設定

バースト長の設定:フルページ

ラップ・タイプの設定:シーケンシャル

/CAS レーテンシの設定:「CL=3」
SDRAM EDS1216AGTA-75-Eのpage.7の「System clock cycle time」より、
「CL=3」(CL : /CAS Latency)の場合、型番が「75」なので、
Clockは「7.5ns==133.333MHz」まで対応できる。

オプション:それぞれのデータシートの「mode」の項目を参照する。
今回の場合だと、SDRAM EDS1216AGTA-75-Eのpage.21に書いてある。

今回はフルページなので、A3のBT=0(シーケンシャル)でしか、{A2,A1,A0}={1,1,1}
のFullPageに対応していない事が分かるので注意。


第 7 章基本動作モード
page.59



リフレッシュサイクルについて、

http://documentation.renesas.com/doc/products/mpumcu/apn/rjj06b0867_sh7730ap.pdf
のpage.16について、

SDRAM の仕様で,64 ms (tREF) 期間内に4096 回 (Ref_Cyc) リフレッシュを行う必要がある

と言う意味らしい。

これは今回使うSDRAM EDS1216AGTA-75-Eのpage.7にも、それらしき記述がある。



2.5.3 リフレッシュサイクル
(1) SDRAM に対してリフレッシュを実施する間隔時間 (tREF) を設定します。
(2) オートリフレッシュサイクルのウェイトサイクル (Trc) を設定します。
本設定において,SH7730 と使用するSDRAM のバスタイミングを満たしていることを確認します。
• SDRAM のtREF (リフレッシュ間隔時間)
tREF(max) ≥ tcyc × CKS × RTCOR × Ref_Cyc
* SDRAM の仕様で,64 ms (tREF) 期間内に4096 回 (Ref_Cyc) リフレッシュを行う必要があるた
め,上記の計算式を満たす必要があります。【参考】の結果より,tREF (64 ms) ≥ 60.9 ms となる
ため条件は満たしています。
【参考】
Tcyc = 15 ns, CKS = 16, RTCOR = 62, Ref_Cyc = 4096 とすると,
リフレッシュカウンタのクロック周期: tcyc × CKS = 240 (ns)
1 回当たりのリフレッシュ間隔時間: tcyc × CKS × RTCOR = 14.9 (μs)*
4096 回のリフレッシュ間隔時間: tcyc × CKS × RTCOR × Ref_Cyc = 60.9 (ms)
【注】 バスサイクル実行中にリフレッシュ要求が発生した場合は,リフレッシュの実行はバスサイ
クルの完了まで待たされます。このようなリフレッシュするタイミングが遅れる場合を考慮
して,本設定例では,RTCOR の設定に余裕を持たせています。
• SDRAM のtRC (リフレッシュサイクル時)
tRC(min) ≤ (tcyc × Trc) + (Tr) ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ (図9)
* Tr = Trc = tcyc

上記のルネサスの例では、64msの間隔に対して60.9msに設定しており、
約5.09%の余裕を持っている。
この例に倣い、今回は5%の余裕を持って計算する。














0 件のコメント:

コメントを投稿