FC2カウンター FPGAの部屋 2008年05月07日
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