FC2カウンター FPGAの部屋 DDR SDRAMコントローラの高度なシミュレーション
FC2ブログ

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

FPGAの部屋

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

DDR SDRAMコントローラの高度なシミュレーション

”Verilog版DDR SDRAMコントローラのバグフィックス”たっくさんの書かれたテストベンチでバグをフィックスすることができた。
たっくさんの書かれたテストベンチは書き込むデータがランダムパターンなので、バーストアクセスはできない。私の書いたVerilog版DDR SDRAMコントローラは1つのバンクのみアクティベートするので、バンクが異なっているとプリチャージしてバンク・アクティブコマンドを再入力するようになっている。
実際のパターンとしては、バースト・アクセス(キャッシュ・フィル、キャッシュ書き出し)が多いと思うので、テストベンチをバースト・アクセスに対応するように書き換えてみた。
具体的にはすべてランダムアドレスを入れる代わりに、burst_write_randomやburst_read_random中ではアドレスを+2するようにした。これでバーストになる。なぜ、アドレスを+2かというと1クロックで2データ出てしまうので、+1にするとアドレスが重なってしまうからだ。
下にシミュレーション結果波形を示す。これでデフォルトのディスク容量までやったがエラーはなかった。
DDR_SDRAM_CONT_adv_sim_1_080312.png

これでは、かなり無駄というか、アクセスが遅い。これはリードデータをチェックしている間はライトを発行しないからだ。これを解決するには、DDR SDRAMにRASやCAS、WEでリードコマンドを発行している間に、DDRVerilog版DDR SDRAMコントローラのコマンドの入力(addr_fifo_wren, wrdata_fifo_wren, input_address, input_data)でライトコマンドを発行する必要がある。今度はこれをやってみようと思う。上の図でピンクの丸で囲った部分を矢印くらいの位置に持って来たい。
  1. 2008年03月12日 09:03 |
  2. DDR SDRAMコントローラ
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


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

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