set_multicycle_assignment (::quartus::project)
The following table displays information for the set_multicycle_assignment Tcl command:
| Tcl Package and Version |
Belongs to ::quartus::project 3.0 |
|||
| Syntax | set_multicycle_assignment [-h | -help] [-long_help] [-comment <comment> ] [-disable] [-end] [-from <from_list> ] [-hold] [-remove] [-setup] [-start] [-to <to_list> ] <path_multiplier> | |||
| Arguments | -h | -help | Short help | ||
| -long_help | Long help with examples and possible return values | |||
| -comment <comment> | Comment | |||
| -disable | Option to disable multicycle assignment | |||
| -end | Option to indicate that destination clock cycles should be considered for path multiplier | |||
| -from <from_list> | List of clock names, node names, and/or timegroup names that represent start or source points of multicycle path, for example, {node1 node2 ...} | |||
| -hold | Option to indicate that path multiplier is meant for hold | |||
| -remove | Option to remove multicycle assignment | |||
| -setup | Option to indicate that path multiplier is meant for setup | |||
| -start | Option to indicate that source clock cycles must be considered for path multiplier | |||
| -to <to_list> | List of clock names, node names, and/or timegroup names that represent end or destination points of multicycle path, for example, {node1 node2 ...} | |||
| <path_multiplier> | Multicycle path multiplier | |||
| Description |
Specifies that the given timing paths have multicycle setup
or hold delays with the number of cycles specified by the
"-path_multiplier" option.
If neither the "-setup" nor "-hold" options are used, the
"-setup" option is the default option. If neither the "-start"
nor "-end" options are used, the "-end" option is the default
option.
You must use either the "-from <from_list>" or "-to <to_list>"
option.
Note that Quartus Prime timing analysis is optimized to use
timegroups for timing constraints instead of a list of nodes.
Of the following two methods to make multicycle assignments,
method (1) is the optimal method.
(1) timegroup "src_group" -add_member "s1"
timegroup "src_group" -add_member "s2"
timegroup "src_group" -add_member "s3"
timegroup "dst_group" -add_member "d1"
timegroup "dst_group" -add_member "d2"
set_multicycle_assignment -from "src_group" -to "dst_group"
(2) set_multicycle_assignment -from {s1 s2 s3} -to {d1 d2}
For more information about timegroups, type "timegroup -h".
The meaning of multicycle hold differs between the Quartus Prime
software timing analysis and the Synopsys PrimeTime software
timing analysis. Refer to the online Help of each software for
more information.
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 |
## Multicycle "setup" from reg1 and reg2 to any destination points timegroup "src_group" -add_member reg1 timegroup "src_group" -add_member reg2 set_multicycle_assignment 2 -setup -from "src_group" ## or timegroup "src_group" -add_member reg1 timegroup "src_group" -add_member reg2 timegroup "dst_group" -add_member * set_multicycle_assignment 2 -setup -from "src_group" -to "dst_group" ## Source multicycle "setup" to reg1 and reg2 from any source points timegroup "dst_group" -add_member reg1 timegroup "dst_group" -add_member reg2 set_multicycle_assignment 2 -setup -start -to "dst_group" ## or timegroup "dst_group" -add_member reg1 timegroup "dst_group" -add_member reg2 timegroup "src_group" -add_member * set_multicycle_assignment 2 -setup -start -from "src_group" -to "dst_group" ## Source multicycle "hold" from src1 to dst1 and dst2 and ## from src2 to dst1 and dst2 timegroup "src_group" -add_member src1 timegroup "src_group" -add_member src2 timegroup "dst_group" -add_member dst1 timegroup "dst_group" -add_member dst2 set_multicycle_assignment 2 -hold -from "src_group" -to "dst_group" ## Source multicycle "hold" from registers clocked by clk1 ## to registers clocked by clk2 ## Timegroups are useful for making assignments to ## more than one node. Timegroups are not necessary ## for making an assignment from only one clock node ## to another clock set_multicycle_assignment 2 -hold -start -from clk1 -to clk2 |
|||
| 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: Invalid path multiplier value: <string>. Specify a positive integer value. | ||
| 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. | ||