ExpertQuestion 32 of 69

Explain the transparent-latch two-CRPR mechanism's effect on time borrowing, with the sign of each effect.

From PDVerse STA Mentor Guide, part of the pdVerse Mentor Guide

Short Answer

A transparent latch endpoint gets two separate reconvergence pessimism values, one for the opening edge and one for the closing edge, because the two edges sit on opposite clock polarities. Opening-edge pessimism reduces how much time is available to borrow; closing-edge pessimism increases the maximum borrowing allowed. The two effects push in opposite directions and do not cancel out.

Technical Reference DiagramExplain the transparent-latch two-CRPR mechanism's effect on time borrowing, with the sign of each effect.

Technical Explanation

A latch is level-sensitive rather than edge-triggered, so time borrowing โ€” letting data arrive after the clock edge and still be captured, as long as it settles before the latch closes โ€” depends on when the latch opens and when it closes, two different clock edges.

  • Why two CRPR values exist. For a path ending at a transparent latch, PrimeTime computes two separate CRP values at the common clock node: one for the rising edge and one for the falling edge, because the opening and closing edges are opposite polarities of the same clock.
  • What the opening-edge value does. It shifts when the latch is treated as becoming transparent โ€” this affects the slack of a non-borrowing path referenced to that edge, and reduces the time available to borrow for a path that does borrow.
  • What the closing-edge value does. It shifts when the latch is treated as closing โ€” this increases the maximum time borrowing allowed, and reduces the size of any violation for a path that fails setup at the latch.
  • Why the two do not cancel. One credit narrows the borrow window from the front, the other widens it from the back โ€” different edges, different questions, so a single lumped CRP value would misstate both.
  • Why this needs two calculations rather than one. Collapsing rise and fall CRPR into one number gets the sign wrong for at least one effect on any path that genuinely borrows time.
  • How to inspect it. report_crpr (PT) on a path ending at a transparent latch reports the CRP calculation for level-sensitive latches specifically, showing the static and dynamic conditions evaluated and which one was used.
  • The practical takeaway: when debugging a latch path's borrowed time, always ask which of the two edges a given pessimism number belongs to before concluding the design has more or less margin than it appears to.

Common Mistake

The Trap: reading a single CRPR credit reported on a latch path and applying it uniformly, as if it affected the opening and closing edges the same way.

  • A credit that genuinely applies to the closing edge, loosening the maximum borrow, gets misread as also loosening the opening-edge slack of a non-borrowing path referenced to the same latch โ€” which it does not.
  • This produces an over-optimistic read of margin on paths that do not actually borrow time, because their slack depends only on the opening-edge pessimism, not the closing-edge one.

Follow-up Question & Model Response

"A non-borrowing path and a borrowing path both end at the same transparent latch. Why might a CRPR fix that helps one make the other worse?"

Candidate Model Response: The non-borrowing path's slack depends on the opening-edge CRPR, while the borrowing path's available window depends on both the opening-edge value, which sets how much time is left to borrow, and the closing-edge value, which sets the maximum allowed. If a fix changes how the shared clock tree is modeled such that opening-edge pessimism decreases, the non-borrowing path's slack improves, but the borrowing path's window also shrinks from the same opening-edge shift โ€” so the same underlying change can help one path and hurt the other, because they are sensitive to the same edge in opposite ways.

Practical Example

A transparent latch, LATCH_A, is enabled by the high phase of a 3 ns clock, CLK_LVL. report_crpr (PT) on the path into LATCH_A reports 8 ps of rise-edge (opening) pessimism removed and 11 ps of fall-edge (closing) pessimism removed at the shared clock node. A non-borrowing path referenced to the opening edge gains 8 ps of slack. A separate, borrowing path that needs 350 ps past the nominal opening edge to settle sees its available borrow window widen by the 11 ps closing-edge credit, from 400 ps to 411 ps, comfortably covering the 350 ps it needs โ€” while its own slack relative to the opening edge changes only by the 8 ps opening-edge component, illustrating why the two numbers have to be tracked and applied separately rather than summed into one adjustment.

Complete STA Handbook

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

Offline PDF Bundle

Want all 1109 questions offline?

Get the complete 4-book PDF bundle (PnR, STA, MMMC, Low Power) with a clickable table of contents - no ads, no internet needed.

See what's inside the bundle
Static Timing Analysis (STA) Handbook โ€” ten chaptersSTA HandbookTen chapters on setup, hold, OCV, and PrimeTime signoff.