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 1.0

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.