FC2カウンター FPGAの部屋 DQの最適な遅延値を測定するDDR2 SDRAMコントローラのインプリメント4
FC2ブログ

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

FPGAの部屋

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

DQの最適な遅延値を測定するDDR2 SDRAMコントローラのインプリメント4

”DQの最適な遅延値を測定するDDR2 SDRAMコントローラのインプリメント2”でDDR2 SDRAMの初期化手順を見てみると、DDR2 のDLLリセットから、最初のアクティベート・コマンドを入れるまでの間隔が52クロックと短いことが問題となった。
”DQの最適な遅延値を測定するDDR2 SDRAMコントローラのインプリメント3”では、DLLリセットからの時間を計るカウンタのクロックCLK1_16について、Chipscopeで測定したが問題なかった。
それではということで、カウンタの動作はどうなのだろうか?ということでカウンタの各ビットをChipscopeで確認してみたところ、DDR2 のDLLリセットから、最初のアクティベート・コマンドを入れるまでの間隔が256クロックになっていて直ってしまった。
DDR2_SDRAM_auto_adj_init_6_080530.png

これはおかしいと思って原因を探って見ると、タイミング制約が満足していなかった。
DDR2_SDRAM_auto_adj_init_7_080530.png

これは、どこがまずいのかと調べると、リセットSWとして使用したSW2をクロックで同期したFFの出力をSYS_RSTとORしていたので、SW2をクロックで同期したFFから、その他の回路のFFまでのパスがタイミング制約と比較されたからのようだ。本当はそうする時はSW2をクロックで同期したFFをツリー状に複製して、負荷を分散しなくていけないのだろう。(DDR2 SDRAMコントローラのインプリメントテスト2(動作周波数の確保2))
Timing Analyzerの結果は以下の通り。
DDR2_SDRAM_auto_adj_init_8_080530.png

いずれにせよ。どうもうまく受けられないようだ。
やはり、IOBの遅延素子によってDQの入力を遅延させてコントローラのクロックでサンプルする方式では、200MHzのSuzaku-Vでは無理があるのだろうか?
#どこか間違っているという可能性もあるが。。。

200MHzから動作周波数を下げるとIOBの遅延素子で1周期分遅延させることができないので、この方法をとるのは難しくなる。(クロックの立ち上がりのデータと立下りのデータを入れ替えられれば、1/2の周波数まではいけると思うが。。。)
この方法で受けるのはやめて、やはりDQSで受ける方法を模索しようと思う。その場合、問題はどうやって自分の内部クロックに乗せかえるかということになる。とりあえずはただ受けて見て、値をChipscopeで観測して正しいデータが受けられるかどうかを見てみようと思う。
  1. 2008年05月31日 15:47 |
  2. その他のFPGAの話題
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


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

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