Article header nios2header beginner  8

FPGA に Nios® II を入れてLチカ!(ソフトウェア編)

Article header hanako 25x25  13

こんにちは、インテル・アルテラ・ハナコ です。
FPGA に Nios® II を入れてLチカさせる方法をご紹介しています。今回はそのソフトウェア開発編です。
※ 今回のデザイン構成や用意するもの、先に開発するハードウェア部分の内容は、以下のページをご覧ください。

ここから Nios® II に実行させるためのソフトウェア開発スタート!

1. ソフトウェア・プロジェクトを作成する

Article header sbt project  1

Nios® II Software Build Tools for Eclipse(通称 Nios® II SBT)でソフトウェア・プロジェクトを作成します。

2. Cソースコードを作成する

Nios® II SBT で新規にソースファイルを作成し、をソフトウェア・プロジェクトに登録します。
LチカのCソースコードは例えばこんな感じ。
#include "sys/alt_stdio.h"
#include "system.h"

int main()
{
       alt_printf("Welcome to MACNICA Online Store!!\n");

    while(1)
  {
      int reg;
      reg = *(volatile unsigned char *) BUTTON_PIO_BASE;
      *(volatile unsigned char *) LED_PIO_BASE = reg;
  }

   return (0);
}


3. システムの設定をする

soft_test_bsp フォルダに対して Nios II > BSP Editor でシステムの設定をし、Generate します。

Article header bsp edit  2

 

4. ソフトウェア・プロジェクトをビルドする

アプリケーション・プロジェクトのフォルダ(_bsp がついていない方)をマウスで選択し、右クリック > Build Project でビルドします。

Article header build project  2

  

5. ビルドしたソフトウェアをターゲットのシステムで実行する

※ ソフトウェアの実行をするには、事前に FPGA にハードウェア・イメージをプログラミングしている必要があります。(⇒プログラミング方法はコチラを参照してください。)
アプリケーション・プロジェクトのフォルダ(_bsp がついていない方)に対して、Run As > Run Configurations で Nios® II Hardware 環境を整え、[Run] でプログラムを実行します。

Article header run config  3

Console ウインドウに、C 言語ソース上に記載した printf 関数の出力キャラクタ(Welcome to MACNICA Online Store!!) が確認でき、Nios® II がソフトウェア・プログラムを実行したことがわかります。

Article header console  3

では、Odyssey の PB0 をポチッ♪と押してみましょう。

Article header l chika  1

できました! Nios® II でLチカ、成功です!!
確認したら、Console ウィンドウの右上にある赤いボタンをクリックしてプログラムを終了します。

MAX® 10 は FPGA = プログラマブル・デバイスですから、今回の論理回路はそのままに、出力ピンの番号を別の LED に接続されているピン番号に変更すれば、点灯する LED の位置も変わりますよ。
また、Nios® II で実行するプログラム内容を変えれば、実行される動作を変えることができます。


不揮発性メモリに書き込もう

ハードウェア回路と Nios II のソフトウェア・プログラムが完成したら、不揮発性メモリに書き込みましょう。
MAX 10 FPGA の場合はコンフィギュレーション・フラッシュ・メモリ(CFM)を内蔵したデバイスなので、Stratix® シリーズや Cyclone® シリーズなどの FPGA のように外部に EPCQ などのコンフィギュレーション・メモリは必要ありません。また、ユーザー・フラッシュ・メモリ(UFM)も搭載しているので、Nios II のソフトウェア・プログラムもオンチップ・メモリに格納することができます。

続きはこちらの記事をご覧ください。

今回はわかりやすくピンとピンをつなぐだけのシンプルな回路でしたが、もっともっと拡張して論理回路や Qsys システムを作れば、様々な可能が広がります。みなさんも是非挑戦してみてください。


おすすめ記事はこちら

関連商品

関連タグ