FC2カウンター FPGAの部屋 VeritakでのDDR2 SDRAMコントローラのシミュレーション3(Write)
FC2ブログ

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

FPGAの部屋

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

VeritakでのDDR2 SDRAMコントローラのシミュレーション3(Write)

VeritakでのDDR2 SDRAMコントローラのシミュレーション3、Write編だ。
どうしてもWriteしないとReadできないのでWriteが先になる。
DDR2 SDRAMコントローラを作っている感想はDDRとあまり変化がないということだ。DDR2の特徴のPosted CASもODT(On-die Termination) もOCD(これはサポートされていないようだが。。。)使っていないので、そういう感想になると思う。
ともかくDDR2 SDRAM Writeは、どうなっているかというと。。。
ddr2_write_080121.png

このようになっている。
これは”VeritakでのDDR2 SDRAMコントローラのシミュレーション2(Read, Write)”のテストベンチのDDR_WRITEタスクの下の部分だ。

DDR2_WRITE(25'h000_0100, 4'b0000, 32'h1234_5678, 4'b0000, 32'h9ABC_DEF0);


上の図でピンクの四角で囲った部分がバンク・アクティブコマンドを発行したところ。
黄色黄緑色の四角で囲った部分が1個目のWRITEコマンドを発行。青の四角が2こめのWRITEコマンドを発行した部分。
黄色の四角が実際のデータを書き込む部分。Posted CASは使用していなし、CAS Latency=3なのでWL=2。tDQSS(MAX)を使用している。リトルエンディアンのつもりで作ってあるので、ライト用FIFO(wrdata_fifo)に書き込むデータの下位16bitから書き込むようになっている。
つまり、最初のデータは12345678(hex)なので、最初に1234のデータが出るがDQSがトグルしないのでDDR2 SDRAMにスルーされ、次に5678がDQSの立ち上がりエッジでDDR2 SDRAMに書き込まれる。次のDQSの立ち下がりエッジ上位16ビットの1234が書き込まれる。次にdef0、9abcが書き込まれる。2つ目のWRITEコマンドが続けて発行されているので、連続したバーストアクセスとなり、引き続きデータが4バースト書き込まれ、結局8バースト・ライトとなっている。
(注:DDR2 SDRAMは1つのWRITEコマンドを発行すると少なくとも4バースト・ライトとなります)

2008/01/23 追記:
Burst Lengthを書き忘れました。BL=4です。
  1. 2008年01月21日 09:22 |
  2. DDR SDRAMコントローラ
  3. | トラックバック:0
  4. | コメント:5

コメント

こんにちは

>黄色の四角で囲った部分が1個目のWRITEコマンド
黄緑色では?

12345678Hを4バーストと言っているように思えますが、
16bit幅2バーストでは? 私取り違えてますか
  1. 2008/01/23(水) 17:29:31 |
  2. URL |
  3. NSX #-
  4. [ 編集 ]

こんにちは。

>黄緑色では?
黄緑色に書き換えました。ご指摘ありがとうございました。

12345678Hと9abcdef0Hを書き込むので16bit幅4バーストです。
DDR2は4ビット・プリフェッチなので、Writeコマンドを1発発行すると4バーストになります。黄色の部分は引き続きWriteコマンドを発行しているので、連続した8バーストになります。
  1. 2008/01/23(水) 18:10:24 |
  2. URL |
  3. marsee #f1oWVgn2
  4. [ 編集 ]

BL=4 でしているのですね
DDR1、2もバースト長は、BLに依存するだけですよね

コントローラーとSIMモデルとの独自性の話でしょうか
そこはタッチできないので、であれば了解です
  1. 2008/01/23(水) 18:27:16 |
  2. URL |
  3. NSX #-
  4. [ 編集 ]

ごめんなさい
枝葉末節な話をしたかもしれません
全て了解です
  1. 2008/01/23(水) 18:36:46 |
  2. URL |
  3. NSX #-
  4. [ 編集 ]

そうです。BL=4です。
重要なことを書き忘れてしまって、ごめんなさい。
なるべく無駄が少ないように最小のバースト長にしています。
  1. 2008/01/23(水) 18:51:58 |
  2. URL |
  3. marsee #f1oWVgn2
  4. [ 編集 ]

コメントの投稿


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

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