【FPGA/HDL】Microblaze MCSを使ってLチカ日記5日目:デバッグ機能を有効にしてハードウェアエクスポートをやり直す

投稿日:2019年4月6日
最終更新日:2019年4月6日

今回やること

前回でLEDを華麗に点灯させる予定だったが、softwareをjtag経由で書くときに以下のようなエラーが発生してしまった。今回は延長戦ということで、以下のErrorを解決したい。

ERROR : no targets found with “name =~ “microblaze*#0″ && bscan==”USER2” && jtag_cable_name =~ “Digilent Zybo 210279574966A””. available targets:
1* APU
2 ARM Cortex-A9 MPCore #0 (Running)
3 ARM Cortex-A9 MPCore #1 (Running)
4 xc7z010

 

環境

Windows10
Vivado HLx 2018.3: WebPACK
ZYBO

 

まずはググる

エラーメッセ―ジから適当に抜き出して検索すると、私とほぼ同じ症状をXilinxのフォーラムで発見。

https://forums.xilinx.com/t5/Embedded-Processor-System-Design/xilinx-sdk-2016-4-system-debugger-no-target-found-I-am-using/td-p/758064

英語なので必要な部分だけ意訳すると、以下の3つを確認してねと書いてある。

1. PLブロックがコンフィギュレーションされていること。
2.MicroBlazeに、DEBUGポートに接続されたMDM coreがあること。 無かったらホストが JTAGに接続できないよ。
3. クロックが供給されていること。

試しにMicroblazeに供給しているCLKでLED点滅するようにzybo_top.vを変更してConfigurationしたらLEDは点滅した。ということはPLブロックはコンフィギュレーションされているし、クロックも供給されているので1、3は関係なさそう。どうやら2が原因っぽい。MDM coreなんて入れた記憶が無いし。冷静に考えたら製品とかにMicroblaze入れるならROMからbootするだろうし、JTAGから書くのはイレギュラーなのかも。

 

MicroblazeにMDM coreを設定

とりあえずMDM coreを調べてみるが、ゴッツい資料が多くて理解するのに骨が折れそう。いったんSDKは置いといてVivadoに戻り、生成済みのMicroblaze IP Coreをダブルクリックして設定を確認する。「Enable Debug Support」と書いてある。もしかしてこれかな?

ここをDEBUG&UARTにしてみて、OKを押してGenerateする。あとはBitstream Generateまで実行。

 

ハードウェアエクスポートをやり直す

変更内容を反映させるため、VivadoのFileからHardware Exportをやり直す。前回と同じようにデフォルトのままOKを押すと、ファイルを上書きするか聞かれるので、Yesを選択。

そしてSDKに戻ると、自動的に以下のWarningが表示された。ハードウェアファイルの更新を検知して、SDKの設定内容をハードウェアに同期変更されるか聞かれているので、Yesを選択。

これで準備万端。

 

LEDを点灯させる

前回と同じようにFPGAをConfigurationし、ソフトウェアをRunさせたところ……

動いた!ちゃんとSDKのソースコードに書いたパターンで点灯している。でもよく考えたらこれ点滅だから点灯だから、厳密に言うとLチカ(LEDチカチカ)ではないかも。気が向いたら、割り込みとか使ってチカチカさせてみたいと思う。

 

参考文献

公式のドキュメントが以下にあるので、参照しながら進めていきます。
https://japan.xilinx.com/support/documentation-navigation/design-hubs/dh0020-microblaze-hub.html

 

ZYBOで遊ぼう日記まとめ

ZYBO関係の記事は、大まかな内容ごとに以下にまとめています。
https://wakky.tech/zybo/

 


投稿者: wakky

映画と旅行が大好きなエンジニア。お酒、ゲーム、読書も好き。

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください