# get nets of the top 10 setup-critical paths
set preRoutes [get_nets -of [get_timing_paths -max_paths 10]]
# get nets of the top 10 hold-critical paths
lappend preRoutes [get_nets -of [get_timing_paths -hold -max_paths 10]]
# route $preRoutes based on timing constraints
route_design -nets [get_nets $preRoutes] -auto_delay
# preserve the routing for $preRoutes and continue with the rest of the design
route_design -preserve
As in example 2, a few critical nets are routed first, followed by routing of
the entire design. The difference is the use of -auto_delay
instead of -delay
. The
router performs timing-driven routing of the critical nets, which sacrifices some
compile time for greater accuracy. This is particularly useful for situations in
which nets are involved in both setup-critical and hold-critical paths, and the
routes must fall within a delay range to meet both setup and hold requirements.