Nios® V プロセッサー・デベロッパー・センター
Nios® V Stratix® 10、Arria® 10、Cyclone® 10 GX、Cyclone® 10 LP、MAX® 10、Arria® V、Cyclone® V、MAX® V、Cyclone® IV デバイスを使用したエンベデッド・プロセッサー・システムの開発とデバッグに関するドキュメントとサポート。Agilexデバイス™については、以下にリストされている専用のAgilexソフトウェア開発ジャーニーリソースを参照してください。
Agilex™ 7 および Agilex™ 5 デバイス向けソフトウェア開発の過程で
Design Hub は、主要な重要なリソースとドキュメントを表示する標準的な開発フローのステップバイステップのガイド付きジャーニーを提供します。
1.前提条件
1.1 インテル® アカウントの作成
- インテル® アカウントの登録ページから、インテル® アカウントを作成します。
- インテルのアカウントにより、サービスリクエストの申請、トレーニング・コースへの登録、ソフトウェアのダウンロード、リソースへのアクセスなどが可能になります。
1.2 デザイン検討事項: Nios V プロセッサーを選択する理由
Nios V プロセッサーは、Altera®FPGAデバイス向けに設計され、RISC-V 仕様に基づいて開発されています。プロセッサー性能ベンチマークなどの詳細については、 Nios V プロセッサーのリファレンス・マニュアル。
次の表は、Nios® V プロセッサーでサポートされている機能を示します。
Nios® V プロセッサー |
RISC-V ISA |
マイクロアーキテクチャーの機能 |
以下で使用可能 |
サポートされているAltera®FPGAデバイス |
|
---|---|---|---|---|---|
Nios V/c コンパクト・マイクロコントローラー |
RISC-V 32I
|
|
|
|
|
Nios V/m マイクロコントローラー |
RISC-V 32I Zicsr
|
|
|
|
|
Nios V/g ジェネラル・パーパス・プロセッサー |
RISC-V 32IMF, Zicbom, Zicsr, Smclic, Smcsrind
|
|
|
|
|
1.3 どのオペレーティング・システム (OS) を選択すべきですか?
ベアメタル
ベアメタルは、どのオペーレーティング・システムもサポートしない、アプリケーション・ベースのシステムです。
ベアメタルのアプローチでは、次のようなことを実現できます。
- ハードウェアの完全制御
- 高効率
- 最小サイズ (フラッシュおよびメモリー・フットプリントの両方)
- 他のソースコードやライブラリーへの依存なし
- 検証およびコードカバレッジ分析の容易さ
次のような場合、ベアメタル開発を検討しても良いかもしれません。
- マルチタスクやマルチスレッド動作を必要としない
- ボード立ち上げを実行しており、各周辺機器に個々に集中する必要がある
- すべでにベアメタルとして開発された既存のレガシーコードを再利用している
Nios® V プロセッサー向けのベアメタル・アプリケーションを開発するには、アプリケーションが CPU サブシステムで利用可能なリソースの効率的な使用を可能にすることを確認するためのランタイム機能の開発に慣れている必要があります。必要なものの例は、次の通りです。
- ハードウェア・プラットフォームに関する深い知識
- CPU サブシステムを、シングルコアのみを使用する一般的なベアメタル・アプリケーションとして完全に利用する場合、コアとキャッシュ・サブシステム間のプロセスを管理するためのランタイム機能の開発
- プロセスの管理とスケジュール、プロセス間の通信を処理し、アプリケーション内のイベントを同期するための機能の開発
予定されているプロジェクトに、上記のポイントを理解するために必要な労力を割くことができない場合、別の方法を採ることをお勧めします。
®Altera ・ハードウェア抽象化レイヤー (HAL) とリアルタイム・オペレーティング・システム (RTOS)
上記を考慮すると、最低限の労力でNios® V プロセッサーのパフォーマンスを最大限に引き出すため、抽象化レイヤーやオペレーティング・システムを使用することも場合によっては理にかなっています。
次の表は、Altera® HAL と RTOS の特性を示しています。
基準 |
Altera®HAL |
RTOS |
---|---|---|
主な違い |
Altera® HAL は軽量の組み込みランタイム環境であり、基盤となるAltera®FPGA周辺機器に接続するためのプログラムにシンプルなデバイスドライバーインターフェイスを提供します。Altera® HAL アプリケーション・プログラム・インターフェイス (API) は、ANSI C 標準ライブラリーに統合されています。 | RTOS は優先順位ベースのシステムであり、先制的なタスク・スケジューリングを提供して、イベントや割り込みへの時宜を得た的確なレスポンスを確保します。優先順位の高い、タイム・クリティカルなスレッドは、より優先順位の低いスレッドに優先して実行します。RTOS のスレッドには、レイテンシーの制約があります。プロセスまたはスレッドは、指定された制限時間内に実行します。 |
適用分野 |
Altera® FPGA周辺機器をベースとするアプリケーションに最適です。 |
高速かつ予測可能なレスポンスを必要とするアプリケーションに最適です。 |
リソース |
軽量でメモリー・フットプリントをあまり必要としません。 |
軽量でメモリー・フットプリントをあまり必要としません。 |
コーディングの実践 |
Altera HAL デバイスドライバーを使用する場合Altera®HAL API ライブラリーに準拠します。 |
コードは継続的に一貫して実行する必要があるため、厳しいコーディング・ポリシーへ準拠します。 |
サポートされている OS の種類に関する最新情報については、 Nios V プロセッサー・ソフトウェア・デベロッパー・ハンドブック さらに、 μC/OS-II ドキュメント、 FreeRTOS* - マイクロコントローラー向けリアルタイム・オペレーティング・システム、 Zephyr* - OS 紹介 |
2.スタートガイド
2.1 対象ボードを選択する
開発は Altera® FPGA 開発キットで開始することを推奨します。Nios V プロセッサーのデザイン例は、これらのボードで動作することを意図しています。 サポートされているAltera® FPGA デバイスについては、 デザイン検討
利用可能なボードのリストについては、FPGA 開発キットを参照してください 。
2.2 開発ツールのインストール
Nios V プロセッサー・システムの開発を始めるには、Quartus® Prime 開発ソフトウェアと Ashling* RiscFree* IDE を Altera FPGA用にインストールする必要があります。FPGA ソフトウェア・ダウンロード・センターに移動して、最新バージョンのソフトウェアをインストールしてください。
2.3 初めての Nios V プロセッサー・システムの作成
Nios V エンベデッド・プロセッサー・デザイン・ハンドブック 、Nios V プロセッサーのシステム開発フローを紹介します。Quartus® Prime 開発ソフトウェアと Altera® FPGAs 向け Ashling* RiscFree* IDE を組み合わせることで、ハードウェア・システム・デザインとソフトウェア・プログラムで構成される、Nios V プロセッサー上で動作し、Altera® 開発ボード上のコンポーネントと連動する完全なソリューションを構築できます。
3.独自のプロジェクトの作成
3.1 プロジェクトの種類
Nios V プロセッサー開発ツールは、ボード・サポート・パッケージ・エディターと、Altera® FPGA 向け Ashling* RiscFree* IDE で構成され、Nios プロセッサー・ベースのプロジェクトを構築できます。このツールは、次の 2 つの異なる種類のプロジェクトを扱います。
グラフィカル・ユーザー・インターフェイス (GUI) ベースのプロジェクト
- ボード・サポート・パッケージ (BSP) エディターは、Nios プロセッサー・ベースのプロジェクト向け BSP を作成、変更、生成するための GUI インターフェイスを提供します。
- Altera® FPGA 向け Ashling* RiscFree* IDE は、Nios V プロセッサー C/C++ ソフトウェア開発のために十分でシームレスな環境を提供する薄い GUI レイヤーです。RiscFree* IDE は、人気の Eclipse フレームワークと Eclipse C/C++ 開発ツールキット (CDT) プラグインをベースとしています。プログラムの作成、インポート、編集、構築、実行、デバッグ、プロファイリングなどのすべての Nios V プロセッサーのソフトウェア開発タスクは、Altera® FPGA 向け RiscFree* IDE 内で実行できます。
コマンドライン・インターフェイス (CLI) ベースのプロジェクト
- Nios V プロセッサー・ツールでは、コマンドライン・インターフェイスを使用して、さまざまな複雑なエンベデッド・ソフトウェア・システムを構築できます。このインターフェイスから、コマンドラインで入力された、またはスクリプトに組み込まれた Nios V プロセッサー・ツールのコマンドで、Nios V プロセッサーのプログラムを作成、変更、構築、実行できます。
詳細については Nios® V プロセッサー・ソフトウェア・デベロッパー・ハンドブック および Altera® FPGAs ユーザーガイド の Ashling* RiscFree* 統合開発環境 (IDE) を参照してください 。
次の表は、2 つのプロジェクトの違いを比較したものです。
機能 |
GUI ベースのプロジェクト |
CLI ベースのプロジェクト |
---|---|---|
プロジェクト・ソース・ファイルの管理 |
ソースをドラッグして、プロジェクトにドロップするなどして、自動的に指定 |
コマンド引数を使用して、ソースを手動で指定 |
デバッグ |
はい |
|
カスタム・シェル・スクリプトおよびツールフローと統合 |
オープン・スタンダードの Eclipse ツールフローを採用 |
|
3.2 デザインフロー
以下の図は、一般的な Nios V プロセッサー・システムの開発フローを示しています。
Nios V プロセッサーの開発フローは、次の 3 つの要素で構成されています。
- ハードウェアソフトウェア両方に関連するシステムデザイン
- ハードウェア設計
- ソフトウェア・デザイン
Nios V プロセッサーの開発は、システムコンセプトの開発と、システム要件分析の実施から開始します。次に、プラットフォーム・デザイナーでシステムを作成し、プラットフォーム・デザイナー・ファイルを生成します。プラットフォーム・デザイナー・ファイルには、Nios V プロセッサーのコアと標準的なコンポーネントが含まれています。システムの生成後、ハードウェアとソフトウェアのフローが開始できます。
Nios V プロセッサーのハードウェア開発では、次のことを行う必要があります。
- システム要件に基づいてターゲット FPGA を選択します。デザイン検討事項のセクションを参照してください。
- プラットフォーム・デザイナー・システムをインテル® Quartus® Prime 開発ソフトウェア・プロジェクトに統合します®。
- ピン位置を割り当てます。
- タイミング要件とその他のデザインの制約を構成します。
- ハードウェア・デザインをコンパイルした後、.sof ファイルを対象とするボードにダウンロードします。
Nios V プロセッサーのソフトウェア開発では、次のことを行う必要があります。
- Altera® FPGA 向け Nios V プロセッサー・ツールと Ashling* RiscFree* IDE でソフトウェアを開発します。Nios V プロセッサー・ソフトウェアには、HAL、周辺機器のドライバー、ユーザー C/C++ アプリケーション・コード、カスタム・ライブラリーが含まれます。
- アプリケーションとボード・サポート・パッケージ (BSP) を構築した後、.elf ファイルを、対象とするボードの Nios® V プロセッサー・システムにダウンロードします。これで、Nios V プロセッサー・システムは、テストとデバッグの準備ができた状態です。
テスト中にソフトウェアが仕様を満たしていないことが分かった場合は、ソフトウェア・フローの最初に戻り、アプリケーション・コード、ドライバー、BSP を確認して、エラーを修正し、Nios V プロセッサー・システムが正しく動作していることを確認します。
ソフトウェアが仕様を満たしていないことが分かった場合は、プラットフォーム・デザイナー・システムの確定および生成のステップに戻り、ハードウェアとソフトウェアのフロー両方を再起動します。アプリケーション・ソフトウェアの生成に必要なキーファイルは、プラットフォーム・デザイナー・システム・ファイルです。このファイルは、ハードウェア・コンポーネントと接続について説明するため、ハードウェアの変更を行う場合にはこのファイルを再生成する必要があります。ソフトウェアハードウェアの両方が仕様を満たしたら、システムは完成です。
4.デザイン例
Altera® FPGA 製品の開始に役立つ多くのデザイン例が用意されています。すべての例は、独自のデザインを始めるための出発点として利用でき、カスタマイズして他の特定のユースケースを実装できます。
Nios V プロセッサー FPGA IP は、Nios V プロセッサーの開発を始める際に役立つ、厳選されたシンプルなデザイン例を提供しています。
- 開発者向けサイトでの Nios® V デザイン例 Altera®
- Altera® FPGAデザインストアでの Nios® V デザイン例
- RocketBoards.org での Nios® V デザイン例
Nios® V プロセッサー・ソフトウェア開発ハンドブックの「Nios® V プロセッサーのデザイン例スクリプト」にあります 。
Altera HAL、μC/OS-II RTOS、および FreeRTOS において、Nios V プロセッサーの「Hello World」アプリケーションを実行する方法
Altera HAL、μC/OS-II RTOS、および FreeRTOS において、Nios V プロセッサーで「Hello World」アプリケーションを実行する方法については、 AN 985: Nios® V プロセッサーのチュートリアル。
Zephyr RTOS で Nios V プロセッサーの「Hello World」アプリケーションを実行する方法
Zephyr RTOS において、Nios V プロセッサーで「Hello World」アプリケーションを実行する方法については、 Nios® V Zephyr デザイン例 - Hello Worldを参照してください。
Nios Vプロセッサアプリケーションを起動する方法
Nios® V エンベデッド・プロセッサー・デザイン・ハンドブック: Nios® V プロセッサー構成および起動ソリューション内の「Nios® V プロセッサー構成および起動ソリューション」セクションを参照してください 。
MicroC/TCP-IP ソフトウェア・パッケージで Nios V プロセッサーを実行する方法
MicroC/TCP-IP ソフトウェア・パッケージで Nios V プロセッサーを実行する方法については、Nios® V エンベデッド・プロセッサー・デザイン・ハンドブック: Nios® V プロセッサー - MicroC/TCP-IP スタックの使用 内の「Nios® V プロセッサー - MicroC/TCP-IP スタック。
SDM ベースのデバイスでリモート・システム・アップデートにより Nios V プロセッサーを実行する方法
Nios® V エンベデッド・プロセッサー・デザイン・ハンドブック: SDM ベースのデバイスでの Nios® V プロセッサー RSU クイック・スタート・ガイド内の「SDM ベースのデバイスにおけるNios® V プロセッサー RSU クイック・スタート・ガイド」セクションを参照してください 。
カスタム命令で Nios V プロセッサーを実行する方法
カスタム命令で Nios V プロセッサーを実行する方法については、Nios® V エンベデッド・プロセッサー・デザイン・ハンドブック: Nios® V プロセッサー — カスタム命令の使用 内の「Nios® V プロセッサー —。
5.関連情報
5.1 ドキュメントと資料
次のドキュメントは、Nios V プロセッサーの主なリファレンスです。
ドキュメントのタイトル |
詳細 |
---|---|
Nios® V プロセッサー向けエンベデッド・ソフトウェアを開発するために必要な基本的な情報を記載しています。ハンドブックのこの章では、Nios® V プロセッサー・ソフトウェア開発環境、使用可能な Nios® V プロセッサー・ツール、およびソフトウェアの開発プロセスについて説明します。 |
|
エンベデッド・システム開発の基礎的なドキュメントを保管します。ツールの効果的な使用方法を説明し、Altera提供のツールを使用したエンベデッド・システムの開発、デバッグ、最適化のためのデザインスタイルと実践を推奨します。また、Alteraのエンベデッド・ソリューションの新しいユーザーへコンセプトを紹介し、熟練のユーザーのデザイン効率の向上にも役立ちます。 |
|
概要的説明から、実装の詳細まで、Nios® V プロセッサーについて説明します。ハンドブックのこの章では、Nios® V プロセッサー・アーキテクチャー、プログラミング・モデル、命令セットについて説明します。 |
|
Quartus® Prime 開発ソフトウェアで Nios® V プロセッサーとシームレスに動作する、Altera® 提供の IP コアについて説明します。IP コアは Altera® デバイス向けに最適化されており、簡単に実装できるため、デザインとテストに要する時間を減らすことができます。 |
|
Ashling* RiscFree* 開発ツールの最新機能について説明します。ユーザーガイドでは、詳細な説明と、それぞれの機能のユースケースを紹介しています。 |
|
Nios® V プロセッサーにおけるカスタム命令の実装について説明します。このアプリケーション・ノートは、カスタム命令機能を紹介し、それをシステム上にインスタンス化する方法を説明します。 |
|
Nios® II プロセッサーから、Nios® V プロセッサーへの移行作業について説明します。このアプリケーション・ノートは、プロセッサーの移行を実行する際のシステム設計 (ハードウェアとソフトウェア設計) における違いについて説明しています。 |
|
AN 985: Nios® V プロセッサー・チュートリアル | Nios® V プロセッサー・システムの生成、シミュレーション、プログラミング、デバッグを行うためのクイック・スタート・ガイドを提供します。 |
Nios® V プロセッサー: ロックステップ実装 | fRSmartComp テクノロジーを利用してレジスタ転送レベル (RTL) のスマート・コンパレータを実装する Nios® V プロセッサーのロックステップ機能について説明します。Alteraは、デュアルコア・ロック・ステップ(DCLS)安全アーキテクチャを使用してスマート・コンパレータを実装しています。このアプローチにより、テクノロジーをNios® V/gプロセッサに統合でき、フェイルセーフアプリケーションの設計が可能になります。 |
AN 1011: マイクロコントローラー向け LiteRT を使用したAltera FPGAs における TinyML アプリケーション | このアプリケーションノートは、Nios Vプロセッサシステムでマイクロコントローラソフトウェア用のLiteRTを開発するための基本的なガイドです。この例では、MNIST (修正米国国立標準技術研究所) データベースと LeNet-5 畳み込みニューラル ネットワーク (CNN) モデルに基づく 1 桁の分類問題を示しています。 |
5.2 デモビデオ
ビデオタイトル |
詳細 |
---|---|
Nios® V プロセッサーでできることの概要です。 |
|
Nios® V プロセッサーのポートフォリオのビデオ | Quartus® Prime 開発ソフトウェア・プロ・エディション 23.3 で利用可能な Nios® V プロセッサーのポートフォリオについて説明します |
アプリケーションに適した Nios® V プロセッサーを選択する方法を紹介する Hello world Design チュートリアルをご覧ください。 |
|
Nios® V/m プロセッサー向けプラットフォーム・デザイナーで、単純な hello world のデザイン例を生成、構築する方法を紹介します。 |
|
ソフトウェア開発用のオープンソース・ツールを Nios® V/m プロセッサーにダウンロードしてセットアップする方法を説明します。 |
|
オープンソース・エコシステムを利用した Nios® V/m プロセッサーでのソフトウェア開発について説明します。 |
|
Altera FPGAs 向け Ashling RiscFree IDE を使用した Nios V プロセッサーのデバッグ |
Altera FPGAs 向け Ashling RiscFree IDE で Nios® V プロセッサーをデバッグする方法を方法を説明します。 |
5.3 クイックリンク
リソース | 詳細 |
---|---|
Nios® V プロセッサー - Altera® FPGA | 最新の機能とアップデートを入手して、Nios® V プロセッサーの新たな可能性を探りましょう。 |
セルフサービス・ライセンス・センター | Nios® V/m プロセッサーの IP ライセンスは無償で入手できます。Altera® FPGA ソフトウェアのインストールとライセンスのドキュメントは、 FPGAソフトウェアのインストールとライセンス。 |
Altera® FPGAのサポートリソース | トレーニング・クラスからデザイン例、フォーラムまで、デザインのプロセスのすべての段階をガイドする、オンラインのテクニカルリソースを提供しています。 |
インテル® FPGA ナレッジベース | 膨大な数のサポート・ソリューション、参考文献、エラーメッセージ、トラブルシューティング・ガイドを提供しています。また、全てが検索可能です。 |
インテル® FPGA コミュニティー | AlteraユーザーとFPGAユーザー間のコラボレーションを可能にするコミュニティー Web サイト。検索エンジンを使って、関連資料を探すことができます。また、アップデートや投稿も推奨されています。 |
インテル・アカウント | インテルのアカウントがあれば、サービスリクエストを申請して、特定のトピックに関するサポートを得ることができます。また、トレーニング・クラスに登録したり、その他のリソースへのアクセスも可能です。 |