前回の
”Spartan3A Starter KitのDDR2 SDRAMコントローラの構想”でDDR2 SDRAMコントローラの回路を考察したのだが、回路をVerilogで書いているうちにまずいところを発見した。

それは、上の図でピンクで囲ったDQ用のIOBのDRRレジスタが入っているのが問題だ。Read時のDQSはReadデータの分しかこないため非同期FIFOにデータを最後まで入力することが出来ない。最後のデータはIOBのDDRレジスタに残ってしまうことになる。下の図参照。

これを解決するには、IOBのDDRレジスタからもデータを取って他の3つのデータとあわせるとか考えられるが、素直な解決策としてはIOBのDDRレジスタを取り除く方法だと思う。

この方法はIOBのレジスタを使えないので、タイミング的にクリティカルになるので、大丈夫かな?とりあえずやり始めてしまったので、一度インプリメントしてFloorplanしてタイミング見てみようと思う。
この問題は、以前考えてわかっていたはずなのに、間違ってしまった。忘れるのが早すぎる。。。
やはり、Virtex4のような専用のSERDESがあると、とっても楽だな。。。
PS. 今日は近所のお葬式の手伝いに行くことになって、家具作りサークルには行けなくなりました。茨城の田舎では組合というのがありまして、お葬式の時には助け合うようになっています。
- 2009年03月22日 07:04 |
- Spartan3A Starter Kit
-
| トラックバック:0
-
| コメント:0