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 pragma, do the following:
- 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/Mtimes 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 two 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.-
<N> - Number of times the enclosing function or loop is executed.
-
<M> - 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
...
}