Professional Documents
Culture Documents
Title
How Does Clock Reconvergence Pessimism Removal (CRPR) Handle Dynamically Switched Related Clocks?
Description
How Does Clock Reconvergence Pessimism Removal (CRPR) Handle Dynamically Switched Related Clocks?
Question:
I have a design in which a clock network switches between the original and divide-by-two version of a clock:
The clock switching circuitry is designed so that I can switch between them "on the fly" during the low portion of both clocks. This results in the following setup relationships (with clock
path latencies represented by the shaded regions):
I model this clock configuration in PrimeTime with the following multicycle constraints:
How does PrimeTime's clock reconvergence pessimism removal (CRPR) algorithm handle paths like this which have a launch from one clock and are then dynamically switched so the
capture is on the other clock?
Answer:
Of course, PrimeTime has no problem analyzing timing paths between different launch and capture clocks in general. The case where this becomes interesting is when the two clocks
are related, which means that both clocks share the same parent clock (as in our example above). In these cases, part of the clock path is now common and we must insure that the
CRPR behavior is correct.
This approach normalizes the minimum/maximum arrival difference at the common point from two sources:
When clocks are muxed together, such as in our example above, the designer may have designed the circuit to operate in one of three ways:
1. The clock network is configured once on startup and the mux remains static during operation. The clock configuration is always static and the launch and capture are always on the
same clock.
2. The mux is switched during operation, but the design is held quiet until the transition completes to ensure that a path is not launched by one clock and captured by another clock.
Sometimes this involves inserting one or more functional wait cycles to ensure that no registers load a value across clock domains. Other times a more forceful approach is chosen
where the clock domain reset is asserted until the transition to the new clock completes. Since no timing path actually mixes a launch and capture across different clocks, the clock
configuration is still static within any given timing path.
3. The mux is switched during operation and the logic is specifically designed to handle paths which are launched by one clock and captured by another. This results in a clock that can
be switched dynamically between launch and capture.
https://solvnetplus.synopsys.com/s/article/How-Does-Clock-Reconvergence-Pessimism-Removal-CRPR-Handle-Dynamically-Switched-Related-… 1/4
7/30/2020 How Does Clock Reconvergence Pessimism Removal (CRPR) Handle Dynamically Switched Related Clocks?
PrimeTime cannot differentiate between these three cases by analyzing the logic, as this is something that can be determined only by the designer's intent. The first two cases are
statically switched cases, and as such, the design constraints should be suppressing paths between these clock domains with set_clock_groups or set_false_path. The third case is
the dynamically switched case where paths validly exist between the clock domains, and this requires that CRPR does not consider reconvergence between the related clocks in its clock
reconvergence pessimism calculation.
This article pertains only to dynamically switched related clocks. If the clocks are dynamically switched but not related, then no upstream portion of the clock network will require CRPR
to be applied. If the clocks are related but statically configured, then the paths between the domains would already be suppressed through clock group relationships or false paths and
the CRPR behavior never comes into play.
By default, the CRPR algorithm detects reconvergence in the clock network and removes the difference in arrival times at the common point after the reconvergence point. If we look at a
default timing report for our example circuit, we can see that CRPR is crediting the slack with the difference between the parent and divided clock latencies:
We can confirm this by using the report_crpr command to see the calculation. We see that the mux output pin is shown as the common pin:
Selection Details
---------------------------------------------------------------
Edge Match: Match, using rise CRP
---------------------------------------------------------------
clock reconvergence pessimism 0.193
This causes the entire difference in propagation delay to the mux output to be credited back by CRPR, which is optimistic for a dynamically switched clock.
In the PrimeTime Z-2007.06 release, a feature was introduced to configure CRPR so that reconvergence between parent/derived clocks is not considered. CRPR is still applied between
the two clocks, but only back to the last point of convergence where the two related clocks take on their unique identities. In the case above, PrimeTime would choose U1/Z as the
common point and consider only arrival differences up to that point for CRPR. We can enable this behavior with:
https://solvnetplus.synopsys.com/s/article/How-Does-Clock-Reconvergence-Pessimism-Removal-CRPR-Handle-Dynamically-Switched-Related-… 2/4
7/30/2020 How Does Clock Reconvergence Pessimism Removal (CRPR) Handle Dynamically Switched Related Clocks?
and now we can see that the difference in clock path latencies is left in place:
Only the difference in the pre-divergence buffer U4 is removed by CRPR. The report_crpr confirms that the common pin is adjusted:
Selection Details
---------------------------------------------------------------
Edge Match: Match, using rise CRP
---------------------------------------------------------------
clock reconvergence pessimism 0.009
The default value of this variable is true, which maintains the behavior of the Z-2006.12 and earlier releases where CRPR is always applied. The variable can be set to false to enable
the new behavior. For more information about this feature, see the man page for this variable or the Z-2007.06 update training material.
Although the variable name may suggest that only reconvergence through MUX cells is considered, the feature applies to reconvergence through any combinational logic. Also, note that
the related clocks do not need to be between a generated clock and its parent; two different generated clocks which are muxed together would also qualify.
Note that this article pertains only to cross-clock paths when clocks reconverge through combinational logic. It does not pertain to paths within a clock domain (with the same
launch/capture clock), even if the clock goes through a mux. Also, this article does not pertain to the case in which a path is launched and captured by different clocks with separate
clock trees, since there is no mux reconvergence and the clock reconvergence pessimism value is zero.
Workaround
Product L1
PrimeTime (/s/detail/01t1U000003IY0JQAW)
Additional Product(s)
Article Number
000004944
https://solvnetplus.synopsys.com/s/article/How-Does-Clock-Reconvergence-Pessimism-Removal-CRPR-Handle-Dynamically-Switched-Related-… 3/4
7/30/2020 How Does Clock Reconvergence Pessimism Removal (CRPR) Handle Dynamically Switched Related Clocks?
How To
URL Name
How-Does-Clock-Reconvergence-Pessimism-Removal-CRPR-Handle-Dynamically-Switched-Related-Clocks-1576002487341
Related Articles
How Does Clock Reconvergence Pessimism Removal (CRPR) Affect min_pulse_width Calculations? (/s/article/How-Does-Clock-Reconvergence-Pessimism-Removal-CRPR-Af
3.84K
fect-min-pulse-width-Calculations-1576002482580)
Minimum Pulse Width Calculation Based on Clock Pin Transition (/s/article/Minimum-Pulse-Width-Calculation-Based-on-Clock-Pin-Transition-1576092609899) 1.93K
How can I get Details of the Clock Network Elements That Cause Pulse Width Violations? (/s/article/How-can-I-get-Details-of-the-Clock-Network-Elements-That-Cause-Pulse-W
1.6K
idth-Violations-1576091148356)
Constraining and Analyzing a Design for Minimum Pulse Width and Minimum Period Checks in PrimeTime (/s/article/Constraining-and-Analyzing-a-Design-for-Minimum-Pulse
9.41K
-Width-and-Minimum-Period-Checks-in-PrimeTime-1576008925611)
Related Files (0)
https://solvnetplus.synopsys.com/s/article/How-Does-Clock-Reconvergence-Pessimism-Removal-CRPR-Handle-Dynamically-Switched-Related-… 4/4