Vitis™ アプリケーション アクセラレーション開発フロー チュートリアル

Vitis IDE プロジェクトでの RTL カーネルの使用

  1. チュートリアル フォルダー (cd ./01-rtl_kernel_workflow/reference_files) に移動します。

  2. work1 という名前の新しいワークスペースを作成します。

  3. 次のコマンドを入力して Vitis IDE を起動します。

vitis -workspace work1
  1. Vitis IDE が開きます。[File] → [New] → [Application Project] をクリックします。

New Application Project ウィザードが開きます。

新規アプリケーション プロジェクト

  1. 表示されるプロセスの概要を確認します。[Next] をクリックします。

  2. [Platform] ページが表示されます。xilinx_u200_gen3x16_xdma_1_202110_1 を選択し、[Next] をクリックします。

[Platform] ページ

  1. [Application Project Details] ページが表示されます。次を選択します。

    1. プロジェクト名 (例: kernelTest) を入力します。

    2. [Create New System Project] をオンにします。システム プロジェクト名はプロジェクト名から生成されます。これは、必要に応じて変更できます。

    3. プロセッサは、選択したプラットフォームから自動的に選択されます。

    4. [Next] をクリックします。

新規アプリケーション プロジェクト

  1. [Templates] ページが開き、プロジェクトの作成に使用可能なテンプレートがリストされます。[Empty Application (XRT Native API)] を選択し、[Finish] をクリックして Vitis アプリケーション プロジェクトを作成します。

New Application Project ウィザードが閉じ、Vitis IDE に新規プロジェクトが読み込まれます。

デフォルト パースペクティブ

ハードウェア カーネル (.xo) の追加

最近生成されたユーザー管理 RTL カーネル (Vadd_A_B.xo) およびホスト コード (user-host.cpp) をプロジェクトに追加する必要があります。

  1. [Explorer] ビューで kernelTest_kernels プロジェクトを右クリックし、[Import Sources] をクリックします。rtl_kernel/rtl_kernel.srcs/sources_1/imports/xo フォルダーを指定し、プロジェクトに追加する Vadd_A_B.xo カーネル ファイルを選択します。[Finish] をクリックすると、ダイアログ ボックスが閉じ、カーネルが追加されます。

RTL カーネルの追加

  1. [Hardware Kernel Project Settings] ビューで kernelTest_kernels.prj プロジェクト ファイルを開き、[Add Hardware Function] をクリックします。Vadd_A_B.xo フォルダーを選択し、Vadd_A_B カーネルを選択します。[OK] をクリックすると、ダイアログ ボックスが閉じ、プロジェクトにハードウェア関数が追加されます。

RTL カーネルの追加

  1. [Explorer] ビューで kernelTest プロジェクトを右クリックし、[Import Sources] をクリックします。src/host フォルダーを指定し、プロジェクトに追加する user-managed.cpp ファイルを選択します。[Finish] をクリックすると、ダイアログ ボックスが閉じ、ホスト コードが追加されます。

ヒント: RTL カーネルの ap_ctrl_hs バージョンに接続するために使用できる xrt-host ファイルもあります。

RTL カーネルの追加

  1. Vitis IDE が開きます。[File][New][Application Project] をクリックします。
    New Application Project ウィザードが開きます。

新規アプリケーション プロジェクト

  1. 表示されるプロセスの概要を確認します。[Next] をクリックします。

  2. [Platform] ページが表示されます。xilinx_u200_gen3x16_xdma_1_202110_1 を選択し、[Next] をクリックします。

[Platform] ページ

  1. [Application Project Details] ページが表示されます。次を選択します。

    1. プロジェクト名 (例: kernelTest) を入力します。

    2. [Create New System Project] をオンにします。システム プロジェクト名はプロジェクト名から生成されます。これは、必要に応じて変更できます。

    3. プロセッサは、選択したプラットフォームから自動的に選択されます。

    4. [Next] をクリックします。

新規アプリケーション プロジェクト

  1. [Templates] ページが開き、プロジェクトの作成に使用可能なテンプレートがリストされます。[Empty Application (XRT Native API)] を選択し、[Finish] をクリックして Vitis アプリケーション プロジェクトを作成します。

New Application Project ウィザードが閉じ、Vitis IDE に新規プロジェクトが読み込まれます。

デフォルト パースペクティブ

ハードウェア カーネル (.xo) の追加

最近生成されたユーザー管理の RTL カーネル (Vadd_A_B.xo) およびホスト コード (user-host.cpp) をプロジェクトに追加する必要があります。

  1. [Explorer] ビューで kernelTest_kernels プロジェクトを右クリックし、[Import Sources] をクリックします。rtl_kernel/rtl_kernel.srcs/sources_1/imports/xo フォルダーを指定し、プロジェクトに追加する Vadd_A_B.xo カーネル ファイルを選択します。[Finish] をクリックすると、ダイアログ ボックスが閉じ、カーネルが追加されます。

RTL カーネルの追加

  1. [Hardware Kernel Project Settings] ビューで kernelTest_kernels.prj プロジェクト ファイルを開き、[Add Hardware Function] をクリックします。Vadd_A_B.xo フォルダーを選択し、Vadd_A_B カーネルを選択します。[OK] をクリックすると、ダイアログ ボックスが閉じ、プロジェクトにハードウェア関数が追加されます。

RTL カーネルの追加

  1. [Explorer] ビューで kernelTest プロジェクトを右クリックし、[Import Sources] をクリックします。src/host フォルダーを指定し、プロジェクトに追加する user-managed.cpp ファイルを選択します。[Finish] をクリックすると、ダイアログ ボックスが閉じ、ホスト コードが追加されます。

ヒント: RTL カーネルの ap_ctrl_hs バージョンに接続するために使用できる xrt-host ファイルもあります。

RTL カーネルの追加

プロジェクトのビルド

ホスト アプリケーション コード (host.cpp) および RTL カーネル コード (Vadd_A_B.xo) をプロジェクトに追加したら、プロジェクトをビルドして実行できます。

  1. [Hardware Kernel Project Settings] ビューで [Active build configuration][Emulation-HW] に設定します。ハードウェア エミュレーションは、次のような場合に有益です。

    • FPGA に含まれるロジックの機能を検証。

    • アクセラレータおよびホスト アプリケーションの初期パフォーマンス見積もりを取得。

RTL カーネルはソフトウェア エミュレーションをサポートしません。

重要: RTL カーネルへの C モデルの追加で説明されているように、ソフトウェア エミュレーション用の C モデルを XRT 管理カーネルに追加することはできますが、これはユーザー管理カーネルではサポートされません。

  1. [Assistant] ビューで、最上位のシステム プロジェクト (kernelTest_system) を選択して [Build] ([Build] コマンド) をクリックし、アクティブな [Emulation-HW] ビルド コンフィギュレーションをビルドします。

    Vitis アプリケーション プロジェクトのさまざまな要素 (プロセッサ コード (host.cpp)、RTL カーネル (.xo) をターゲット プラットフォームにリンクするハードウェア リンク プロジェクト、デザインをパッケージする最上位システム プロジェクト) がビルドされます。

    ヒント: RTL カーネルは .xo ファイルとしてインポートされるため、カーネルをコンパイルする必要はありません。

  2. [Assistant] ビューで [Run] ボタンをクリックし、[Run Configurations] を選択します。

  3. System Project Debug コンフィギュレーションを選択し、[New launch configuration] (コンフィギュレーションの開始) をクリックして、実行用の新しいコンフィギュレーションを作成します。

    SystemDebugger_kernelTest_system コンフィギュレーションが作成されます。

    ホスト プログラムは、xclbin ファイルを入力引数として受け取ります。これは、[Program Arguments] リストで指定する必要があります。

  4. Program Arguments の横にある [Edit] をクリックします。

    [Automatically update arguments] がオンになっている場合は、xclbin ファイルが自動的に検索され、含まれます。

  5. [OK] をクリックして引数を追加します。

  6. Run Configurations ダイアログ ボックスで [Apply] をクリックし、[Run] をクリックしてコンフィギュレーションを実行し、結果を確認します。

Vitis IDE の [Console] ウィンドウに「TEST PASSED」と表示されます。ユーザー管理 RTL カーネルを使用してアプリケーションをビルドして実行しました。

(オプション) ターゲット プラットフォームでのハードウェアのビルドと実行

  1. [Vitis Application Project Settings] で [Active build configuration][Hardware] に変更します。
    システム コンフィギュレーションでは、カーネル コードが FPGA にインプリメントされるので、選択したプラットフォーム カードで実行されるバイナリが生成されます。

  2. 使用可能なハードウェア プラットフォームがある場合は、ハードウェアをビルドして実行し、結果を検証してください。

makefile の使用

01-rtl_kernel_workflow/reference-files フォルダーに含まれている makefile があります。このファイルを使用して次のターゲットを作成できます。

   make run TARGET=<hw_emu | hw> HOST=user

makefile は次を実行します。

  1. Vivado プロジェクトをビルドして RTL デザイン IP をパッケージし、ユーザー管理カーネル (.xo) をパッケージする

  2. Vitis コンパイラ (v++) を使用してカーネルをターゲット プラットフォームにリンクし、.xlcbin ファイルを生成する

  3. XRT ネイティブ API ホスト アプリケーションをコンパイルする ./src/host/user-host.cpp

  4. (必要な場合) エミュレーション プラットフォームを生成し、エミュレーション環境を設定する

  5. アプリケーションおよびカーネルを実行する

ヒント: makefile -n オプションを使用すると (make run TARGET=hw_emu HOST=user -n)、コマンドを実行せずにコマンド ラインを生成できます。

サマリ

このチュートリアルでは、[Package IP/Package_XO] フローを使用してユーザー管理 RTL カーネルを作成しました。RTL IP プロジェクトを Vitis コンパイラで必要とされるコンパイル済み XO ファイルにパッケージしました。RTL カーネルをアプリケーション プロジェクトに追加し、ホスト コードと組み合わせて、ハードウェア エミュレーション コンフィギュレーションをビルドして実行しました。 Vitis IDE で、XO ファイルを使用してバイナリ コンテナーを作成し、xclbin ファイルをコンパイルしました。



入門コースの初めに戻るチュートリアルの開始に戻る

Copyright© 2020 Xilinx