pragma HLS expression_balance - 2024.1 日本語

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

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

説明

C/C++ コードが演算のシーケンスで記述され、RTL で長い演算チェーンが生成されることがあります。クロック周期が短い場合、これによりデザイン レイテンシが増加する可能性あります。デフォルトでは、Vitis HLS ツールで演算の関連性および接続性を考慮して、演算が並べ替えられます。これにより、ツリーのバランスが取られてチェーンが短くなるので、ハードウェア リソースは増加しますが、デザインのレイテンシを削減できます。

演算式バランス調整では、演算子を並べ替えてバランスの取れたツリーを構築することにより、レイテンシを削減します。

  • 整数演算の演算式バランス調整はデフォルトでオンになっていますが、オフにすることもできます。
  • 浮動小数点演算では、演算式バランス調整はデフォルトでオフになっていますが、オンにすることも可能です。

EXPRESSION_BALANCE プラグマを使用すると、指定のスコープ内でこの演算調整をディスエーブルまたは明示的にイネーブルにできます。

構文

C ソースの必要なロケーションの境界内に配置します。

#pragma HLS expression_balance off

説明:

off
演算式バランス調整を指定の場所でオフにします。
#pragma HLS expression_balance を指定すると、指定したスコープで演算式バランス調整が有効になります。off を追加すると無効になります。

例 1

関数 my_Func 内で演算式バランス調整をオフにします。

void my_func(char inval, char incr) {  
  #pragma HLS expression_balance off

例 2

次の例は、関数 my_Func 内で演算式バランス調整を明示的にオンにします。

void my_func(char inval, char incr) {  
  #pragma HLS expression_balance