Get_clock_fmax_info, Usage, Options – Altera Quartus II Scripting User Manual

Page 522: Description, Example, Get_clock_fmax_info –392

Advertising
background image

3–392

Chapter 3: Tcl Packages & Commands

sta

Quartus II Scripting Reference Manual

© July 2013

Altera Corporation

get_clock_fmax_info

Usage

get_clock_fmax_info

Options

None

Description

Reports potential Fmax for every clock in the design, regardless of the user-specified clock periods. Fmax
is only computed for paths where the source and destination registers or ports are driven by the same
clock. Paths of different clocks, including generated clocks, are ignored. For paths between a clock and its
inversion, Fmax is computed as if the rising and falling edges of the clock are scaled along with fmax, such
that the duty cycle (in terms of a percentage) is maintained.

Restricted Fmax considers hold timing in addition to setup timing, as well as minimum pulse and
minimum period restrictions. Similar to unrestricted Fmax, the restricted Fmax is computed as if the rising
and falling edges of the clock are scaled along with Fmax, such that the duty cycle (in terms of a
percentage) is maintained. Refer to hold timing reports (e.g., report_timing with the -hold option) or
minimum pulse width reports (report_min_pulse_width) for details about specific paths, registers, or
ports.

This command is similar to report_clock_fmax_summary, except that it returns the results as a Tcl list for
use in Tcl scripts. Each entry in the list represents one clock domain. Each entry is a Tcl list of the clock
name, fmax (MHz), and restricted Fmax (MHz).

Example

project_open my_project

# Always create the netlist first
create_timing_netlist
read_sdc my_project.sdc
update_timing_netlist

# Get domain summary object
set domain_list [get_clock_fmax_info]
foreach domain $domain_list {

set name [lindex $domain 0]
set fmax [lindex $domain 1]
set restricted_fmax [lindex $domain 2]

puts "Clock $name : Fmax = $fmax (Restricted Fmax = \
$restricted_fmax)"

}

# The following command is optional
delete_timing_netlist

project_close

Advertising