はじめに
Nios® V/g はキャッシュを実装しています。非キャッシュ・アクセス(non-cacheable access)を行う際には、Nios® II とは異なり対象領域を周辺 IO 領域(Peripheral Region)として設定する必要があります。
この記事では Nios® V で非キャッシュ・アクセスを行うための、Peripheral Region の設定方法をご紹介します。
1. Peripheral Region の設定方法
Peripheral Region は、Platform Designer において Nios® V/g の Parameters で設定します。
Memory Configurations -> Peripheral Regions にて非キャッシュ・アクセスにしたい領域を設定します。領域は 2箇所設定可能です。
下図の例では、0x0004_0000 から 0x0007_FFFF までの 256KB を非キャッシュ領域として設定しています。

図 1. Nios® V の Peripheral Regions 設定画面
2. Nios® II との違い
Nios® II の場合は、IORD、IOWR、alt_uncached_malloc、alt_remap_uncached 等の関数を使用することにより非キャッシュ・アクセスを行うことができましたが、Nios® V では Peripheral Region を設定する必要があります。
Nios® II の場合は下図の赤枠で示す通り、デフォルトで Address の bit[31] に 1 を立てるとキャッシュのバイパス(非キャッシュ・アクセス)が行われる設定となっています。
"Use most-significant address bit in processor to bypass data cache" にチェックが入っている場合、Peripheral Region の設定をせずに IORD/IOWR 命令を使用することや、Base Address + 0x8000_0000 にアクセスをすることでキャッシュをバイパスすることが可能となります。
このチェックを外した場合は、Peripheral Region を設定する必要があります。この場合は Nios® V と同様の設定が必要となります。

図 2. Nios® II のキャッシュ設定画面
Nios® II と Nios® V のキャッシュ・バイパス方法の違いに関しては、下記のドキュメントをご参照ください。
参考資料:AN 978: Nios® V Processor Migration Guidelines
おわりに
この記事では Nios® V で非キャッシュ・アクセスを行う方法をご紹介しました。
弊社では、Nios® V まとめページ を用意しております。Nios® V で不明点がありましたら、こちらのページもご参照ください。