get_clocks (::quartus::sdc)

The following table displays information for the get_clocks Tcl command:

Tcl Package and Version

Belongs to ::quartus::sdc 1.5

Syntax get_clocks [-h | -help] [-long_help] [-include_generated_clocks] [-nocase] [-nowarn] [-of_objects <object_collection> ] [ <filter> ]
Arguments -h | -help Short help
-long_help Long help with examples and possible return values
-include_generated_clocks Includes generated clocks derived from the matched clocks
-nocase Specifies the matching of node names to be case-insensitive
-nowarn Do not issue warning messages about unmatched patterns
-of_objects <object_collection> Returns all clocks that target (defined on) or drive (determine data frequency of) the nodes in the collection.
<filter> Valid destinations (string patterns are matched using Tcl string matching)
Description
Returns a collection of clocks in the design. Use a clock collection
as the -from/to argument of a command (such as set_multicycle_path)
to refer to all nodes driven by the clocks in the collection.

# The following multicycle constraint applies to all paths ending at registers
# driven by clk
set_multicycle_path -to [get_clocks clk] 2

If a filter, which is a Tcl list of wildcards and must follow 
standard Tcl or Timing Analyzer-extension substitution rules, is specified, then 
get_clocks returns all clocks whose names match the filter. See the help for
use_timing_analyzer_style_escaping for filter rules.

If -of_objects option is used, then a collection of nodes (or pins / nets / ports / registers)
must be provided. get_clocks returns a collection of all clocks that drive or target
these nodes. This option cannot be used along with the clock name filter. Note that if -of_objects
is used on a register that is a clock target, then the clock that targets that register
will be returned.
Example Usage
# get clocks that begin with 'c' or 'C', and print out their names and periods: 
set clocks [get_clocks c* -nocase]
foreach_in_collection clk $clocks {
    set name [get_clock_info -name $clk]
    set period [get_clock_info -period $clk]
    puts "$name: $period"
}

# getting the clock that targets a port, and its generated clock: 
create_clock -name myClock -period 10.000 [get_ports CLK_100]
create_generated_clock -name myGenClock -divide_by 2 -source [get_ports CLK_100] [get_pins reg|clk] 
get_clocks -of_objects [get_ports CLK_100] -include_generated_clocks

# display the name of the clocks that drive registers beginning with 'reg_':
foreach_in_collection reg [get_clocks -of_objects [get_registers reg_*]] {
    puts [get_clock_info -name $reg]
}
Return Value Code Name Code String Return
TCL_OK 0 INFO: Operation successful
TCL_ERROR 1 ERROR: Timing netlist does not exist. Use create_timing_netlist to create a timing netlist.