pragma HLS occurrence
Description
When pipelining functions or loops, the OCCURRENCE
pragma specifies that
the code in a region is executed less frequently than the code in the enclosing function or
loop. This allows the code that is executed less often to be pipelined at a slower rate, and
potentially shared within the top-level pipeline. To determine the OCCURRENCE:
- A loop iterates N times.
- However, part of the loop body is enabled by a conditional statement, and as a result only executes M times, where N is an integer multiple of M.
- The conditional code has an occurrence that is N/M times slower than the rest of the loop body.
For example, in a loop that executes 10 times, a conditional statement within the loop only executes 2 times has an occurrence of 5 (or 10/2).
Identifying a region with the OCCURRENCE
pragma allows the functions and
loops in that region to be pipelined with a higher initiation interval that is slower than
the enclosing function or loop.
Syntax
Place the pragma in the C source within a region of code.
#pragma HLS occurrence cycle=<int>
Where:
cycle=<int>
: Specifies the occurrence N/M, where:- N is the number of times the enclosing function or loop is executed .
- M is the number of times the conditional region is executed. IMPORTANT!: N must be an integer multiple of M.
Examples
In this example, the region Cond_Region
has an occurrence of 4 (it executes at a
rate four times less often than the surrounding code that contains it):
Cond_Region: {
#pragma HLS occurrence cycle=4
...
}
See Also
- pragma HLS pipeline
- Vivado Design Suite User Guide: High-Level Synthesis (UG902)