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.29.1. assignment_group (::quartus::project_ui)

The following table displays information for the assignment_group Tcl command:

Tcl Package and Version

Belongs to ::quartus::project_ui

Syntax assignment_group [-h | -help] [-long_help] [-add_exception <name> ] [-add_member <name> ] [-comment <comment> ] [-disable] [-fall] [-get_exceptions] [-get_members] [-overwrite] [-remove] [-remove_exception <name> ] [-remove_member <name> ] [-rise] [-tag <data> ] <group_name>
Arguments -h | -help Short help
-long_help Long help with examples and possible return values
-add_exception <name> Tcl list of exception names to add
-add_member <name> Tcl list of member names to add
-comment <comment> Comment
-disable Option to disable assignment
-fall Option applies to falling edge
-get_exceptions Option to get collection of assignment group exceptions
-get_members Option to get collection of assignment group members
-overwrite Option to overwrite existing assignment group with the same group name
-remove Option to remove assignment group
-remove_exception <name> Tcl list of exception names to remove
-remove_member <name> Tcl list of member names to remove
-rise Option applies to rising edge
-tag <data> Option to tag data to this assignment
<group_name> Assignment group name
Description
Adds, removes, gets members of, or gets exceptions to an
assignment group.

The "assignment_group" command replaces the deprecated
"timegroup" command.

An assignment group is a custom group of registers and pins. You can 
use the "-add_member" option to specify register or pin names 
you want to include in the assignment group. You can use the 
"-add_exception" option to specify names you want to exclude 
from the assignment group.

You can specify the names using wildcards, that is, using "?" 
or "*". For example, to add all registers and pins that start 
with a "b" except those that start with "b|c|" to a particular
assignment group named "group_b", type:

assignment_group "group_b" -add_member "b*" -add_exception "b|c|*"

To remove members or exceptions from a assignment group, use the 
"-remove_member" or "-remove_exception" options respectively.

The "-get_members" option returns a collection of members in 
the assignment group. The "-get_exceptions" option returns a collection 
of exceptions to the assignment group. To access each element of the 
collection, use the Tcl command "foreach_in_collection". To see 
example usage, type "assignment_group -long_help" or
"foreach_in_collection -long_help".

Specifying registers and pins in terms of an assignment group
allows you to set timing constraints easily. For example, to make
a multicycle assignment from nodes "a1" and "a2" to nodes "b1", 
"b2", and "b3", type the following:

assignment_group "group_a" -add_member [list "a1" "a2"]
assignment_group "group_b" -add_member [list "b1" "b2" "b3"]

set_multicycle_assignment -from "group_a" -to "group_b" 2

This command sets a multicycle assignment from every member of 
"group_a" to every member of "group_b". Quartus Prime timing 
analysis is optimized to use assignment groups in handling timing 
constraints.

To disable assignment group assignments for the entire group,
use the "-disable" option, for example:

assignment_group "group_a" -disable

To disable a particular assignment group assignment, use the
"-disable" option with the "-add_member" or "-add_exception"
options, for example:

assignment_group "group_a" -add_member "m1" -disable
assignment_group "group_a" -add_exception "e1" -disable

Assignments created or modified by using this Tcl command are 
not saved to the Quartus Prime Settings File (.qsf) unless you
explicitly call one of the following two Tcl commands:

1) export_assignments
2) project_close (unless "-dont_export_assignments" is specified)

These two Tcl commands reside in the ::quartus::project Tcl 
package. You must save assignment changes before you run 
Quartus Prime command-line executables. Note, however, that 
the Tcl commands "execute_flow" and "execute_module" (part 
of the ::quartus::flow Tcl package) automatically call 
"export_assignments" before they run command-line executables.
Example Usage
# Make timing cut assignment from nodes starting
# with "r" except those starting with "r|s|"
# and except those starting with "r|t|"
# to nodes "t1", "t2", and "t3"
assignment_group "tg1" -add_member "r*" -add_exception "r|s|*"
assignment_group "tg1" -add_exception "r|t|*"

assignment_group "tg2" -add_member [list "t1" "t2" "t3"]

set_timing_cut_assignment -from "group_a" -to "group_b" 2

# Remove the "t1" from a particular assignment group named "tg2"
assignment_group "tg2" -remove_member "t1"

# 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 exceptions 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
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: Can't set revision: <string>. Make sure there is an open, active revision name.
TCL_ERROR 1 ERROR: You must open a project before you can use this command.
TCL_ERROR 1 ERROR: Found two options: -<string> and -<string>. Choose one of the options.
TCL_ERROR 1 ERROR: Revision does not exist: <string>. Specify a legal revision name using the -<string> option.