ハードウェア実験 第8回

2016-06-23

課題8

  1. 基板上のSDRAMの全アドレスに対し、固有のデータを格納し、読み出せ。
  2. 但、固有のデータとは、格納するアドレスとせよ。
  3. 但、SDRAMへの読み書きは、ザイリンクス7シリーズFPGAメモリ インターフェイスソリューションコア、ならびにAXI4プロトコルを使用せよ。

締切 2016-07-06 20:00:00 JST

配布物

メモリシミュレータの使い方

配布物4.について説明をする。実機がどうしてもブラックボックスとなる以上、シミュレーショタを使用することは、常に良い方法である。Xilinx社から提供されている、DRAMおよびAXIのシミュレータコードが使用でき、これにより、プロトコルを理解する視覚的な助けにもなり、また効率の良いデバッグ環境を手にすることができる。今回は、受講者が、課題が意義するところである、「一般的に使用されている、少々複雑なプロトコルを、資料を元に理解し、利用するハードウェアを構成する。」を達成できるように、実際にシミュレータを使用しているサンプルコードと、利用の手順を以下に公開する。波形を眺める等でも理解の助けとなるので、これと、各社が公開している資料を元にして、課題を遂行してほしい。

  1. 配布物をダウンロードし、解凍したディレクトリの中にあるhw8_create_project.tclを、Vivado内でsource hw8_create_project.tclする。この流れは課題5と同じである。
  2. 後述するスライドの通りに、Memory Interface Generatorを作成する。配布したsrc/tb.sv上では、名前はmmuとしたので、生成時にmmuとすること。尤も、ソースコードの方を変更すればよいので、気にする必要はない。
  3. 以下の画像のパス等を参考に、示す4つのファイルを全て、"simulation sources"として追加する。
  4. 以下の画像のような構成となることを確認する。この段階で、Run Simulationをすることができる。尚、初期調整完了(init_calb_completeが1)まで、5~10分ほど待たなければならない。どの信号線にも、全く変化が起きない等、明らかな以上がある場合は、その都度調査する。
  5. 設定可能項目として1つ、beats_per_burst(実装例では0になっている)が用意してある。beats_per_burstを変えることで、様々なバースト長での動きを観察することができるので、興味があれば、ためしてみるとよい。

スライド

参考ページ