foreach_in_collection (::quartus::misc)
The following table displays information for the foreach_in_collection Tcl command:
| Tcl Package and Version |
Belongs to ::quartus::misc 1.0 |
|||
| Syntax | foreach_in_collection [-h | -help] [-long_help] <variable_name> <collection> <body> | |||
| Arguments | -h | -help | Short help | ||
| -long_help | Long help with examples and possible return values | |||
| <variable_name> | Variable name | |||
| <collection> | Collection | |||
| <body> | Body | |||
| Description |
Accesses each element of a collection.
Some Tcl commands return a collection. The following table shows
examples of commands that return a collection:
Tcl package Tcl commands (returning a collection)
-------------------------- ----------------------------------------
::quartus::project get_all_quartus_defaults
get_all_global_assignments
get_all_instance_assignments
get_all_parameters
get_names
assignment_group (only for the "-get_members"
and "-get_exceptions" options)
::quartus::chip_editor get_nodes
get_iports
get_oports
The command is used in the following format:
foreach_in_collection <variable name> <collection> {
# This is the body of "foreach_in_collection"
...
}
Unlike a Tcl list, a collection is a container specific to the Quartus
II software, whose elements can be accessed by using the
"foreach_in_collection" command.
|
|||
| Example Usage |
## Get a collection of global assignments
set collection_of_global_assignments [get_all_global_assignments -name *]
## Display the collection string representation
puts $collection_of_global_assignments
## Iterate through the collection and display
## the information for each global assignment
foreach_in_collection global $collection_of_global_assignments {
set sect_id [lindex $global 0]
set name [lindex $global 1]
set value [lindex $global 2]
## Now, display the content of the global assignment
puts "Section ID ($sect_id)"
puts "Assignment Name ($name)"
puts "Assignment Value ($value)"
}
## Get a collection of instance assignments
set collection_of_instance_assignments [get_all_instance_assignments -name *]
## Display the collection string representation
puts $collection_of_instance_assignments
## Iterate through the collection and display
## the information for each instance assignment
foreach_in_collection instance $collection_of_instance_assignments {
set sect_id [lindex $instance 0]
set src [lindex $instance 1]
set dest [lindex $instance 2]
set name [lindex $instance 3]
set value [lindex $instance 4]
## Now, display the content of the instance assignment
puts "Section ID ($sect_id)"
puts "Source ($src)"
puts "Destination ($dest)"
puts "Assignment Name ($name)"
puts "Assignment Value ($value)"
}
## Get a collection of parameters
set collection_of_parameters [get_all_parameters -name *]
## Display the collection string representation
puts $collection_of_parameters
## Iterate through the collection and display
## the information for each parameter
foreach_in_collection parameter $collection_of_parameters {
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)"
}
## Get a collection of all node name ids from a successful
## compilation
set collection_of_name_ids [get_names -filter *]
## Display the collection string representation
puts $collection_of_name_ids
## Iterate through the collection and display
## the information for each name id
foreach_in_collection name_id $collection_of_name_ids {
set parent_name_id [get_name_info -info parent_name_id $name_id]
set base_name [get_name_info -info base_name $name_id]
set entity_name [get_name_info -info entity_name $name_id]
set instance_name [get_name_info -info instance_name $name_id]
set full_path [get_name_info -info full_path $name_id]
set short_full_path [get_name_info -info short_full_path $name_id]
set node_type [get_name_info -info node_type $name_id]
set creator [get_name_info -info creator $name_id]
set signaltapii [get_name_info -info signaltapii $name_id]
set file_location [get_name_info -info file_location $name_id]
## Now, display information about the name
puts "Parent Name Id ($parent_name_id)"
puts "Base Name ($base_name)"
puts "Entity Name ($entity_name)"
puts "Instance Name ($instance_name)"
puts "Full Path ($full_path)"
puts "Short Full Path ($short_full_path)"
puts "Node Type ($node_type)"
puts "Creator ($creator)"
puts "Signaltapii ($signaltapii)"
puts "File location ($file_location)"
}
# Display the members of a particular assignment group named "tg1"
foreach_in_collection member [assignment_group "tg1" -get_members] {
# Print the name of the member
puts $member
}
# Display the exception to a particular assignment group named "tg1"
foreach_in_collection exception [assignment_group "tg1" -get_exceptions] {
# Print the name of the exception
puts $exception
}
|
|||
| Return Value | Code Name | Code | String Return | |
| TCL_OK | 0 | INFO: Operation successful | ||