Example – Altera Quartus II Scripting User Manual

Page 155

Advertising
background image

Chapter 3: Tcl Packages & Commands

3–25

advanced_timing

© July 2013

Altera Corporation

Quartus II Scripting Reference Manual

Example

load_package advanced_timing
project_open <design>
create_timing_netlist

# For every timing node, print its type, name, and location
foreach_in_collection node [get_timing_nodes -type all] {
set node_name [get_timing_node_info -info name $node]
set node_type [get_timing_node_info -info type $node]
set node_location [get_timing_node_info -info location $node]

puts "$node_type : $node_location : $node_name"
}

# Print all nodes that are members of a combinational loop
foreach_in_collection node [get_timing_nodes -type all] {
if [get_timing_node_info -info is_loop $node] {
set node_name [get_timing_node_info -info name $node]
puts "Part of a combinational loop: $node_name"
}
}

# Print the worst case slack on every register
# (This assumes timing constraints exist)
compute_slack_on_edges
foreach_in_collection node [get_timing_nodes -type all] {
set node_name [get_timing_node_info -info name $node]
set node_slack [get_timing_node_info -info slack $node]
puts "Slack is $node_slack for $node_name"
}

project_close

Advertising