FC2カウンター FPGAの部屋 DDR2 SDRAMコントローラをランダムなバースト長でテスト(シミュレーション編)
fc2ブログ

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

FPGAの部屋

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

DDR2 SDRAMコントローラをランダムなバースト長でテスト(シミュレーション編)

Suzaku-V(SZ410)用DDR2 SDRAMコントローラをランダムなバースト長でテストするためにDDR2_burst_test.v を書いので、シミュレーションをしてみた。
DDR2_burst_test.v の上にテストベンチとして、DDR2_burst_test_tb.v を作って、Veritakでシミュレーションしてみた。
シミュレーションしてみたところ、コントローラのバグを発見した。テストベンチのバグもたくさんあったが、修正していったところシミュレーションも50us位の間、エラーなく通るようになった。
シミュレーションの一部を紹介する。下の図がシミュレーション波形だ。
ddr2_burst_test_1_080813.png
1.最初のM1マーカー(最初の緑の縦線)はプリチャージをあらわしている。前のREADやWRITEとこれから行うWRITEやREADのROWアドレスとバンクが合わないのでプリチャージをおこなう。
2.M2マーカー(2番目の緑の線)は、これから使用するROWアドレスとバンクをアクティベートする。これでセンスアンプにキャッシュされた。
3.M3マーカー(3番目の緑の線)でWRITEコマンドを発行している。ddr2_dq に書き込むデータが、ddr2_dqs, ddr2_dqs_n にサンプルクロックが出力されている。
4.M4マーカー(4番目の緑の線)でREADコマンドが発行されている。CASレイテンシー3クロック後にddr2_dqにリードデータが、ddr2_dqsにクロックが出力される。なお、コマンドレジスタ設定時にDQS#はディスエーブルしてあるので、ddr2_dqs_nにクロックは出力されない。
5.黒のカーソルと赤のカーソルの間にRAEDで受け取ったデータが出力されるので、期待値と照合する。

1.~5.をランダムなバースト長で繰り返しテストする。LED0がついている間はエラーなしで、エラーが起こるとLED0は消え、LED1が点灯する。
ddr2_burst_test_2_080813.png

シミュレーションは大丈夫そうなので、UCFファイルを作って実際にインプリメントしてやってみることにする。
  1. 2008年08月13日 11:24 |
  2. DDR SDRAMコントローラ
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


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

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