FPGAのソフトコアCPUをベンチマークで測定するMAX 10 FPGAで学ぶFPGA開発入門(7)(1/6 ページ)

FPGA「MAX10」に「NIOS II」と呼ばれるソフトIPコアを導入することで、ソフトコアCPUを構築できる。ではその処理能力はどれほどか。ベンチマークソフトで測定してみよう。

» 2016年02月16日 07時00分 公開
[大原 雄介MONOist]
アルテラの開発ボード「MAX 10 FPGA」 アルテラの開発ボード「MAX 10 FPGA」

 この連載ではアルテラの開発ボード「MAX 10 FPGA」を用いたFPGA開発を紹介しているが、今回は「FPGA上でソフトコアCPUを動かす手引き」の続きである。

・連載:MAX 10 FPGAで学ぶFPGA開発入門

 FPGA上で「NIOS II」と呼ばれるソフトIPコアを利用し、サンプルプログラム「Nios II On-die Temperature Sensor Design Example 2」をビルドして動かすまでを紹介したのだが、実はうまく動かなかった。このサンプルプログラムは1秒おきに温度を表示する他、基板上のディップスイッチにあわせて基板のLEDのOn/Offが操作可能な「はず」だったのだ。

 前回の最後で「IPの形で提供されるデバイスが14.1→15にVersion upされた際に何か仕様が変わっており、それを上手くフォローアップできていない感じがする」と書いたが、その後にアレコレ試行錯誤した結果、どうも当たりだったらしい。

 しばらくの間「Quartus II 15.0」と格闘したものの状況は変わらず。その後、「Quartus Prime 15.1 Lite Edition」にバージョンアップしても状況が変わらなかった。

 そこで試しに「Quartus II Web Edition 14.1」を入手してインストール、アップデートをかけて(これもアップデータは同じURLから入手できる)Version 14.1.1.190となったQuartus IIで前回と同じ手順で行ったところ、あっさり動作してしまったからだ(Photo01)。温度表示だけではなく、スイッチを参照してのLEDの点灯もきちんと動作した(Movie01)。ということで、やっと前回の目的が実現された形だ。

Photo01 Photo01:下のNIOS II Consoleを参照。ちゃんと温度が順次、表示されているのが分かる

 ちなみに似たような現象に陥っている人は他にも見かけたが(Altera Forum:nios-ii-on-die-temperature-sensor example)、決定的な解決策は特に見つかっていない模様。「俺は15.0で動作した」という人も居るので、原因は完全につかみきれないのだが。

 スクラッチから作る場合はともかく、既存のデザインファイルをベースにいろいろ遊んでみる場合、こと「Nios II On-die Temperature Sensor Design Example」に関しては古いバージョンのQuartus IIを利用するのが無難そうである。

 余談であるが、Quartus II/Quatus Primeは複数バージョンを混在してインストールできる。インストールディレクトリさえ分けていれば別に問題はない。ということで現在筆者の環境には3種類(Quartus II 14.1/15.0、Quartus Prime 15.1)が混在している状況である。

       1|2|3|4|5|6 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.