Set exclusive or asynchronous clock groups
Syntax
set_clock_groups [‑name <arg>] [‑logically_exclusive]
[‑physically_exclusive] [‑asynchronous] [‑group <args>] [‑quiet]
[‑verbose]
Usage
Name | Description |
---|---|
[-name]
|
Name for clock grouping |
[-logically_exclusive]
|
Specify logically exclusive clock groups |
[-physically_exclusive]
|
Specify physically exclusive clock groups |
[-asynchronous]
|
Specify asynchronous clock groups |
[-group]
|
Clocks List |
[-quiet]
|
Ignore command errors |
[-verbose]
|
Suspend message limits during command execution |
Description
Define clocks, or groups of clocks, that are exclusive with or asynchronous to other clocks in the design. Exclusive clocks are not active at the same time, and paths between them can be ignored during timing analysis. Asynchronous clocks are clocks with no known phase relationship, which typically happens when they do not share the same primary clock or do not have a common period.
Using this command is similar to defining false path constraints for data paths moving between exclusive or asynchronous clock domains. See the Vivado Design Suite User Guide: Using Constraints (UG903) for more information.
If only one group is specified, the clocks in that group are asynchronous or exclusive to all other clocks in the design, but not to each other. If a new clock is created after the set_clock_groups
command, it is asynchronous to that group as well.
This command can also be used for multiple clocks that are derived from a single BUFGMUX as both of the clocks will not be active at the same time.
Arguments
-name
<group_name> - (Optional) Name of the clock group to be created. A name will be automatically assigned if one is not specified.
-logically_exclusive
- (Optional) The specified clocks are logically exclusive.
-logically_exclusive
, -physically_exclusive
and -asynchronous
are mutually exclusive arguments.
-physically_exclusive
- (Optional) The specified clocks are physically exclusive, and cannot exist in the design at the same time.
-asynchronous
- (Optional) The specified clocks are asynchronous to one another.
-group
<args> - (Optional) The list of clocks to be included in the clock group. Each group of clocks is exclusive with or asynchronous with the clocks specified in all other groups.
get_clocks
command.-quiet
- (Optional) Execute the command quietly, returning no messages from the command. The command also returns TCL_OK regardless of any errors encountered during execution.
-verbose
- (Optional) Temporarily override any message limits and return all messages from this command.
set_msg_config
command.Examples
Group all the elements driven by src_clk and sync_clk into separate clock groups. The clock groups are asynchronous to each other:
set_clock_groups -group src_clk -group sync_clk -asynchronous
The following example includes the generated clocks of the specified clocks, and adds those to the clock group:
set_clock_groups -group [get_clocks -include_generated_clocks src_clk] \
-group [get_clocks -include_generated_clocks sync_clk] -asynchronous
In this example, the specified clocks are grouped together, and are asynchronous to all other clocks in the design:
set_clock_groups -async -group [get_clocks {J_CLK U_CLK}]