Ubuntu 18.04 上で Ultra96-V2 の Vitis アクセラレーション・プラットフォームを 4 回に分けて作っていこう。
前回作った Ultra96-V2 の Vitis アクセラレーション・プラットフォームはデフォルトのクロック周波数が 100 MHz だったので、今回のデフォルトのクロック周波数は 200 MHz とする。
環境の設定最初に環境を設定する。
Vitis と XRT と PetaLinux の環境を設定する。つまり各ツールのインストール・フォルダの settings**.sh (XRT は setup.sh だった。確か)を source コマンドで起動する。
そう、つまりこの 3 点セットをインストールする必要がある。私はAlveo U200 のXRT を使用している。
Vivado 2019.2 プロジェクトの作成vivado &コマンドで Vivado 2019.2 を起動する。
Vivado の起動画面で、Create Project をクリックしてプロジェクトを作成する。
New Project ダイアログのProject Name でProject name を”ultra96v2_min2”に設定した。

New Project の Project Type ページはデフォルトのRTL Project のまま Next > ボタンをクリックする。
Add Sources ページでも Next > ボタンをクリックする。
Add Constraints ページでも Next > ボタンをクリックする。
Default Part ページでは、Boards をクリックし、Vendor: で”em.avnet.com”を選択し、Display Name が Ultra96v2 Evaluation Platform を選択する。(ここで、 Ultra96v1 Evaluation Platform を選択すると Ultra96-V1 用のプラットフォームができる)
Next > ボタンをクリックする。

New Project Summary ページではサーマリが示される。Finish ボタンをクリックする。

”ultra96v2_min2”の Vivado 2019.2 プロジェクトが作成された。
ブロックデザインの作成Vivado 2019.2 のFlow Navigator から IP INTEGRATOR -> Create Block Design をクリックして、ブロックデザインを作成する。
Design name を ultra96v2_min2 とした。

Zynq UltraScale+ MPSoC をAdd IP した。

Run Block Automation をクリックして、ボード・ファイルの設定を反映する。
Run Block Automation ダイアログが開くので、OKボタンをクリックする。

Clocking Wizard、 Concat、 Processor System Reset をAdd IP する。

設定を行う。
zynq_ultra_ps_e_0 をダブルクリックして、設定画面を開く。

Page Navigator から PS-PL Configuration を選択する。
Geraral -> Interrupts -> IRQ1[0-7] の値を 1 に変更する。
PS-PL Interfaces -> Master Interface のAXI HPM0 FPD と AXI HPM1 FPD をチェックを解除する。
OKボタンをクリックする。

clk_wiz_0 をダブルクリックする。
Reset Type を Active Low に変更する。
clk_out2 〜 clk_out5 を追加して、それぞれ周波数を設定した。
clk_out1 -> 100 MHz
clk_out2 -> 200 MHz
clk_out3 -> 300 MHz
clk_out4 -> 400 MHz
clk_out5 -> 600 MHz


xlconcat_0 をダブルクリックする。
Number of Ports を 1 に設定する。


並べ替え、下図のように配線を行った。

Validate Design アイコンをクリックして、デザインを検証する。
成功した。問題なかった。
proc_sys_reset_0 を 4 回コピー&ペーストして、5 個のコピーを作成した。
xlconcat_0 をコピー&ペーストして、 xlconcat_1 を生成した。
それらを下図の様に配線した。
zynq_ultra_ps_e_0 の pl_restn0 をすべての Processor System Reset の ext_rest_in に接続した。
clk_wiz_0 の locked をすべての Processor System Reset の dcm_locked に接続した。

Validate Design アイコンをクリックして、デザインを検証する。
成功した。問題なかったので、セーブした。
プラットフォームの作成Vivado 2019.2 の Window メニューからPlatform Interfaces を選択する。
platform interfaces が開く。

Enable platform interfaces をクリックした。
すると、Vitis で使用できるインターフェースの一覧が表示される。

これはハイドされているので、まだ選択されていない。
Platform を選択すると、Platform Properties ウインドウでPlatform の情報を設定できる。
board を Ultra96V2 に変更した。

clk_wiz_0 の clk_out2 (200 MHz) をクリックして、Platform Interface Properties の General で Enable のチェックボックスをチェックする。(このクロックをデフォルトのクロックに設定する)

Platform Interface Properties の Options タブをクリックして、
id を 0 にして、is_default チェックボックスをチェックする。

ダブルクリックか、項目を選択してEnable を選択することでも有効化できる。
zynq_ultra_ps_e_0 のインターフェースの内で、 pl_clk0, S_AXI_ACP_FPD, and S_AXI_LPD を除くインターフェースを有効にする。
clk_out2 以外のクロックも有効化した。

xlconcat_0 の In0 〜 In7 を有効にする。

xlconcat_1 の In0 〜 In7 を有効にする。

Tcl Console で output type properties を設定する。
set_property platform.design_intent.embedded true [current_project]
set_property platform.design_intent.server_managed false [current_project]
set_property platform.design_intent.external_host false [current_project]
set_property platform.design_intent.datacenter false [current_project]
set_property platform.default_output_type "sd_card" [current_project]


Design Sources の下の ultra96v2_min2 ブロックデザインを右クリックし、右クリックメニューからCreate HDL Wrapper... をクリックする。

Create HDL Wrapper ダイアログが表示され、OKボタンをクリックすると、ultra96v2_min2_wrapper.v が生成された。

Flow Navigator 上でGenerate Bitstream をクリックしてビットストリームの生成を行う。
2つほどダイアログが出るが、OKボタンをクリックする。
時間が経過してから、Bitstream Generation Completed ダイアログが表示される。

Cancel ボタンをクリックする。
Tcl Console で、XSA ファイルを出力する。
(注:XSAファイルの名前が重要です。ハードウェア・コンポーネント(XSAファイル)とソフトウェア・コンポーネント(SPFMファイル)の名前を一致させる必要があります)(アクセレーション・プラットフォームとVitisに認識させるにはハードとソフトの名前の一致が重要な要件のようです)cd /home/masaaki/HDL/Ultra96/Vitis_platform/2019.2/ultra96v2_min2/
write_hw_platform -include_bit ultra96v2_min2.xsa
ultra96v2_min2.xsa が生成されていた。

ultra96v2_min2.xsa を検証した。
validate_hw_platform ./ultra96v2_min2.xsa
これで、ハードウェア・コンポーネント編は終了。
参考文献(1).
Vitis Unified Software Development Platform Documentation,
Embedded Processor Platform Development,
Creating the Hardware Component(2).
SDx のUltra96-V2 用プラットフォームを作る1(PetaLinux 2018.3 のインストール、Vivado プロジェクト作成)(3).
SDx のUltra96-V2 用プラットフォームを作る2(ブロックデザインの作成)(4).
SDx のUltra96-V2 用プラットフォームを作る2(Platform Hardware Interfacesの宣言)(5).
SDx のUltra96-V2 用プラットフォームを作る3(ビットストリームの生成)
- 2019年11月28日 05:22 |
- Vitis
-
| トラックバック:0
-
| コメント:0