Article header nios2header beginner  6

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

Article header hanako 25x25  18

こんにちは、インテル・アルテラ・ハナコ です。
Nios® II のブートプログラムを FPGA 内部のオンチップ RAM に組み込む方法は2つあります。
FPGA のオンチップ・メモリで Nios® II をブートさせてみよう

今回は、MAX® 10 でUFM をブート ROM にする “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 1248 1376 2368 3200 5888 5888
(※) 選択したモードに依存する、指定可能な最大値です。
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 は、Single Uncompressed Image / Single Compressed Image / Dual Compressed Images の3つです。システム仕様に応じて選択してください。
今回のデザインではごく小さなプログラムで、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

Article header hanako 25x25  19

ハナコのちょこっとポイント♪
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 へプログラミング


    関連記事

    関連FAQ

    関連商品

    関連タグ