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

ID 683152
Date 6/02/2023

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

Document Table of Contents

3.2.6. Control Path

While the datapath is the path on which computations occur, the control path is the path of logic that the compiler adds to manage the flow of data through the datapath.

Control paths include controls such as the following:
  • Handshaking flow control

    Handshaking ensures that one part of your design is ready and able to accept data from another part of your design.

  • Loop control

    Loop controls control the flow of data through the hardware generated for loops in your code, including any loop carried dependencies.

  • Branch control

    Branch controls implement conditional statements in your code. Branch control can include parallelizing parts of conditional statements to improve performance.

The control path also consumes FPGA area, and the compiler uses techniques like clustering the datapath to help reduce the control path and save area. To learn about clustering, refer to Clustering the Datapath.