はじめに
1500円 ZYNQ 基板(EBAZ4205)で、
FPGAプログラミング大全Xilinx編(第2版)の課題5-3
「Zynq のプログラムを実行」
を実習したいと思います。
基板の改造 (JTAG ブートモードの追加)
以前の投稿記事 1500円ZYNQ基板で microSD から起動する
で、NAND/SD ブートモード切り替えスイッチと、リセットボタンを追加しました。
Vitis から JTAG ケーブルでデバッグを行うとき、ZYNQ を JTAG モードでブートする必要があります。
そのため、JTAG ブート用のスイッチを追加します。
下図のように、U12-IO2 を L に落とす JTAG-SW (茶色)を追加します。
R2585 のランドを使って配線します。
タクトスイッチをしっかり固定するため、スイッチのフレームと GND は 470uF/16V マイナス側のパターンのレジストを削って接続しています。
EBAZ4205 に電源投入後、JTAG-SW を押しながらリセットボタンを押すと、JTAG モードで再起動します。
一度起動した後は、リセットや電源再を投入しない限り、そのモードで動き続けます。
JTAG モードへ移行するリセット時、NAND/SD 切り替えスイッチは、どちらになっていても構いません。
・NAND 側にしておくとダイレクトに JTAG モードでブートします。
・SD 側にしてあると QSPI モードになりますが、有効なメモリが接続されていないため、JTAG モードに移行します。
結果、NAND or SD どちらで動作していても、JTAG スイッチを押しながらリセットボタンを押すことで、JTAG モードに入ることができます。
プラットフォームファイルのエクスポート
前の記事の最後で、Vivado のプロジェクトからプラットフォームファイル(.xsa)をエクスポートしました。
このファイルを使って、Vitis でプロジェクトを作成します。
前記事の最後で作成した design_1_wrapper.xsa ファイルを確認します。
C:/Users/(ユーザー名)/Desktop/ebaz4205_taizen/ebaz4205.vitis
に、生成したかと思います。
※フォルダ名に .vitis を追加して、Vivado のプロジェクトと同じフォルダにならないようにしています。
.xsa ファイルと同じフォルダに vitis がファイルを追加するので、フォルダを分けておく方が管理が楽です。
Vitis の起動とプロジェクト作成
p.201 ◎Vitis の起動とワークスペースの指定(図5-18、図5-19)
大全の手順通り進めますが、ワークスペースとして指定するフォルダは新規作成します。
C:\Users(ユーザー名)\Desktop\Vitis_workspace
としておきます。
このフォルダに Vitis がプロジェクト毎のフォルダを作成していきます。
p.202 ◎プラットフォームプロジェクトの作成(図5-20)
大全の通り、プロジェクト名を指定して、design_1_wrapper.xsa ファイルを指定します。
p.204 ◎アプリケーションプロジェクトとシステムプロジェクトの作成(図5-21)
Part: と Family の空欄に気を付けて進めます。(※)
p.207 ◎Vitis の操作画面
無事に図5-22 の画面まで進めたら、次へ移ります。
※作成されたプラットフォームプロジェクトは Out-of-date 表示になっています。
再現性がわからないのですが、「アプリケーションプロジェクト作成」へ進んだとき、General Info の中の Part: と Family: が正しく認識されず、空欄になってしまうことがあります。
空欄のままだとビルドでエラーが出てしまい、正常に進めることができません。
空欄になってしまった場合は、アプリケーションプロジェクト作成をキャンセルして、プラットフォームプロジェクトを先に Build Project してやります。
そうすると、Out-of-date が解消されます。
再度アプリケーションプロジェクト作成へ進めば、Part: と Family: が正しく認識され、正常にデバッグできるようになります。
プロジェクトのビルドおよびダウンロードと実行
p.208 ◎プロジェクトのビルド(図5-23)
ビルドを実施して、エラーが出ない事を確認します。
p.209 ◎デバッグ設定の作成とプログラムのダウンロード(図5-24)
p.211 ◎デバッグ時の操作画面
p.212 ◎シリアルターミナルの設定とプログラムの実行(図5-26、図5-27)
大全の手順通り進めます。
無事、シリアルターミナルに Hello World が表示されました。
ダウンロード後にエラーになり、下の画面が表示される場合は、JTAG モードになっていませんので、ZYNQ を JTAG モードで再起動してください。
Vitis はそのままで、リセットして JTAG 再起動後に Debug 実施すればよいです。
LED 点滅プログラムの実行
p.217 ◎新しいアプリケーションプロジェクトを作成(図5-29、参考:図5-21)
p.218 ◎ソースファイルのコピー(図5-30)
p.219 ◎ビルド(参考:図5-23)
ここまで大全の手順通りに実施します。
p.219 ◎デバッグ設定の簡易作成とプログラムのダウンロード(図5-31)
どうも、私の環境では Debug As の横に簡易作成のメニューが出ないようでした。
p.210 図5-24(c) と同様にして、Debug Configurations を作成しました。
その際、Debugger-hello-Default の設定が残っていますので、
・Name: を Debugger_hello-Default から Debugger_led_test-Default に変更
・Project: を hello から led_test に変更
として、Debug ボタンを押します。
ダウンロードまで、自動で進みます。
Resume ボタンを押してプログラムを実行すると、LAN コネクタ横の LED がパターン点滅を始めます。
LED の点滅パターンは、大全のプログラム通りなので、
1500円ZYNQ基板でFPGAプログラミング大全Xilinx編(第2版)の実習 2-1 LED点滅回路
の時の LED 点滅パターンとは異なりますが、プログラムは正しく動作しています。
まとめ
FPGAプログラミング大全Xilinx編(第2版)の課題5-3
「Zynq のプログラムを実行」
を EBAZ4205 で実習することができました。