Developer Guide
Intel oneAPI DPC++/C++ Compiler Handbook for Intel FPGAs
A newer version of this document is available. Customers should click here to go to the newest version.
Visible to Intel only — GUID: GUID-719F6D81-DB8B-4259-8186-AE6133C13614
Visible to Intel only — GUID: GUID-719F6D81-DB8B-4259-8186-AE6133C13614
Minimum Area Flow
The minimum area flow attempts to minimize your kernel area at the cost of decreased fMAX. Use this flow to optimize area-sensitive designs.
To compile your design with the minimum area flow, pass the -Xsoptimize=area flag to the icpx command, as shown in the following example:
icpx -fsycl -fintelfpga -Xshardware -Xsoptimize=area <source_file>.cpp
The following table lists underlying controls enabled by the minimum area flow, as well as their equivalent user controls. You can use these same user control to manually override the underlying controls:
Description | Equivalent User Control |
---|---|
Disable hyper-optimized handshaking on Agilex™ 7 and Stratix® 10 devices | -Xshyper-optimized-handshaking=off |
Do not create replicates | [[intel::max_replicates(1)]] |
Do not create private copies | [[intel::private_copies(1)]] |
Set RAM stitching to use minimum number of RAMs | [[intel::force_pow2_depth(0)]] |
- Use stall-enable clusters if you see stall-free clusters with larger exit FIFOs in the reports.
- Disable loop pipelining if loop-carried dependencies result in an initiation interval (II) that is equal or close to the latency of a given iteration.
- Recompile with a lower fMAX target if the achieved fMAX was lower than the default family fmax or your originally targeted fMAX.
- Disable interleaving with [[intel::max_interleaving(1)]] if the loop has an II greater than 1.
- Narrow the width of data by using variable-precision data types.