FC2カウンター FPGAの部屋 AXI4バスに接続するビットマップ・ディスプレイ・コントローラの作製6(MCBインプリメント3)
FC2ブログ

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

FPGAの部屋

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

AXI4バスに接続するビットマップ・ディスプレイ・コントローラの作製6(MCBインプリメント3)

AXI4バスに接続するビットマップ・ディスプレイ・コントローラの作製5(MCBインプリメント2)”の続き。

まだ、DDR2 SDRAMコントローラ(MCB) しか実装していないが、これでインプリメントして動作を確認して見ることにした。それに制約ファイルでMCBの入出力ピンをしていないけれども、どのMCBを使うか決まったところで入出力ピンは決まっているはずなので、それを確かめるためでもある。
前回でXPSの設定は終了しているので、XPSを終了してPlanAhead プロジェクトに戻った。最初にMCBを追加して、大幅に入出力ピンが増えているので、トップファイルのsystem_stub.v を作りなおした。
更に、PlanAhead14.2が出たので、14.1から乗り換えることにした。プロジェクトをアップグレードするようなので、14.1に戻れなくなると困るので、トップのフォルダごとコピーして、Atlys_EDK_test_PA_142とした。これでインプリメントを行った。

・最初にsystem.xpsをダブルクリックしてXPS14.2に変換した。変換後、Design Rule Check はすんなり通った。一安心。最近、バージョンが上がって変換にしくじることは少なくなった気がする。

・TopファイルにMCBの入出力ピンを追加するためにsystem.xpsで右クリックして、Create Top HDLを実行して、system_stub.v を再生成した。
BitMapDispCont_28_120727.png

・Program and Debug のGenerate Bitstream をクリックして実行し、論理合成、インプリメントを行い、ビットストリームを生成した。
BitMapDispCont_29_120728.png

・FileメニューからExport -> Export Hardware for SDK を選択して、SDKにハードウェア構成をExportした。Launch SDK にチェックを入れてOKボタンをクリックした。
BitMapDispCont_30_120728.png

・SDKが立ち上がった。以前書いたchar_rom_axi_lite_test.c が表示されていた。
BitMapDispCont_31_120728.png

・Xilinx Tools メニューからProgram FPGA を選択する。ダイアログが開くので、Program ボタンをクリックして、AtlysボードのSpartan-6をコンフィギュレーションする。
BitMapDispCont_32_120729.png

・これだとやはりエラーになったので、iMPACTからコンフィギュレーションした。Spartan6\Atlys\test\Atlys_EDK_test_PA_142\Atlys_EDK_test_PA.sdk\SDK\SDK_Export\system_hw_platform のsystem.bit を使用した。
BitMapDispCont_33_120729.png

一旦、char_rom_axi_lite_test.elf を選んでDebugモードにしてみたが、Cソースが表示されなかった。よって、リンカスクリプトを再生成する。

・Xilinx Tools メニューからGenerate linker script を選択した。

・Output Scriptに、H:\HDL\FndtnISEWork\Spartan6\Atlys\test\Atlys_EDK_test_PA_142\Atlys_EDK_test_PA.sdk\SDK\SDK_Export\char_rom_axi_lite_test\src\lscript.ld を指定した。Generateボタンをクリックした。
BitMapDispCont_34_120729.png

・もう一度Debugモードにした。
BitMapDispCont_35_120729.png

・今度はソースコード・デバック出来るようになった。
BitMapDispCont_36_120729.png

・ここでXilinx Tools メニューからXMDを選択して、MCBのアドレス0x10000000 にWrite、ReadしてみたところWriteはできるが、Readはできかなった?
BitMapDispCont_37_120729.png

なぜだろう?Writeは出来たのに、Readはできない?やはり、AXI4 LiteバスにAXI4バスを接続したのが悪かったのか?マニュアルでは出来るように書いてあったと思ったんだが?
もう一度テストしてみたい。キャラクタ・ジェネレータROMにもアクセスしてみよう。

やはり、キャラクタ・ジェネレータROMのデータは読めるが、DDR2 SDRAMのデータは読めなかった。
  1. 2012年07月28日 06:48 |
  2. AXI4 Master IPの作製
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


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

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