set_directive_expression_balance - 2023.2 简体中文

Vitis 高层次综合用户指南 (UG1399)

Document ID
UG1399
Release Date
2023-12-18
Version
2023.2 简体中文

描述

有时,C/C++ 代码是以一连串运算来编写的,故而会在 RTL 中生成一长串运算链。如果时钟周期较短,这就可能增加设计中的时延。默认情况下,Vitis HLS 工具会使用结合律和交换律来重新组织运算。如 最优化逻辑表达式 中所述,通过这种重新组织方式,可以创建平衡的树结构以缩短运算链,从而以增加硬件为代价来缩短设计时延。

表达式平衡会重新排列运算符以构造平衡的树结构并降低时延。

  • 对于整数运算,默认情况下表达式平衡处于开启状态,但可将其禁用。
  • 对于浮点运算,默认情况下表达式平衡处于关闭状态,但可将其启用。

set_directive_expression_balance 命令支持在指定作用域内开关这种表达式平衡方法。

语法

set_directive_expression_balance [OPTIONS] <location>
  • <location> 是应禁用或启用该表达式平衡的位置(格式为 function[/label])。

选项

-off
在指定位置关闭表达式平衡。
指定 set_directive_expression_balance 命令即可在指定作用域内启用表达式平衡。添加 -off 选项即可将其禁用。

示例

My_Func 函数内禁用表达式平衡。

set_directive_expression_balance -off My_Func

My_Func2 函数内显式启用表达式平衡。

set_directive_expression_balance My_Func2