Intel® High Level Synthesis Compiler Pro Edition: Reference Manual

ID 683349
Date 4/01/2024
Public
Document Table of Contents

9. Component Target Frequency

You can specify component target frequency either in the i++ command by specifying the --clock option or by using the hls_scheduler_target_fmax_mhz component attribute. The component attribute takes priority over the command option.

For details about the --clock option, see Command Options Affecting Compiling.

For details about the hls_scheduler_target_fmax_mhz component attribute, see hls_scheduler_target_fmax_mhz Component Attribute.

The two options for setting target frequency are functionally equivalent except their scopes differ:
  • The --clock option applies to all components compiled with the invocation of the i++ command that contains the --clock option.
  • The hls_scheduler_target_fmax_mhz component attribute applies only to the component or task function that has the attribute.
To learn more about the attribute and how it interacts with the loop pragma, review the following tutorial:
<quartus_installdir>/hls/examples/tutorials/best_practices/set_component_target_fmax
If you use both the i++ command --clock option and the hls_scheduler_target_fmax_mhz component attribute, the component attribute takes priority. For example, you can compile the following code with the i++ … --clock=300MHz command:
component int test1(){ 
 … 
} 

hls_scheduler_target_fmax_mhz(200) 
component int test2(){ 
 … 
} 

The compiler schedules component test1 at 300 MHz (from the command option) and component test2 at 200 MHz (from the component attribute).

Important!

Setting the target fMAX determines the pipelining effort at the compilation stage. Compiling with Quartus Prime software reports the achievable fMAX value for your components. This value is often different from the value you specified.

You can lower the --clock value to reduce the latency of your design at the expense of reducing the fMAX of your component.