Intel® High Level Synthesis Compiler Pro Edition: Best Practices Guide

ID 683152
Date 6/02/2023
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

5.10. Control Loop Interleaving

The initiation interval (II) of a loop is the statically determined number of cycles between successive iteration launches of a given loop invocation. However, the statically scheduled II may differ from the realized dynamic II when considering interleaving.

With loop interleaving, the dynamic II of a loop can be approximated by the static II of the loop divided by the degree of interleaving, that is, by the number of concurrent invocations of the loop that are in flight.

Interleaving allows the iterations of more than one invocation of a loop to execute in parallel, provided that the static II of that loop is greater than 1. By default, the maximum amount of interleaving for a loop is equal to the static II of that loop.

In the presence of interleaving, the dynamic II of a loop can be approximated by the static II of the loop divided by the degree of interleaving, that is, by the number of concurrent invocations of the loop that are in flight.

Review the following tutorial to learn more about loop interleaving and how to control it: <quartus_installdir>/hls/examples/tutorials/loop_controls/ max_interleaving.