syn.directive.occurrence - 2024.1 日本語

Vitis 統合ソフトウェア プラットフォームの資料: アプリケーション アクセラレーション開発 (UG1393)

Document ID
UG1393
Release Date
2024-07-03
Version
2024.1 日本語

説明

関数やループをパイプライン処理する場合、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