FPGAソフトコアCPUにおける最適化を検証する:MAX 10 FPGAで学ぶFPGA開発入門(14)(7/7 ページ)
MAX10搭載開発ボード「MAX 10 NEEK」でソフトコアCPU「NIOS II」を利用する際、最適化しないことを推奨されるが、設定自体は施せる。では最適化すると速くなるのか?有償版も含めて検証する。
「NIOS II/f」で発揮される性能
ただそうなると、有償の「NIOS II/f」ではどの程度の性能が出るのかは当然興味あるところだ。ということでこちらも試してみた。手順は簡単で、再びQsysに戻り、Embedded ProcessorをNios II/eからNios II/fに切り替えて保存し、HDLの生成を行う(Photo10)。
ついでQuartus IIに戻り、コンパイルしなおしてProgrammerで書き込む。この際には、以前こちらで説明した通りOpenCore Plusを利用するというダイアログが出現し、またProgrammerが書き込みを終わるとダイアログ(Photo11)が出てくるので、これをCancelしないように注意されたい。
あとはEclipseに戻り、NEEK_Dhry_bspのプロジェクトのプロパティで“Nios II” → “Generate BSP”を呼び出してBSPを作り直し、あとはもう一度プロジェクト全体をビルド(NEEK_Dhry_bspだけではなく、NEEK_Dhryも再ビルドが必要)して書き込めば終了である。
さて結果であるが、やはりOptimize OffとLevel 1で比較してみたところ
- Off : 33970 ms (29437.7 Dhrystone/sec : 16.75 DMIPS)
- Level 1 : 18931 ms (52823.4 Dhrystone/sec : 30.06 DMIPS)
と言うことで、桁違いのスピードを発揮することが分かった。
Dhrystoneなんぞで測るな、という議論はあるにしても、NIOS II/fにすると10倍近い演算パワーが得られるのはなかなか魅力あるところだ。ただNIOS II/fのStandalone LicenseはAlteraによれば$495(米国販売価格)だそうで、ちょっとホビーユースがメインとなるならば考えてしまうお値段なのが残念ではある。
ということで都合14回ほど連載させていただいた。冒頭にも書いたが後半はちょっとNIOS IIでばっかり遊んでしまって、あんまりFPGAという感じになってないのは筆者の不徳の致すところである。ただFPGA FabricとCPUを組み合わせて好きに構成できるあたりを楽しんで頂ければ幸いである。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- FPGAの内蔵温度センサーから値を得る
アルテラのFPGA「MAX 10」には温度センサーが内蔵されており、自身の温度を測定可能だ。メガファンクション「ALTPLL」を使い、内蔵センサーからの値を得るまでを試みる。 - オンボードされた温湿度センサーからFPGAで値を得る
FPGA「MAX 10」搭載開発ボード「MAX 10 NEEK」には各周辺機器が備えられており、そこにはTI製の温湿度センサーも含まれる。サンプルプログラムを元に、オンボードされたデバイスの制御を試みる。 - 「MAX 10 NEEK」でストップウォッチを開発し、内蔵メモリから起動する
アルテラのFPGA「MAX 10」を搭載した開発ボード「MAX 10 NEEK」にはLEDやフラッシュメモリなどの各周辺機器が備えられている。今回はLEDを使ったストップウォッチを開発し、内蔵メモリから起動する。 - 「MAX 10 NEEK」に搭載されたDDR3メモリを使う
MAX10搭載開発ボード「MAX 10 NEEK」には各周辺機器が備えられており、その中にはDDR3メモリも含まれる。ソフトコアCPU「Nios II」からの利用も含めて手順を紹介する。 - 「MAX 10 NEEK」へソフトコアCPUを組み込む
周辺機器の充実したMAX10搭載開発ボード「MAX 10 NEEK」に、ソフトコアCPU「NIOS II」を組み込み、ソフトコアCPUからボード搭載LEDの制御までを紹介する。