描述
有时,C/C++ 代码是以一连串运算来编写的,故而会在 RTL 中生成一长串运算链。如果时钟周期较短,这就可能增加设计中的时延。默认情况下,Vitis HLS 工具会使用结合律和交换律来重新组织运算。如 最优化逻辑表达式 中所述,通过这种重新组织方式,可以创建平衡的树结构以缩短运算链,从而以增加硬件为代价来缩短设计时延。
表达式平衡会重新排列运算符以构造平衡的树结构并降低时延。
- 对于整数运算,默认情况下表达式平衡处于开启状态,但可将其禁用。
- 对于浮点运算,默认情况下表达式平衡处于关闭状态,但可将其启用。
set_directive_expression_balance
命令支持在指定作用域内开关这种表达式平衡方法。
语法
set_directive_expression_balance [OPTIONS] <location>
-
<location>
是应禁用或启用该表达式平衡的位置(格式为function[/label]
)。
选项
-
-off
- 在指定位置关闭表达式平衡。
示例
在 My_Func
函数内禁用表达式平衡。
set_directive_expression_balance -off My_Func
在 My_Func2
函数内显式启用表达式平衡。
set_directive_expression_balance My_Func2