Vivadoでmicroblaze

はじめに
 Xilix社のFPGA用プロセッサ(MaicroBlaze)の設計手順をFPGA評価ボードのArty(デジレント社)を題材に
紹介します.ここではツールの導入とハードウェアとソフトウエアの作成手順を紹介します。

1.Vivadoのインストール

1-1.インストールの開始
 VivadoWebPACKがインストール済みの方は”2.プロジェクトの新規作成”へ進んでください.
ザイリンクス社のダウンロードサイト
https://japan.xilinx.com/support/download.html
の"Installation Overview Vide"oに従って
VivadoWebPACKをインストールします.インストールにはザイリンクス社にユザー登録する必要があります.

1-2.エディションの選択
 インストールの途中のエディションの選択では
"Vivado HLS WebPack"を選択します.

1-3.SDKの追加
 インストールする内容の設定では
"Software Development(SDK)"を追加します.
インストールの開始から完了までは時間が掛かります.
"Installation Overview Video"に従ってラインセンスの設定もします.

1-4.Artyのボード情報追加
インストールとライセンスが完了したらArtyのボード情報ファイルを登録します.
ボード情報ファイルはデジレント社のサイトの以下のサイトからダウンロードしてください.
https://reference.digilentinc.com/reference/software/vivado/board-files?redirect=1
ダウンロード・ファイルを解凍して生成されたartyフォルダを
Vivadoインストールファルダの下のdata\boards\board_filesにコピーします.
これでプロジェクトの新規作成でArtyが選択できるようになります.

2.プロジェクトの新規作成

2-1. プロジェクト作成ウィザードの起動
 Vivadoを起動して
"Create New Projiect"をクリックするとプロジェクトの新規作成が開始します.

2-2.プロジェクト名の設定
 Project name"にプロジェクト名、"Project location"に設計データを置くファルダを設定します.
Nextをクリック

2-3.プロジェクトタイプの設定
 RTL Projectを選択、Nextをクリック

2-4.ソースコードの追加
 後で追加できるので、設定せずにNextをクリック

2-5.IPの追加
 設定せずにNextをクリック

2-6.制約の追加
 後で追加できるので、設定せずにNextをクリック

2-7.デバイスの設定
 BardsをクリックしてVenderにdigilentinc.com、Display NameにArtyを選択
Nextをクリック

2-8.新規プロジェクトのサーマリ
Finishをクリックするとプロジェクトが作られる

3.ハードウエアの設計

3-1.ブロックダイアグラムの作成
 プロジェクトが開いたら"Flow Navigator"の"Create Bloc Design"をクリック
開いたウィンドでdiagramデザイン名を指定する

3-2.ブロックダイアグラムにMicroBlazeを追加
 DaiagramのIP追加アイコンをクリックして表示されたウィンドでMicroBlazeをダブルクリック

3-3.MicroBlazeの設定
 Daiagramに上段に表示されている"Run Block Automation"をクリック

3-4.Local Memoryサイズの変更
 "Local Memory"を32KBに設定

OKをクリック

3-5.clk_wiz_1の設定
 clk_wiz_1をダブルクリックすると設定ウィンドが開く

3-6.clk_wiz_1の入力クロック設定
 "Clocking Options"タブを選択、Primaryで"Single ended clock capable.."を選択

3-7.clk_wiz_1のリセット極性の変更
 "Output Clocks"タブを選択、ResettypeでActive Lowを選択

OKをクリック

 

3-8.自動配線の実行
 Diagramに戻り"Run Connection Automation"をクリック

3-9.自動配線の設定
 clk_wiz_1,clk_in1_1,resetnにチェックを入れて、OKをクリック

3-10.リセットの配線
 Diagramに戻りreset入力と"Processor System Reset"のrst_clk_wiz_1_100mのext_reset_inを接続

3-11.AXI Uartliteの呼び出し
 AddIPアイコンをクリックして表示されたウィンドで"AXI Uartlite"をダブルクリック

Uartliteはシリアル通信用IPです.

3-12.AXI Uartliteの自動配線の実行
 "Run Connection Automation"をクリック

3-13.AXI Uartliteの自動配線の設定
 axi_uartlite_0,S_AXI,UARTにチェックを入れて、OKをクリック

3-14.AXI GPIOの呼び出し
 AddIPアイコンをクリックして表示されたウィンドでAXI GPIOをダブルクリック

3-15.AXI GPIOの設定
 AXI GPIOをダブルクリックすると設定ウィンドが開く

3-16.AXI GPIOの設定
 BoardタブでGPIOに"led 4bits"を選択、GPIO2に"dip swiches 4bits"を選択
OKをクリック

3-17.AXI GPIOの自動配線の実行
 Run Connection Automationをクリック

3-18.AXI GPIOの自動配線の設定
 axi_gpio_0,GPIO,GPIO2,S_AXI,UARTにチェックを入れる

3-19.GPIOの自動配線の設定(GPIO)
 GPIOをクリックしてoptionsでled_4bitsを選択
 これでGPIOとArtyのLED接続が指定される

3-20.GPIOの自動配線の設定(GPIO2)
 GPIO2をクリックしてsoptionsでdip_swiches_4bitsでled_4bitsを選択
 GPIO2とArtyのDIPスイッチ接続が指定される

OKをクリック

3-21.Diagramの保存・終了

 Block Designの右端上のXを押してDiagramを終了する.

OKをクリックすると、saveするか、聞かれるのでsaveする.

 

3-22.トップ階層のHD作成
 "Project Manager"のarty_sysの上でマウスの右ボタンをして"Create HDL Wrapper.."をクリック

3-23.Create HDL Wrapperの実行
 "Copy generated..."にマークを入れてOKをクリック

diagramデザイン名_wrapper.vがトップ階層として作成される。

3-24.Bitファイルの作成
 "Project Navigator"の"Generate Bitstream"をクリック
しばらくすると論理合成、配置配線が実行されてBITファイルが作成される.
ピン配置指定はArtyのボード情報を元に自動設定でれる.

3-25.Bitファイルの作成完了

Bitファイルの作成完了すると次の作業を指定が表示される.ここではCancelをクリック

3-26.ハードウェア情報のエキスポート
 File->Export->Export Hardware... をクリックすると
SDK用のハードウェア情報がエキスポートされる

3-27.エキスポート先の指定
 "Include bitstreem"にチェック入れてOKをクリック
"Local Project"が指定されていた場合は、設計データが置かれたフォルダにエキスポートされる

4.SDKによるプログラム作成

4-1.SDKの起動
 File->"Lunch SDK"でSDKが起動する

4-2.ワークスペースの指定
 OKをクリックすると"Local Project"にエキスポートされたデータを元にSDKが起動する.

4-3.SDKのアプリケーションプロジェクトの作成

起動したSDKで

 File->New->"Application Project"をクリック

4-4.プロジェクト名の指定
 "Project name"を指定してNextをクリック

4-5.ひな型の選択
 "Hello World"を選択してFinishをクリック
アプリケーションプロジェクトが作成されてビルドが実行されます.

4-6.Cソースコードの確認

 Project Explorer のprog_01->src->helloworld.cをダブルクリックするとひな形として作成されたhelloworld.cが表示される.

4-7.Bitファイルの書き込み
 ArtyをUSBケーブルでPCと接続します.初回の接続ではドライバーがインストールされるので
インストールが完了するまで待ちます.
 SDKで"Xilinx Tools"->"Program FPGA"を選択

4-8.Bitファイル書き込み
 Bitファイルがトップ階層名(diagramデザイン名_wrapper).bitになっていることを確認して
Programをクリックする.ArtyのFPGAへ書き込みが実行される.

4-9.ターミナルソフトのシリアル通信設定
 Artyからの"Hello World"を表示するために、ターミナルソフト(この場合はteraterm)の
シリアル通信の設定をする.ポートはArtyに割り当てられてCOM番号、ボー・レートは9600に設定.

4-10.プログラムの実行
 "Project Explorer"->"prog_01"(アプリケーションプロジェクト名)->Debug->src->"prog_01.elf"の上でマウスの右ボタンを押して
 "Run As"->"1 Launch on Hardware(System Debugger)"を選択する
 プログラムの実行ファイルがArtyにダウンロードされて、実行される

4-11.プログラムの実行結果
 TeraTermに"Hello World"と表示されれば正常動作している