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 registers, ports, pins, or cells
must be provided. get_clocks returns a collection of all the clocks that target these 
nodes, or if these nodes are not clock targets, all the clocks that drive these nodes.
This option cannot be used along with the clock name filter.  
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.