RTL カーネルからの XO ファイルの作成 - 2020.2 Japanese

Vitis 統合ソフトウェア プラットフォームの資料: アプリケーション アクセラレーション開発 (UG1393)

Document ID
UG1393
Release Date
2021-03-22
Version
2020.2 Japanese

最終段階では、カーネルを Vitis コア開発キットで使用できるように、RTL IP をザイリンクス オブジェクト ファイル (XO) にパッケージします。これには、Vivado Design Suite で Tcl コマンドの package_xo を使用します。

IP をパッケージしたら、Vivado ツールから package_xo コマンドを実行します。package_xo コマンドは、IP からの component.xml ファイルを使用して、可能な場合は必要な kernel.xml を作成します。Vivado ツールは、すべてのものが揃っていることを判断するため package_xo の前処理としてデザイン ルール チェックを実行し、IP を処理して XO ファイルを作成するか、問題が存在する場合はそれを示すエラーが返されます。

次の例では、指定された IP ディレクトリにある test_sincos という名前の RTL カーネル IP を、test.xo という名前のオブジェクト ファイルにパッケージし、必要な kernel.xml ファイルを作成し、ap_ctrl_chain プロトコルを使用します。

package_xo -xo_path ./test.xo -kernel_name test_sincos \
-ctrl_protocol ap_ctrl_chain -ip_directory ./ip/

package_xo コマンドの出力は test.xo ファイルで、アプリケーションのビルドおよび実行 で説明すようにソース ファイルとして v++ --link コマンドに追加したり、Vitis IDE の使用 で説明するようにアプリケーション プロジェクトに追加できます。

RTL カーネルの XML ファイル に説明されている要件で指定されているように、IP の kernel.xml ファイルが必要な場合があります。-kernel_xml オプションを使用すると、package_xo コマンドにファイルを指定できます。この場合、package_xo コマンドで指定された kernel.xml が使用されます。次の例に、このコマンドを示します。

package_xo -xo_path ./test.xo -kernel_name test_sincos \
-kernel_xml ./src/kernel.xml -ip_directory ./ip/

ソフトウェア エミュレーション中に RTL カーネルを使用するには、カーネルに C モデルを提供する必要があります。C モデルのハードウェアでコンパイルされる関数プロトタイプは、RTL カーネルで使用されているのと同じインターフェイスである必要があります。ただし、C モデルは HLS ツールで合成可能になっている必要はありません。

package_xo -kernel_files オプションを使用すると、パッケージされた RTL カーネルに C モデルを追加できます。

package_xo -xo_path ./test.xo -kernel_name test_sincos -kernel_xml ./src/kernel.xml \
-ip_directory ./ip/ -kernel_files ./imports/sincos_cmodel.cpp 

package_xo コマンドは、C モデル ファイルを XO 内の cpu_sources でパッケージ化します。次の C モデル ファイルの末尾が自動的に認識されます。

  • .cl = OpenCL
  • .c、.cpp、.cxx = C/C++