AN 903: Accelerating Timing Closure: in Intel® Quartus® Prime Pro Edition

ID 683664
Date 2/25/2021
Public

1.2.2.2.1. Enabling or Disabling Fractal Synthesis

For Intel® Stratix® 10 and Intel® Agilex™ devices, fractal synthesis optimization runs automatically for small multipliers (any A*B statement in Verilog HDL or VHDL where bit-width of the operands is 7 or less). You can also disable automatic fractal synthesis for small multipliers for these devices using either of the following methods:

  • In RTL, set the DSP multstyle, as "Multstyle Verilog HDL Synthesis Attribute" describes. For example:
    (* multstyle = "dsp" *) module foo(...);
    module foo(..) /* synthesis multstyle = "dsp" */;
  • In the .qsf file, add as an assignment as follows:
    set_instance_assignment -name DSP_BLOCK_BALANCING_IMPLEMENTATION \
         DSP_BLOCKS -to r

In addition, for Intel® Stratix® 10, Intel® Agilex™ , Intel® Arria® 10, and Intel® Cyclone® 10 GX devices, you can enable fractal synthesis globally or for specific multipliers with the Fractal Synthesis GUI option or the corresponding FRACTAL_SYNTHESIS .qsf assignment:

  • In RTL, use altera_attribute as follows:
    (* altera_attribute = "-name FRACTAL_SYNTHESIS ON" *)
  • In the .qsf file, add as an assignment as follows:
    set_global_assignment -name FRACTAL_SYNTHESIS ON -entity <module name>

In the user interface, follow these steps:

  1. Click Assignments > Assignment Editor.
  2. Select Fractal Synthesis for Assignment Name, On for the Value, the arithmetic-intensive entity name for Entity, and an instance name in the To column. You can enter a wildcard (*) for To to assign all instances of the entity.
    Figure 17. Fractal Synthesis Assignment in Assignment Editor