スカラー入力は通常、ホスト マシンから直接読み込まれる制御変数です。これらは、メイン カーネルの計算が実行されるプログラム データまたはパラメーターと考えることができます。これらのカーネル入力は、ホスト側からの書き込みのみです。次の関数には、width
および height
のスカラー パラメーターがあります。
void process_image(int *input, int *output, int width, int height) {
スカラー引数には、ツールで推論されたデフォルトの INTERFACE プラグマが割り当てられます。
#pragma HLS INTERFACE s_axilite port=width bundle=control
#pragma HLS INTERFACE s_axilite port=height bundle=control
この例には、画像の幅 (width
) と高さ (height
) を指定する 2 つのスカラー入力があります。これらのデータ入力は、グローバル メモリ バンクを介さずに、ホスト マシンから直接カーネルに送信されます。このプラグマは、ツールによりコードに追加されます。
重要: 現在のところ、Vitis コア開発環境では各カーネルに 1 つの制御インターフェイス バンドルのみがサポートされています。そのため、
bundle=
で指定する名前は、すべてのスカラー データ入力および return
関数で同じにする必要があります。上記の例では、すべてのスカラー入力に bundle=control
が使用されています。