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
/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 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
...
}