MicroZed Chronicles: Quality of Result

Last week we explored how we can use the Design Analysis Report in Vivado to help us understand our design and achieve timing closure when we find issues during implementation.


This week we will explore the Quality of Result Assessment (QoRA) and Quality of Result Suggestions (QoRS) since both provide information that can be used to achieve timing closure.



Although we do not have to run the implementation all the way through, we need to have the implementation open in order to get the QoR Assessment or QoR Suggestions.


In this example, I had completed synthesis and the initial optimization stage of implementation. Running only the preliminary stages of the implementation saves considerable time and allows us to correct any issues earlier.


Let’s start by looking at the QoR Assessment. We can generate this report using the command below in the TCL window:


report_qor_assesment -file <filename>

By defining the file name, we can save the report as a text file rather than just examining the report in the TCL window.


The QoR Assessment Report will be split into three sections:

  • The overall assessment

  • QoR Assessment details

  • Methodology check details


The overall assessment assigns a score to the design which ranges from 1 to 5 and indicates the probably that the design will implement with no issues.


As is demonstrated in this example, the design will implement but the timing will not be achieved.


The detailed QoR Assessment provides information on the lower-level element which can be combined to determine the overall assessment score. Items are marked as REVIEW where the recommended guideline is exceeded.



Finally, the methodology check will report on design methodology which have not be correctly followed. In this case, we can see we have no constraints which define the relationship (or not) between clocks in the design.


Now having run the initial optimization (opt_design in TCL window) and obtained the QoRA, we can make any necessary updates required to the constraints, directives, devices, and speed grade. We can also make any changes required to the RTL and HLS modules within the design.


Of course, we can just run the remaining stages of the implementation and BIT file creation if the QoRA score is 5. However, on more complex designs, we will likely have to perform additional analysis to achieve implementation.


While the QoRA Report may have indicated issues, we should place the design (place_design in TCL window) and the obtain the Quality of Result Suggestions Report before we take any action.


report_qor_suggestions -file <filename>


The report will be organized with the suggestions of highest impact on the QoR at the top of the table.


A column titled Automatic is also included in the table. This will indicate if the suggestions will be automatically applied once the flow is rerun or if we need to take more manual intervention to correct the issue.


To make use of the QoR Suggestions, we need to save RQS files and add them into the project. We can write out the QoR Suggestions for the


write_qor_suggestions <filename.rqs>

The RQS suggestions need to be added into the project as utility sources.


In the case of this example, I needed to correct the constraints to correctly define the relationship between clocks.


Correcting this issue and rerunning the QoR Assessment shows the design assessment is now a 5 and the design should implement with no issues.

Using QoR Assessment and QoR Suggestions can significantly aid us in achieving timing closure in our developments.


Next time you face an issue regarding timing, I suggest you take a look at them because they may provide considerable help!

© 2020 Adiuvo Engineering & Training, Ltd.