Example – Altera Quartus II Scripting User Manual
Page 549

Chapter 3: Tcl Packages & Commands
3–419
sta
© July 2013
Altera Corporation
Quartus II Scripting Reference Manual
This command behaves the same as the report_timing command. However, instead of reporting the paths,
it returns a Tcl collection of path objects. You can retrieve path object data using the get_path_info and
get_point_info commands.
For help on the options shared with report_timing, see the report_timing help page.
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 ]"
puts "From Clock : [ get_clock_string $path from]"
puts ""
puts \
[format "%10s %8s %-2s %-6s %s" "Total" "Incr" "RF" "Type" "Name"]
puts \
"=================================================================="
foreach_in_collection pt [ get_path_info $path -arrival_points ] {
print_point $pt
}
}
project_open my_project
# Always create the netlist first
create_timing_netlist
read_sdc my_project.sdc
update_timing_netlist
# And now simply iterate over the 10 worst setup paths, printing each