こんにちは。

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

 

ここから “MAX® 10 の UFM で Nios® II をブートさせる方法” の後編です。前編(操作1~5)は下記をご覧ください。


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

6.  Nios® II SBT で BSP Editor を設定し Generate を実行

Nios® II SBT において、JTAG 経由で正常に動作することを事前に確認済みのブート用プログラムのソフトウェア・プロジェクトをセットし、Nios® II BSP プロジェクト・フォルダに対して Nios II > BSP Editor を起動します。

Article header img 09  3


今回は、オンチップ・フラッシュ(UFM)から起動、メモリをオンチップ RAM で実行の仕様なので、以下の設定をします。

Lnker Script タブの Linker Region Name において、アクティブに表示されているすべてのセクションを On-Chip Memory(RAM)に指定します。

Article header img 11  7

Main タブの Settings > Advanced > hal > linker 設定を以下のようにします。

Article header img 10  5

Generate ボタンをクリックし実行します。


7. Nios® II SBT でブート用プログラムを HEX ファイルに変換

Nios® II のブートプログラムがインポートされているアプリケーション・フォルダの上で右クリック > Make Targets >Build... を選択し、Make Targets ダイアログボックスで mem_init_generate を選択し Build します。

Article header img 12  1


アプリケーション・フォルダに mem_init フォルダが出現し、UFM に格納するブートプログラムが初期値ファイル(.hex)に変換され生成されます。

Article header img 13  1

8. プログラミング・ファイルのコンバージョン

Quartus® Prime で SOF ファイルと UFM 用 HEX ファイルから POF ファイルに変換します。
Files メニュー > Convert Programming Files を起動し、以下のように設定します。

Article header img 14  1


Option/Boot info… ボタンをクリックし、Max® 10 Device Options ダイアログボックスを以下のように設定します。

UFM source:
⇒ Load memory file を選択

File path:
⇒ Nios® II SBT でビルドしたmem_init フォルダ内に生成された Nios® II ブート用の HEX ファイルを選択

OK ボタンをクリックし、Convert Programming Files の Generate ボタンをクリックします。「Generated “ファイル名”.pof successfully」のメッセージと共に、POF が生成されます。

Article header img 15  1

9. プログラミング

Quartus® Prime の Programmer で、先ほど生成した POF を使って MAX® 10 の CFM と UFM に書き込みます。

Article header img 16  1


ボードを見てみましょう。

Article header library 119173 pic01  1

おぉ!Lチカしてます、成功です!
Nios® II がブートプログラムをちゃんと実行されていて、点灯している箇所がそれぞれ変わっています。


Nios® II のブートプログラムが変更された時は?

再び Nios® II SBT を起動しアプリケーション・フォルダ指定して

Make Targets > Build… >  mem_init_generate をビルドし、HEX を更新してください。(操作7を参照)
その後、Convert Programming Files にて POF ファイルをアップデートしてください。(操作8を参照)
MAX® 10 へのプログラミングで UFM のみに書き込めば、アップデートされますよ。

Article header img 18  1


ただ、ご注意いただきたい点が。
UFM には書き込みや消去動作に保障回数があります。なので、しっかりデバッグをしてから UFM は使いましょう。

参考FAQ
MAX® 10 デバイスに搭載されている User Flash Memory (UFM) の書込み可能回数を教えてください。

また、MAX® 10 の UFM は 一般的にブートメモリとして用いられる外部 ROM (CFI Flash など)と比較しても容量が小さいため、設計検討時に十分な容量が確保できることを確認した上で使用しましょう。

今回は、Nios® II のブート ROM を UFM で構成する方法をご紹介しました。



関連記事

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

関連商品

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