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;
Entering Timespecs in a UCF File
Speeding Up tCO with Local Feedback