syn.directive.loop_tripcount - 2025.2 日本語 - UG1399

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

Document ID
UG1399
Release Date
2026-01-22
Version
2025.2 日本語

説明

ループで実行される反復回数の合計を指定します。 Vitis HLS により、各ループの合計レイテンシ、つまりループのすべての反復を実行するためのサイクル数がレポートされます。ループ レイテンシは、トリップカウント (ループの反復回数) に依存します。

重要: syn.directive.loop_tripcount は解析専用で、合成結果には影響しません。

トリップカウントは、定数値であることもあり、ループ式 (x<y など) で使用される変数の値やループ内の制御文によって異なる場合もあります。

Vitis HLS でトリップカウントを決定できないことがあります。これは、トリップカウントの決定に使用される変数が次のような場合です。

  • 入力引数。
  • ダイナミック演算により計算される変数。

次の例の場合、for ループの最大反復数が num_samples 入力の値で指定できます。num_samples の値は C 関数で定義されず、外部から関数に供給されます。

void foo (num_samples, ...) {
   int i;
   ...
   loop_1: for(i=0;i< num_samples;i++) {
     ...
     result = a + b;
   }
}

syn.directive.loop_tripcount は、ループのレイテンシが不明な場合に、ループの最小、最大、平均反復回数を指定できます。ツールは、レポート内でループのレイテンシがデザイン全体のレイテンシにどのように影響するかを解析し、適切なデザイン最適化を判断するのに役立ちます。

ヒント: また、C の assert マクロを使用してループ変数のサイズを制限すると、Vitis HLS は次を実行します。Vitis HLS では、このマクロを利用して、レポート用のループ制限を定義すると共に、これらの制限に正確に合わせたハードウェアを生成します。

構文

syn.directive.loop_tripcount=[OPTIONS] <location>
  • <location>: トリップカウントを指定するループの場所を function[/label] の形式で指定します。

オプション

avg=<integer>
反復の平均回数を指定します。
max=<integer>
反復の最大回数を制限します。
min=<integer>
反復の最小回数を制限します。

関数 fooloop_1 の最小トリップカウントを 12、最大トリップカウントを 16 に指定します。
syn.directive.loop_tripcount=min=12 max=16 avg=14 foo/loop_1