Altera SDC and TimeQuest API User Manual

Page 111

Advertising
background image

Chapter 2: SDC and TimeQuest API Package and Commands

2–101

sta

© December 2009

Altera Corporation

SDC and TimeQuest API Reference Manual

The -from and -to options return the ID of the nodes at the start and end, respecitvely, of the arrival path.
If there is no node, an empty string is returned. The "to" node remains the same, regardless of the level of
clock detail provided (that is, it is always the first node clocked by the "from" clock in the data arrival
path). The node ID may be used with the get_node_info function to obtain additional informaion about
the node.

The -from_clock and -to_clock options return the ID of the launching and latching clocks, respectively. If
there is no clock, an empty string is returned. Additional information on the clocks can be obtained using
the get_clock_info function.

The -arrival_points and -required_points options return a collection of point objects for the arrival and
required paths, respecitvely. By iterating over the collection, and using the get_point_info function, the
specific details of each portion of the path can be obtained.

If a path was created with additional clock detail, theelements of the clock path will be included in each
collection of points.

The values of the -from, -to, etc. are either collections or a Tcl list of wildcards used to create collections of
appropriate types. The values used must follow standard Tcl or TimeQuest-extension substitution rules.
See the help for use_timequest_style_escaping for details.

Path objects generated by get_path do not have clock information, required points, or meaningful slack
values.

Example

# Define a few helper procedures to print out points
# on a path, and the path itself
proc get_clock_string { path clk } {

set clk_str ""
set clk_id [ get_path_info $path -${clk}_clock ]

if { $clk_id ne "" } {
set clk_str [ get_clock_info $clk_id -name ]

if { [ get_path_info $path -${clk}_clock_is_inverted ] } {

append clk_str " (INVERTED)"
}
}

return $clk_str

}

proc print_point { point } {

set total [ get_point_info $point -total ]
set incr [ get_point_info $point -incr ]
set node_id [ get_point_info $point -node ]
set type [ get_point_info $point -type ]
set rf [ get_point_info $point -rise_fall]
set node_name ""

if { $node_id ne "" } {
set node_name [ get_node_info $node_id -name ]
}

puts \
[format "%10s %8s %2s %-6s %s" $total $incr $rf $type $node_name ]

}

proc print_path { path } {

puts "Slack : [ get_path_info $path -slack]"
puts "To Clock : [ get_clock_string $path to ]"

Advertising