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