条件を指定して絞り込む

現在1128件がヒットしています。check

記事カテゴリ
製品カテゴリ
メーカー

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

こんにちは。

マクニカでインテル® FPGA の技術サポートをしている インテル・F・ハナコ です。

 

"FPGA に Nios® II を入れてLチカ" の続きです。

デザイン構成や用意するもの、先に開発するハードウェア部分の内容は、以下のページをご覧ください。
FPGA に Nios® II を入れてLチカ!(ハードウェア編)

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

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

Nios® II Software Build Tools for Eclipse(通称 Nios® II SBT)でソフトウェア・プロジェクトを作成します。
作業フローは、Nios II はじめてガイド - Nios II 簡易チュートリアル の 3. ソフトウェア をご覧ください。
(新規ソース・ファイルを開くところまで実施してください。)

Article header sbt project  1
ソフトウェア・プロジェクトを作成

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

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

#include "sys/alt_stdio.h"
#include "system.h"
int main()
{
       alt_printf("Welcome to MACNICA Online Service !!
"); while(1) { int reg; reg = *(volatile unsigned char *) BUTTON_PIO_BASE; *(volatile unsigned char *) LED_PIO_BASE = reg; } return (0); }

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

プロジェクト名_bsp フォルダに対して Nios II > BSP Editor でシステムの設定をします。
今回、Nios® II のブートメモリおよび実行メモリは On-Chip RAM なので、以下のように設定します。

[Main タブ]
・Settings.Common

Article header bsp edit  3
BSP Editor : Main タブ

それ以外はデフォルト。


・Settings.Advanced.hal.linker

Article header bsp edit2  1
BSP Editor : Main タブ

[Linker Script タブ]
.bss、.heap、.rodata、.rwdata、.stack、.text をすべて On-Chip RAM(onchip_memory)にします。
その後、Genelate ボタンをクリックします。

Article header bsp edit3  1
BSP Editor : Linker Script タブ

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

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

Article header build project  2
ソフトウェア・プロジェクトをビルド

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

※ソフトウェアの実行をするには、事前に FPGA にハードウェア・イメージ(*.sof)をプログラミングしている必要があります。(⇒ プログラミング方法は コチラの 7. プログラミングする を参照してください。)

アプリケーション・プロジェクトのフォルダ(_bsp がついていない方)に対して、Run As > Run Configurations で Nios® II Hardware 環境を整え、[Run] でプログラムを実行します。

Article header img22  2
Run Configurations

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

Article header console  4
Nios II Console

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

Article header l chika  1
PB0を押して離してみた

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

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

Nios II のブート・プログラムを FPGA のオンチップ・メモリに組み込もう

1.Nios® II のブート・プログラムを HEX ファイルに変換

Nios II SBT において、ビルド済みのアプリケーション・プロジェクトのフォルダ(_bsp がついていない方)を右クリックし、Make Targets > Build を選択します。

Article header img23  2
Nios II SBT

 

表示された Make Targets ウィンドウにおいて、mem_init_generate を選択し、Build ボタンをクリックします。

Article header img24  3
Make Targets ウィンドウ

 

アプリケーション・プロジェクトのフォルダ内に mem_int フォルダが生成され、その中に meminit.qip と *_onchip_memory.hex が確認できます。

Article header img25  3
mem_int フォルダ

2.meminit.qip を Quartus Prime のプロジェクトに登録しコンパイル

Quartus Prime の Project メニュー > Add/Remove Files in Project により、meminit.qip を追加登録します。
その後、コンパイルを実行します。(Processing メニュー > Start Compilation)

3.FPGA に書き込み、実機検証

コンパイルが完了すると、Nios® II のプログラムを含んだ .sof および .pof が生成されます。
Quartus Prime の Programmer で .sof を書き込み、実機検証を行ってください。問題が無ければ、MAX 10 の CFM に .pof をダウンロードしましょう。

作業は以上です。

今回は、Nios® II のブート・プログラムを MAX® 10 内蔵の RAM に格納しましたが、もう一つのオンチップ・メモリであるユーザー・フラッシュ・メモリ(UFM)に格納することも可能です。

続きはこちらの記事をご覧ください。
MAX® 10 の UFM で Nios® II をブートさせてみよう

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



おすすめ記事/資料はこちら

FPGA ではじめてのLチカ!
FPGA に Nios® II を入れてLチカ!(ハードウェア編)
FPGA に Nios® II を入れてLチカ!(ソフトウェア編)
FPGA のオンチップ・メモリで Nios® II をブートさせてみよう
MAX® 10 の UFM で Nios® II をブートさせてみよう




おすすめセミナー/ワークショップはこちら

Nios® II 入門編 トライアル

商品の購入はこちら