FC2カウンター FPGAの部屋 DQSをクロックとしてDQをリードするDDR2 SDRAMコントローラのISERDES使用法
FC2ブログ

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

FPGAの部屋

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

DQSをクロックとしてDQをリードするDDR2 SDRAMコントローラのISERDES使用法

DDR2 SDRAMコントローラは一応の完成を見たが、ここでISERDESのタイミングを検証してみようと思う。
まずは、”DQSをクロックとしてDQをリードするDDR2 SDRAMコントローラの遅延の検討”で、READデータのFPGA⇔DDR2 SDRAM間(FPGA内部クロックでサンプルするまで)の遅延は6.986 ns と計算できた。これは最悪値なので標準値を考えて、シミュレーションでの遅延を片方向 3 ns 、両方向 6 ns でシミュレーションすることにした。
それが下の図だ。
ISERDES_DDR2_1_080731.png
マーカー1(M1) の緑色のカーソルがFPGAがアドレス(ddr2_address)、バンク・アドレス(ddr2_ba) 、RAS# (ddr2_rasb) ='1' 、CAS# (ddr2_casb) ='0' 、WE# (ddr2_web) ='1' をドライブしてREADコマンドを発行したところ。
FPGAから出力したddr2_clkは3 ns 遅延してDDR2 SDRAMに到着している。それがsdram_clkだ。M2の緑色のカーソルが、FPGAからのREADコマンドがクロックと同様に 3 ns 遅延してDDR2 SDRAMに到着したところだ。その信号がその次からのsdram_address から sdram_webまでの信号だ。
M3の緑色のカーソルが、M2でDDR2 SDRAMに到着したREADコマンドをDDR2 SDRAMが受けた結果、CAS Latency=3 でREADデータが出力されている。
M4の緑のカーソルで、M3でDDR2 SDRAMから出力されたREADデータが 3 ns 遅延してFPGAの内部に届いた。
ddr2_dqs_fpga を1/4クロック分IDELAYで遅延させたのがddr2_dqsin_bufioだ。ddr2_dqsin_bufioをクロックとして、ddr2_dq_in のデータをサンプルする。

ここから先は、Virtex4 User Guide (UG070 (v2.5) June 17, 2008) の373ページの図、Figure 8-6: Internal Connections of ISERDES When in Memory Mode を引用して説明しようと思う。
下が引用したFigure 8-6 だ。
ISERDES_DDR2_3_080731.png
上の図で、Dにはddr2_dq_in、CLKにはddr2_dqsin_bufio、OCLKとCLKDIVにはclk270、Q1はdq_fall_1d、Q2はdq_rise_1d、Q3とQ4はnon connection だ。
ISERDESのMEMORYモードを使用して、OCLKとCLKDIVに同じクロック(必ずしもそうではないが。。。)を入れるとQ1とQ2を使用すれば、同じ位相でREADデータを受けられる。それは受信クロックの立下りで受けたREADデータもCLKDIVの立ち上がりに同期して出てくるようになっているからだ。

話をその上のシミュレーション波形に戻すと、をクロックとして、ddr2_dq_in のデータをddr2_dqsin_bufioの立ち上がりでサンプルされたデータがFig. 8.6 のFF0 にラッチされる。FF0 の出力は次のclk270 の立ち上がりでサンプルされFF2 にラッチされる(黒いカーソルの位置)。FF2の出力は、その次のclk270 の立ち上がりでサンプルされてFF7 にラッチされる(赤のカーソルの位置)。その出力が dq_fall_1d と dq_rise_1d だ。
dq_fall_1d と dq_rise_1d をFIFOに入力して、FIFOの出力からDDR2 SDRAMコントローラの外へ出力する。それが、output_data。そのイネーブル信号がrddata_valid だ。
  1. 2008年07月31日 05:49 |
  2. DDR SDRAMコントローラ
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


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

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