config_compile - 2021.2 Chinese

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

Document ID
UG1399
Release Date
2021-12-15
Version
2021.2 Chinese

描述

配置前端编译的默认行为。

语法

config_compile [OPTIONS]

选项

-enable_auto_rewind
设为 TRUE 时,使用流水打拍循环的备用 HLS 实现,此实现支持自动循环回绕。接受的值为 TRUE 或 FALSE。默认值为 TRUE。
-name_max_length <value>
指定函数名称的最大长度。如果名称长度超过阈值,则名称的最后一部分将被截断,并按需添加数字以使名称唯一。默认值为 256。
-no_signed_zeros[=true|false]
忽略浮点 0 值的符号类型,以便编译器对浮点运算执行主动最优化。默认设置为关 (off)。
重要: 使用该选项可能改变任意浮点运算的结果,导致 C/RTL 协同仿真不匹配。请确保测试激励文件容许差异,并检查差异的裕度,而不是精确值。
-pipeline_loops <threshold>
用于指定自动执行循环流水打拍时,所使用的下限。默认值为 64,导致 Vitis HLS 以不低于 64 的循环次数来自动执行循环流水打拍。

如果应用该选项,则将对所含循环次数高于阈值的最内层循环进行流水打拍,或者如果最内层循环的循环次数小于或等于阈值,则对其父循环执行流水打拍。如果最内层的循环无父循环,则忽略最内层的循环的循环次数,并对其进行流水打拍。

提示: 阈值越高,对父循环进行流水打拍的可能性更高,并且运行时间将增加。
-pipeline_style <stp | flp | frp>
指定 Vitis HLS 基于以上指定的 -pipeline_loops 阈值,用于 PIPELINE 编译指示或指令的流水线的默认类型,或者用于循环流水打拍的默认类型。如需了解有关流水线风格的更多信息,请参阅 刷新流水线
重要: 这是提示,而非硬性约束。工具会检查设计启用流水打拍的条件。部分循环可能不遵循特定风格,如果需要,工具会还原为默认风格 (stp)。
stp
停止流水线。仅当输入数据可用时才运行,否则停滞。这是默认设置,也是 Vitis HLS 用于循环和函数流水打拍的流水线类型。无需可刷新流水线时,请使用此类型。例如,没有导致停滞的性能或死锁问题时即可用。
flp
可刷新流水线架构:当输入数据不可用时刷新,随后停滞并等待新数据。
frp
自由运行的可刷新流水线。即使输入数据不可用也可运行。如果由于流水线控制信号扇出减少而导致需要更好的时序,或者如果需要提升性能以免死锁,则可使用此类型。但此流水线风格可能功耗更大,因为即使没有数据也会对流水线寄存器进行计时。
-pragma_strict_mode[=true|false]
为位置错误或使用错误的编译指示启用错误消息。
-pre_tcl <arg>
指定在启动 csynth_design 命令前运行的 Tcl 脚本。
-unsafe_math_optimizations[=true|false]
忽略浮点 0 值的符号类型并启用关联的浮点运算,以便编译器对浮点运算执行主动最优化。默认为 OFF。
注释: 使用该选项可能改变任意浮点运算的结果,导致 C/RTL 协同仿真不匹配。请确保测试激励文件容许差异,并检查差异的裕度,而不是精确值。

示例

对所含循环次数高于 30 的最内层循环进行流水打拍,或者如果最内层循环的循环次数小于或等于 30,则对其父循环进行流水打拍。

config_compile -pipeline_loops 30

忽略浮点 0 值的符号类型:

config_compile -no_signed_zeros

忽略浮点 0 值的符号类型并启用关联的浮点运算:

config_compile -unsafe_math_optimizations