この例では、HLS トップ関数 sum_of_four を実行します。ストリームから 4 つの int32 値を読み取って合計し、1 つの値を書き込みます。8 つの入力に対して、2 つの出力が得られます (たとえば [1,2,3,4,5,6,7,8] → [10, 26])。
レイアウト: 次のファイルを含む作業ディレクトリを作成します。
hls_example/
├── kernels.h
├── kernels.cpp
└── run_hls_simple.py
kernels.h:
#pragma once
#include "hls_stream.h"
#include <stdint.h>
void sum_of_four(hls::stream<int32_t> &in, hls::stream<int32_t> &out);
kernels.cpp:
#include "kernels.h"
void sum_of_four(hls::stream<int32_t> &in, hls::stream<int32_t> &out)
{
int32_t sum = 0;
for (unsigned i = 0; i < 4; ++i) {
sum += in.read();
}
out.write(sum);
}