Developer Guide

Intel® oneAPI DPC++/C++ Compiler Handbook for FPGAs

ID 785441
Date 6/24/2024
Public

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

Document Table of Contents

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 -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)]]

TIP:
Consider these other best practices for achieving low area: