ZYBO Z7によるZYNQ入門 (2)Hello Worldプログラムによる動作確認
- (1)Vivado, Xilink SDK開発環境構築
- (2)Hello Worldプログラムによる動作確認
- (3)Ubuntu, PetaLinuxツール環境構築
- (4)ベアメタル環境のlwIPでUDP通信
- (5)PetaLinuxツールでLinuxイメージを作成
- (6)Linux環境でUDP通信(iperf)
- (7)Linux環境でUDP通信(ユーザアプリ)
- (8)Audio Codec
- (9)AXI DMAを使用したPL-PS間のデータ転送
Hello World
基本的なZynq/ZYBOの使い方を理解するためにHello Worldを出力するプログラムを作成します。PSのUARTからHello Worldを出力します。
環境
- PC: Windows 10 64bit
- Vivado 2019.1 WebPACKライセンス
- Xilinx SDK 2019.1
- Tera Term
- ボード: ZYBO (Z7-10)
- micro USBケーブル
PL部の作成(Vivado)
プロジェクトの作成
Vivado 2019.1を起動します。Create ProjectでProject Nameを設定します。Project Nameはproject_1にします。Project Typeは RTL Projectにします。Add SourcesとAdd Constraintsでは何もせずNextをクリックします。Default PartではBoardsを選択してからZybo Z7-10を選択します。Next、Finishをクリックするとプロジェクトが作成されます。
PSだけのブロックデザインを作成
Flow Navigator -> IP INTEGRATOR -> Create Block Designで、新しいブロックデザインを作成します。名前はデフォルトのままdesign_1とします。
Diagramビューの+ボタンをクリックして、ZYNQ7 Processing Systemを選択すると、PSが配置されます。
Run Block AutomationをクリックしてOKすると、プロジェクト作成時に指定したボード(ZYBO)に適したPSが作成、配置されます。M_AXI_GP0_ACLKにクロックを供給するため、FCLK_CLK0と接続します。
作成されたブロックデザインを、最上位デザインとして使います。まず、出力ファイルを生成してソースファイルを作成します。次に、HDLラッパーを作成して全体のデザインフローで使えるようにします。
BLOCK DESIGN -> Sourcesタブ上で、design_1で右クリック
- Generate Output Products -> Generate
- Create HDL Wrapper -> OK
1のGenerate Output Productsによって、verilogソースコードが生成されます。2のCreate HDL Wrapperによって最上位HDLファイルが生成されます。最上位がdesign_1_wrapper.vとなり、その下がdesign_1.vとなります。
ハードウェアのエクスポート
左側のFlow Navigator -> PROGRAM AND DEBUG -> Generate Bitstreamをクリックすると、論理合成&配置配線が行われてビットストリームファイルが生成されます。ファイルはproject_1\project_1.runs\impl_1\design_1_wrapper.bitに保存されます。
生成したビットストリームを、ソフトウェア(Xilinx SDK)で使いやすいようにエクスポートします。メニューバー -> File -> Export -> Export Hardware。Include bitstreamにチェックをつけて、OKします。
PS部の作成(Xilinx SDK)
Vivado上のメニューバー -> File -> Launch SDK -> OKで、今までVivadoで作成したハードウェア用のソフトウェア開発環境が起動します。
SDK上のメニューバー -> New -> Application Project で、新しいソフトウェアプロジェクトを作成します。
- Project name: project_1
- OS Platform: standalone
- Hardware Platform: design_1_wrapper_hw_platform_0
- Processor: ps7_cortexa9_0
- Language: C
TemplatesにはHello Worldを使用します。
プログラムの実行
ボードの準備
ZYBOのボード上でJP5のジャンパ接続をJTAGにします。ボード上のマイクロUSB端子(J12)にUSBケーブルを刺して、PCと接続します。ZYBOの電源をONにします。
PC側でTera Termを起動して、USB Serial Portに接続します。ボーレートは115200にします。
PLプログラムの書き込み
ハードウェア情報(ビットストリームファイル)を書き込みます。
メニューバー -> Xilinx -> Program FPGAを実行します。これでZYBOは先ほどVivadoで作成したハードウェア構成になります。電源をOFF/ONしたら、再度書き込みが必要になります。
PSプログラム実行
Project Explorer上でproject_1を選択しておきます。
メニューバー -> Run As -> Launch on Hardware (System Debugger)を実行すると、ターミナル上にHello Worldと表示されます。
Discussion