FC2カウンター FPGAの部屋 ZedBoardにビットマップ・ディスプレイ・コントローラを追加する9(MBを追加)
FC2ブログ

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

FPGAの部屋

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

ZedBoardにビットマップ・ディスプレイ・コントローラを追加する9(MBを追加)

ZedBoardにビットマップ・ディスプレイ・コントローラを追加する8(ACPを使用)”の続き。

前回はACPポートにビットマップ・ディスプレイ・コントローラを接続したがHP0ポートの時と変化がなかった。ACPポートからHP0ポートに戻した。次は、ビットマップ・ディスプレイ・コントローラの動作を確かめるためにPL部にMicroBlazeを入れて、そこからフレームバッファのDDR3 SDRAMにキャラクタを書き込んでみることにした。

・MicroBlazeを入れてS_AXI_HP0に接続した。

MicroBlazeを入れた時に、microblaze_0_axi_mem, microblaze_0_axi_periph が出来たが、MicroBlaze配下のIPはS_AXI_HP0 に接続したので、削除した。
ZedBoad_BitMap_DispCnt_84_121004.png

MicroBlazeの下には、割り込みコントローラのaxi_intc_mbや、タイマーのaxi_tiner_mb、キャラクタROMのchar_rom_axi_linte_mb を入れた。更に、microblaze_0_debug_module も入れてデバックもしようと思う。SDKではARM-A9のデバックしかしなかったが、MicroBlazeを入れてトリプルプロセッサになったことで、どのようにデバックできるかも気になる。下にXPSのBus Interfaces ポートの図を示す。これが完成形だ。
ZedBoad_BitMap_DispCnt_85_121005.png

Addressesタブを下に示す。processing_system7_0's Address Map とmicroblaze_0's Address Map の2つがある。microblaze_0's Address Map ではmicroblaze_0_d_bram_cntlr とmicroblaze_0_i_bram_cntlr が0番地からのアドレスを占めるので、processing_system7_0 のアドレス(DDR3 SDRAMのアドレス)が0番地から取ることができない。これについては、Xilinxのアンサー”14.1 EDK、Zynq - MicroBlaze プロセッサを接続した状態で PS DDR メモリの半分のみが使用されるのはなぜか”を参照のこと。この制限のためにprocessing_system7_0 のアドレスは0x10000000 からとなった。ちょうどフレームバッファの先頭番地なので、都合が良い。
ZedBoad_BitMap_DispCnt_86_121005.png

XPSの設定はこれで終了して、論理合成、インプリメント、ビットストリームの生成を行った。ハードウェアのエクスポートをして、SDKを立ち上げた。
ZedBoad_BitMap_DispCnt_87_121005.png

今までのXilinx Board Support Package (BSP) はARM-A9用だけだったので、SDKのFileメニューのNew から選択して、MicroBlaze用のBSPを作成した。その際に、CPUをmicroblaze_0, ps7_cortex9_0, ps7_cortex9_1 から選択できた。microblaze_0 を選択した。
ZedBoad_BitMap_DispCnt_88_121005.png

drawn_disp_mb_bsp_0 が生成された。次にCのプロジェクト(drawn_disp_mb) を作製した。
ZedBoad_BitMap_DispCnt_89_121005.png

drawn_disp.c をdrawn_disp_mb.cに改名して、drawn_disp_mbのsrc にドラック&ドロップした。エラーが出たので、キャラクタROMのIPのアドレスをXPAR_CHAR_ROM_AXI_LITE_MB_S_AXI_RNG00_BASEADDRに変更した。
ZedBoad_BitMap_DispCnt_90_121005.png

Zynqにビットストリームをダウンロードしてから、まずはARM-A9 のdrawn_dispソフトウェアをRunする。ビットマップ・ディスプレイ・コントローラが動作しない。
デバックモードにしてもmainの先頭行で停止しない。
ZedBoad_BitMap_DispCnt_91_121005.png

MicroBlazeのデバックモジュールを入れたので、それのみになってしまったのか?でも先程のアンサーもあったので、ARMとMicroBlazeが両方動作する環境もあると思うので、調査をしてみようと思う。何か情報をお持ちの方がいらっしゃったら、教えて下さい。よろしくお願いします。
  1. 2012年10月05日 14:08 |
  2. ZedBoard
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


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

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