To avoid issues shown in the previous figure (Function and Loop Pipelining), the
PIPELINE pragma has an optional command rewind
. This command enables the overlap
of the iterations of successive calls to the rewind
loop, when this loop
is the outermost construct of the top function or of a dataflow
process (and the dataflow region is called multiple times).
The following figure shows the operation when the rewind
option is used when
pipelining a loop. At the end of the loop iteration count, the
loop starts to re-execute. While it generally re-executes
immediately, a delay is possible and is shown and described in
the GUI.