Vitis PL カーネルの開発フロー - 2023.2 日本語

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

Document ID
UG1393
Release Date
2023-12-13
Version
2023.2 日本語

プラットフォーム ベースのデザイン フローでは、プラットフォームがハードウェア開発のための拡張可能な基盤を提供します。ハードウェア デザインは、Vitis ツールを使用してプラットフォームにリンクされた PL カーネルを使用すると、拡張できます。PL カーネルは、Vitis HLS ツールで C++ から生成するか、Vivado Design Suiteで RTL で直接記述できるハードウェア関数です。

このセクションでは、PL カーネルの Vitis 開発フローの簡単な概要について説明します。次は、そのフローを画像で示したものです。

図 1. Vitis PL カーネルの開発フロー

PL カーネルは、C/C++ で記述して Vitis HLS ツールで RTL IP に合成できます。 『Vitis 高位合成ユーザー ガイド』 (UG1399) に示すとおり、高位合成 (HLS) ツールを使用してハードウェアに正しく変換できるように、優れた合成可能なソフトウェアを設計および書き込みするための基本的な概念があります。

C++ で記述された PL カーネルは、C/C++ PL カーネルのコンパイル で説明するように、v++ --compile コマンドを使用してザイリンクス オブジェクト ファイル (.xo) に直接コンパイルすることもできます。ただし、C/C++ カーネルの場合は、Vitis HLS でボトムアップ手法を使用して、カーネル デザインで直接解析と最適化を実行し、最良の結果になるようにすることをお勧めします。実際、v++ --compile コマンドでは、コンパイル プロセスの重要な部分として、Vitis HLS を使用します。

C++ で記述された PL カーネルは RTL で記述することもできますが、Vivado ツールで使用するためのカスタム IP のカタログに既に含まれていることもあります。RTL カーネルのパッケージ で説明するように、これらのカーネルには、システム デザインにリンクさせるための特定のインターフェイス要件があります。エンベデッド システム設計者は、カスタム プラットフォームの一部として RTL を統合するか、v++ コマンドを使用して RTL カーネルをシステムにリンクさせるかを決定することもできます。

Vitis HLS、RTL カーネル、v++ --compile コマンドのいずれを使用しても、カーネル開発またはコンパイルの結果はザイリンクス オブジェクト (.xo) ファイルになります。PL カーネルには、PL カーネル プロパティ で説明されるように、サポートされるさまざまなタイプのインターフェイス、およびクロック信号とリセット信号に関する特定の要件があります。クロックとリセット信号により、XRT がカーネルの実行をランタイムで管理でき、インターフェイスにより、PL カーネルがエクステンシブル ハードウェア プラットフォーム (.xpfm) やほかの .xo ファイル、AI エンジン グラフ アプリケーション (.libadf.a) とリンクできるようになります (システムのビルドとパッケージ を参照)。