get_path_info (::quartus::sta)
The following table displays information for the get_path_info Tcl command:
Tcl Package and Version |
Belongs to ::quartus::sta 1.0 |
|||
Syntax | get_path_info [-h | -help] [-long_help] [-advanced] [-arrival_points] [-arrival_time] [-borrow_dst] [-borrow_src] [-clock_relationship] [-clock_skew] [-corner] [-data_delay] [-from] [-from_clock] [-from_clock_is_inverted] [-hold_end_multicycle] [-hold_start_multicycle] [-latch_time] [-launch_time] [-num_logic_levels] [-operating_conditions] [-required_points] [-required_time] [-setup_end_multicycle] [-setup_start_multicycle] [-slack] [-to] [-to_clock] [-to_clock_is_inverted] [-type] <path_ref> | |||
Arguments | -h | -help | Short help | ||
-long_help | Long help with examples and possible return values | |||
-advanced | Return clock pessimism due to advanced effects | |||
-arrival_points | Return a collection of point objects for the arrival path | |||
-arrival_time | Return the data arrival time for the path | |||
-borrow_dst | Return the time borrowed at destination (when the path ends at a level-sensitive latch) | |||
-borrow_src | Return the time borrowed at source (when the path starts at a level-sensitive latch) | |||
-clock_relationship | Return the clock relationship for the path | |||
-clock_skew | Return the clock skew for the path | |||
-corner | Returns a string indicating the operating conditions at which the path's delay values are found | |||
-data_delay | Return the data delay for the path | |||
-from | Return the source node ID | |||
-from_clock | Return the source clock ID | |||
-from_clock_is_inverted | Return 1 if the source clock is inverted, 0 otherwise | |||
-hold_end_multicycle | Return the hold end multicycle for the path | |||
-hold_start_multicycle | Return the hold start multicycle for the path | |||
-latch_time | Return the latch time for the path | |||
-launch_time | Return the launch time for the path | |||
-num_logic_levels | Return the number of logic levels on the path between the to node and from node | |||
-operating_conditions | Returns a string indicating the operating conditions at which the path's delay values are found | |||
-required_points | Return a collection of point objects for the required path | |||
-required_time | Return the data required time for the path | |||
-setup_end_multicycle | Return the setup end multicycle for the path | |||
-setup_start_multicycle | Return the setup start multicycle for the path | |||
-slack | Return the slack for the path | |||
-to | Return the destination node ID | |||
-to_clock | Return the destination clock ID | |||
-to_clock_is_inverted | Return 1 if the destination clock is inverted, 0 otherwise | |||
-type | Return the type of this path. Possible return values are: "setup", "hold", "recovery", "removal", "max_path", "min_path" | |||
<path_ref> | Path object | |||
Description |
Returns information about the referenced timing path object. You can generate references to path objects with the get_timing_paths and get_path functions. The -type option returns one of the following types: "setup", "hold", "recovery", "removal", "max_path", or "min_path". The -from and -to options return the ID of the nodes at the start and end, respecitvely, of the arrival path. If there is no node, an empty string is returned. The -from node remains the same, regardless of the level of clock detail provided. It is always the first node clocked by the -from clock in the data arrival path. You can use the node ID with the get_node_info function to obtain additional information about the node. The -from_clock and -to_clock options return the ID of the launching and latching clocks, respectively. If there is no clock, an empty string is returned. You can obtain additional information about the clocks using the get_clock_info function. Path objects generated by get_path do not have clock information, required points, or meaningful slack values. The -arrival_points and -required_points options return a collection of point objects for the arrival and required paths, respectively. By iterating over the collection, and using the get_point_info function, you can obtain specific details about each portion of the path. If a path was created with additional clock detail, the elements of the clock path are included in each collection of points. The values for the -from, -to, and other options are either collections or a Tcl list of wildcards used to create collections of appropriate types. The values used must follow standard Tcl or Timing Analyzer-extension substitution rules. See the help for use_timing_analyzer_style_escaping for details. When the path starts at a level-sensitive latch, the -borrow_src option may be used to get the time borrowed at the source. Similarly, when the path ends at a level-sensitive latch, -borrow_dst may be used to get the time borrowed at the destination. When these options are used with anything other than level-sensitive latches, zero is returned. For level-sensitive latches, when you use the -launch_time or -latch_time options, the times reported do not include time borrowed. The operating condition corresponding to all of a path's delay and time values can be found using the -corner option. |
|||
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. |