ZYBOいじり 最初はPL、次にSDKを使ったPS領域を動かしてきましたが、ハードウェアはVivado2019.1。ソフトウェアはSDK2019.1を使ってきました。
最新の2019.2からはSDKではなくVitisという統合プラットフォームへ変わっていますので、今回はバージョンを2019.2にしてVivado+Vitisで同様なことをやってみたいと思います。
基本は以前と同じなので詳細な画面キャプチャまでは出していませんので、必要なら以前の記事をご覧ください
Vivado起動
プロジェクト設定
Create Project
Next
2019.1のプロジェクトを指定したらアップデートしてくれるのかもしれませんが、使い分けも考えてとりあえず違うディレクトリに作りました。
RTL Project を選択
Do not specify sources at this timeもチェックしてから Next
BoardsでZybo Z7-10を選択してNext
出てこなかったらUpdate Board Repositoriesをしてからですね。
Finish
回路作成
こちらもまったく同じ感じで作っていきます。
IP INTEGRATOR → Create Block Design
デフォルトのまま OK
Boardタブを選んで、4 Buttons を右クリック → Connect Board Component
AXI GPIO の GPIOを選択してOK
DiagramにAXI GPIOモジュールが出てきたかと思います。
次に4 LEDsも同様に右クリックしてConnect Board Component で axi_gpio_0の中のGPIO2を選択して OK
次に2 RGB LEDSの方もついでにアサイン。
2 RGB LEDS を右クリックしてConnect Board Component で 新しいAXI GPIOのGPIOへアサイン(選択してOK)
AddIPでZynqを追加
Run Block Automation
デフォルトのままOK
Run Connection Automation
2つのS_AXIのクロックソースを指定してから OK
Validate Design
あら?なんかエラーっていうかクリティカルワーニングが出ちゃいました。
[PSU-1] Parameter : PCW_UIPARAM_DDR_DQS_TO_CLK_DELAY_0 has negative value -0.050 . PS DDR interfaces might fail when entering negative DQS skew values.
2019.1では出なかったはず。
あ、そういえば、以前基板調べたときに見てましたね。
Zybo Z7 Reference Manual [Reference.Digilentinc]
Negative CK-to-DQS delays in the board files are causing critical warnings in Vivado >2017.4: Negative CK-to-DQS delays in the board files are causing critical warnings in Vivado >2017.4:[PSU-1] Parameter : PCW_UIPARAM_DDR_DQS_TO_CLK_DELAY_0 has negative value -0.050 . PS DDR interfaces might fail when entering negative DQS skew values.
ってエラッタにあったのと一緒ですね。気にするなってことでよさそうです。
でも2017.4より最新のバージョンならワーニングでるようですが、2019.1の時は出なかった記憶が。。。なんでだろう。
まぁいいか。
次行きます。
Sourcesタブのdesign_1を右クリックしてCreate HDL Wrapper
OptionsはデフォルトのままOK
Generate Bitstream
間違ってなければ無事に終わるかと思います。
ここまではワーニングが出た以外は2019.1の時と同じですね。
次に
File → Export → Export Hardware
Include bitstreamにチェックを入れてOK
でエキスポートします。
プロジェクトディレクトリ下に design_1_wrapper.xsa が出来ました。
2019.1の時は*.hdfっていうファイルができたはずですので、ちょっと変わってますね。
Vitis起動
2019.1の時はここからSDKを起動しましたが、2019.2はLaunch SDKっていうメニューは無くなってます。
Vitisですからね。それはこちらにあります。
Tools → Launch Vitis
Workspaceの場所を聞かれますので適当な場所を指定してからLaunch
するとVITIS IDEが立ち上がります。
File → New → Application Project
Project name に適当な名前を入れてNext
Platformのウィンドウになるので、Create a new platform from hardware (XSA) のタブを選び、+をクリックして先にVivadoで作成したできたdesign_1_wrapper.xsa を指定します。
ここらへんSDKの時は自動でやってくれたと思ったんですが、なんで面倒になっちゃったんですかね。
すると選択したままになるのでそのままNext
Domainのウインドウが出てきますので
そのままNext
Templatesの選択画面になります。
SDKで似たようなものがありましたね。あれと一緒です。
SDKの時と同じようにEmpty Applicationを選んで
Finish
SDKの時とはちょっと趣の違うVitis IDEの画面が出てきたかと思います。
Explorerペインのsrc 右クリック New → File
main.c と指定してFinish
空のmain.cが出てきますので、2019.1の時と同じソースを入れてセーブします。
Explorerのプロジェクトを選択して右クリック → Build Project
これでビルドが終わりました。
実機確認
さて、実機で確認してみます。
USBケーブルを接続して 電源Onしてから
Terminalを開き、シリアルポートの設定をして(2019.1の時と同じ)
Xilinx → Program FPGA
デフォルトのまま
Program
Explorerのプロジェクトを選択して右クリック → Run As → Launch on Hardware(Single Application Debug)
あら?動かない。
っていうか別のものが動いている
調べたらブートモードがQSPIになっていたからで、JTAGモードに切り替えてやりなおしたらちゃんと動きました。
JP5ですね。
2019.1のSDKの時はQSPIでも動いたんですけどね。なんで違うんだろうな。
でもまぁJTAGモードの方が正しいですよね。
というわけで、Vitisもこの程度であればほぼSDKと同じに使えるってことですね。
じゃぁ何が違うんでしょうね。
SDKも満足に使ったことがない私なので、特に気にせずにおきましょう。
コメント