
Specifying tCO
You can directly specify tCO for all registered output paths in your design
using the Pad-to-Pad timespec. Clock-Pad-to-Pad paths for global clocks begin at
global clock pads, propagate through global clock buffers, propagate through
the flip-flop Q output and any number of levels of combinatorial logic and end at
the output pad. Clock-Pad-to-Pad paths for product term clock paths begin at
input pads, propagate through any number of logic levels feeding into a clock
product term, propagate through the flip-flop Q output and any number of levels
of combinatorial logic and end at the output pad. Clock-Pad-to-Pad paths also
trace through the enable inputs of 3-state controlled pads.
The format of the Clock-Pad-to-Pad timespec is:
TSnn=FROM:clock_input_pad:TO:output_pad:tCO_value
For example, if you need an external tCO of no more than 10 ns from Clock to
all registered outputs, use the following timing constraint:
TS01=FROM:PADS(Clock):TO:PADS:10
If you are entering constraints in a UCF file, you can also specify tCO
directly using the OFFSET timespec as follows:
NET data_output_pad OFFSET=OUT: tCO_value:AFTER:clock_input;
For example, the following UCF timing constraint specifies the tCO from input
Clock to output Q to be no more than 10 ns:
NET Q OFFSET=OUT:10:AFTER:Clock;
Note: To use the OFFSET command, the named clock input must be explicitly defined
as a global clock input using the BUFG attribute or symbol. See Using Global Nets.
See Also
Indirectly Specifying tCO
Entering Timespecs in a UCF File
Grouping Signals
Speeding Up tCO with Local Feedback