Step 3: Understanding the Report - 2020.2 English

Vivado Design Suite Tutorial: Design Analysis and Closure Techniques (UG938)

Document ID
UG938
Release Date
2021-02-04
Version
2020.2 English

This step explains the different sections of the generated QoR Suggestions report. On the left of the report window, you can navigate to the different sections of the report; on the right, more information is provided.

  1. In the generated report, under RQS Summary, select GENERATED. This brings up the report section shown in the following figure.

    The GENERATED section provides a list of all the suggestions that have just been generated at this stage of the current run. Each suggestion has a description that details the reason for the suggestion. Additionally, for each suggestion the following information is provided.

    Table 1. RQS Summary Column Description
    Item Description Comment
    GENERATED_AT This shows what stage of the design the suggestion was generated at. Typical values place_design or route_design As you progress through the design stages, the decisions that the tool makes are based on the information available at the time. Additionally, information accuracy increases after placement and again after routing.
    APPLICABLE_FOR This is the stage that must be rerun in order for the suggestion to take effect. Most suggestions are executed at either synth_design or place_design
    AUTOMATIC Details whether the suggestion is executed automatically or the user must manually intervene Automatic suggestions will either recommend a switch to the tool or a property to be added to a cell or net
    INCREMENTAL FRIENDLY Details if the suggestion is optimized for the incremental flow or not. Non-incremental friendly suggestions must be already present in the reference checkpoint. If you want to add non incremental friendly suggestions, an updated reference checkpoint must be used.

    Under the other sections of the report there are usually details about the individual suggestions that have been generated.

  2. Click on the RQS_XDC_1_1 hyperlink. This will take you to the details section for this suggestion.

    The suggestion description says that the timing constraint is too tight for the given path(s).

    The path has a large negative slack which would stand out in a timing report. Timing paths use net delays that are optimal, this gives the tools the correct order to place and route them. Close analysis shows this is a 600 MHz path with high logic levels. This is a path that will need to be fixed.

  3. Click on the back arrow button to go back to the GENERATED view.
  4. In the GENERATED view, click on RQS_TIMING-33_1 row. You can see this is an AUTOMATIC suggestions that is APPLICABLE_FOR synth_design. This tells us that you must rerun the synth_design command in order to make use of this suggestion.

    When you select the row in the RQS Summary view, the suggestion object is selected and the properties can be seen in the QoR Suggestion Properties window. If you examine the command property, you can confirm that generates a retiming forward property for synth_design.



  5. In the GENERATED view, click on RQS_TIMING-33_1 ID to take you to the details table for that suggestion. Careful examination of the Endpoint column will confirm that this is the same path that was mentioned for RQS_XDC-1.
  6. In the GENERATED view, you can see the remaining suggestions. Note that the RQS_CLOCK-9 suggestion is APPLICABLE_FOR = place_design. This is shown in the following figure:
  7. Note also RQS_TIMING-27. This suggestion uses BLOCK_SYNTH properties at synthesis and will apply to the entire module. You can determine the target cell by looking at the properties of the object as described in step 4.
  8. With all the boxes checked, click Add Suggestions to Project. When the report suggestion dialogue box is open, change the filename to rqs_report.rqs and select Copy sources to project as shown in the following figure.

  9. Examine the Sources window. You will see that the RQS file has been added to the utils_1 fileset. This ensures that the file is captured using the get_files command, project archives and recognized in the next step when we add the file to a run.