説明
C/C++ コードが演算のシーケンスで記述され、RTL で長い演算チェーンが生成されることがあります。クロック周期が短い場合、これによりデザイン レイテンシが増加する可能性あります。デフォルトでは、Vitis HLS ツールで演算の関連性および接続性を考慮して、演算が並べ替えられます。これにより、ツリーのバランスが取られてチェーンが短くなるので、ハードウェア リソースは増加しますが、デザインのレイテンシを削減できます。
演算式バランス調整では、演算子を並べ替えてバランスの取れたツリーを構築することにより、レイテンシを削減します。
- 整数演算の演算式バランス調整はデフォルトでオンになっていますが、オフにすることもできます。
- 浮動小数点演算では、演算式バランス調整はデフォルトでオフになっていますが、オンにすることも可能です。
EXPRESSION_BALANCE プラグマを使用すると、指定のスコープ内でこの演算調整をディスエーブルまたは明示的にイネーブルにできます。
構文
C ソースの必要なロケーションの境界内に配置します。
#pragma HLS expression_balance off
説明:
-
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