group_path - 2023.2 English

Vivado Design Suite Tcl Command Reference Guide (UG835)

Document ID
Release Date
2023.2 English

Groups paths for cost function calculations


group_path [‑name <args>] [‑weight <arg>] [‑default] [‑from <args>]
    [‑to <args>] [‑through <args>] [‑quiet] [‑verbose]


Name Description
[-name] The name of group, can be multiple names
[-weight] Cost function Weight, Valid values are 1, 2 Default: 1.0
[-default] Restore path to its default group
[-from] Filter by paths starting at these path startpoints
[-to] Filter by paths terminating at these path endpoints
[-through] Consider paths through pins, cells or nets
[-quiet] Ignore command errors
[-verbose] Suspend message limits during command execution




This command lets you group a set of paths for cost function calculations, primarily for timing analysis. The Vivado™ tool automatically defines path groups of clock signals for special handling. User-defined path groups can be specified generally as from a startpoint, or to an endpoint, or as specific paths from-through-to specific points. Once a path group has been created, some timing analysis can be performed against it with the report_timing command.

You can specify a weight for an existing path group of clocks, and let the placement, routing, and optimization engines prioritize those paths first.

To remove a path from a path group, you must specify the -default option to remove the path from a named path group and restore the path to the standard "default" path group.

This option has the following limitations:

  • For paths originally assigned by the tool to a clock path group, the -default option will revert those paths to the clock path group instead of reverting them to the "default" path group.
  • group_path -default and reset_path are completely independent commands. The reset_path command doesn't affect path groups, and the group_path command doesn't affect other timing exceptions .

The path groups currently defined in a design can be found by using the get_path_groups command.

Note: This command operates silently and does not return direct feedback of its operation.


-name <arg> - (Optional) Specifies the name of the path group. If the path group name already exists, the specified paths will be added to the existing group.

-weight [ 1 | 2 ] - (Optional) Specify the priority of real clock path groups with a value of 1 for standard priority, or 2 for high priority. High priority path groups are processed first during placement, routing, and physical optimization. The default is 1, or standard priority.

Important: The -weight option is only supported for use with clock path groups, and requires the use of -name to specify the path group. It is not supported for use with user-defined path groups, or with -from/-through/-to options.

-default - (Optional) Restores a path group back to the "default" group, which contains all paths not assigned to other group. This option cannot be specified with -name or -weight. The path must be specified by -from/-through/-to as it was initially defined when assigned to a path group.

-from <args> - (Optional) Include paths starting at the specified startpoints. The startpoints can be specified as pins, ports, or clocks.

-through <element_names> - (Optional) Include paths routed through the specified pins, cells, or nets.

-to <path_names> - (Optional) Include all paths to the specified endpoints. Endpoints can be specified as pins, ports, or clocks.

-quiet - (Optional) Execute the command quietly, returning no messages from the command. The command also returns TCL_OK regardless of any errors encountered during execution.
Note: Any errors encountered on the command-line, while launching the command, will be returned. Only errors occurring inside the command will be trapped.
-verbose - (Optional) Temporarily override any message limits and return all messages from this command.
Note: Message limits can be defined with the set_msg_config command.


The following example creates a group named signal_grp to the specified registers' endpoints matching *signal*reg/D, and then reports timing on the specified group:

group_path -to [get_pins *signal*reg/D -hierarchical] -name signal_grp
report_timing -group signal_grp

The path group signal_grp is also returned by the get_path_groups command:

get_path_groups signal_grp

The following example removes the path from the signal_grp, restoring it to the default path group:

group_path -to [get_pins *signal*reg/D -hierarchical] -default