HLS Kernel ブロックでは、テンプレート化された関数をブロックとして Vitis Model Composer にインポートすることがサポートされます。次のコードに示す関数テンプレートを含む HLS カーネルがあるとします。
template <typename T, int C>
void my_add_temp(hls::stream<T> & in1, hls::stream<T> & in2, hls::stream<T> & out)
{
T a, b, c;
a = in1.read();
b = in2.read();
c = a + b * C;
out.write(c);
}
前のセクションで説明したように、ポートの方向性を設定して Build をクリックすると、次の図に示すダイアログ ボックスが表示され、テンプレート値を設定できます。
図 1. [Block Parameters] ダイアログ ボックス
Function Template Parameters にテンプレート値を入力して Apply をクリックし、OK をクリックします。これで、インターフェイスのすべてのポートを含む HLS Kernel ブロックが生成されます。