get_scopes - 2023.2 English

Vivado Design Suite Tcl Command Reference Guide (UG835)

Document ID
Release Date
2023.2 English

Get a list of children HDL scopes of a scope


get_scopes [‑filter <arg>] [‑regexp] [‑nocase] [‑r] [‑quiet] [‑verbose]


Returns HDL scope objects from the given arguments.


Name Description
[-filter] filters <patterns> according to the specified property-matching expressions
[-regexp] interprets <patterns> using regular expressions
[-nocase] only when regexp is used, performs a case insensitive match
[-r] only when a glob or regular expression pattern is used, descends recursively into children scopes to search for <patterns>
[-quiet] Ignore command errors
[-verbose] Suspend message limits during command execution
[<patterns>] the pattern strings to search for scopes. Default: * (all children scopes)



Get a list of children HDL scopes of the current or specified scope

This command returns a list of scope objects, or returns an error.


-r - (Optional) Recursively return the children scopes of the current scope.

-regexp - (Optional) Specifies that the search <patterns> are written as regular expressions. Both search <patterns> and -filter expressions must be written as regular expressions when this argument is used. Xilinx® regular expression Tcl commands are always anchored to the start of the search string. You can add ".*" to the beginning or end of a search string to widen the search to include a substring. See for help with regular expression syntax.
Note: The Tcl built-in command regexp is not anchored, and works as a standard Tcl command. For more information refer to

-nocase - (Optional) Perform case-insensitive matching when a pattern has been specified. This argument applies to the use of -regexp only.

-filter <args> - (Optional) Filter the returned results list with the specified expression. The -filter argument filters the list of objects returned by get_scopes based on property values on the scope objects. You can find the properties on an object with the report_property or list_property commands.

The filter search pattern should be quoted to avoid having to escape special characters. String matching is case-sensitive and is always anchored to the start and to the end of the search string. The wildcard “*” character can be used at the beginning or at the end of a search string to widen the search to include a substring of the property value.
Note: The filter returns an object if a specified property exists on the object, and the specified pattern matches the property value on the object. In the case of the "*" wildcard character, this will match a property with a defined value of "".
For string comparison, the specific operators that can be used in filter expressions are "equal" (==), "not-equal" (!=), "match" (=~), and "not-match" (!~). Numeric comparison operators <, >, <=, and >= can also be used. Multiple filter expressions can be joined by AND and OR (&& and ||). The following gets input pins that do NOT contain the “RESET” substring within their name:
get_pins * -filter {DIRECTION == IN && NAME !~ "*RESET*"}
Boolean (bool) type properties can be directly evaluated in filter expressions as true or not true:
-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.

<patterns> - (Optional) Match Scope objects against the specified patterns. The default pattern is the wildcard '*' which gets a list of all Scopes that are children of the current scope. More than one pattern can be specified to find multiple Scope objects based on different search criteria.

Note: You must enclose multiple search patterns in braces {} to present the list as a single element.


The following example recursively returns all of the children scopes of the specified scope:

get_scopes -r /testbench/dut