Quartus® Prime Pro Edition User Guide: Design Compilation

ID 683236
Date 9/30/2024
Public
Document Table of Contents

1.12.6.1. Enabling or Disabling Fractal Synthesis

For Stratix® 10 and Agilex™ family 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 Stratix® 10, Arria® 10, Cyclone® 10 GX, and Agilex™ family 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 111. Fractal Synthesis Assignment in Assignment Editor