FC2カウンター FPGAの部屋 2008年06月08日
FC2ブログ

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

FPGAの部屋

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

DQSをクロックとしてDQのリードデータを受けるDDR2 SDRAMコントローラの構想

DQSをクロックとしてDQのリードデータを受けるDDR2 SDRAMコントローラの構想を考えている。とりあえず、DQSを半クロック程度DQから遅延させてIOBのDDRレジスタのクロックとしてリードデータを受ける。(これは後でちょうど良いところに自動調整するようにしても良い)
それを1つのDQSあたり、8ビットの分散RAM使用の非同期FIIFOで受け取る。その入っているデータを見てみようと思っている。非同期FIFOのwrite enable が一番問題だ。
本当はリードタイミング(CASレイテンシ=3)をDDR2の配線分遅延した信号を非同期FIFOのwrite enable に加えられれば一番良いのだが、遅延用の配線がない。とりあえずリードタイミングと同じタイミングで1クロック長くwite enable 信号を入れれば、DQSが1クロック分LOWに落ちているので、1クロック分余裕ができることになる。
つまり、配線遅延分+セットアップ時間が1クロック分(5ns) に収まっていれば、データが受けられるはずだ。この方針で行ってみようと思う。
まずは、1つデータを書いてみて、非同期FIFOのどの位置にデータが入っているかを確認してみたいと思う。
Virtex4のリージョナル・クロック・バッファを使うことにする。Virtex4のリージョナル・クロック・バッファついては、このブログでお勉強している。
DQSをクロックとして、IOB用にはBUFIO、非同期FIFOのWrite側のクロックにはBUFR で供給することになると思う。そのためには専用のIOパッドにDQSがピンアサインされている必要がある。それにクロックを供給できるリージョンも限定されているので、DQの位置も重要だ。
まずはこれを調べてみることにした。
今までのDDR2 SDRAMコントローラのプロジェクトでFloorplan Area /IO/ Logic - Post - Syntesis をダブルクリックして、見てみることにした。
DQS_sampled_DDR2_controller_1_080608.png

クロック・リージョンを確認するために、View Clock Regions アイコンをクリック。それで見るとクロック・リージョンが違っているのはddr_cke とddr_csb だけだった。これだったら大丈夫そうだ。
DQSもIOクロック・バッファ用のパッドに配置されているようだ。当たり前といえば当たり前だろうが。。。
これで確かめてみることができそうだ。
  1. 2008年06月08日 19:50 |
  2. DDR SDRAMコントローラ
  3. | トラックバック:0
  4. | コメント:0