FPGA上でソフトコアCPUを動かす手引き:MAX 10 FPGAで学ぶFPGA開発入門(6)(6/7 ページ)
これまでFPGAの開発基礎としてLチカなどを紹介してきたが、今回はちょっと目先を変えてFPGA上でのCPUコア動作に取り組む。今回も連載で使う「MAX 10 FPGA 評価キット」の読者プレゼントをご用意。
いよいよビルドへ
これが終わったら、左ペインのProject ExplolerのTempSensorを右クリックして、コンテクストメニューから「Build Project」を選択するとプログラムのビルドが始まる。問題なければ数十秒で終了する(Photo29)はずで、これにてプログラムの開発は完了である。
最後に、プログラムをNios IIにロードする作業である。まずEclipseの「Run」→「Run Configuration」を選び、Project名に「TempSensor」を選ぶ(Photo30)。次にTarget Connectionタブを開く(Photo31)と、USB-Blasterが見えているはずだ。
ここで「System ID checks」にある「Ignore mismatched system ID」と「Ignore mismatched system timestamp」の両方にチェックを入れると、「Target Connection」タブの赤い×印が消える(Photo32)。これを確認して、まず右下の「Apply」ボタンを押した後で、さらに右下の「Run」ボタンを押すと、USB-Blaster経由でNios IIのSRAMにプログラムがロードされ、すぐにNios IIが実行を開始する。ちなみにSTDOUTに相当するものは、USB-Blaster経由のNios II Consoleになり、ここにメッセージが表示される仕組みだ(Photo33)。
さて、本当ならこのサンプルは1秒おきに温度を表示する他、基板上のディップスイッチにあわせて基板のLEDのOn/Offが操作可能な「はず」なのだが、実は上手く動かない。調べてみたところ、デバイスから本来入るべき割り込みが上手く拾えておらず、割り込み待ちのままずーっと無限ループに陥っている模様だ。
なんとなく、Photo10にあるようにIPの形で提供されるデバイスが14.1→15にVersion upされた際に何か仕様が変わっており、それを上手くフォローアップできていない感じがする。ただ逆にADCからの温度測定やDIPスイッチの設定取り込み/LEDの表示などを省くとちゃんと動作しているので、Nios IIそのものが正しく動作している事は間違いないようだ。次回はこのあたりを来月はもう少し追及してみたいと思う
関連記事
- FPGAのLED制御プログラムを深く理解する
FPGA開発に必要なHDLへの理解を深めるため、MAX 10に用意されているArduino I/Oを利用してのLチカを行い、多灯LEDの制御を含めたプログラミングも解説する。今回も連載で使う「MAX 10 FPGA 評価キット」の読者プレゼントをご用意。 - 「MAX 10 FPGA」のテスト環境を構築する
今回から実際に「MAX 10 FPGA評価キット」を利用しての開発に着手する。まずは環境構築だ。キット以外に必要なモノもあるので注意して欲しい。今回も連載で使う「MAX 10 FPGA 評価キット」の読者プレゼントをご用意。 - なぜFPGAが注目されるのか、開発ボードに触れて確認する
最近では「FPGAの重要性」について語られる機会が増え、適用事例も増加している。ではなぜ今FPGAなのか。実際の開発ボードでFPGAを学びながら、FPGAへの理解を深めよう。連載で使う「MAX 10 FPGA 評価キット」の読者プレゼントもご用意。 - なぜFPGAが注目されるのか、開発ボードに触れて確認する
最近では「FPGAの重要性」について語られる機会が増え、適用事例も増加している。ではなぜ今FPGAなのか。実際の開発ボードでFPGAを学びながら、FPGAへの理解を深めよう。連載で使う「MAX 10 FPGA 評価キット」の読者プレゼントもご用意。 - いまさら聞けない FPGA入門
あなたは、人に「FPGA」を正しく説明できるだろうか? いまや常識となりつつあるFPGAについて、あらためてその概念から仕組み、最新動向までを解説する。(編集部)
Copyright © ITmedia, Inc. All Rights Reserved.