The execution mode of the HLS design refers to the way the design works as a block (or module) both with regard to itself and the functions within the block, or in relationship with other blocks modules, or outside software that addresses the block. These modes are determined by block control protocols assigned to the HLS design as described in Block-Level Control Protocols, and by the internal structure of the HLS design as described in Abstract Parallel Programming Model for HLS.
Execution modes of kernels include:
- Overlap
- Lets the next execution of a new transaction begin before the current transaction is complete. Pipelined execution allows overlapping block runs to begin processing additional data as soon as the design is ready.
- Sequential
- Requires the current transaction to complete before a new transaction can be started.
- Auto-Restarting
- Auto-restart mode lets the HLS design automatically restart at the end of each execution. Auto-restarting is the approach for data-driven TLP designs, but can also be implemented in control-driven TLP designs as described in Auto-Restarting Mode.