もくじ
- 1. はじめに
- 2. システム要件
- 3. サンプルデザインのご紹介
- 4. RiscFree* IDE での Nios® V プロセッサーの開発
- 5. RiscFree* IDE からの外部ツールの起動
- 6. おわりに
1. はじめに
この記事では Ashling* の RiscFree* IDE を使用した Nios® V プロセッサー(以降、Nios® V と表記)を実装したシステムの開発手順をご紹介します。
Nios® V は Quartus® Prime Pro Edition ソフトウェア・バージョン 21.3 から使用することができ、この バージョンを使用する場合は Command Line ベースでの開発をする必要があります。
RiscFree* IDE への対応は Quartus® Prime Pro Edition ソフトウェア・バージョン 22.2 からですのでご注意ください。
Command Line ベースでの開発手順については以下の記事も併せてご確認ください。
参考資料: Nios® V Processor Quick Start Guide の手順を確認してみた
ポイント: 新規で Nios® V を試す際には、最新バージョンの開発ツールの使用をお勧めします。RiscFree* IDE に対応したバージョン 22.2 以降もバージョン・リリース毎に使い勝手の改善が行われています。
Nios® V の関連資料についても以下にリンクを記載しますので併せてご確認ください。
参考資料: Nios®V Embedded Processor Design Handbook
参考資料: Nios®V Processor Reference Manual
参考資料:RiscFree* Integrated Development Environment (IDE) for Intel® FPGAs User Guide
2. システム要件
2-1. 対応デバイス、対応ツールバージョン
RiscFree* IDE の対応は Quartus® Prime Pro Edition ソフトウェア・バージョン 22.2 からとなっており、このバージョンより前の Quartus® Prime では使用できません。
RiscFree* IDE のインストールについては Quartus® Prime の Complete Download もしくは Multiple Download をご利用いただくことで、インストーラーが含まれた状態でのダウンロードが可能です。Individual Files で Quartus® Prime をダウンロードする場合は、Additional Software から個別にインストーラーをダウンロードしてください。
Quartus® Prime Pro Edition ソフトウェア・バージョン 22.2 では、Quartus® Prime Pro Edition ソフトウェア・バージョン 21.3 で必要だった、外部サイトでのコンパイラーなどのインストールの必要がなくなり追加の設定なしで使用することができます。
対応デバイスは Quartus® Prime Pro Edition で対応している下記デバイスです。
- インテル® Cyclone® 10 GX
- インテル® Arria® 10
- インテル® Stratix® 10
- インテル® Agilex™
2-2. ライセンス
Nios® V 、RiscFree* IDE 共に無償でご使用いただけますが、ライセンスは必要となっています。
詳細は以下の記事でご紹介していますのでご参照ください。
参考資料:Nios® V/m プロセッサー IP のライセンスファイルを取得する方法
3. サンプルデザインのご紹介
3‐1. ブロック図
この記事ではサンプルデザインとして「Nios® V/m Processor Intel FPGA IP」(以降、Nios® V/m と表記)の「Example Design "Hello World Example Design"」を使用します。
このサンプルデザインは Nios® V/m のサンプルデザインとしてインテルから提供されており、Platform Designer の Nios® V/m の【図1】の赤枠のボタンからダウンロードすることが可能です。
【図1】Nios® V/m サンプルデザインのダウンロード
上記サンプルデザインのブロック図を【図2】に示します。
このサンプルデザインは Nios® V/m を含み、コンソールを利用した動作確認が行える最小の構成で作成されています。
【図2】サンプルデザインのブロック図
3‐2. Platform Designer の構成
Platform Designer のシステムは『3-1. ブロック図』で説明したサンプルデザインから "create_qsys.tcl" ファイルを使用して作成します。
.tcl ファイルを使用しての Platform Designer のシステムの作成については、Platform Designer の View メニュー ⇒ System Scripting ⇒ Project Scripts に "create_qsys.tcl" を登録 ⇒ Run Script の手順で行えます。
【図3】.tcl ファイルの実行方法
Platform Designer の構成を【図4】に示します。
【図4】サンプルデザインのシステム構成図
4. RiscFree* IDE での Nios® V 開発
4-1. 事前準備
『3. サンプルデザインのご紹介』でご紹介した通り HW の編集は今回のサンプルデザインでは必要がないため、この章からソフトウェアの開発と RiscFree* IDE の操作方法を併せてご紹介します。
まず RiscFree* IDE にはプロジェクトを作成するためのツールが備わっていないため、空のプロジェクトを作成する必要があります。
この記事では RiscFree* IDE のユーザーガイドに従い app フォルダー名を「 app 」、bsp フォルダー名を「 bsp 」に設定します。
2 つのフォルダーを下記のディレクトリーに作成してください。
<Quartus® Prime Project フォルダー > \software\app
<Quartus® Prime Project フォルダー > \software\bsp
注記:
"software" フォルダーは RiscFree* IDE の Workspace として使用します。
フォルダーを作成した後は app フォルダー内に空のファイルで問題ないので、Main のアプリケーションコードを記述する予定のファイルを格納してください。
以上でプロジェクトの作成の事前準備は完了です(このサンプルでは app フォルダーが既に作成されており、フォルダー内に hello.c が格納されています)。
4-2. bsp プロジェクトの作成
この項では『4-1. 事前準備』で作成した空の bsp フォルダー内に、BSP Editor で作成した .bsp ファイルを参照して各種ファイルを格納し bsp プロジェクトを作成します。
Nios® V では Nios® II の開発環境と異なり Platform Designer にて、bsp プロジェクトを作成します。以下に手順を示します。
1. Platform Designer を起動した時に開かれる Open System の GUI より BSP Editor のタブを選択します。

【図5】Create New BSP の GUI
2. BSP setteing file の右赤枠の create ボタンを押下し New Platform Designer BSP より、『4-1. 事前準備』で作成した空の bsp フォルダー内に新規で .bsp ファイルを作成します。

【図6】Create New BSP の .bsp 作成画面
3. System file (qsys or sopcinfo) 列の右赤枠のブラウズボタンを押下し、『3-2. Platform Designer の 構成』で .tcl ファイルを使用し作成した .qsys ファイルを選択します。

【図7】Create New BSP の .qsys ファイルの選択画面
4. .bsp ファイルと .qsys ファイルを設定した後、Revision 、CPU name 、Operating system に .qsys ファイルを基にしたデータが入力されます。
Revision 、CPU name が正しいことを確認した後、Operating system に Altera HAL を選択していることを確認し Create を押下します。
【図8】Create New BSP の Operating system の選択画面
5. Create を押下した後 BSP Editor が表示されるので、stdin 、stdout 、stderr に "jtag_uart" が設定されていることを確認し、Generate BSP を押下します。

【図9】BSP Editor の設定画面
以上が bsp プロジェクトの作成手順です。
4-3. app プロジェクトの作成
この項では app プロジェクトの作成方法をご紹介します。
app プロジェクトはコマンドを利用してのみ作成可能ですが、RiscFree* IDE にコマンドを登録することで GUI からのコマンドを実行することも可能です。
RiscFree* IDE にコマンドを登録する方法は『5. RiscFree* IDE からの外部ツールの起動』でご紹介するため、この項では Nios® V Command shell を使用した方法をご紹介します。
Nios® V command shell は下記ディレクトリーより起動してください。
intelFPGA_pro\22.2\Niosv\bin\Niosv-shell.exe
使用するコマンドは下記の2つです。
このコマンドを実行することで app プロジェクトの作成と Cmakelist.txt が生成されます。
niosv-app --bsp-dir= <bsp プロジェクトのディレクトリー > --app-dir= <app プロジェクトのディレクトリー > --srcs= < ソースコードのディレクトリー > --elf-name= < 作成予定の ELF ファイル の名前 >
cmake.exe -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug -B < ビルド実行フォルダーのディレクトリー > -S < ソースコードのディレクトリー >
このサンプルデザインではカレント・ディレクトリーをサンプル・プロジェクトがあるディレクトリーに指定して、以下の通りにコマンドを実行してください。
実行例
niosv-app --bsp-dir=software/bsp --app-dir=software/app --srcs=software/app/hello.c --elf-name=hello.elf
cmake.exe -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug -B software/app/build/Debug -S software/app
以上が RiscFree* IDE の起動前に実施していただく内容です。
4-4. RiscFree* IDE の起動
この項から RiscFree* IDE を使用してのデバッグ方法についてご紹介します。
まず RiscFree* IDE を起動します。
『4-1. 事前準備』でご紹介した方法で Nios® V command shell を起動してください。
Nios® V command shell を起動した後 RiscFree.exe を実行してください。
【図10】Nios® V command shell からの RiscFree.exe 実行画面
RiscFree.exe を実行した後は Workspace の選択画面が表示されます。
この GUI では『4‐1. 事前準備』で作成した software フォルダーを指定し Launch を押下してください。
【図11】Workspace の選択画面
RiscFree* IDE を起動した直後は【図12】の画面が表示されます。
【図12】RiscFree* IDE の起動画面
4-5. プロジェクトのインポート
『4-4. RiscFree* IDE の起動』の【図12】では RiscFree* IDE にプロジェクトが紐づいていないため、まず初めにプロジェクトのインポートを行います。
【図13】の File メニューから New ⇒ Project を選択した後、GUI が表示されますので下記の手順でプロジェクトをインポートしてください。

【図13】プロジェクトのインポート(その 1)
1. New Project の GUI が表示されるので C/C++ ⇒ C/C++ Project を選択し Next を押下します。

【図14】プロジェクトのインポート(その 2)
2. New C/C++ Project の画面より C++ Managed Build を選択します。

【図15】プロジェクトのインポート(その 3)
3. C++ Project の画面より Project name 欄に作成したプロジェクトの名前を入力し、画面中央の Project Type 欄より Cmake driven ⇒ Empty Project 、Toolchains 欄より CMake driven を選択し Finish を押下します。

【図16】プロジェクトのインポート(その 4)
以上がプロジェクトのインポート方法です。
インポートが完了した後は【図17】のように app 、bsp プロジェクトが Project Explorer 内に表示されます。
【図17】プロジェクトをインポートした後の Project Explorer
注記:
この記事では app 、bsp プロジェクトをどちらもインポートしていますが、app プロジェクトのみインポートした場合でもデバッグは可能なため、bsp プロジェクトは状況に応じてインポートしてください。
4-6. プロジェクトのビルド
プロジェクトのインポートが完了したらビルドを実施します。
app プロジェクトを右クリックし【図18】のメニューから Build project を選択してください。
【図18】プロジェクトのビルド
ビルドが完了した後は【図19】のように、ELF ファイルが生成されていることをご確認ください。
【図19】プロジェクトのビルドが完了した後のフォルダー構成
注記:
Windows のアイコンから RiscFree* IDE を起動した場合は、ビルド時に niosv-stack-report return error が発生します。ですが ELF ファイルが生成されている場合は、このエラーを無視いただいて問題ありません。
4-7. プロジェクトの Run
ビルドが完了した後は ELF ファイルをダウンロードしてソフトウェアを実行します。
あらかじめ Quartus® Prime の Programmer より SOF ファイルをダウンロードし、FPGA のコンフィグレーションを完了してから次の工程に進んでください。
このサンプルでは Nios® V への Reset 入力を ISSP(In system source and probe)で制御しているため、Quartus® Prime より Reset 信号を toggle する必要があります。
Quartus® Prime の Tools メニューより、In-System Source and probes Editor を開いてください。
【図20】In-System Source and probes Editor の起動
【図21】の GUI が表示されますので、赤枠の数字を 2 回クリックして Reset 入力を toggle してください。
【図21】In-System Source and probes Editor での Reset 信号の toggle
RiscFree* IDE の GUI に戻り app プロジェクトを右クリックして Run As ⇒ Run Configurations を選択してください。

【図22】Run Configurations の起動
表示された GUI から Ashling RISC-V(auto-detect)Hardware Debugging をダブルクリックすると、【図23】の設定画面が表示されます。Main タブでは Project に app プロジェクト名が記載されていることの確認と、C/C++ Application に生成した ELF ファイルを選択してください。
【図23】Run Configurations の起動
Main タブでの設定が完了した後は Debugger タブを開いてください。【図24】の GUI が表示されますので画面赤枠の Debug Probe Configuration の設定を確認し、正しい場合は画面中央の Auto-Detect Scan Chain を押下します。Device/Tap selection に期待のデバイス、Core selection に期待の Core が入力されていることを確認した後 Apply を押下し Run で実行してください。
注記:RiscFree* IDE は JTAG のコンソールを持たないため、別途 JTAG コンソールにつなげることで出力を確認することができます。 RiscFree* IDE で JTAG コンソールを接続する方法については『5. RiscFree* IDE からの外部ツールの起動』の章で紹介していますのでそちらをご参照ください。
【図24】Run Configurations の設定

【図25】JTAG コンソールの出力画面
4-8. プロジェクトの Debug Run
この項ではソフトウェアの Debug Run についてご紹介します。
Debug Run は専用の GUI を使用して行うため、まず Debug Run 用の GUI を起動します。
Run As と同様に app プロジェクトを右クリックし Debug As ⇒ Debug Configurations を選択します。
【図26】Debug Configurations の起動手順
選択した後 Run configuration の GUI と同じ形式の GUI が表示されますので、"Ashling RISC-V (auto-detect) Hardware Debugging" を押下した後、【図23】に従って設定を行い Apply と Debug を押下してください。
Confirm Perspective Switch ウィンドウが表示されたら Switch を押下して閉じてください。
【図27】はデバッグウィンドウを立ち上げた直後の状態です。main 関数内の最初の命令で Break しています。
【図27】デバッグウィンドウ起動画面
【図27】で大きく分けて 3 つのウィンドウについて概要を簡単に記載していますが、デバッグ時にはこの 3 つのウィンドウとコンソールを確認しながらデバッグすることができます。
また Window メニューの Show View から、デバッグウィンドウにデフォルトで表示されている以外のウィンドウも表示することも可能です。
【図28】ウィンドウの追加方法
現在どこで Break しているかはソース・ウィンドウ内の、背景が緑色に変更されている命令を確認して下さい。
その他の命令で Break したい場合は、Break したい命令の左側をダブルクリックすることで、【図29】のように Break point を追加することができます。
【図29】Break point の追加方法
デバッグ時の操作については画面上部のデバッグ用ツールバーから操作することができます。
それぞれの使用方法は【図30】と【表1】をご参照ください。
【図30】デバッグ用ツールバーのボタンの説明
番号 | 名前 | 概要 |
1 |
Resume | 次の Break point もしくは、デバッグプロセスが終了するまで再開します。 |
2 | Suspend | デバッグ実行中のコードを一時停止します。 |
3 | Terminate | デバッグ実行中のコードを終了します。 |
4 | Step into | 現在実行中のコードの次のメソッドにステップインします。 |
5 | Step Over | 現在実行中のコードの次のメソッドをステップオーバーします。 |
6 | Step Return | ステップインしたメソッドから戻ります。 |
5. RiscFree* IDE からの外部ツールの起動
5-1. 概要
RiscFree* IDE では External Tools Configuration を使用することで、実行ファイル形式のファイルを GUI 上で引数を指定して実行することができます。
RiscFree* IDE ではデフォルトで JTAG コンソールをもたないため、JTAG UART を使用したコンソール出力を使用する場合はこの設定を使用します。
5-2. 外部ツールの登録
この項では外部ツールの登録方法をご紹介します。
1. RiscFree* IDE の Run メニュー ⇒ External Tools ⇒ External Tools Configuration を選択します。

【図31】External Tool の登録方法(その 1)
2. External Tools の GUI が表示されるので、【図32】の赤枠から New launch configuration を選択します。

【図32】External Tools の登録方法(その 2)
3. 外部ツール登録用の画面が表示されるので、【図33】に従って値を入力し Apply を押下して登録を完了します。

【図33】External Tools の登録方法(その 3)
*1 : Browse Workspace を選択することで app 、bsp のディレクトリーを簡単に入力することができます。
*2 : Show Command Line を押下することで、実際に実行されるコマンドを【図34】のように確認することができます。

【図34】External Tools の登録方法(その 4)
5-3. 登録推奨コマンド
この項では RiscFree* IDE にて Nios® V を実装したシステムを開発する際に、業務を効率化するうえで登録をすると便利な実行ファイルをご紹介します。
実行ファイル名 | 所在 | 引数 | 概要 |
juart-terminal.exe | intelFPGA_pro\22.2\Quartus\bin64 | -c 1 -d 0 -i 0 | Jtag コンソールの表示 |
niosv-app.exe | intelFPGA_pro\22.2\Niosv\bin | 『4-3. app プロジェクトの作成』を参照 | |
cmake.exe | intelFPGA_pro\22.2\RiscFree\build_tools\cmake\bin |
6. おわりに
Ashling* の RiscFree* IDE を使用した Nios® V を実装したシステムの開発手順についてのご紹介は以上です。Nios® V はリリースして間もないソフトコア・プロセッサーであるため、RiscFree* IDE の情報と併せて随時更新が行われると予想されます。メーカーから発信される最新情報も随時ご確認ください。
コメント
0件のコメント
記事コメントは受け付けていません。