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.9.16. dni::set_max_time_borrow (::quartus::dni_sdc)

The following table displays information for the dni::set_max_time_borrow Tcl command:

Tcl Package and Version

Belongs to ::quartus::dni_sdc

Syntax dni::set_max_time_borrow [-h | -help] [-long_help] <value> <targets>
Arguments -h | -help Short help
-long_help Long help with examples and possible return values
<value> Time Value
<targets> Collection or list of latches
Description
Specifies the maximum borrowed time for level-sensitive latches. The
actual borrowed time will be determined automatically, but will never
exceed the amount you specify. For any latches without a
set_max_time_borrow constraint, no limit will apply (except for the
physical limit of what is possible on the device, as described below).

Time borrowing is specified with respect to the earliest possible time
a signal can be clocked into the latch node. For example, for a
positive latch, if the earliest possible arrival time of the rising
clock edge is 1.025ns, then a signal that has an arrival time of
1.035ns (where this arrival time already includes the micro-setup time
of the latch) will require at least 0.010ns of time borrowing.

Regardless of how the borrowed time is determined (automatically
without a limit or automatically with a set_max_time_borrow
constraint), the borrowed time can never exceed what is physically
possible to borrow on the device. The maximum amount that can be
borrowed is the period of time when the latch is open (e.g. half the
clock period if the clock has a 50% duty cycle), but this time is
reduced by clock propagation time spread and clock uncertainty between
the latch-opening and latch-closing clock edges, and is further
reduced by the closing-edge setup time of the latch. Some of these
factors vary from corner to corner, as well as from clock to clock (if
multiple clocks drive the latch).

Time borrowing analysis will only occur in the Timing Analysis
(Signoff) stage, or when manually running the Timing Analyzer. The
Fitter will not utilize time borrowing information and will assume
zero time borrowed. Thus, the use of level-sensitive latches with
high-speed clocks is not recommended, unless other constraints (such
as set_max_delay) are manually set to ensure optimal Fitter behavior.

The targets of this command must be level-sensitive latches (all other
targets will be ignored).

The targets can be specified as either a collections or a Tcl list of
wildcards used to create collections of appropriate types.
Example Usage
# Borrow at most 3ns at all "lat*" latches:
set_max_time_borrow 3 [get_cells lat*]
Return Value Code Name Code String Return
TCL_OK 0 INFO: Operation successful