Intel® Quartus® Prime Pro Edition User Guide: Scripting

ID 683432
Date 6/20/2022
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

3.1.35.28. get_path (::quartus::sta)

The following table displays information for the get_path Tcl command:

Tcl Package and Version

Belongs to ::quartus::sta

Syntax get_path [-h | -help] [-long_help] [-fall_from <names> ] [-fall_through <names> ] [-fall_to <names> ] [-from <names> ] [-logic_depth] [-min_path] [-npaths <number> ] [-nworst <number> ] [-pairs_only] [-rise_from <names> ] [-rise_through <names> ] [-rise_to <names> ] [-show_routing] [-through <names> ] [-to <names> ]
Arguments -h | -help Short help
-long_help Long help with examples and possible return values
-fall_from <names> Valid sources (string patterns are matched using Tcl string matching)
-fall_through <names> Valid through nodes (string patterns are matched using Tcl string matching)
-fall_to <names> Valid destinations (string patterns are matched using Tcl string matching)
-from <names> Valid sources (string patterns are matched using Tcl string matching)
-logic_depth Option to display the logic depth instead of path delay
-min_path Find the minimum delay path(s)
-npaths <number> Specifies the number of paths to report. The default value is 1 or the same value as nworst, if nworst is specified. Value of 0 causes all paths to be reported (be wary that this may be slow)
-nworst <number> Specifies the maximum number of paths to report for each endpoint. If unspecified, there is no limit. If nworst is specified, but npaths is not, npaths defaults to the same value as nworst
-pairs_only When set, paths with the same start and end points are considered equivalent. Only the longest delay path for each unique combination is displayed.
-rise_from <names> Valid sources (string patterns are matched using Tcl string matching)
-rise_through <names> Valid through nodes (string patterns are matched using Tcl string matching)
-rise_to <names> Valid destinations (string patterns are matched using Tcl string matching)
-show_routing Option to display detailed routing in the path
-through <names> Valid through nodes (string patterns are matched using Tcl string matching)
-to <names> Valid destinations (string patterns are matched using Tcl string matching)
Description
Returns a collection of path objects for the longest delay paths 
between arbitrary points in the netlist.

This command behaves the same as the report_path 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.  

Note that get_path_info does not provide any clock-related
information, required points, or meaningful slack values, for
paths represented by the path objects returned by this function.

For help on the options shared with report_path, see help for the 
report_path command.
Example Usage
# Define a few helper procedures to print out points
# on a path, and the path itself

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 "Delay      : [ get_path_info $path -arrival_time]"
	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 longest delay paths,
# printing each as we go.
foreach_in_collection path [get_path -nworst 10] {
	print_path $path
	puts ""
}

delete_timing_netlist
project_close
Return Value Code Name Code String Return
TCL_OK 0 INFO: Operation successful
TCL_ERROR 1 ERROR: Option <string> has illegal value: <string>. Specify a legal option value.
TCL_ERROR 1 ERROR: Collection type '<string>' is not a valid type for a through collection. Valid collection types are 'pin' and 'net'
TCL_ERROR 1 ERROR: Timing netlist does not exist. Use create_timing_netlist to create a timing netlist.
TCL_ERROR 1 ERROR: Report database is not open