Altera Quartus II Scripting User Manual

Page 612

Advertising
background image

3–482

Chapter 3: Tcl Packages & Commands

timing

Quartus II Scripting Reference Manual

© July 2013

Altera Corporation

# List the top 5 pin-to-pin combinational paths
report_timing -tpd -npaths 5

# List the top 5 pin-to-pin combinational paths and
# write output to an out.tao file
report_timing -tpd -npaths 5 -file out.tao

# Compute min tpd and append results to existing out.tao
report_timing -min_tpd -npaths 5 -file out.tao -append

# Show longest path (register to register data path) between a* and b*
report_timing -longest_paths -npaths 1

# Specify bus
set path_count [report_timing -from in[0]]
if { $path_count == 0 } {
puts "No paths found from in[0]"
}

############################################################
# Use this script to create a custom report that contains
# both the Fast Timing Model results and the Slow Model results
# in one combined report
# Use report_timing with the -table
# Usage:
# quartus_map top
# quartus_fit top
# quartus_tan -t <script>.tcl top
# (Then open Quartus II GUI's report)
############################################################

load_package report
load_package advanced_timing

# Assume one argument: Name of project (where project == revision)
project_open [lindex $quartus(args) 0]

load_report
remove_timing_tables

# First, Build Netlist usign the Fast Timing Model
create_timing_netlist -fast_model

# Create panels using Fast Model
# Use -table option to create Quartus report panels
foreach_in_collection clk [get_timing_nodes -type clk] {
set name [get_timing_node_info -info name $clk]
report_timing -clock_hold -clock_filter $name -npaths 200 -table "Min \
Clock Hold: $name"
}
report_timing -min_tco -npaths 200 -table "Min Tco"
report_timing -tsu -npaths 200 -table "Min Tsu"
report_timing -th -npaths 200 -table "Min Th"

# Save changes to the report file before deleting netlist
save_report_database
delete_timing_netlist

# Now do it again, but this time with the default slow timing model
create_timing_netlist

foreach_in_collection clk [get_timing_nodes -type clk] {
set name [get_timing_node_info -info name $clk]

Advertising