report_qor_suggestions
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
- Timing
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.