XilinxのFPGA向けソフトプロセッサであるMicroBlazeを使って,Cで○×ゲームを実装してみましょう.
MicroBlazeを使ったハードウェアの実装の詳細は,Vitis/Vivado 2020.1でMicroBlazeを使うをご覧ください. ここでは,既に作成済みのハードウェアファイルを使って作業をすすめます.
文中の$WORK
は,アーカイブを展開したディレクトリ(たとえば$HOME/work
)を想定します.
リモートデスクトップを使ってACRiにログインしてターミナルを開きます.
source /tools/Xilinx/Vitis/2020.2/settings64.sh
vitis &
最初にワークスペースを尋ねられます(VitisはEclipseベースです).他のプロジェクトと設定などがごっちゃになるのは嫌なので,ここでは,このプロジェクト用のワークスペースとして$WORK/fpga-tic-tac-toe-main/c
を指定しています.
ワークスペースを指定すると起動します.
起動ウィンドウのPROJECT
内のCreate Application Project
をクリックするか,メニューのFile
->New
->Application Project...
をクリックしてウィザードを起動します.
ウェルカムページをNEXT >
ですすむとPlatform
の選択ページが開きます.ここでは,作成済みのMicroBlazeを含むハードウェアデザイン(.xsaファイル)からプラットフォームを作成します.Create a new platform from hardware (XSA)
を選択し,Hardware Specification
内のXSA File:
右のBrowse...
をクリックするとファイル選択ダイアログが開きますので,$WORK/fpga-tic-tac-toe-main/c/design_1_wrapper.xsa
ファイルを選択します.選択しおえたらNext >
をクリックして次にすすみましょう.
Application Project Details
ではプロジェクトの詳細設定です.Application project name:
にプロジェクト名を指定します.tictactoeにしました.他はデフォルトのままNext >
で次にすすみます.
Domain
ではプロジェクトの実行環境について設定できます.今回はてっとり早くMicroBlaze上にOSなしでソフトウェアを実行したいのでデフォルトのままOperating System:
をstandalone
にしてNext >
で次にすすみます.
最後にプロジェクトテンプレートを選択できます.Hello World
を選択してFinish
でウィザードを終了しましょう.
プロジェクト設定が完了しました.
テンプレートでHello World
を選ぶと,あらかじめhelloworld.c
が用意されています.Explorer
ペインで,tictactoe_system
->tictactoe
->src
とツリーを展開するとファイルにアクセスできます.ダブルクリックすると編集ウィンドウが開きます.
今回は,helloworld.cの中身を,あらかじめ用意した$WORK/fpga-tic-tac-toe-main/c/helloworld.c
で置換します.
cp $WORK/fpga-tic-tac-toe-main/c/helloworld.c $WORK/fpga-tic-tac-toe-main/c/tictactoe/src/helloworld.c
ツールバーのトンカチアイコンをクリックしてビルドします.Explorer
ペインでtictactoe_syste
を選択した状態でトンカチアイコンをクリックしましょう.
ビルドが終わると,Consle
ペインにメッセージが表示されます.
(1)FPGAにbitファイルをダウンロードする,(2)実行するプログラムを転送して実行する,の手順で実行します.
RTL編同様にGtkTermで/dev/ttyUSB1
を開いておきます.
メニューからXilinx
->Program Device
を選択します.
Program Device
ダイアログが表示されます.デフォルトのままProgram
をクリックします.
プログレスダイアログが表示されて書き込みがすすみますので終わるまで待ちます.
Explorer
ペインでtictactoe_system
内のtictactoe
を選択した状態で,ツールバーにある再生ボタン右横の下矢印をクリック,Run As
->Launch on Hardware
を選択します.
ウィンドウ右下に進行状態を示すプログレスバーが表示され,完了すると消えます. GtkTermのウィンドウを確認すると,ゲームが開始しています.
ツールバーの再生ボタンの左にある虫アイコン右横の下矢印をクリック,Debug As
->Launch on Hardware
を選択するとデバッガで実行を制御できます.試してみましょう.