FC2カウンター FPGAの部屋 2019年11月06日
FC2ブログ

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

FPGAの部屋

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

Vivado 2019.2 のプロジェクトを作り Vitis でソフトウェア開発4

Vivado 2019.2 のプロジェクトを作り Vitis でソフトウェア開発3”の続き。

前回は、Vivado のブロックデザインで、LED にGPIO を付けたはずなので、LED の点滅させてみよう、ということで、LED_test アプリケーション・プロジェクトと作成し、動作させてみようとしたらVivado で作った回路のミスが発覚した。今回は、そのミスを修正して、もう一度、アプリケーションを動作させてみよう。

Vivado 2019.2 のブロックデザインで、LED の代わりにボタンスイッチを付けてしまったのが発覚したので、ボタンスイッチへのポートとAXI_GPIO を削除した。
Vivado2019_2_37_191104.png

Board ウインドウでZybo Z7−10 −> GPIO −> 4 LEDs を右クリックし、右クリックメニューから Connect Board Component... を選択する。
Vivado2019_2_38_191104.png

Connect Board Component ダイアログが表示された。AXI GPIO -> GPIO を選択して、OK ボタンをクリックする。
Vivado2019_2_39_191104.png

AXI GPIO と led_4bits ポートが追加された。Run Connection Automation をクリックする。
Vivado2019_2_40_191104.png

Run Connection Automation ダイアログが表示された。そのまま OK ボタンをクリックする。
Vivado2019_2_41_191104.png

配線が終了した。
Vivado2019_2_42_191104.png

Address Editor 画面を示す。
Vivado2019_2_43_191104.png

論理合成、インプリメンテーション、ビットストリームの生成を行った。結果を示す。
Vivado2019_2_44_191104.png

File メニューから Export -> Export Hardware... を選択する。
Export Hardware ダイアログが表示された。OK ボタンをクリックする。
Vivado2019_2_45_191104.png

Vitis 2019.2 に戻って、小林さんに教えていただいた Update Hardware Specification を試してみよう。
gpio_test_platform を右クリックし、右クリックメニューから Update Hardware Specification を選択する。
Vivado2019_2_46_191104.png

Update Hardware Specification ダイアログが表示された。そのまま OK ボタンをクリックする。
Vivado2019_2_47_191104.png

Update Hardware Specification ダイアログが表示されて、アップデートが成功したということだ。
Vivado2019_2_48_191105.png

ビルド・アイコンをクリックして、ビルドを行った。
Vivado2019_2_50_191105.png

ビルド終了したが、gpio_test_platform アイコンは正常の状態に戻らない?
Vivado2019_2_51_191105.png

LED_test_system も再ビルドを行った。
Vivado2019_2_52_191105.png

Platform Invalid になってしまった。
Vivado2019_2_53_191105.png

結局、すべてのプロジェクトを削除して、プラットフォーム・プロジェクトやアプリケーション・プロジェクトを再度作成した。

なお、プラットフォーム・プロジェクトを作成後、アプリケーション・プロジェクトを作成する時のプラットフォームを選択するダイアログで、gpio_test_platform プラットフォームが表示に無かった。
その場合は、ダイアログの + アイコンをクリックして、gpio_test_platform プラットフォームを追加する。
Vivado2019_2_54_191105.png

gpio_test_platform プラットフォーム・ディレクトリを選択すると、ダイアログのプラットフォームを表示する部分に表示された。
Vivado2019_2_55_191105.png

その後、ZYBO Z7-10 でアプリケーションの動作テストを行ったところ、正常に動作した。LED も 2 進表示で点滅した。
Vivado2019_2_56_191105.png

LED_test.c を貼っておく。

// LED_test.c
// 2019/11/04 by marsee
//

#include <stdint.h>
#include <unistd.h>

#include "xparameters.h"

int main(){
    volatile uint32_t *axi_gpio_data = (uint32_t *)XPAR_AXI_GPIO_0_BASEADDR;
    volatile uint32_t *axi_gpio_tri = (uint32_t *)(XPAR_AXI_GPIO_0_BASEADDR+4);
    int i, j;

    *axi_gpio_tri = 0; // Set All Output

    for(j=0; j<5; j++){
        for(i=0; i<16; i++){
            *axi_gpio_data = i;
            printf("j = %d, i = %d\n",j, i);
            usleep(500000); // 0.5sec sleep
        }
    }

    return(0);
}

  1. 2019年11月06日 05:32 |
  2. Vitis
  3. | トラックバック:0
  4. | コメント:0