The QoR Assessment
Details table summarizes design issues in five categories that
form the basis of the report_qor_assessment score:
- Utilization
- Netlist
- Clocking
- Congestion
- Timing
Each category receives an OK status when no sub-items are marked REVIEW. If any sub-item requires attention, the failing item appears with its threshold and current value. These thresholds are not hard limits, but exceeding them can make timing closure more difficult. Focus on items that exceed thresholds significantly or appear in multiple categories.
Items marked with an asterisk (*) do not directly affect the QoR score but can still impact timing closure and require review.
Utilization
Vivado checks utilization across the entire device, including SLR and
Pblock levels. Run report_qor_suggestions to reduce utilization if
needed.
Netlist
Netlist checks evaluate the logical structure and non-timing constraints. Vivado flags issues such as:
- Use of the
DONT_TOUCHproperty - High fanout nets with poor driver profiles
- Other netlist features that can challenge implementation
Clocking
Vivado checks for high clock skew on setup and hold paths.
- If a skew issue is detected, Vivado automatically includes path details in the report.
- In text mode, use the
‑csv_output_dir <directory>option to generate timing paths in CSV format. - Run
report_qor_suggestionsto receive automated fixes for skew problems.
Congestion
Vivado evaluates netlist structures that can lead to routing congestion. Congested region data becomes available after placement.
You can:
- Run
place_designandroute_designto assess congestion. - Use
report_qor_suggestionsto generate cell-specific congestion fixes.
Timing
Vivado reviews the 100 worst-case paths per clock group. It checks:
- Worst negative slack (WNS)
- Total negative slack (TNS)
- Worst hold slack (WHS)
- Total hold slack (THS)
To help identify potential failures earlier in the flow, Vivado also performs:
- Net budget checks: Adds conservative delay values for nets instead of estimated values.
- LUT budget checks: Replaces estimated LUT delays with more conservative values.
Review and resolve paths with negative slack early to reduce late-stage timing issues. Use the Challenging Timing Paths section in the Vivado IDE or export the data to a CSV file for further review.
If the design is routed and is either the UltraScale or UltraScale+ architectures, Vivado also checks whether the last mile flow used by Intelligent Design Runs can close timing. This analysis includes:
- Worst-case paths
- Slack before and after optimization
- Involved logic primitives
These details help determine whether the design can meet final timing goals.