標準 C/C++ 変数および配列を使用すると、最上位インターフェイスと load、compute、store 関数を接続できます。また、ストリーミング動作を記述する hls::stream クラスを使用すると便利です。
ストリーミングとは、データ サンプルが最初のサンプルから順に送信されるデータ転送のことで、アドレス管理を必要とせず、FIFO を使用してインプリメントできます。hls::stream クラスの詳細は、 Vitis HLS フローの HLS ストリームの使用 を参照してください。
関数を接続する際は、HLS コンパイラで必要な正規化形式を使用します。詳細は、データフロー最適化 を参照してください。これにより、コンパイラで、データフロー最適化を使用してスループットの大きなタスク セットが構築されます。主な推奨事項は、次のとおりです。
- データは順方向にのみ転送し、できる限りフィードバックしないようにします。
- 接続ごとに、1 つのプロデューサーと 1 つのコンシューマーが必要です。
- カーネルのプライマリ インターフェイスにアクセスするのは、ロードおよびストア関数のみにします。
これで、カーネルの最上位関数が作成され、カーネルにデータを必要なスループットで転送するインターフェイスとロード/ストア関数のコードが記述されました。