We have learned through previous blog entries how Report QoR Assessment (RQA) and Report QoR Suggestions (RQS) can be used to improve the overall design analysis and timing closure experience of your design.
This blog will cover how to use RQA and RQS together in the implementation process using one specific design example.
RQA provides an assessment score for the design and guidance on the next steps, and RQS provides recommendations and strategies for improvement.
Both RQA and RQS require a synthesized or implemented design for analysis. They look for trouble spots within the design, then assess whether the design is likely to meet its design goals.
To illustrate, we have chosen a design where we run the RQA after initial opt_design. The RQA report looks similar to the following:
Let’s look at the assessment score summary table (flow guidance) and understand what each section means before we jump into assessment details.
The initial assessment score for this design is 3, which means it has a small chance of success. Generally, a score of 3 and above means that it should be possible for RQS to improve the design and so we are going to proceed further.
If the score was 1 or 2, it would be very unlikely that the design would meet the requirements to complete the implementation steps. The advice in that case is to go back and fix the problem areas.
Moving on to the Methodology severity, the summary shows that we have some critical warnings. We can choose to either resolve these warnings or waive them.
For this blog entry, we are waiving them. Note you can also run full methodology checks using report methodology and fix all of the warnings before proceeding further.
The next sections are ML strategy compatibility and incremental compatibility. ML Strategies are available only after PnR is complete. Incremental flow should also be used after PnR is complete and is typically recommended when there are no key issues with the design and the design is at the final stages of timing closure. We can still go ahead and run ML-Strategies and incremental compatibility even if these are not recommended by the Vivado tool.
The last section is the Recommended Flow stage. This section gives us an idea of what needs to be done before moving on to the next steps. In this case, we see Review methodology warnings and can fix or waive them. As mentioned previously, we are going to waive them for now.
If no specific guidance is given under the recommended flow stage, you can always go ahead and continue to improve the RQA score by running RQS.
QoR assessment details:
As can be seen in the report, the table gives information on the WNS as well as many other utilization metrics.
The initial WNS for this design is –0.580 ns.
The status column gives us a sneak peek of what needs to be reviewed and fixed. The threshold numbers should be considered as a guide number and not a hard rule to abide by. If you focus on the numbers, you can see that although many areas are marked for review, Memory LUTs is over 2x the threshold.
Once we have the initial RQA score, we can run report_qor_suggestions at any stage and apply them either manually or automatically to improve the design.
We recommend initially running RQS after place_design because clocking suggestions and skew numbers are accurate at this stage. Also, congestion suggestions come into play after place_design.
Let's assume that we are moving forward in the implementation flow and run opt_design and place_design and then run report_qor_suggestions.
The suggestions report summary would look similar to the following:
In the report we can see that there are multiple suggestions for utilization, clocking, timing, and congestion, and the table also mentions the stages these suggestions are generated at and applicable for.
You will also notice that these suggestions are either automatic, meaning they get picked up and applied once you rerun the flow, or manual, meaning that these suggestions will need human intervention.
Note that the suggestions are organized in the table such that the ones at the top have the highest impact on the RQA score for your design.
We must run place_design at this stage with these suggestions to pick up the improvements. If you pay close attention to the RQS suggestions table some suggestions are applicable for synth_design. Many of the synthesis suggestions overlap with the place_design suggestions, so you can run either one.
The flow picks up on it if you run place_design and do not run synthesis. (for example, RQS_CONG-3_2-1 and RQS_CONG3_1-1) In this case, you do not need to run synthesis if you have run place_design.
The automatic suggestions that are shown in the above table are put into action in the stages where they are applicable, and we can then run the RQA again to check the score.
The RQA score after applying the suggestions at opt_design and place_design is still 3 as shown in the table.
However notice that the WNS score has improved to –0.21 ns after applying the suggestions.
Because the assessment table is so compact, you can compare this table to the previous one and see the improvements in the design parameters. Also, notice that the flow guidance in this case is recommending that you run report_qor_suggestions.
We can see that the RQA score at the post-route stage is 4 for the design. The WNS is now –0.11ns and there is a significant reduction in the memory LUTs compared to the first report.
After we applied the recommended RQS suggestions while moving ahead with the implementation steps, the score improved from 3 at opt_design to 4 at route_design.
If you repeat the process of adding more suggestions, the QoR parameters will keep on improving.
Note that the RQA score is not granular enough to show all of the improvements in congestion, timing, utilization, and clocking.
For example, the below table shows the RQA score of 4 but the WNS number has improved from –0.11ns to –0.02ns.
The summary table above shows that the design is now ML-Strategy and incremental compatible. ML-Strategies are available only when PnR is complete, all of the critical design modifications have been made, and the design is run with all directives set to default or explore.
You can enable the incremental flow with the RQS suggestions when the design is very close to timing closure and the RQA score is 4 or 5. In our example, the design which now has an RQA score of 4 is both incremental compatible and ML-Strategy compatible. In cases like these, the tool will recommend the best option for you.
The final RQA score after applying ML strategies is 5 and the assessment score looks as follows:
Observe how RQA and RQS together helped us to improve the QoR and improve the RQA score from 3 to 4 and finally, for the last mile of timing closure it brought the ML-Strategies and incremental compatibility into consideration to close in on the design.
We have learned through this Design example how RQS and RQA together help us to clean up clocking, congestion, and timing issues in the design.
Then when we are very close to design closure, ML-based strategies and incremental runs help us with the final stretch.
To learn more about RQS and RQA in detail, the best places to do a deep dive are the User Guide ((UG906) for more understanding and (UG835) for command references.