FC2カウンター FPGAの部屋 ビットマップ・ディスプレイ・コントローラの作製20(DDR2をMicroBlazeと接続)
FC2ブログ

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

FPGAの部屋

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

ビットマップ・ディスプレイ・コントローラの作製20(DDR2をMicroBlazeと接続)

ビットマップ・ディスプレイ・コントローラの作製19(HDLソースの公開)”の続き。

今回はXPSのaxi2axi_connector IPを使って、MicroBlazeとaxi_s6_ddrx_0(MCB)を接続して、MicroBlazeからDDR2 SDRAMのデータをRead/Writeしてみた。

axi2axi_connector の追加の仕方については、”AXI4バスに接続するビットマップ・ディスプレイ・コントローラの作製7(MCBインプリメント4)”を参照のこと。
今までのXPSのプロジェクトにaxi2axi_connector を追加した。
BitMapDispCont_131_120823.png

アドレスはaxi2axi_connector_0 が0x20000000 ~ 0x2FFFFFFF で、MCB_DDR2が0x20000000 ~ 0x27FFFFFF でアドレスがかぶっている。つまり、MicroBlaze のアクセスをaxi2axi_connector_0が中継することで、MicroBlazeがMCB_DDR2 にアクセスできるようになる。
BitMapDispCont_132_120823.png

・ISEでExport Hardware Design To SDK with Bitstream を選んで、SDKを立ち上げた。

・SDKでデバックモードにして、XMDで0x20000000にRead/Writeしてみたところ問題なくRead/Writeすることが出来た。
BitMapDispCont_130_120823.png

・SDKでプログラムを作って動作させてみたところ、HDMIの表示画面を書き換えることが出来た。
下図にSDKの画面を示す。
BitMapDispCont_133_120823.png

下にプログラムを示す。

/* * drawn_disp.c * *  Created on: 2012/08/23 *      Author: Masaaki */

int main()
{
    unsigned int * ddr2_addr;
    unsigned int pixel_data;

    pixel_data=0x0;
    for (ddr2_addr=0x20000000; ddr2_addr<0x20010000; ddr2_addr++){
        *(volatile unsigned int *)(ddr2_addr) = pixel_data++;
    }
    return 0;
}



HDMIの画面を下に示す。
BitMapDispCont_134_120823.jpg

以前の画面と比べると上の方が青くなっているのが見えるはずだ。以前の画面を下に示す。
BitMapDispCont_121_120821.jpg

これで、HDMI画面のフレームバッファとして使用しているDDR2 SDRAMにMicroBlazeからデータを書くことが出来た。とっても嬉しい。。。
32ビット幅のAXI4Liteバスと64ビット幅のAXI4バスがaxi2axi_connectorで接続できたことになる。まだChipScopeでプロトコルを確認してはいないが、XMDでアドレスを+4するとデータが+1されているのは確認した。
  1. 2012年08月23日 06:03 |
  2. AXI4 Master IPの作製
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


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

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