Report QoR Suggestions - 2021.2 English

Vivado Design Suite User Guide: Design Analysis and Closure Techniques (UG906)

Document ID
Release Date
2021.2 English

The report_qor_suggestions command is the principal command used when working with suggestion objects. Suggestion objects are used to improve the ability of a design to meet timing by adding switches to commands such as opt_design, properties to design objects such as cells and nets, and full implementation strategies. report_qor_suggestions generates a report in either the Vivado® IDE or a text based report. It can be used for both:

  • Generating and viewing new suggestions on the current design in memory
  • Viewing existing suggestions that have been read in using the read_qor_suggestions command

The report_qor_suggestions command can be run on a design loaded in memory at any time after synthesis. The suggestion objects generated consider many design characteristics and generate suggestions in the following categories:

  • Clocking
  • XDC
  • Utilization
  • Congestion
  • Timing
  • Strategies

The generated suggestions must then be fed back into the flow to take effect. Design stages are typically required to be rerun, as is shown in the following figure:

Figure 1. Suggestion Flow

Prior to generating new suggestions, a design must be loaded into memory. report_qor_suggestions can be run at any stage of the flow after synthesis. The returned suggestions are ordered based on importance, with the most important listed at the top of the report.

It only reports suggestions required to improve the QoR of the design. Sometimes placement or routing information is required before a suggestion can be issued. In addition, there are restrictions to ensure only suggestions that contain necessary design changes are generated.

  • Clocking suggestions generally need to be generated after placement, but there are some exceptions to this when accurate information is available before placement. With a few exceptions, they require a failing timing path.
  • Timing suggestions are generated by examining the top 100 failing timing paths per clock group.
  • Utilization suggestions are generated when it judges that the resource targeted by the suggestion is overused and does not result in an increase of a critical resource. These can be reported at any design stage.
  • Congestion is only reported after placement. If a design is routed and timing is met, it does not report congestion suggestions as it is proven these are not having an impact on timing closure.
  • Strategies, the final category, contains implementation strategies. These are generated using machine learning algorithms that analyze many design characteristics. The flow when using these objects is slightly different to that described above and is outlined in more detail later in this chapter.