ホスト マシンと FPGA 上のカーネルの間のデータ転送には、2 つのタイプがあります。データ ポインターは、グローバル メモリ バンクを介してホスト CPU とアクセラレータ間で転送されます。スカラー データは、ホストからカーネルに直接渡されます。
カーネルとの間でデータを転送するのにかかる時間も、スループット目標に関して、アプリケーション アーキテクチャに影響を与える可能性があります。データ転送のオーバーヘッドが大きいため、アプリケーションに存在する通信 (データ移動) と計算が重複していることを考慮することが重要です。 『Vitis 高位合成ユーザー ガイド』 (UG1399) の効率的なカーネルの設計を参照してください。
Vitis HLS ツールは、Vitis コア開発キットの一部であり、C/C++ カーネル関数のパラメーターにインターフェイス ポートを自動的に割り当てます。これらのポートは、v++
コンパイル プロセス中に割り当てられます。次のセクションに、これらのインターフェイス ポートの追加の詳細、手動で割り当てる方法、および INTERFACE プラグマを使用してデフォルト割り当てを無効にする方法を説明します。コードに INTERFACE プラグマがない場合は、Vitis ツールにより次のインターフェイス プロトコルが割り当てられます。
- C/C++ 関数のポインター引数には、AXI4 マスター インターフェイス (
m_axi
) が割り当てられます。 - スカラー引数、配列の制御信号、グローバル変数、およびソフトウェア関数の戻り値には、AXI4-Lite インターフェイス (
s_axilite
) が割り当てられます。 - Vitis HLS では、スループット帯域幅を最大にし、レイテンシを最短にするため、バースト トランザクションが推論され、メモリ アクセスがまとめられます。バースト転送の詳細は、 『Vitis 高位合成ユーザー ガイド』 (UG1399) のバースト転送の最適化を参照してください。
- パラメーターのデータ型を定義するのに
hls::stream
が使用されているので、Vitis HLS ツールでaxis
インターフェイスが推論されます。