Developer Guide

Intel oneAPI FPGA Handbook

ID 785441
Date 2/07/2024
Public

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

Document Table of Contents

Balanced Throughput-Area Trade-Offs Flow

This flow attempts to balance throughput-area trade-offs. Specifically, the compiler might disable throughput-area trade-off heuristics that increase the throughput at the cost of area in this flow.

To compile your design with the maximum throughput without area optimization heuristics flow, pass the -⁠Xsoptimize=throughput-area-balanced flag to the icpx command, as shown in the following example:

icpx -fsycl -fintelfpga -Xshardware -Xsoptimize=throughput-area-balanced <source_file>.cpp

The balanced throughput-area trade-offs flow applies the following compiler controls for on-chip memories:

  • Do not create extra banks
  • Do not create extra replicates
  • Do not create extra private copies
The following table shows how you can manually override these underlying controls:
Description User Control
Number of banks [[intel::numbanks(N)]]
Number of replicates [[intel::max_replicates(N)]]
Number of private copies [[intel::private_copies(N)]]
NOTE:

These manual controls are beneficial in overriding one or more of the underlying controls without affecting other underlying controls that the -⁠Xsoptimize=throughput-area-balanced compiler flag implies.