Intel® Quartus® Prime Pro Edition User Guide: Scripting

ID 683432
Date 10/04/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.28.1. derive_clock_uncertainty (::quartus::sdc_ext)

The following table displays information for the derive_clock_uncertainty Tcl command:

Tcl Package and Version

Belongs to ::quartus::sdc_ext

Syntax derive_clock_uncertainty [-h | -help] [-long_help] [-add] [-overwrite]
Arguments -h | -help Short help
-long_help Long help with examples and possible return values
-add Adds results to user-defined clock uncertainty assignments
-overwrite Overwrites user-defined clock uncertainty assignments
Description

Applies inter-clock, intra-clock and I/O interface uncertainties based on timing model characterization. This command calculates and applies setup and hold clock uncertainties for each clock-to-clock transfer found in the design. The calculation of the uncertainties is delayed until the next update_timing_netlist call. To get I/O interface uncertainty in addition to inter-clock and intra-clock uncertainties, create a virtual clock to represent an off-chip clock for input or output delay specification and assign delays to input/output ports with set_input_delay and set_output_delay commands that specify the virtual clock. If set_input_delay and set_output_delay commands specifying a non- virtual clock are called, derive_clock_uncertainty applies either inter-clock or intra-clock uncertainty for that clock transfer since those transfers represent a clock-to-clock domain rather than an I/O-to-register clock domain. The set_clock_uncertainty calls will override the derived values for a source clock and destination clock pair unless either the set_clock_uncertainty command or the derive_clock_uncertainty command specified the -add option, in which case the values are added. Specifying the -overwrite option will instead cause all set_clock_uncertainty commands to be ignored. Previous set_clock_uncertainty assignments can also be manually removed by using the remove_clock_uncertainty command. Note that this command is called automatically and the user only needs to manually call it to specify the -add or -overwrite options.

Example Usage
# create a virtual clock
create_clock -name virtual -period 1

# apply input/output delays with the virtual clock to get
# I/O interface uncertainties
set_input_delay -clock virtual -add_delay 0 [all_inputs]
set_output_delay -clock virtual -add_delay 0 [all_outputs]

# call derive_clock_uncertainty. results will be calculated 
# at the next update_timing_netlist call
derive_clock_uncertainty

update_timing_netlist
Return Value Code Name Code String Return
TCL_OK 0 INFO: Operation successful