hls::stream.capacity() メソッド - 2023.2 日本語

Vitis 高位合成ユーザー ガイド (UG1399)

Document ID
UG1399
Release Date
2023-12-18
Version
2023.2 日本語

hls::stream.capacity() メソッドは、ストリームが保持できるエレメントの最大数、またはストリームの深さ合計を定義する符号なし整数を返します。これにより、書き込み前にチャネルに使用可能な容量を確認できます。

hls::stream<int> my_stream;
int var = 16;

if ((my_stream.capacity() - my_stream.size()) >= N) {
  for (int=0; i<N;i++)
    my_stream.write(...); // this will not block
}
ヒント: C シミュレーションでは、hls::stream.capacity() が理論上の限界値として MAXINT を返します。合成や C/RTL 協調シミュレーションでは、計算されたストリームの容量を返します。

hls::stream.capacity() および hls::stream.size() メソッドでは、トランザクションに使用可能な特定の量のスペースまたはデータがある場合にのみ、ストリームの書き込みまたは読み出しをする高度なフロー制御ができます。たとえば、サイズ N の読み出しバーストを開始する前に、入力ストリームに N 個のデータ アイテムがあるかどうかを確認し、バーストがストールせずに完了できるようにできます。また、書き込みバーストの場合、バースト データをストールせずに保存するのに十分なスペースが出力ストリームにあるかどうかを確認することもできます。