FPGA「MAX10」に「NIOS II」と呼ばれるソフトIPコアを導入することで、ソフトコアCPUを構築できる。ではその処理能力はどれほどか。ベンチマークソフトで測定してみよう。
この連載ではアルテラの開発ボード「MAX 10 FPGA」を用いたFPGA開発を紹介しているが、今回は「FPGA上でソフトコアCPUを動かす手引き」の続きである。
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)。ということで、やっと前回の目的が実現された形だ。
ちなみに似たような現象に陥っている人は他にも見かけたが(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)が混在している状況である。
Copyright © ITmedia, Inc. All Rights Reserved.