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
opt_design, properties to design objects such
as cells and nets, and full implementation strategies.
report_qor_suggestions generates a report in either the
IDE or a text based report. It can be used for
- Generating and viewing new suggestions on the current design in memory
- Viewing existing suggestions that have been read in using 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
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:
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.