Intel® Quartus® Prime Pro Edition User Guide: Scripting

ID 683432
Date 12/13/2021
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

3.1.29.80. update_timing_netlist (::quartus::sta)

The following table displays information for the update_timing_netlist Tcl command:

Tcl Package and Version

Belongs to ::quartus::sta

Syntax update_timing_netlist [-h | -help] [-long_help] [-dynamic_borrow] [-full] [-no_borrow] [-recompute_borrow]
Arguments -h | -help Short help
-long_help Long help with examples and possible return values
-dynamic_borrow Use time borrowing values that are correct for the current clock constraints
-full Forces creation of an updated timing netlist to ensure correctness
-no_borrow Turn off all time borrowing
-recompute_borrow Recompute optimal time borrowing values
Description

Updates and applies SDC commands to the timing netlist. The update_timing_netlist command expands and validates generated clocks, warns about sources in the design that require clock settings, identifies and removes combinational loops, and warns about undefined input/output delays. Most Tcl commands (e.g., report_timing) automatically update the timing netlist when necessary. You can use the update_timing_netlist command explicitly to control when updating occurs, or to force a full update using the -full option. The update_timing_netlist command can also be used to control time borrowing behavior. Time borrowing is a technique whereby certain flip-flops in certain device families are allowed to have signals that arrive late (thus improving upstream slack), at the expense of downstream slack. The amount of time borrowing allowed at each flip-flop is hardware-dependent. By default, optimal time borrowing values are computed at the end of the Fitter (Finalize) stage (if enabled by your compilation settings), and these are the values you will see in the timing reports. To turn off time borrowing support, use the -no_borrow option. This is not recommended, as it may result in significantly pessimistic timing results. If you have changed clock constraints after compiling your design, pre-computed optimal time borrowing values may no longer be valid. Time borrowing will be turned off for the changed clocks, resulting in pessimistic timing. To get optimal results once again, run update_timing_netlist with the -recompute_borrow option. This may take significant time on large designs, but the results will be saved and available the next time you run update_timing_netlist without any time borrowing options. The time borrowing optimization algorithm has a few limitation - for example, it never borrows any time on sources of cross-clock transfers, sources of paths with set_max_delay or set_max_skew constraints, or in any clock domain containing at least one level-sensitive latch. If your design is correctly constrained, you may overcome these limitations and get better timing results with the -dynamic_borrow option, which calculates time borrowing amounts based on your actual clock constraints (rather than optimizing for highest FMax within each clock domain). Note that -dynamic_borrowing is not recommended for overconstrained designs.

Example Usage
project_open top
create_timing_netlist
read_sdc
update_timing_netlist

report_timing -to_clock clk1
report_timing -to_clock clk2

delete_timing_netlist
project_close
Return Value Code Name Code String Return
TCL_OK 0 INFO: Operation successful
TCL_ERROR 1 ERROR: Timing netlist does not exist. Use create_timing_netlist to create a timing netlist.