Intel® Quartus® Prime Pro Edition User Guide: Scripting

ID 683432
Date 12/13/2021
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.29.31. get_point_info (::quartus::sta)

The following table displays information for the get_point_info Tcl command:

Tcl Package and Version

Belongs to ::quartus::sta

Syntax get_point_info [-h | -help] [-long_help] [-edge] [-incremental_delay] [-location] [-node] [-number_of_fanout] [-rise_fall] [-total_delay] [-type] <point_ref>
Arguments -h | -help Short help
-long_help Long help with examples and possible return values
-edge Return the edge ID for the edge associated with this point. If the point has no edge, this returns an empty string
-incremental_delay Return the incremental delay through this point
-location Return a string indicating the location of the point's node, if there is one, else an empty string
-node Return the node ID for the node associated with this point. If the point has no node, this returns an empty string
-number_of_fanout Return the number of fanout that this point has in the netlist
-rise_fall Return a string indicating the rise_fall type of this point. Return values are r, f, rr, rf, fr, ff, or an empty string for undefined
-total_delay Return the total delay of the path at this point. This includes the incremental delay for the point itself
-type Return a string indicating the type of the point
<point_ref> Point object
Description

Returns information about the referenced timing point object. References to path objects can be generated using the get_path_info function. A point object is the equivalent of a row in a path in the output from report_timing. The -node option returns a node ID for the corrsponding node in the path. For points that do not have a corresponding node (such as points for the lumped clock network delay, launch time, latch time, individual routing elements, etc.), the node ID is an empty string. A non-empty node ID can be used in conjunction with the get_node_info function to obtain additional information about the node. The -edge option returns an edge ID for the corresponding edge in the path. Only points of type "ic", "cell", and "comp" may have edges. For other point types, an empty string will be returned. A non-empty edge ID can be used in conjunction with the get_edge_info function to obtain additional information about the edge. The -total_delay option returns the total delay along the path, up to and including the current point. The -incremental_delay option returns the delay incurred by going through this point in the path. Both delays are formated in terms of the current time units, excluding the unit string. The -number_of_fanout option returns the number of fanouts that the corresponding node has in the timing netlist. If there is no node for this point, the return value is 0. The -location option returns a string indicating the location of the corresponding node in the part. If there is no corresponding node, this returns an empty string. The -rise_fall option returns the transition type of this point. Possible values for -rise_fall are: Value Description ------- ------------------------------ (empty) Unknown transition r Rising output f Falling output rr Rising input, rising output rf Rising input, falling output fr Falling input, rising output ff Falling input, falling output The -type option returns a string indicating the type of delay that this point represents in the path. Possible return values for -type are: Value Description ------- ------------------------------------------------------- borrow Time borrowed (for level-sensitive latches) cell Cell delay clknet Lumped clock network delay clksrc Clock source. Used to ensure that the end-point of a clock segment is marked in the path when source latency is specified, or when the actual path cannot be found. comp PLL clock network compensation delay ic Interconnect delay iext External input delay latch Clock latch time launch Clock launch time loop Lumped combinational loop delay oext External output delay re Routing element (only for paths generated with the -show_routing option) srclat Source latency for a clock segment. This will appear if latency was specified between two clocks, or if a path could not be found between them. unc Clock uncertainty utco Register micro-Tco time utsu Register micro-Tsu time uth Register micro-Th time

Example Usage
# 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 path
foreach_in_collection path [ get_timing_paths -npaths 10 -setup ] {
	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: Object with ID <string> is not an object of type <string>. Specify the ID of an object with the correct type.