6.1. Balancing Target fMAX and Target II
The compiler attempts to optimize the component for different objectives for the scheduled fMAX depending on whether the fMAX target is set and whether the #pragma II is set for each of the loops.
The fMAX target is a strong suggestion and the compiler does not error out if it is not able to achieve this fMAX, whereas the #pragma II triggers an error if the compiler cannot achieve the requested II. The fMAX achieved for each block of code is shown in the Loops report.
The following table outlines the behavior of the scheduler in the Intel® HLS Compiler:
|Explicitly Specify fMAX?||Explicitly Specify II?||Compiler Behavior|
|No||No||Use heuristic to achieve best fMAX/II trade-off.|
|No||Yes||Best effort to achieve the II for the corresponding loop (may not achieve the best possible fMAX).|
|Yes||No||Best effort to achieve fMAX specified (may not achieve the best possible II).|
|Yes||Yes||Best effort to achieve the fMAX specified at the given II. The compiler errors out if it cannot achieve the requested II.|