- PL (プログラマブル ロジック)
- FPGA に含まれ、フリップフロップ レジスタ、ルックアップ テーブル (LUT)、デジタル信号処理ユニット (DSP)、RAM ベースのメモリ ブロック、またはクロック回路などの基本的なプログラマブル構築ブロックで構成されます。PL 領域には、次に定義するように、1 つ以上のアクセラレータを含めることができます。
- アクセラレータ (ACC)
- VSC モードでカスタム生成され、FPGA またはアダプティブ SoC デバイスのプログラマブル
ロジック内に存在するすべてのものを示します。アクセラレータには、ハードウェアに 1 つ以上の複製された演算ユニット (CU)
が含まれます。状況によっては、「アクセラレータ」という用語が、Vitis
コンパイル フローによって生成されるプラットフォームや
.xo
カーネルも含めた、プログラマブル ロジック デザイン全体を表すために使用されることもあります。VSC アクセラレータは、事前定義された VPP_ACC
クラスから派生したユーザー定義の C++
クラスで指定されます。インターフェイス仕様には、グローバル メモリやイーサネット ポートなどのペリフェラル リソースにアクセスするための
Vitis プラットフォーム
ポートへの接続が含まれます。アクセラレータには、データ ムーバー (グローバル メモリと演算ユニット間でデータを効率的に移動するために設計された IP)
も含まれます。
- 演算ユニット (CU)
- 1 つ以上のプロセッシング エレメント (PE) の構成のことで、グローバル メモリとストリームに接続して、ほかの PE にデータを移動します。インターフェイスは、アクセラレータ クラスの
compute()
メソッドを使用して記述されます。この API は、アクセラレータへのソフトウェア エントリポイント関数として機能するため、ハードウェア/ソフトウェア引数を指定します。CU は、システム構成をソース コードから自己記述し、テキスト コンフィギュレーション ファイルは使用しません。
- プロセッシング エレメント (PE)
- データで特定の動作を実行する計算機能のコア構築ブロックのことです。これは、アクセラレータ クラスの
compute()
メソッドのスコープ内の関数呼び出しです。プロセッシング エレメントの機能は C++ で記述でき、各 PE は Vitis HLS で個別にコンパイルされます。
- 構成
- PE を組み立てて CU の構造ネットワークを形成する方法を示します。
compute()
メソッドの本体は、ハードウェア内の PE の構成をセマンティクスで参照します。これは、C 関数本体の手続き的なセマンティクスとは異なります。VSC を使用すると、このような仕様を検証できます。PE は CU をまとめて構成し、アクセラレータには 1 つまたは複数の複製 CU が含まれます。