Quartus® Prime Pro Edition User Guide: Design Optimization

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

5.4.5. Evaluate Other Reports and Adjust Settings Accordingly

Difficulty Packing Design

In the Fitter Resource Section, under the Resource Usage Summary, review the Difficulty Packing Design report. The Difficulty Packing Design report details the effort level (low, medium, or high) of the Fitter to fit the design into the device, partition, and Logic Lock region.

As the effort level of Difficulty Packing Design increases, timing closure gets harder. Going from medium to high can result in significant drop in performance or increase in compile time. Consider reducing logic to reduce packing difficulty.

Review Ignored Assignments

The Compilation Report includes details of any assignments that the Fitter ignores. The Fitter may ignore assignments if they refer to nodes names that change, but assignments are not updated accordingly. Make sure that the Fitter is not ignoring any valid assignments.

Review Non-Default Settings

The Synthesis and Fitter reports list all settings set to a non-default value during the compilation. Review the non-default settings to ensure benefit.

Review the Design Floorplan

Use the Chip Planner for reviewing placement. You can use the Chip Planner to locate hierarchical entities, using colors for each located entity in the floorplan. Look for logic that seems out of place, based on where you expect it to be

For example, logic that interfaces with I/Os should be close to the I/Os, and logic that interfaces with an IP or memory should be close to the IP or memory.

Figure 33. Floorplan with Color-Coded Entities

The following notes describe use of the visualization in Floorplan with Color-Coded Entities:

  • The green block is spread apart. Check to see if those paths are failing timing, and if so, what connects to that module that could affect placement.
  • The blue and aqua blocks are spread out and mixed together. Check if connections between the two modules contribute to this.
  • The pink logic at the bottom must interface with I/Os at the bottom edge. Check fan-in and fan-out of a highlighted module by using the buttons on the task bar. Look for signals that go a long way across the chip and see if they are contributing to timing failures.
  • Check global signal usage for signals that affect logic placement, and verify if the Fitter placed logic feeding a global buffer close to the buffer and away from related logic. Use settings like high fan-out on non-global resource to pull logic together.
  • Check for routing congestion. The Fitter spreads out logic in highly congested areas, making the design harder to route.

Adjust Placement Effort

You can increase the Assignments > Settings > Compiler Settings > Advanced Settings (Fitter) > Placement Effort Multiplier value to spend additional compilation time and effort in Place stage of the Fitter.

Adjust the multiplier after reviewing and optimizing other settings and RTL. Try an increased value, up to 4, and reset to default if performance or compile time does not improve.

Adjust Fitter Effort

Fitter Optimization mode settings allow you to specify whether the Compiler focuses optimization efforts for performance, resource utilization, power, or compile times.

By default, the Fitter Optimization mode is set to Balanced (Normal flow) mode, which reduces Fitter effort and compilation time as soon as timing requirements are met. You can optionally select another Optimization mode to target performance, area, routability, power, or compile time.

To increase Fitter effort further, you can also enable the Assignments > Settings > Compiler Settings > Advanced Settings (Fitter) > Fitter Effort option. The default Auto Fit setting reduces Fitter effort once timing requirements are met. Standard Fit (highest effort) setting uses maximum effort regardless of the design's requirements, leading to higher compilation time and more timing margin.

Review Timing Constraints

Ensure that you constrain all clocks with the correct frequency requirements.

To confirm the proper application of timing constraints, run the Design Assistant and then review and correct any timing constraint rule violations. In addition, you can review the Ignored Constraints report to locate any constraints assigned to invalid node names in the design. These invalid node names are most commonly caused by changes that you make in the design hierarchy that are not yet reflected in the constraint. Similarly, review the Report Unconstrained Paths report to locate unconstrained paths. Add constraints as necessary so that the Compiler can fully optimize the design.