AdvancedQuestion 55 of 63Source: Synopsys PrimeTime User Guide: Clock Reconvergence Pessimism Removal (CRPR) Reporting

What does a clock reconvergence pessimism removal line in a timing report actually mean?

From PDVerse STA Mentor Guide · pdVerse Mentor Guide

Short Answer

A clock reconvergence pessimism removal (CRPR, sometimes shown as CPPR) line in a timing report is a correction the tool applies when the launch and capture clock paths share a common segment near the clock source -- it subtracts out the derating or variation margin double-counted on that shared portion, since the same physical wire cannot really run both faster and slower at once. It only removes pessimism from the common path; any divergent portion downstream of where the paths split still carries its own full derate on each side.

Technical Reference DiagramWhat does a clock reconvergence pessimism removal line in a timing report actually mean?
A clock tree splitting into launch and capture branches, with the shared trunk segment before the split shaded and labeled common path (CRPR correction applies here) and the two branches after the split labeled divergent path (full derate applies to each independently).

Technical Explanation

On-chip variation (OCV) derating applies a margin to account for identical cells running slightly faster or slower than nominal due to manufacturing spread, applying an early derate to one side of a check and a late derate to the other.

  • When the launch and capture clock paths share a common buffer chain before diverging toward their respective flops, applying early derate to that shared segment on one side and late derate on the same physical segment on the other side is contradictory -- the identical wire and cells cannot be both faster and slower in the same analysis.
  • CRPR identifies the shared, or common, portion of the clock path and removes the artificial pessimism introduced there, while leaving full derate applied to whatever portion of each clock path diverges after the common point.
  • The report typically shows the CRPR value as a separate correction line, added back into the required-time computation, distinct from the raw clock path delays shown elsewhere in the report -- reading it in isolation from the divergent-path derate can be misleading about total pessimism removed.
  • Because CRPR only touches the common segment, a design with very little shared clock path -- two flops fed from clock trees that diverge almost immediately after the source -- sees little benefit from CRPR even if global OCV derating is aggressive.
  • CRPR reduces pessimism, not risk: removing an artificial margin on the common path can occasionally make a marginal hold violation appear worse rather than better, if the divergent portion's own derate spread was masking that violation before CRPR corrected the common-path number.

Common Mistake

The Trap: assuming CRPR always makes slack look better, and treating a slack improvement from CRPR as proof the whole clock network's pessimism has been addressed.

  • Consequence: CRPR only removes pessimism from the shared clock segment -- a path with a short common point and a long divergent point can see almost no CRPR benefit, or in some hold-check configurations can see slack get worse, and mistaking CRPR for a general de-pessimization step misses that the divergent-path derate is still fully applied and often the larger contributor.

Follow-up Question & Model Response

Why can CRPR make a hold check's slack worse instead of better, if it's supposed to remove pessimism?

Candidate Model Response: CRPR only ever touches the common clock path, and it always removes some early-late derate spread from that shared segment specifically -- but a hold check's total slack depends on the balance between the common-path correction and the divergent-path derate that is untouched. If the divergent portion after the split happens to favor the hold check, because its own early/late derate spread was working in the path's favor, removing the common-path's contribution can shift the net result the other way, even though less total pessimism is being applied overall. This is a real, documented interaction, not a tool inconsistency -- CRPR is a targeted correction for one specific double-counting error, not a blanket margin reduction. A designer who sees hold slack shrink after enabling CRPR should verify the common-versus-divergent split for that specific path rather than assuming a tool defect.

Practical Example

Two adjacent flops share the first four buffers of a clock tree from the PLL before splitting onto separate branches for the final two stages. Without CRPR, applying a 5% early derate to the launch side and a 5% late derate to the capture side of that shared four-buffer segment adds roughly 40 ps of artificial pessimism that cannot physically occur, since it is the same wire on both sides. Enabling CRPR removes that 40 ps from the common segment, but the report still applies full derate independently to the final two diverging buffer stages on each branch -- the correction narrows the reported hold margin's error, it doesn't zero out derating on the whole clock path.

Complete STA Handbook

Get the complete 10-chapter STA handbook covering setup/hold margins, clock modeling, OCV/POCV, crosstalk noise, and PrimeTime closure.

Static Timing Analysis (STA) Handbook — ten chaptersSTA HandbookTen chapters on setup, hold, OCV, and PrimeTime signoff. →