Clock Pessimism Removal - 2025.2 English - UG906

Vivado Design Suite User Guide: Design Analysis and Closure Techniques (UG906)

Document ID
UG906
Release Date
2025-12-10
Version
2025.2 English

A typical timing path report shows delay details for both source and destination clock paths, from their root to the sequential cell clock pins. As illustrated in the following figure, the tool analyzes the source and destination clocks with different delays, even on their common circuitry.

Figure 1. Common Clock Tree Section

This delay difference on the shared section introduces additional pessimism into the skew computation. To avoid unrealistic slack, the tool compensates for this pessimism using a delay called clock pessimism removal (CPR).

CPR = common clock circuitry (max delay – min delay)

The timing engine either adds or subtracts the CPR from the skew, depending on the type of analysis:

Max Delay Analysis (Setup/Recovery)
The tool adds CPR to the destination clock path delay.
Min Delay Analysis (Hold/Removal)
The tool subtracts CPR from the destination clock path delay.

The Vivado Design Suite timing reports include clock skew for each timing path. In the following example (from a hold analysis), the report provides:

  • Destination clock delay (DCD)
  • Source clock delay (SCD)
  • Common pessimism removal (CPR)
Clock Path Skew: 0.301ns (DCD - SCD - CPR)
Destination Clock Delay (DCD): 2.581ns
Source Clock Delay (SCD): 2.133ns
Clock Pessimism Removal (CPR): 0.147ns

In many cases, CPR accuracy changes before and after routing. For example, consider a timing path where source and destination clocks are the same and driven by one buffer.

  • Before routing, the tool treats the clock buffer output pin as the common point. In this case, CPR compensates only for pessimism from the clock root to the buffer output.
  • After routing, the tool identifies the common point as the last shared routing resource between the source and destination clock paths in the device architecture. This point does not appear in the netlist, so CRP cannot be directly retrieved by subtracting clock delays from the timing report. The timing engine computes the CPR value based on device information not directly available to the user.