Intel® Quartus® Prime Pro Edition User Guide: Scripting

ID 683432
Date 12/13/2021

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents get_pins (::quartus::sdc)

The following table displays information for the get_pins Tcl command:

Tcl Package and Version

Belongs to ::quartus::sdc

Syntax get_pins [-h | -help] [-long_help] [-compatibility_mode] [-hierarchical] [-no_duplicates] [-nocase] [-nowarn] [ <filter> ]
Arguments -h | -help Short help
-long_help Long help with examples and possible return values
-compatibility_mode Use simple Tcl matching
-hierarchical Specifies use of a hierarchical searching method
-no_duplicates Do not match duplicated pin names
-nocase Specifies case-insensitive node name matching
-nowarn Do not issue warning messages about unmatched patterns
<filter> Valid destinations (string patterns are matched using Tcl string matching)
Returns a collection of pins in the design. All pin names in the
collection match the specified pattern. Wildcards can be used to
select multiple pins at once.

There are three Tcl string matching schemes available with this
command: the default method, the -hierarchical option, and the
-compatibility_mode option.

By default, pipe characters are used to separate one hierarchy level
from the next. They are treated as special characters and are taken
into account when string matching with wildcards is performed. When
the default matching scheme is enabled, the specified pattern is
matched against absolute pin names: the names that include the entire
hierarchical path. All hierarchy levels in the pattern are matched
level by level. Pin names of the form <absolute full cell name>|<pin
suffix> are used for matching. Note that a full cell name can contain
multiple pipe characters in it to reflect the hierarchy. Any included
wildcards refer to only one hierarchical level. For example, "*|*" and
"*|*|*" produce different collections since they refer to the highest
hierarchical level and second highest hierarchical level respectively.

When using the -hierarchical matching scheme, pipe characters are
treated as special characters and are taken into account when string
matching with wildcards is performed. This matching scheme forces the
search to proceed recursively through the hierarchy. The specified
pattern is matched against the relative pin names: the immediate names
that do not include any of the hierarchy information.  Pin names of
the form <relative short cell name>|<pin suffix> are used for
matching. Note that a short cell name cannot contain pipe
characters. Any included wildcards are expanded to match the relative
pin names.  For example, "*" and "*|*" match exactly the same pins
since the former is expanded into the latter.

The -compatibility_mode matching scheme uses simple Tcl string matching
on full, absolute cell names. Pipe characters are not treated as special
characters when used with wildcards.

The default matching scheme returns not only pins whose names match
the specified filter, but also pins duplicated from these pins (refers
to pins are automatically generated by Quartus from the pins).  Use
-no_duplicates option to not include duplicated pins.

The filter for the collection is a Tcl list of wildcards, and must
follow standard Tcl or Timing Analyzer-extension substitution rules. See 
help for the use_timing_analyzer_style_escaping command for details.
Example Usage
# Get regout pin of "reg" cell
get_pins -nocase reg|regout
# Create a collection of all pins of "reg" cell
get_pins reg|*
# Create a collection of all pins on the highest hierarachical level
set mycollection [get_pins *]
# Output pin names.
foreach_in_collection pin $mycollection {
    puts [get_pin_info -name $pin]
# Create a collection of all pins in the design
set fullcollection [get_pins -hierarchical *]
# Output pin IDs and names.
foreach_in_collection pin $fullcollection {
    puts -nonewline $pin
    puts -nonewline ": "
    puts [get_pin_info -name $pin]
Return Value Code Name Code String Return
TCL_OK 0 INFO: Operation successful
TCL_ERROR 1 ERROR: Timing netlist does not exist. Use create_timing_netlist to create a timing netlist.

Did you find the information on this page useful?

Characters remaining:

Feedback Message