Scripting

set_clock_groups


The following table displays information for the set_clock_groups Tcl command:

Tcl Package and Version

Belongs to ::quartus::sdc 1.5

Syntax

set_clock_groups [-h | -help] [-long_help] [-asynchronous] [-exclusive] -group <names> [-logically_exclusive] [-physically_exclusive]

Arguments

-h | -help

Short help

-long_help

Long help with examples and possible return values

-asynchronous

Specify mutually exclusive clocks (same as the -exclusive option). Exists for compatibility.

-exclusive

Specify mutually exclusive clocks

-group <names>

Valid destinations (string patterns are matched using Tcl string matching)

-logically_exclusive

Specify logically exclusive clocks (same as the -exclusive option). Exists for compatibility.

-physically_exclusive

Specify physically exclusive clocks (same as the -exclusive option). Exists for compatibility.

Description

Clock groups provide a quick and convenient way to specify which
clocks are not related.  Asynchronous clocks are those that are
completely unrelated (e.g., have different ideal clock sources).
Exclusive or logically exclusive clocks are not actively used in the 
design at the same time (e.g., multiplexed clocks), but the clock 
signals may physically exist on-chip at the same time and therefore 
may still influence each other through crosstalk effects.  Physically 
exclusive clocks, in contrast, cannot be physically present in the 
device at the same time (e.g., multiple clocks defined on the same 
clock pin).    

TimeQuest does not currently analyze crosstalk explicitly.  Instead, 
the timing models use extra guard bands to account for any potential 
crosstalk-induced delays.  As a result, TimeQuest currently treats 
exclusive, logically_exclusive, and physically_exclusive clock groups 
the same.  However, you should not use the -exclusive option if you 
intend to migrate your design to HardCopy.  The back-end tools used 
in the HardCopy Design Center model crosstalk explicitly and do not 
support -exclusive.  You should specify -logically_exclusive or 
-physically_exclusive as appropriate for your design.  If you do not 
know which option is most appropriate for your design, specify 
-logically_exclusive, which is the more conservative option.     

The result of set_clock_groups is that all clocks in any group are cut
from all clocks in every other group.  This command is equivalent to
calling set_false_path from each clock in every group to each clock in
every other group and vice versa, making set_clock_groups easier to
specify for cutting clock domains. The use of a single -group option
tells TimeQuest to cut this group of clocks from all other clocks in
the design, including clocks that are created in the future.

Example Usage

project_open top
create_timing_netlist
create_clock -period 10.000 -name clkA [get_ports sysclk[0]]
create_clock -period 10.000 -name clkB [get_ports sysclk[1]]

# Set clkA and clkB to be mutually exclusive clocks.
set_clock_groups -logically_exclusive -group {clkA} -group {clkB}

# The previous line is equivalent to the following two commands.
set_false_path -from [get_clocks clkA] -to [get_clocks clkB]
set_false_path -from [get_clocks clkB] -to [get_clocks clkA]

Return Value

Code Name

Code

String Return

TCL_OK 0 INFO: Operation successful