contents.gifindex.gif

Specifying fMAX

You can specify the fMAX (clock frequency or period) for all registered paths in your design using a Register-to-Register timespec. Register-to-Register paths begin at flip-flop clock inputs, propagate through the flip-flop Q output and any number of levels of combinatorial logic and end at the receiving flip-flop D/T input, including the receiving flip-flops tSU. When these flip-flops are clocked by the same clock, the delay on this path is equivalent to the cycle time of the clock.

webpack00000021.gif

Registered paths do not propagate through clock, and asynchronous set and reset inputs of registers as shown below. These paths are also broken at bidirectional pins.

webpack00000023.gif

webpack00000022.gif

To specify fMAX, the maximum required operating frequency, compute the cycle time and use the cycle time as the value in the timing constraint.

The format of the Register-to-Register timespec is:

TSnn=FROM:flip_flop_group:TO:flip_flop_group:delay_value

The following timing constraint specifies that fMAX for all registered paths in the design is 67 Mhz:

TS01=FROM:FFS:TO:FFS:15

The next timing constraint specifies that fMAX between a specific pair of registers is 66 Mhz:

TS02=FROM:FFS(REG1):TO:FFS(REG2):15

You can also use the Period timespec to define the maximum period of any clock input, including the register-to-register paths between all flip-flops controlled by the same clock:

TSnn=PERIOD:clock_group:period_value

For example, if the clock input CLOCK was contained in a timing group named CLK_GRP, the following would specify a period of 15ns for all paths between all flip-flops clocked by CLOCK:

TS01=PERIOD:CLK_GRP:15

To use the PERIOD form of timespec shown above, you could either attach the attribute TNM=CLK_GRP to the CLOCK input pad or specify the group definition CLK_GRP=PADS(CLOCK) on a TIMEGRP symbol.


See Also

Entering Timespecs in a UCF File

Grouping Signals

Speeding Up fMAX with Local Feedback