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

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

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

説明

OCCURRENCE プラグマまたは指示子では、関数やループをパイプライン処理する際に次を指定します。パイプライン処理された関数やループ内で呼び出されるパイプライン処理された関数のコードは、外側の関数やループよりも低いレートで実行されます。低いレートで実行することで、そのパイプライン処理された呼び出しは、より低いレートでパイプライン処理され、最上位のパイプライン内で共有される可能性があります。次に例を示します。

  • ループは N 回反復する。
  • ループの一部は条件文で有効になり、M 回しか実行されない (NM の整数倍)。
  • 条件文で有効になるコードの実行頻度は N/M。

領域に実行頻度を指定すると、その領域内の関数およびループがそれを含む関数またはループよりも遅い開始間隔でパイプライン処理されます。

構文

syn.directive.occurrence=[OPTIONS] <location>
  • <location>: 実行速度が遅いパイプライン処理された関数呼び出しを含むコード ブロックを指定します。

オプション

cycle=<int>
N/M の実行頻度を指定します。
  • N: 領域を含む関数/ループの実行回数。
  • M: 条件文領域の実行回数。
重要: N は M の整数倍数である必要があります。
off=true
指定された関数の発生を無効にします。

関数 foo の領域 Cond_Region の実行頻度を 4 に指定します。この領域は、それを含むコードよりも 4 倍低速で実行されます。

syn.directive.occurrence=cycle=4 foo/Cond_Region