This document discusses analyzing on-chip variation (OCV) using Primetime. It begins by defining OCV and explaining why OCV analysis is important. Common causes of OCV like process, voltage, and temperature variations are described. The document then presents a case study where Primetime is used to perform OCV analysis on a 1.5M gate ARM SoC design. Key Primetime commands for OCV analysis and a timing path example analyzing setup and hold checks with and without OCV derating are shown. Finally, it discusses removing excess pessimism from common clock paths using clock reconvergence pessimism removal in Primetime.
This document discusses analyzing on-chip variation (OCV) using Primetime. It begins by defining OCV and explaining why OCV analysis is important. Common causes of OCV like process, voltage, and temperature variations are described. The document then presents a case study where Primetime is used to perform OCV analysis on a 1.5M gate ARM SoC design. Key Primetime commands for OCV analysis and a timing path example analyzing setup and hold checks with and without OCV derating are shown. Finally, it discusses removing excess pessimism from common clock paths using clock reconvergence pessimism removal in Primetime.
USING PRIMETIME :- A CASE STUDY Sandeep Kolte Sabeesh Balagangadharan Vikas Mahendiyan 2 Agenda What is OCV ? Causes ? Analysis using Primetime. A Case study lssue Work Around. Conclusion. 3 Introduction What is OCV ? On Chip Variation. Delay variation due to PVT changes across the chip. Why OCV Analysis? To increase reliability To Reduce yield issue. To avoid post silicon surprise 4 Causes Process Difference in instruments from one fab to other fab . Due to mask variations. Etching variation. Voltage On board voltage supply. Power line routing. Temperature Chip lR drop. Wire self heating. Other EDA tools support. PLL jitter. 5 Let`s Analyze the problem. Side effects Difference in timing correlation with the silicon. Timing paths getting affected. Single operating condition analysis Best case for Hold Check and worst case for setup check not enough for the STA signoff. What next ? Need to account for the timing variance. How ? By adding the frequency margin for the setup. By adding the uncertainty for the hold check. But will affect all the path evenly irrespective the placement, logic, clock paths etc. On Chip analysis using the Primetime. 6 OCV using Primetime - A case study. Design Overview ARM based SoC Embedded ROM 0.15 micron four - layer metal technology 1.5 M gate-count, 300 K placeable instances Six Clock domains. Three Different Frequency ratios. 7 OCV using Primetime Primetime sets of commands/variables for the OCV analysis. set_timing_derate [-min min_path_derate] [-max max_path_derate] [-clock] [-data] [-net_delay] [-cell_delay] [-cell_check] set_operating_condition analysis_type on_chip_variation. report_crpr [-from from_latch_clock_pin] [-to to_latch_clock_pin] [-clock clock] [-type check] timing_remove_clock_reconvergence_pessimism. timing_clock_reconvergence_pessimism. 8 Apply derating factor Eg. Applying the 12 % OCV. set_derate_timing -clock min 0.88 max 1.12 For Hold Check Clock to the destination register is made slower by 12%. Clock to the launching register is made faster by 12%. For Setup Check Clock to the destination register is made faster by 12%. Clock to the launching register is made slower by 12%. OCV using Primetime 9 OCV using Primetime Consider Example D Q ll1 cts1 cts2 cts3 cts+ U D Q ll2 D Q ll3 in2 in3 in1 clk out2 out1 U9 U8 10 Startpoint: FF1 (rising edge-triggered flip-flop clocked by CLK) Endpoint: FF2 (rising edge-triggered flip-flop clocked by CLK) Path Group: CLK Path Type: min Point Incr Path --------------------------------------------------------------- clock CLK (rise edge) 0.000 0.000 clock source latency 0.000 0.000 CLK (in) 0.000 0.000 r cts1/A (CTS) 0.011 * 0.011 r cts1/Y (CTS) 0.300 * 0.311 r cts2/A (CTS) 0.011 * 0.322 r cts2/Y (CTS) 0.300 * 0.622 r FF1/CLK (DFF) 0.012 * 0.634 r FF1/Q (DFF) 0.186 * 0.820 r U9/A (AND) 0.010 * 0.830 r U9/Y (AND) 0.079 * 0.909 r U8/B (AND) 0.012 * 0.921 r U8/Y (AND) 0.070 * 0.991 r FF2/D (DFF) 0.011 * 1.002 r data arrival time 1.002 Hold Check without OCV 11 Hold Check without OCV clock CLK (rise edge) 0.000 0.000 clock source latency 0.000 0.000 CLK (in) 0.000 0.000 r cts1/A (CTS) 0.011 * 0.011 r cts1/Y (CTS) 0.300 * 0.311 r cts2/A (CTS) 0.011 * 0.322 r cts2/Y (CTS) 0.300 * 0.622 r cts3/A (CTS) 0.020 * 0.642 r cts3/Y (CTS) 0.300 * 0.942 r FF2/CLK (DFF) 0.010 * 0.952 r clock reconvergence pessimism 0.000 0.952 FF2/CLK (DFF) 0.952 r library hold time 0.026 * 0.978 data required time 0.978 --------------------------------------------------------------- data required time 0.978 data arrival time -1.002 --------------------------------------------------------------- slack (MET) 0.024 12 Hold Check with OCV Hold Report after applying 12% derating for the only clock. set_timing_derate clock min 0.88 max 1.12 Startpoint: FF1 (rising edge-triggered flip-flop clocked by CLK) Endpoint: FF2 (rising edge-triggered flip-flop clocked by CLK) Path Group: CLK Path Type: min Min Clock Paths Derating Factor : 0.880 Max Clock Paths Derating Factor : 1.120 Point Incr Path --------------------------------------------------------------- clock CLK (rise edge) 0.000 0.000 clock source latency 0.000 0.000 CLK (in) 0.000 0.000 r cts1/A (CTS) 0.010 * 0.010 r cts1/Y (CTS) 0.264 * 0.274 r cts2/A (CTS) 0.010 * 0.283 r cts2/Y (CTS) 0.264 * 0.547 r FF1/CLK (DFF) 0.011 * 0.558 r FF1/Q (DFF) 0.186 * 0.744 r U9/A (AND) 0.010 * 0.754 r U9/Y (AND) 0.079 * 0.833 r U8/B (AND) 0.012 * 0.845 r 13 Hold Check with OCV U8/Y (AND) 0.070 * 0.915 r FF2/D (DFF) 0.011 * 0.926 r data arrival time 0.926 clock CLK (rise edge) 0.000 0.000 clock source latency 0.000 0.000 CLK (in) 0.000 0.000 r cts1/A (CTS) 0.012 * 0.012 r cts1/Y (CTS) 0.336 * 0.348 r cts2/A (CTS) 0.012 * 0.361 r cts2/Y (CTS) 0.336 * 0.697 r cts3/A (CTS) 0.022 * 0.719 r cts3/Y (CTS) 0.336 * 1.055 r FF2/CLK (DFF) 0.011 * 1.066 r FF2/CLK (DFF) 1.066 r library hold time 0.026 * 1.092 data required time 1.092 --------------------------------------------------------------- data required time 1.092 data arrival time -0.926 --------------------------------------------------------------- slack (VIOLATED) -0.166 14 OCV using Primetime Analysis of Pessimism added due to clock derating. CTS1 and CTS2 are common cells in the clock network paths. Should not be having different delay at the same time. Need to remove this extra added pessimism. Use CRPR variable. Let's Consider only cell delay for analysis purpose. 0.300 ns 0.300 ns 0.300 ns Delay without derating 0.300 ns 0.300 ns Delay without derating CTS3 CTS2 CTS1 Clock Path for FF2 0.336 ns 0.336 ns 0.264 ns CTS2 0.336 ns 0.264 ns CTS1 Delay with derating Delay with derating Clock Path FF1 15 What is CRPR ? CRPR is to remove the derating factor applied on the common clock path. This is to reduce the pessimistic approach applied by the different delay assumed for the same timing arc for network delay calculation. set timing_remove_clock_reconvergance_pessimism true Default set to false. Other variable set timing_crpr_threshold_ps 20 To remove the pessimism on opposite edges. set timing_clock_reconvergence_pessimism same_transition. Default is set to true. 16 Hold Check with OCV and CRPR enable Startpoint: FF1 (rising edge-triggered flip-flop clocked by CLK) Endpoint: FF2 (rising edge-triggered flip-flop clocked by CLK) Path Group: CLK Path Type: min Min Clock Paths Derating Factor : 0.880 Max Clock Paths Derating Factor : 1.120 Point Incr Path --------------------------------------------------------------- clock CLK (rise edge) 0.000 0.000 clock source latency 0.000 0.000 CLK (in) 0.000 0.000 r cts1/A (CTS) 0.010 * 0.010 r cts1/Y (CTS) 0.264 * 0.274 r cts2/A (CTS) 0.010 * 0.283 r cts2/Y (CTS) 0.264 * 0.547 r FF1/CLK (DFF) 0.011 * 0.558 r FF1/Q (DFF) 0.186 * 0.744 r U9/A (AND) 0.010 * 0.754 r U9/Y (AND) 0.079 * 0.833 r U8/B (AND) 0.012 * 0.845 r U8/Y (AND) 0.070 * 0.915 r FF2/D (DFF) 0.011 * 0.926 r data arrival time 0.926 17 Hold Check with OCV and CRPR enable clock CLK (rise edge) 0.000 0.000 clock source latency 0.000 0.000 CLK (in) 0.000 0.000 r cts1/A (CTSB) 0.012 * 0.012 r cts1/Y (CTSB) 0.336 * 0.348 r cts2/A (CTSB) 0.012 * 0.361 r cts2/Y (CTSB) 0.336 * 0.697 r cts3/A (CTSB) 0.022 * 0.719 r cts3/Y (CTSB) 0.336 * 1.055 r FF2/CLK (DFF) 0.011 * 1.066 r clock reconvergence pessimism -0.149 0.917 FF2/CLK (DFF) 0.917 r library hold time 0.026 * 0.943 data required time 0.943 --------------------------------------------------------------- data required time 0.943 data arrival time -0.926 --------------------------------------------------------------- slack (VIOLATED) -0.017 18 Clock network delay with OCV enable. Final pessimism added. OCV using Primetime 0.336 ns 0.336 ns 0.336 ns DeIay with derating 0.264 ns 0.264 ns DeIay with derating 0.300 ns 0.300 ns 0.300 ns DeIay without derating 0.300 ns 0.300 ns DeIay without derating CTS3 CTS2 CTS1 CIock Path for FF2 0.336 ns 0.300 ns 0.300 ns CTS2 0.300 ns 0.300 ns CTS1 CRPR enabIe CRPR enabIe CIock Path FF1 -0.166 ns with cIock derating 0.024 ns without derating -0.017 ns VlOL CRPR enabIe 19 OCV using Primetime Sufficient pessimism got added. Pessimism added proportional to the clock network latency. More accurate than specifying the common uncertainty to all the clocks. Take care of cell placement and net routing into account. TCL script can be used for further optimization in the design compiler or physical compiler. 20 Is it an Issue ? Wrong CRPR calculation while OCV using Primetime version T-2002.09 lnability in tracing full common clock network path. lssue when the clock is getting diverted to multiple places. For the start and end register having same clock path till end is traced properly. 21 OCV using Primetime Consider Example 2. D Q ll1 cts1 cts2 cts3 cts+ U1 D Q ll2 D Q ll3 in2 in3 in1 clk out2 out1 clkn in3 U2 U3 U3 in+ U+ 'LYHUJHQFH SW. 22 Hold Check for Ex2. Startpoint: FF1 (rising edge-triggered flip-flop clocked by CLK) Endpoint: FF2 (rising edge-triggered flip-flop clocked by CLK) Path Group: CLK Path Type: min Min Clock Paths Derating Factor : 0.880 Max Clock Paths Derating Factor : 1.120 Point Incr Path --------------------------------------------------------------- clock CLK (rise edge) 0.000 0.000 clock source latency 0.000 0.000 CLK (in) 0.000 0.000 r cts1/A (CTS) 0.009 * 0.009 r cts1/Y (CTS) 0.264 * 0.273 r U4/A (MUX) 0.009 * 0.282 r U4/Y (MUX) 0.168 * 0.450 r U5/A (AND) 0.008 * 0.458 r U5/Y (AND) 0.071 * 0.529 r FF1/CLK (DFF) 0.011 * 0.539 r FF1/Q (DFF) 0.106 * 0.645 r U2/A (AND) 0.014 * 0.659 r U2/Y (AND) 0.056 * 0.715 r U3/A (AND) 0.015 * 0.730 r U3/Y (AND) 0.049 * 0.779 r FF2/D (DFF) 0.010 * 0.789 r data arrival time 0.789 23 Hold Check for Ex2. clock CLK (rise edge) 0.000 0.000 clock source latency 0.000 0.000 CLK (in) 0.000 0.000 r cts1/A (CTSB) 0.011 * 0.011 r cts1/Y (CTSB) 0.336 * 0.347 r U4/A (MUX) 0.011 * 0.358 r U4/Y (MUX) 0.214 * 0.572 r U5/A (AND) 0.010 * 0.582 r U5/Y (AND) 0.091 * 0.673 r cts3/A (CTS) 0.011 * 0.684 r cts3/Y (CTS) 0.336 * 1.020 r FF2/CLK (DFF) 0.011 * 1.032 r clock reconvergence pessimism -0.124 0.908 FF2/CLK (DFF) 0.908 r library hold time 0.030 * 0.938 data required time 0.938 --------------------------------------------------------------- data required time 0.938 data arrival time -0.789 --------------------------------------------------------------- slack (VIOLATED) -0.149 24 Hold Check for Ex2. Using report_crpr command to get the common network path report_crpr from FF1/CLK to FF2/CLK type hold clock CLK Startpoint: FF1 (rising edge-triggered flip-flop clocked by CLK) Endpoint: FF2 (rising edge-triggered flip-flop clocked by CLK) Common Point: U5/A Common Clock: CLK Launching edge at common point: RISING Capturing edge at common point: RISING Arrival times at common point Early Late CRP --------------------------------------------------------------- Rise 0.46 0.58 0.12 Fall 0.46 0.57 0.11 --------------------------------------------------------------- clock reconvergence pessimism 0.12 Not tracing common path completely. 25 Work Around. Selectively disabling the divergence point. i.e. set_disable_timing U1/A New Report after disabling the path, Startpoint: FF1 (rising edge-triggered flip-flop clocked by CLK) Endpoint: FF2 (rising edge-triggered flip-flop clocked by CLK) Path Group: CLK Path Type: min Min Clock Paths Derating Factor : 0.880 Max Clock Paths Derating Factor : 1.120 Point Incr Path --------------------------------------------------------------- clock CLK (rise edge) 0.000 0.000 clock source latency 0.000 0.000 CLK (in) 0.000 0.000 r cts1/A (CTSB) 0.009 * 0.009 r cts1/Y (CTSB) 0.264 * 0.273 r U4/A (MUX) 0.009 * 0.282 r U4/Y (MUX) 0.168 * 0.450 r U5/A (AND) 0.008 * 0.458 r U5/Y (AND) 0.071 * 0.529 r 26 Work Around. FF1/CLK (DFF) 0.011 * 0.539 r FF1/Q (DFF) 0.106 * 0.645 r U2/A (AND) 0.014 * 0.659 r U2/Y (AND) 0.056 * 0.715 r U3/A (AND) 0.015 * 0.730 r U3/Y (AND) 0.049 * 0.779 r FF2/D (DFF) 0.010 * 0.789 r data arrival time 0.789 clock CLK (rise edge) 0.000 0.000 clock source latency 0.000 0.000 CLK (in) 0.000 0.000 r cts1/A (CTS) 0.011 * 0.011 r cts1/Y (CTS) 0.336 * 0.347 r U4/A (MUX) 0.011 * 0.358 r U4/Y (MUX) 0.214 * 0.572 r U5/A (AND) 0.010 * 0.582 r U5/Y (AND) 0.091 * 0.673 r cts3/A (CTS) 0.011 * 0.684 r cts3/Y (CTS) 0.336 * 1.020 r FF2/CLK (DFF) 0.011 * 1.032 r clock reconvergence pessimism -0.144 0.887 FF2/CLK (DTN12) 0.887 r library hold time 0.030 * 0.917 data required time 0.917 --------------------------------------------------------------- data required time 0.917 data arrival time -0.789 --------------------------------------------------------------- slack (VIOLATED) -0.128 27 Work Around. After disabling diverging point. Startpoint: FF1 (rising edge-triggered flip-flop clocked by CLK) Endpoint: FF2 (rising edge-triggered flip-flop clocked by CLK) Common Point: U5/Y Common Clock: CLK Launching edge at common point: RISING Capturing edge at common point: RISING Arrival times at common point Early Late CRP --------------------------------------------------------------- Rise 0.50 0.64 0.14 Fall 0.50 0.63 0.14 --------------------------------------------------------------- clock reconvergence pessimism 0.14 28 Case Study Data for one of the Clock domain. 0 50 100 150 200 250 300 0.3-0.2 0.2-0.1 0.1-0 Before After 29 Conclusion lrrespective of liking, OCV analysis is a must to get your chip to market. Easy and Efficient way to take care of almost all the variation. One issue with tool, But work around available thanks to Synopsys support group.
Data Structures Using C A Practical Approach for Beginners 1st edition by Amol Jagtap, Ajit Mali 9781000470741 1000470741 - Download the ebook now for full and detailed access