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
------- -------------------------------------------------------
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. |