FPGAオンチップメモリの初期化

アルテラ Quartus2ツールのQsysで、Nios2のソフトをonchip_memoryに初期化する場合の注意点。

Q2 ver11.1にて、Qsysを利用しNios2を利用したシステムを設計する際には、以下の注意が必要です。

Qsysからオンチップメモリのウイザードを起動し、生成したNios2ソフト(xxx.hex)をメモリ初期化ファイルとして指定するとき、そのまま(..../.../xxx.hex)と指定すると正しく指定できません。

上記の通りファイル(xxx.hex)指定し、generateすると、onchip_memoryの実体ファイル(qsysで設定したonchip_memoryのブロック名.v)内にparameterとしてフルパス表示されます。
このパス名に以下の様に誤りが生じています。
parameter INIT_FILE = "...xxx.hexまでのパス../xxx.hex.hex";

余分な拡張子(.hex)が追加されてしまうので、Q2ツールのコンパイル時に無視されてしまい、メモリの初期化が正しくできません。
実体ファイル(qsysで設定したonchip_memoryのブロック名.v)のparameterセクションは直接編集できないので、Qsysからオンチップメモリのウィザードを起動し、(xxx.hex)ファイルを指定するときに、拡張子(.hex)を省いて指定します。

onchip_memoryの初期化


Smart-USB Plus / Sigma 技術サポート
https://www.smartusb.info/article.php/q2_qsys_hex