Intel® Quartus® Prime Pro Edition User Guide: Scripting

ID 683432
Date 9/26/2022
Public

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

Document Table of Contents

4.1.28.22. get_names (::quartus::project)

The following table displays information for the get_names Tcl command:

Tcl Package and Version

Belongs to ::quartus::project

Syntax get_names [-h | -help] [-long_help] [-entity <wildcard> ] -filter <wildcard> [-library <wildcard> ] [-node_type <all|comb|reg|pin|input|output|bidir|hierarchy|mem|bus|qsf|state_machine|assigned|unassigned|all_reg|partition|virtual> ] [-observable_type <all|pre_synthesis|post_synthesis|post_fitter|post_asm|stp_pre_synthesis> ]
Arguments -h | -help Short help
-long_help Long help with examples and possible return values
-entity <wildcard> Option to specify the entity to get names from hierarchies instantiated by the entity
-filter <wildcard> Option to specify the node's full path name and/or wildcard character(s)
-library <wildcard> Option to specify the containing library
-node_type <all|comb|reg|pin|input|output|bidir|hierarchy|mem|bus|qsf|state_machine|assigned|unassigned|all_reg|partition|virtual> Option to filter based on the specified node type.
-observable_type <all|pre_synthesis|post_synthesis|post_fitter|post_asm|stp_pre_synthesis> Option to filter based on the specified observable type
Description
Returns a filtered output collection of all matching
node name IDs found in a compiled Quartus Prime project. 

To access each element of the output collection, use the Tcl 
command "foreach_in_collection". To see example usage, type 
"get_names -long_help" or "foreach_in_collection -long_help".

If the "-node_type" option is not specified, the default
value is "all". Similarly, if the "-observable_type" option
is not specified, the default value is "all".

The node type "pin" includes "input", "output", "bidir", "assinged" and "unassigned".
The node type "qsf" include names from qsf settings file.
The node type "all" includes all node types.
The node type "all_reg" includes all node types and register post-fitting

The value for "-observable_type" option can be one of 
the following:

Observable Type      Description
---------------      -----------------------------------
all                  Use post-Fitter information. If it is
                     not available, post-Synthesis
                     information is used. Otherwise,
                     pre-synthesis information is used if it
                     exists.
pre_synthesis        Use pre-synthesis information.
post_synthesis       Use post-synthesis information.
post_fitter          Use post-Fitter information.
post_asm             Use post-Assembler information. The
                     post-Assembler information is only supported
                     for designs using the HardCopy II device family.
stp_pre_synthesis    Use Signal Tap pre-synthesis information.
Example Usage
# Search for a single post-Fitter pin with the name accel and 
# make assignments
set accel_name_id [get_names -filter accel -node_type pin -observable_type post_fitter]
foreach_in_collection name_id $accel_name_id {

	# Get the full path name of the node
	set target [get_name_info -info full_path $name_id]

	# Set multicycle assignment
	set_multicycle_assignment -to $target 2

	# Set location assignment
	set_location_assignment -to $target Pin_E22
}
# Search for nodes of any post-Fitter node type with name length <= 5
# The default node type is "all"
set name_ids [get_names -filter ????? -observable_type post_fitter]
foreach_in_collection name_id $name_ids {

	# Print the name id
	puts $name_id

	# Print the node type
	puts [get_name_info -info node_type $name_id]

	# Print the full path (which excludes the current
	# focus entity from the path)
	puts [get_name_info -info full_path $name_id]
}
# Search for nodes of any post-Fitter node type that end in "eed".
# The default node type is "all"
set name_ids [get_names -filter *eed -observable_type post_fitter]
foreach_in_collection name_id $name_ids {

	# Print the name id
	puts $name_id

	# Print the node type
	puts [get_name_info -info node_type $name_id]

	# Print the full path (which excludes the current
	# focus entity from the path)
	puts [get_name_info -info full_path $name_id]
}
Return Value Code Name Code String Return
TCL_OK 0 INFO: Operation successful
TCL_ERROR 1 ERROR: Can't find active revision name. Make sure there is an open, active revision name.
TCL_ERROR 1 ERROR: Get names cannot return <string> because the name was found in a partition that's not the root partition. Refine your get_names search pattern to exclude child partitions
TCL_ERROR 1 ERROR: Compiler database does not exist for revision name: <string>. At the minimum, run Analysis & Synthesis (quartus_map) with the specified revision name before using this Tcl command.
TCL_ERROR 1 ERROR: Illegal node type: <string>. Specify all, comb, reg, pin, hierarchy, or bus.
TCL_ERROR 1 ERROR: Illegal observable type: <string>. Specify all, pre_synthesis, post_synthesis, or post_fitter.
TCL_ERROR 1 ERROR: You must open a project before you can use this command.
TCL_ERROR 1 ERROR: Post-Assembler compiler database does not exist for revision name: <string>. Run Assembler (quartus_asm) with the specified revision name before using this Tcl command.