Intel® Quartus® Prime Pro Edition User Guide: Scripting

ID 683432
Date 6/20/2022
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.34.19. set_net_delay (::quartus::sdc_ext)

The following table displays information for the set_net_delay Tcl command:

Tcl Package and Version

Belongs to ::quartus::sdc_ext

Syntax set_net_delay [-h | -help] [-long_help] -from <names> [-get_value_from_clock_period <src_clock_period|dst_clock_period|min_clock_period|max_clock_period> ] [-max] [-min] [-to <names> ] [-value_multiplier <multiplier> ] [ <delay> ]
Arguments -h | -help Short help
-long_help Long help with examples and possible return values
-from <names> Valid source pins, ports, registers or nets (string patterns are matched using Tcl string matching)
-get_value_from_clock_period <src_clock_period|dst_clock_period|min_clock_period|max_clock_period> Compute net delay constraint as a multiple of the clock period
-max Specifies maximum delay
-min Specifies minimum delay
-to <names> Valid destination pins, ports, registers or nets (string patterns are matched using Tcl string matching)
-value_multiplier <multiplier> Value by which the clock period should be multiplied to compute net delay requirement
<delay> Required delay
Description
Use the set_net_delay command to query the net delays
and perform minimum or maximum timing analysis across
nets. The -from and -to options can be string patterns
or pin, port, register, or net collections. When pin
or net collection is used, the collection should
include output pins or nets.

If the -to option is unused or if the -to filter is an
"*" character, all the output pins and registers on
timing netlist became valid destination points.

When you use the -min option, slack is calculated by
looking at the minimum delay on the edge. If you use
-max option, slack is calculated with the maximum edge
delay.

Use -get_value_from_clock_period to set the net delay requirement 
to be equal to the launching or latching clock period,
or whichever of the two has a smaller or larger period.
If -value_multiplier is used, the requirement will be multiplied by
that value.  If the set of nets is clocked by more than one clock, 
the Timing Analyzer will use the one with smallest period to compute 
the constraint for a -max constraint, and the largest period for 
a -min constraint.  If there are no clocks clocking the endpoints
of the net (e.g. if the endpoints of the nets are not registers or
constrained ports), then the net delay constraint will be ignored.
Example Usage
project_open my_project
create_timing_netlist
read_sdc
update_timing_netlist

# add min delay constraint
set_net_delay -min 0.160 -from [get_pins inst9|combout] -to [get_pins *|dataf]

# add max delay constraint		
set_net_delay -max 0.500 -from inst8|combout

# this is same as the previous call
set_net_delay -max 0.500 -from inst8|combout -to *

# Require net delay to be at most 90% of the period of the clock driving the inst9 register
set_net_delay -max -get_value_from_clock_period dst_clock_period -value_multiplier 0.9 -from inst8|combout -to [get_keepers inst9]

update_timing_netlist

report_net_delay -panel "Net Delay"		
Return Value Code Name Code String Return
TCL_OK 0 INFO: Operation successful
TCL_ERROR 1 ERROR: <string> is not a valid delay value
TCL_ERROR 1 ERROR: Timing netlist does not exist. Use create_timing_netlist to create a timing netlist.
TCL_ERROR 1 ERROR: The option -value_multiplier must be a non-zero floating point number
TCL_ERROR 1 ERROR: The option -value_multiplier may only be used if -get_value_from_clock_period is used