Intel® Quartus® Prime Pro Edition User Guide: Scripting

ID 683432
Date 4/03/2023
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.27.10. get_all_parameters (::quartus::project)

The following table displays information for the get_all_parameters Tcl command:

Tcl Package and Version

Belongs to ::quartus::project

Syntax get_all_parameters [-h | -help] [-long_help] [-entity <entity_name> ] [-fall] -name <name> [-rise] [-tag <data> ] [-to <destination> ]
Arguments -h | -help Short help
-long_help Long help with examples and possible return values
-entity <entity_name> Entity to which parameter belongs
-fall Option applies to falling edge
-name <name> Parameter name (string pattern is matched using Tcl string matching)
-rise Option applies to rising edge
-tag <data> Option to tag data to this assignment
-to <destination> Destination of the parameter (string pattern is matched using Tcl string matching)
Description
Returns a filtered output collection of all matching parameter 
values. To access each element of this output collection, use 
the Tcl command "foreach_in_collection". To see example usage, 
type "foreach_in_collection -long_help".

In version 5.0 of ::quartus::project package, two new
Tcl commands "get_all_assignments" and "get_assignment_info"
have been introduced to replace the "get_all_parameters"
command. These two new commands simplify the interface to retrieve
information about Quartus Prime Settings File (.qsf) assignments.
The "get_all_parameters" command is still supported for backward
compatibility. 

The "-name" option is not case sensitive.
The "-to" option is case sensitive.

If the "-to" argument is specified, the function returns 
the parameter values for the current entity. The values are 
retrieved from the PARAMETERS section of the entity. Otherwise,
the function returns the project-wide default parameter values
obtained from the DEFAULT_PARAMETERS section.

This Tcl command filters the parameter data found in the
Quartus Prime Settings File (.qsf) and outputs the data based on
the values specified by the "-name" and "-to" options. These
options can take string patterns containing special characters
from the set "*?\[]" as values. The values are matched using
Tcl string matching. Note that bus names are automatically
detected and do not need to be escaped. Bus names have the
following format:

<bus name>[<bus index>] or <bus name>[*]

The <bus name> portion is a string of alphanumeric characters.
The <bus index> portion is an integer greater than or equal to
zero or it can be the character "*" used for string matching.
Notice that the <bus index> is enclosed by the square
brackets "[" and "]". For example, "a[0]" and "a[*]" are
supported bus names and can be used as follows:

# To match index 0 of bus "a", type:
get_all_parameters -name * -to a[0]

# To match all indices of bus "a", type:
get_all_parameters -name * -to a[*]

All other uses of square brackets must be escaped if you do
not intend to use them as string patterns. For example,
to match indices 0, 1, and 2 of the bus "a", type:

get_all_parameters -name * -to "a[escape_brackets \[]\[0-2\][escape_brackets \]]"

For more information about escaping square brackets, type
"escape_brackets -h".

Each element of the collection is a list with the following 
format:
{ {<Destination>} {<Parameter name>} {<Parameter value>} {<Entity name>} {<Tag data>} }

If you tagged data by making assignments with the -tag option,
then the information will be displayed in the <Tag data> field.

Use the "-entity" option to retrieve the parameter values from
the specified entity. If the "-entity" option is not specified,
the value for the FOCUS_ENTITY_NAME assignment is used. If the
FOCUS_ENTITY_NAME value is not found, the revision name is used.
Example Usage
## Display all project-wide default parameter values
set parameter_col [get_all_parameters -name *]

foreach_in_collection parameter $parameter_col {

    ## Each element in the collection has the following
    ## format: { {} {<Parameter name>} {<Parameter value>} {} {} }
	set name [lindex $parameter 1]
	set value [lindex $parameter 2]

	## Now, display the content of the parameter
	puts "Parameter Name ($name)"
	puts "Parameter Value ($value)"
}

## Display all entity-specific parameter values
foreach_in_collection parameter [get_all_parameters -name * -to *] {

    ## Each element in the collection has the following
    ## format: { {Destination} {<Parameter name>} {<Parameter value>} {} {} }
	set dest [lindex $parameter 0]
	set name [lindex $parameter 1]
	set value [lindex $parameter 2]

	## Now, display the content of the parameter
	puts "Destination ($dest)"
	puts "Parameter Name ($name)"
	puts "Parameter Value ($value)"
}
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: Entity does not exist or uses illegal name characters: <string>. Specify a legal entity name.
TCL_ERROR 1 ERROR: You must open a project before you can use this command.
TCL_ERROR 1 ERROR: Illegal default parameter: <string>. Specify a legal default parameter name.
TCL_ERROR 1 ERROR: Illegal parameter: <string>. Specify a legal parameter name.
TCL_ERROR 1 ERROR: An unknown error has occured.