FC2カウンター FPGAの部屋 DQの最適な遅延値を測定するDDR2 SDRAMコントローラのシミュレーション
FC2ブログ

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

DQの最適な遅延値を測定するDDR2 SDRAMコントローラのシミュレーション

DQの最適な遅延値を測定するDDR2 SDRAMコントローラのシミュレーションが大体完成した。今度のDDR2 SDRAMコントローラはDQの遅延値を0から63まで増やしていって、ちゃんと受けられるDQの遅延値を計算して、その遅延値をDQの遅延値とするものだ。とりあえずDDR2-400でやっています。
手順は以下のようになる。

1.DDR2 SDRAMのイニシャライズが終了したらイニシャル・データをライトする。
2.DQのIDELAY値を0から63まで変化させてイニシャル・データをリードする。
3.初めて正しいイニシャル・データをリードできたIDELAYの値をPS1とする。
4.PS1を過ぎて、間違ったデータをリードしたIDELAYの値をPS2とする。
5.IDELAYの値を63まで変更する。
6.IDELAYの値をPS1 + (PS2-PS1)/2 に再設定する。
7.これですべての初期化手順が終了。


このように、リードの時にDQの値を遅延させて、内部クロックでサンプルするという方式は変更がない。ただ、自動的に最適点を検索できる機能を追加しただけだ。
Veritakでシミュレーションをしているところを下に示す。
DDR2_simulation_080507.png

ModelSim XE3 Starter でシミュレーションするとかなり時間がかかるが、Veritakだとだいぶ速いので助かっている。

今、ISEでインプリメントしてみたがタイミングを満たさないところがある。大体、対策はわかっている。ブログで対策の取り方を説明しようと思う。

2008/05/09:明らかにタイミングを満たさない場所はバグでした。ですが、まだ、タイミングを満たしていません。
  1. 2008年05月07日 21:51 |
  2. DDR SDRAMコントローラ
  3. | トラックバック:0
  4. | コメント:4

コメント

上のストラテジは、素晴らしいですね。Virtex4と3Aは使えるんですよね。

ところで、未明の地震、仙台でも結構揺れました。

  1. 2008/05/08(木) 17:56:13 |
  2. URL |
  3. たっく #-
  4. [ 編集 ]

たっくさん、こんにちは。

DDRの際はご面倒をおかけしました。
Veritakが使えるので、本当に助かっています。
Virtex4とVirtex5が使えます。残念ながらVirtex3Aはだめです。
本当はDQSでデータをサンプルしたほうがいいのですが、趣味なのでいろいろ試してみようと思っています。
  1. 2008/05/08(木) 20:55:24 |
  2. URL |
  3. marsee #-
  4. [ 編集 ]

地震の話を忘れました。当然寝ていたのですが、夢うつつの状態でもかなりゆれました。2回くらい目が覚めました。
仙台でも結構ゆれたんですね。いつもの茨城に良くある縦揺れでなく、横揺れでしたね。
でも、職場に行ったら、積み重ねてある本も崩れていなかったので、そんなに震度はなかったのかな?と思っています。
  1. 2008/05/08(木) 21:16:19 |
  2. URL |
  3. marsee #-
  4. [ 編集 ]

>DDR..
とんでもないです。こちらこそ、DDRについてご教示、ご示唆をいただき、大変勉強になりました。ありがとうございました。

>Virtex4とVirtex5が使えます..
了解しました。(次回のEDK更新時は、Virtex4のボードにしようかな。)

>本震前の余震を数回感じました。このパターンはあんまりなかったので少し怖かったです。
  1. 2008/05/09(金) 05:29:16 |
  2. URL |
  3. たっく #-
  4. [ 編集 ]

コメントの投稿


管理者にだけ表示を許可する

トラックバック URL
http://marsee101.blog.fc2.com/tb.php/788-182a49db
この記事にトラックバックする(FC2ブログユーザー)