Router Messaging - 2024.1 English

Vivado Design Suite User Guide: Implementation (UG904)

Document ID
Release Date
2024.1 English

The router provides helpful messages when it struggles to meet timing goals due to congestion or excessive hold violation fixing. The router commonly exhibits these symptoms when it struggles:

  • Excessive runtimes, on the order of hours per iteration
  • Large number of overlaps reported, in the hundreds or thousands
  • Setup and hold slacks become progressively worse, as seen in the Estimated Timing Summaries

The router might provide further warning messages when any of the following occurs:

  • Congestion is expected to have negative timing closure impact, which typically occurs when the congestion level is 5 or greater. Level 5 indicates a congested region measuring 32x32 (2^5 = 32).
  • The overall router hold-fix effort is expected to be very high, which impacts the ability to meet overall setup requirements.
  • Specific endpoint pins become both setup-critical and hold-critical and it is difficult or impossible to satisfy both. The message includes the names of up to ten pins for design analysis. In addition, the router also generates a tight_setup_hold_pins.txt text file that contains a list of the endpoint pins and the launch and capture clock.
    Tip: Use the Pin value from tight_setup_hold_pins.txt file and use the following for improving the timing paths.
    report_timing -delay_type min_max -nworst 4 -to [get_pins <pin>] -name timing_set_hold_pin_1
  • Specific CLBs experience high pin utilization or high routing resource utilization which results in local congestion. The messages will include the names of up to ten of the most congested CLBs.
  • In extreme cases with severe congestion, the router warns that congestion is preventing the router from routing all nets, and the router will prioritize the successful completion of routing all nets over timing optimizations.

When targeting UltraScale devices or later, the router generates a table showing initial estimated congestion when congestion might affect timing closure. The table does not show specific regions but gives a measure of different types of congestion for an overall assessment. The congestion is categorized into bins of Global (design-wide), Long (connections spanning several CLBs), and Short Congestion. The tables of different runs can be compared to determine which have better chances of meeting performance goals without being too negatively impacted by congestion.

INFO: [Route 35-449] Initial Estimated Congestion
|             | Global Congestion |   Long Congestion |  Short Congestion |
| Direction   |   Size |  % Tiles |   Size |  % Tiles |   Size |  % Tiles |
|___________  |________|__________|________|__________|________|__________|
|        NORTH|   32x32|      0.89|   32x32|      1.00|   32x32|      0.66|
|        SOUTH|   16x16|      0.68|   32x32|      0.75|   16x16|      0.53|
|         EAST|     4x4|      0.04|     8x8|      0.09|     4x4|      0.10|
|         WEST|     8x8|      0.18|     8x8|      0.09|   16x16|      0.50|

Report Design Analysis provides complexity and congestion analysis that can give further insight into the causes of congestion and potential solutions. The congestion reporting also includes an Average Initial Routing Congestion, which is not exactly the same as the congestion reported by the router, but can be analyzed against the pre-route design to determine which regions are causing problems. For further information on Report Design Analysis, refer to the Vivado Design Suite User Guide: Design Analysis and Closure Techniques (UG906).

Note: In some cases, when the design is congested, router completes while leaving a few nets that are not fully routed. In such cases, Vivado issues a critical warning instead of an error. This is done to ensure that the flow does not stop abruptly and a dcp is available for further debugging.

Users can change the severity of the error message using the following command: set_msg_config -id "Route 35-1" -new_severity "ERROR"

In order for the message severity change to take effect, it should be applied before running route_design for any message that is printed out during route_design. In a project flow, this can be added to the pre-route Tcl script.