The config_compile
configuration enables loops to
be pipelined automatically based on the iteration count. This configuration is accessed
through the menu .
The pipeline_loops
option sets the iteration
limit. All loops with an iteration count below this limit are automatically pipelined. The
default is 64.
Given the following example code:
for (y = 0; y < 480; y++) {
for (x = 0; x < 640; x++) {
for (i = 0; i < 5; i++) {
// do something 5 times
… ...
}
}
}
If the pipeline_loops
option is set to 6, the innermost
for
loop in the above code snippet will be automatically
pipelined. This is equivalent to the following code snippet:
for (y = 0; y < 480; y++) {
for (x = 0; x < 640; x++) {
for (i = 0; i < 5; i++) {
#pragma HLS PIPELINE II=1
// do something 5 times
… ...
}
}
}
If there are loops in the design for which you do not want to use automatic
pipelining, apply the PIPELINE directive with the off
option to that loop. The off
option prevents automatic
loop pipelining.
Important:
Vitis HLS
applies the
config_compile pipeline_loops
option after
performing all user-specified directives. For example, if Vitis HLS applies
a user-specified UNROLL directive to a loop, the loop is first unrolled, and automatic loop
pipelining cannot be applied.