今回やること
前回、ZYBOのLEDファイルを点滅させるRTLを書き、bitファイルを作成した。今回はいよいよZYBOにbitファイルを書き込み、LEDを点滅させてみたいと思う。いわゆるLチカ。
環境
Windows 10
Vivado 2016.2
ZYBO
ZYBOに電源を入れる
ZYBOの場合、ごついJTAGケーブルを用意しなくても基板上に回路が乗っているので、micro USBを挿すだけでJTAG通信できる。JTAGでFPGAをConfigurationする方法は、マニュアル10ページに書いてあるように、JP5をJTAGに接続になるようにつなげばいい。あと、ボードへの5V電源のアダプタがなかったので、今回はUSBで給電する(当たり前だけど、端子が挿さったとしても5Vではないアダプタは使わないでください。最悪壊れます)。USBの場合はJP7をUSBにさす。この状態でスイッチONすれば、PGOODが赤く点灯する。以下の写真のような状態。
binファイルの書き込みをしようとして失敗
あとは前回つくったbinファイルでFPGAをConfigurationするだけ。Vivadoで前回のプロジェクトを開き
「Program and Debug」→「Hardware Manager」→「Open New Target」
を選択。あとはNEXTを選んでいって「Local server」を選んで接続すればいいはずなんだけど、以下のようなエラーが発生。
ERROR: [Labtoolstcl 44-494] There is no active target available for server at TCP:localhost:3121.
Targets(s) “, jsn-Zybo-210279574966A” may be locked by another hw_server.
対策を調べた
調べるとXilinxのフォーラムでこの問題に関する質問があった。要約すると他のツールが hw_server 使ってるんじゃない?とのこと。うーん、Vivado以外特に開いてないんだけど・・・と思いつつタスクマネージャーを開くと「hw_server.exe」が起動していた。タスクの終了を選択してもう一度トライ。が、つながらない。
タスクマネージャーを見ると、また「hw_sever.exe」が起動している。何回かタスクの終了 → Local severに接続を繰り返していると、何故か開けた。よくわからんけど開けたからとりあえず良しとする。
再度チャレンジ
以下の画像のように選択してNEXTを押してFinish。
以下の画面になるので、上でも左でもいいので「Program device」を選択する。
選択すると、先ほど設定した名前が出てくるのでクリック。binファイルはデフォルトで選んでくれていた。debugファイルはないので空白のままでOK。
Programが完了すると……基板のDONEのLEDが緑に点灯し、LEDがばっちりチカチカしている。
うむ、大体動かし方はわかったきた。あえて最初はPLブロックだけ使ってみたけど、せっかくのZyboなのでPSブロックも使ってみたい。まずはHello Worldからやってみるか。
ZYBOで遊ぼう日記まとめ
ZYBO関係の記事は、大まかな内容ごとに以下にまとめています。
https://wakky.tech/zybo/