勘違いして勝手に泥沼にはまって、解決に時間がかかった場合は、備忘録を残すのがエンジニアの掟。
概要
- Altera社のCyclone IIIというFPGAが載っているスターターキット「DE0」でFPGAの修行中
- Nios II EDSというEclipseベースの統合環境から、プログラムをFPGAに入れようとするも、"No Nios II target connection paths were located. Check connections and that a Nios II .sof is downloaded."というエラーが出て先に進めない。
- 試したバージョンは、Quartus II ウェブ・エディション v12.0 サービスパック 2
用語
- ダウンロード : FPGA側に書き込むこと
確認事項
- とりあえず再起動してみる
- デバイスマネージャーでドライバ(Altera USB-Blaster)が最新かどうか確認
- FPGA側の電源が入っていない場合は表示されないので注意
- 更新して「デバイス用のドライバーソフトウェアが最新であることが確認されました」と出れば最新。
- 管理ツール→サービスで「Altera JTAG Server」が「開始」されているか確認
- サービスが立ち上がっていない場合、"System Console: Error while discovering JTAG connections"というエラーになる。
- そもそもサービス一覧に「Altera JTAG Server」がない場合、サービスの再インストールが必要
- Quartus12については、Windows7 64bit環境でうまくサービスがインストールされない問題があるらしい 参考
- パッチを当てないといけないバージョン(Quartus12.0 sp1)があるが、パッチがダウンロードできないのでこのバージョンは使わない方がいい。Quartus12.0 サービスパック 1 をご利用の方は、サービスパック 1をダウンロード後、パッチをダウンロードしてください。(ここでのダウンロードは、インターネットからファイルを落とすの意味)
- System ID Checksは無視する(Ignoreにチェックを入れる)
- 無視しない場合でチェックに失敗すると、"Connected system ID hash not found on target at expected base address."というエラーになる。
- 困ったときのgoogle先生
上記の確認事項全部確認したけど解決しない場合
- Nios II EDSからのダウンロードをあきらめて、NiosII Command Shellを使ったダウンロードを試してみる
- QuartusIIのProgrammerからはちゃんとUSB-Blaster見えてるしダウンロードできるが、Nios II EDSからは"No Nios II target~"のエラーメッセージが出て何も出来ない場合、勘違いしている可能性
- QuartusIIのProgrammerから.sofファイルをダウンロード、その後「FPGA側の電源を落とさずに」Nios II EDS上から、プログラムを実行(Run/Debug)すると、FPGAに.elfファイルがダウンロードされ、動作が始まる。
- 毎回、QuartusIIのProgrammerでダウンロードした後、電源を入れなおして、Nios II EDS上からプログラムをRunしていてエラーになってた。←これが大きな勘違い
何を勘違いしていたのか
- Nios II EDSから、.sofファイル含めて一式全部FPGA側にダウンロードされるものだと思っていた。
- 「何らかの理由でシステムが死んでいたり、programmerがJTAGをつかんでいて通信できなかったりといったときはRefresh Connectionsボタンを押しても復活しない」「Nios II EDSの再起動、パソコンのリブートで直るかも」というような文章があったので、再起動した後すぐにNios II EDSを立ち上げて、繋がらないエラーが出る、なんでかなーというのを繰り返していた。
- 「NiosIIがFPGA内に無いと、ソフトウェアは実行できない」という文章をスルーしていた。意味をよく理解していなかった。
まとめ
- 「"No Nios II target connection~"が出るんです、助けて!」っていう書き込みがあって、その後反応がない掲示板をちらほら見かけるので、世界で数人は同じ勘違いで悩んでいるかもしれない。参考になれば。