FC2カウンター FPGAの部屋 2012年10月03日
FC2ブログ

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

FPGAの部屋

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

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

ZedBoardにビットマップ・ディスプレイ・コントローラを追加する7(GPIOを使ってBDCをスタート)”の続き。

前回はディスプレイに表示しているキャラクタがおかしかった。それを直すためにARMプロセッサに接続するAXIポートを変更してみた。今までは、High Performance AXI 32b/64b Slave Portst越しにDDR3 SDRAMをビットマップ・ディスプレイ・コントローラから使用していたが、今度は64b AXI ACP Slave Portを使ってDDR3 SDRAMからピクセルデータを読むことにした。

・XPSのZynqタブで、High Performance AXI 32b/64b Slave Portstをクリックした。
ZedBoad_BitMap_DispCnt_67_120930.png

・High Performance Slave AXI Interfaces のEnable S_AXI_HP0 interface のチェックを外した。
ZedBoad_BitMap_DispCnt_78_121003.png

・Accelerator Coherency Port (ACP) Slave AXI Interface を展開して、Enable S_AXI_ACP interface にチェックを入れた。
ZedBoad_BitMap_DispCnt_79_121003.png

・Zynqタブを見ると64b AXI ACP Slave Portが使用されていた。
ZedBoad_BitMap_DispCnt_83_121003.png

・Bus Interfaces タブで、S_AXI_ACP をaxi_interconnect_1 に接続した。
ZedBoad_BitMap_DispCnt_80_121003.png

・Ports タブで、processing_system7_0 の S_AXI_ACP_ACLK がNo Connection だったので、FCLK_CLK0に接続した。
ZedBoad_BitMap_DispCnt_81_121003.png

・ProjectメニューからDesign Rule Check を選択したらエラーはなかった。

・XPSを閉じて、PlanAheadで論理合成、インプリメント・ビットストリームの生成まで行った。

・ビットストリームの生成が終了後に、ハードウェアをSDKにエクスポートして、SDKを立ち上げた。

・SDKでキャラクタを描画するソフトウェアをRunしたところ、前回同様にキャラクタが乱れていた。

残念だが、ACPを使うことが出来た。ACPのChipScopeの波形を下に示す。HP0と変わらない。
ZedBoad_BitMap_DispCnt_82_121003.png

HP0の波形を下に示す。ACPの波形を違って、S_AXI_HP0関連の信号が動作しているのがわかると思う。
ZedBoad_BitMap_DispCnt_66_120930.png

ACPポートを使用することが出来たが、キャラクタの乱れは直らなかった。キャッシュのコヒーレンシが取れているはずのACPポートでキャラクタの乱れが直らないということはキャッシュ関連では無いと思う。もしかして、キャラクタROMのReadがおかしいのか?それとも適当に決めたDDR3 SDRAMのフレームバッファ用アドレスが悪いのか?
  1. 2012年10月03日 04:49 |
  2. ZedBoard
  3. | トラックバック:0
  4. | コメント:0