max_delays/min_delays

SECTION MAX_DELAYS/MIN_DELAYS

Use the MAX_DELAYS and MIN_DELAYS section to specify the maximum and minimum delays.

 

DELAY value timeunit; SOURCE {source_name_list}; SINK {sink_name_list}; [STOP {stop_name_list}]; [PASS {bypass_name_list}].

Arguments

DELAY value

Specifies an integer.

 

timeunit

Allows {PS, NS, US}.

 

source_name_list

A list of signal sources. It can be one of the following: a macro output pin, macro name, or primary input.

 

sink_name_list

A list of signal destinations. It can be a name of a macro or a primary output.

 

stop_name_list

The list of pin names through which further propagation of signals will not be considered. This allows you to eliminate certain paths from consideration.

 

bypass_name_list

The list of latches which are allowed to be intermediate path points. By default, latches are considered to be sinks or path terminals.

 

INPAD/OUTPAD/GATED

Valid values for any of the lists, such as source_name_list or stop_name_list.

 

Normally there is no need to specify any timing requirements from any source to any sink clocked by an external global clock. This timing requirement can be generated automatically from the GLOBAL_CLOCK specifications and the sequential elements setup and hold times. For example, the timing constraint from a primary input to a sequential element can be derived from the sequential elements clocking waveform and the signal arrival time of the primary input.

 

A problem exists when two different internally-generated clock signals interact. This is due to the unpredictable and unknown skew between the two clock networks because of the routing delays from:

 

PAD >> internalMacro >> CLKINT

 

where CLKINT is the input pin of the global clock distribution network. The automatically generated path constraints will not incorporate the skew between the two clocks. In such cases, the path constraints should be expressed explicitly using the MAX/MIN_DELAYS section.

 

NOTE: The most stringent timing constraint dominates. Hence, all general constraints should be looser than the specific constraints. For example, in the following example, the 26.0ns constraint dominates the 42.0ns constraint:

 

DELAY 42.0 ns SOURCE INPAD SINK OUTPAD.

DELAY 26.0 ns SOURCE {$1I23:Q $1I24:Q} SINK {ack_0}.

 

If the general constraint is tighter than the specific constraint, the specific constraint will effectively become a no-operation. In the following example, the looser constraint of 42.0ns has no effect since the general constraint of 26.0ns dominates.

 

DELAY 26.0 ns SOURCE INPAD SINK OUTPAD.

DELAY 42.0 ns SOURCE {$1I23:Q $1I24:Q} SINK {ack_0}.

 

The section MAX_DELAYS can be empty if there are no purely combinatorial paths from external sources to external sinks, and if every sequential element in the design is clocked by an external global clock. In this case, the timing constraints are generated automatically using the information in the GLOBAL_CLOCK section. Likewise, the MIN_DELAYS section can be empty.

 

One final word about external/internal sinks and sources with regard to the flip-flops and/or latches in the IOs: these flip-flops act as internal, not external, sources/sinks.