Compile Options - 2023.2 English

Vitis High-Level Synthesis User Guide (UG1399)

Document ID
UG1399
Release Date
2023-12-18
Version
2023.2 English

The syn.compile commands specify the default behavior for compilation of the HLS component.

syn.compile.design_size_max_warning
Specifies the design size that triggers a warning related to slow compilation or poor QoR.
syn.compile.design_size_maximum_warning=300000
syn.compile.enable_auto_rewind
When true enables an alternative HLS implementation for pipelined loops which uses automatic loop rewind as described in the Rewinding Pipelined Loops for Performance section of the Vitis High-Level Synthesis User Guide (UG1399) for additional information.
syn.compile.enable_auto_rewind=1
syn.compile.ignore_long_run_time
Disable long run time warning.
syn.compile.ignore_long_run_time=1
syn.compile.name_max_length <arg>
The name_max_length option will specify the maximum length of function names. If the length is over the threshold, the last part of the name will be truncated.
syn.compile.name_max_length=13
syn.compile.no_signed_zeros
The no_signed_zeros option will ignore the signedness of floating point zero so that compiler can do aggressive optimizations on floating point operations.
syn.compile.no_signed_zeros=1
syn.compile.pipeline_flush_in_task arg
Specifies that pipelines in hls::tasks will be flushing (flp) by default to reduce the probability of deadlocks in C/RTL Co-simulation. This option applies to pipelines that achieve an II=1 with the default option of ii1. However, you can also specify it as applying always to enable flushing pipelines in either hls::tasks or dataflow, or can be completely disabled using never. Refer to Flushing Pipelines and Pipeline Types in Vitis High-Level Synthesis User Guide(UG1399) for more information.
Important: Flushing pipelines (flp) are compatible with the rewind option specified in the PIPELINE pragma or directive when the syn.compile.enable_auto_rewind option is also specified.
always
Always make pipelines flushable in hls::tasks or dataflow regardless of II.
never
Never make pipeline flushable unless specifically overridden by other directives or pragmas.
ii1
Make pipelines that achieve II=1 flushable in hls::tasks. This is the default setting.
syn.compile.pipeline_flush_in_task=always
syn.compile.pipeline_loops arg
Loops with a tripcount equal to or greater than the specified value will be pipelined automatically.
syn.compile.pipeline_loops=20
syn.compile.pipeline_style arg
Set default pipeline style, this is a preference not a hard constraint. Refer to Flushing Pipelines and Pipeline Types inVitis High-Level Synthesis User Guide (UG1399) for more information. The three styles are: stallable (stp), flushable (flp), and free-running (frp). The default is free-running.
syn.compile.pipeline_style=flp
syn.compile.pragma_strict_mode
Enable errors instead of warnings for unrecognized and improper pragma syntax.
syn.compile.pragma_strict_mode=1
syn.compile.unsafe_math_optimizations
The unsafe_math_optimizations option will ignore the signedness of floating point zero and enable associative floating point operations so that compiler can do aggressive optimizations on floating point operations.
syn.compile.unsafe_math_optimizations=1
Important: Using this option might change the result of any floating point calculations and result in a mismatch in C/RTL co-simulation. Ensure your test bench is tolerant of differences and checks for a margin of difference, not exact values.