こんにちは。

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

 

 

Nios® II のブート・プログラムを MAX® 10 FPGA 内部のオンチップ・メモリに組み込む方法は2通りあります。

 

  • オンチップ・フラッシュに組み込む
  • オンチップ RAM に組み込む

 

参考: FPGA のオンチップ・メモリでNios® II をブートさせてみよう

今回は、MAX® 10 のオンチップ ・フラッシュである User Flash Memory(UFM)に Nios® II のブート・プログラムを組み込む方法をご紹介します。

今回作ったデザインの概要

今回作った Qsys システムは、

ブート・プログラム用メモリをオンチップ・フラッシュ(UFM)、実行プログラム用メモリをオンチップ RAM で構成しています。
Nios® II がブート時にLチカする超シンプルなデザインです。

Article header library 118989 pic01  5

UFM の容量について

MAX® 10 には、不揮発性のフラッシュメモリ領域(UFM/CFM)が内蔵されています。

Article header library 118989 pic02  3


UFM の容量は下表のとおりです。

Device 10M02 10M04 10M08 10M16 10M25 10M40 10M50
Total User Flash Memory Size (Kb)(※) 96 1,248 1,376 2,368 3,200 5,888 5,888

(※) 選択したモードに依存する、指定可能な最大値です。

 

Nios® II のブート用プログラムがこの容量に収まれば、ブートメモリを UFM に指定できます。
ブート用プログラムのサイズは、Nios® II Software Build Tool(以下、Nios® II SBT)でビルドした際に Console 画面に表示される elf ファイルのプログラム・サイズを参考にしてください。

UFM の詳細は下記ドキュメントをご覧ください。
MAX 10 User Flash Memory User Guide (PDF)

操作フロー

Qsys において On-Chip Flash 以外の Nios® II やペリフェラルはすでに構成してあるものとします。

1. Qsys システムに On-Chip Flash を追加

MAX® 10 の UFM を使用するには、“Altera On-Chip Flash” と言う無料の IP を組み込みます。
Tools メニュー > Qsys を起動し、IP Catalog(画面左上)から “Altera On-Chip Flash” をダブルクリックで選択します。

・ Configuration Mode を選択します。
UFM ブートをサポートする Configuration Mode は、以下の3つです。システム仕様に応じて選択してください。

Single Uncompressed Image

Single Compressed Image

Dual Compressed Images


今回のデザインではごく小さなプログラムで、UFM をブートメモリ以外には使用しないので、Single Uncompressed Image を選択しています。

・ Flash Memory でオンチップ・メモリのセクタ構成を決めます。
各セクタのアクセス・モードを Read only / Read and write / Hidden から選択します。
今回のデザインでは UFM を Nios® II のブートメモリ限定で使用するので、Read only にしています。

・ Initialize flash content オプション = OFF にします。

Article header img 04  4


・ On-Chip Flash を Qsys システムに接続します。

Article header img 06 1  2

ハナコのちょこっとポイント♪

On-Chip Flash で選択できる Configuration Mode は3つともメモリの初期値をサポートしていないため、Qsys システムに組み込んでいる On-Chip Memory(RAM)も初期値を保有できません。
そのため、Initialize memory content オプション = OFF にします。

Article header img 07  2

2. Nios® II のブート用メモリの指定

Nios® II の Vectors タブを以下のように指定します。

Article header img 05  6

3. Generate HDL を実行して Qsys システムのモジュール生成

4. Quartus® Prime でコンフィギュレーション・モードの変更

Qsys に組み込んだ On-Chip Flash で選択した Configuration Mode と同じモードを選択します。
Assignments メニュー > Device > Device and Pin Options > Configuration

Article header img 08  3

5. Quartus® Prime でコンパイル実行(Start Compilation)

前編はここまで。

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


MAX® 10 の UFM で Nios® II をブートさせてみよう [後編]

後編では、以下の操作を行います。

  • Nios® II SBT で BSP Editor を設定し Generate を実行
  • Nios® II SBT でブート用プログラムを HEX ファイルに変換
  • プログラミング・ファイルのコンバージョン
  • MAX® 10 へプログラミング

関連記事

FPGA のオンチップ・メモリで Nios® II をブートさせてみよう
MAX® 10 の UFM で Nios® II をブートさせてみよう [後編]

関連FAQ

MAX® 10 デバイスの Compact は、M9K メモリに初期値を設定できますか?
Nios® II はFPGA 内蔵のオンチップメモリ上のみで動作可能ですか?

関連商品

Odyssey MAX® 10 FPGA Eva Kit
MAX® 10 FPGA 開発キット
MAX® 10 搭載 Nios® II エンベデッド評価キット