SYNOPSYS, INC. 700 East Middlefield Road, Mountain View, CA 94043 USA Phone: 650-584-4200, OR: 1-800-245-8005 PrimeTime RC Delay Calculator Troubleshooting Guidelines Version 1.1 PrimeTime CAE Document Proprietary Information-Not for distribution without Synopsys Approval 1 SYNOPSYS, INC. 700 East Middlefield Road, Mountain View, CA 94043 USA Phone: 650-584-4200, OR: 1-800-245-8005 TABLE OF CONTENTS 1 INTRODUCTION 4 2 DIFFERENCES WITH TRANSISTOR-LEVEL SIMULATION 5 2.1 2.2 DISCREPANCIES DUE TO SETTINGS IN SPICE AND PRIMETIME CELL TIMING DISCREPANCY 5 6 2.2.1 Is the RC network unit definition the same in both PrimeTime and the SPICE simulation? 6 2.2.2 Are C-total and C-effective inside the library table boundaries? 6 2.2.3 Is input transition time inside the boundaries of the library table? 6 2.2.4 Is the characterization waveform applied on the input pin in SPICE simulation? 6 2.2.5 Do PrimeTime and the SPICE simulation results match for the same input transition time at C-total or C-effective? 7 2.2.6 Do the simulations of the PrimeTime driver model and the transistor-level driver agree for C-total and Ceffective? 7 2.2.6.1 Background: 7 2.2.6.2 Comparison: 9 2.3 RC-NETWORK TIMING DISCREPANCY 10 2.3.1 Is the driver cell timing discrepancy small? 2.3.2 Is the RC-network definition the same in both PrimeTime and the SPICE simulation? 2.3.3 Do PrimeTime and the SPICE simulation use the same driver arc? 2.4 10 10 10 PATH TIMING DISCREPANCY 11 2.4.1 Does the path begin with a port? 2.4.2 Are the side inputs the same in PrimeTime and the SPICE simulation? 2.5 TIMING OPTIMISM 2.5.1 3 11 11 11 Was a realistic characterization waveform used to create the library? 11 RC DELAY CALCULATOR ERROR AND WARNING MESSAGES 12 3.1 MESSAGES DURING THE ‘READ_PARASITICS’ COMMAND 3.1.1 Discrepancies between a logical netlist and its associated parasitic data. 12 12 3.1.1.1 PARA-006 - Error: Driver/Load pin 'xx' is missing in the RC annotation for net 'xxx'. Ignoring the incomplete RC annotation. 13 3.1.1.2 PARA-007- Warning: Unconnected hierarchy pin 'xx' is missing in the RC annotation for net 'xxx’ 13 3.1.2 Multi-driven net (DES-023) 3.2 WARNING MESSAGES DURING A TIMING UPDATE 3.2.1 Missing thresholds (DES-021) 3.3 CELL ARC WARNINGS 3.3.1 Calculation Failure -RC-004: 3.3.1.1 3.3.1.2 3.3.1.3 3.3.1.4 3.3.1.5 3.3.1.6 3.3.2 3.3.2.1 3.3.2.2 3.3.2.3 3.3.2.4 13 14 14 14 14 Non-positive drive-resistance Inconsistency with a linear driver-model. C-total less than or equal to zero Invalid reduced-order model Invalid pole-residue model Unconnected from-pin 15 15 16 16 16 17 Rd override -RC-009: 17 First condition: Rd << Znet Second condition- Net Delay > driver slew Quality of parasitic extraction What to do next? 17 18 18 18 3.4 NET ARC WARNINGS 3.4.1 RC-005 Warning: Calculation Failure 19 19 PrimeTime CAE Document Proprietary Information-Not for distribution without Synopsys Approval 2 SYNOPSYS, INC. 700 East Middlefield Road, Mountain View, CA 94043 USA Phone: 650-584-4200, OR: 1-800-245-8005 3.4.1.1 Unsupported multi-drive condition 3.4.1.2 No timing arcs 3.4.1.3 Under-driven network 3.4.1.4 Slew propagation 3.4.1.5 Incompatible Voltage Swings 19 19 19 19 20 3.5 MULTI-DRIVE WARNINGS 3.5.1 Incomplete driver coverage (RC-002) 3.5.2 Degenerate driver coverage (RC-003) 3.5.3 Calculation failure (RC-007) 3.6 MIN/MAX BOUNDS WARNING (RC-008) 20 20 21 22 22 4 CONCLUSION 22 5 RECOMMENDED READING 23 APPENDIX A: EXAMPLE OF HOW TO DEBUG RC-004 WARNING TYPE DESCRIBED IN SECTION 3.3.1.1 24 APPENDIX B: PARALLEL DRIVER REDUCTION 29 APPENDIX C: SYNOPSYS LIBERTY SCREENER 31 PrimeTime CAE Document Proprietary Information-Not for distribution without Synopsys Approval 3 SYNOPSYS, INC. 700 East Middlefield Road, Mountain View, CA 94043 USA Phone: 650-584-4200, OR: 1-800-245-8005 1 Introduction PrimeTime is a chip-level static timing analysis (STA) tool for complex multi-million gate system-on-a-chip (SoC) designs. PrimeTime’s powerful and accurate delay calculation engine allows users to perform analysis using detailed parasitic data in SPEF or DSPF format. Library, tool, and flow qualification may include calibration of the results from PrimeTime’s delay calculator with detailed parasitic annotation against transistor-level simulation. In flows where users have access to SPICE sub-circuits and device models, users may choose to perform SPICE simulation on critical paths identified by PrimeTime. During the correlation process, users may encounter the following issues: • Mismatching PrimeTime and SPICE results • RC delay calculation error or warning messages from PrimeTime The purpose of this application note is to help users understand and solve these issues. The first part presents guidelines on how to efficiently investigate and resolve the source of unexpected discrepancies. The second part explains how to interpret and identify possible causes for RC delay calculation warnings and error messages. This application note is intended for users who have access to library characterization methods and data, including SPICE subcircuits and device models. It is also useful for end users who want to achieve a better understanding of delay calculation for interaction with the library provider. Prior to reading and applying the techniques in this application note, it is highly recommended that you become familiar with the background application notes listed in the “Recommended Reading” section. Please note that the debugging techniques described in this application note are applicable to libraries using nonlinear delay models (NLDMs). The techniques are not applicable to generic CMOS models. The part related to driver_model is not applicable to CCS timing models either. The information in this application note is related to versions 2004.06 and later. PrimeTime CAE Document Proprietary Information-Not for distribution without Synopsys Approval 4 SYNOPSYS, INC. 700 East Middlefield Road, Mountain View, CA 94043 USA Phone: 650-584-4200, OR: 1-800-245-8005 2 Differences with Transistor-Level Simulation In order to compare PrimeTime results to those of a transistor-level simulator such as SPICE, one must correctly set the simulator accuracy settings and path conditions such as input transition time and output loading. This section describes how to investigate differences between PrimeTime and transistor-level simulation results in the absence of delay calculation warnings or errors from PrimeTime. For designs that generate PrimeTime delay calculation warnings or errors, please refer to the next section, “RC delay calculation warning Messages”. Please note that in order to simplify the wording in this application note, transistor-level simulation will be referred to as SPICE simulation. Initially, we must find out if the source of the discrepancies is global due to SPICE simulation settings or inconsistent setup between SPICE and PrimeTime. Next, we consider the following specific situations in which discrepancies may occur: • • • Cell timing discrepancies Network timing discrepancies Path timing discrepancies, including the overall trend in the discrepancies. For example, we need to examine whether SPICE delays are longer than in PrimeTime and investigate possible causes of this timing optimism. 2.1 Discrepancies Due to Settings in SPICE and PrimeTime Following are the first things to check when investigating discrepancies in settings between SPICE and PrimeTime. 2.1.1 Are high-accuracy settings used in SPICE simulation? Berkeley SPICE and its derivatives are not typically set to the highest accuracy level by default. When invoking SPICE simulation for library characterization and for comparison against PrimeTime, make sure that SPICE is set in its most accurate mode of analysis. Please refer to the specific SPICE simulation manual for details. Also, make sure that the simulation step size or granularity of waveform data is appropriate for the given process. As a practical rule, the simulation step size should be set to 1% of the minimum cell delay. For example, a good estimation of that minimum cell delay can be obtained by looking at the inverter with the largest drive driving the smallest possible load. 2.1.2 Do PrimeTime and SPICE simulation use the same trip-points? Both PrimeTime and the SPICE simulation must use the same delay and transition time trip-points. The trippoints determine the points on the waveform from which the delay and transition time are measured. For example, transition time trip-points may be at 30%-70% of Vdd, and delay trip-point may be at 50% Vdd. If different trip-points are used between PrimeTime and SPICE simulation, then the comparison is not valid. PrimeTime CAE Document Proprietary Information-Not for distribution without Synopsys Approval 5 SYNOPSYS, INC. 700 East Middlefield Road, Mountain View, CA 94043 USA Phone: 650-584-4200, OR: 1-800-245-8005 Please note that in libraries where transition times are specified at 0%-100% of Vdd, library slew derating is required for PrimeTime RC delay calculation. Please refer to the man page for the shell variable rc_slew_derate_from_library. Assuming that the previous checks have been done, what are some of the other causes of discrepancies between PrimeTime and SPICE? 2.2 Cell Timing Discrepancy Cell delay is defined as the delay between a logic transition on an input of a gate and the logic transition on the output of a gate. When the cell delay in PrimeTime and SPICE do not match, it is called a cell timing discrepancy. This section describes several possible causes. 2.2.1 simulation? Is the RC network unit definition the same in both PrimeTime and the SPICE It is possible that the units, such as for resistor and capacitor values, are not specified correctly either in the parasitic file (SPEF or DSPF) or in the SPICE simulation file. Please also check to make sure that the process, voltage, and temperature in SPICE simulation match the operating conditions being used in PrimeTime. 2.2.2 Are C-total and C-effective inside the library table boundaries? Verify that the lumped capacitance (C-total) and effective capacitance (C-effective) are inside the boundaries of the library table. These values are given by the PrimeTime command: pt_shell > report_delay_calculation –from Cell/Input –to Cell/Output If C-total and C-effective are not inside the boundaries of the library table, the discrepancy may be due to library data extrapolation. Whenever C-total and C-effective are not inside the library table, the cell delay and output transition time must be calculated by using extrapolation techniques. In this case, one option is to modify the design if the output capacitance value violates a design rule. This can be easily verified with: pt_shell > report_constraint –all_violators Other option is to re-characterize the library to so that the actual output capacitance is inside the boundaries of the lookup table. 2.2.3 Is input transition time inside the boundaries of the library table? If the input transition time is not inside the library table, the discrepancy may also be due to library extrapolation. Similar to C-total and C-effective, the design must be modified to meet design rule specifications or the library must be re-characterized. In short, the cells must be used so that their operating conditions are inside the characterization tables. 2.2.4 Is the characterization waveform applied on the input pin in SPICE simulation? In deep sub-micron technologies, during the characterization process, a real waveform is applied on the input of the cell to be characterized. When you do a comparison with a SPICE simulation, you must apply that characterization waveform in the SPICE simulation, not an ideal waveform, even if the ideal waveform has the same transition time. Otherwise, the ideal waveform could cause some significant differences in calculated delay. PrimeTime CAE Document Proprietary Information-Not for distribution without Synopsys Approval 6 SYNOPSYS, INC. 700 East Middlefield Road, Mountain View, CA 94043 USA Phone: 650-584-4200, OR: 1-800-245-8005 Ideal 100% 70% 50% Real 30% 0% Time Figure 1: Apply to the real circuit the characterization waveform. 2.2.5 Do PrimeTime and the SPICE simulation results match for the same input transition time at C-total or C-effective? For a given input transition time, the user should run SPICE simulations with the output capacitance set to Ctotal and C-effective. The cell delays in PrimeTime and SPICE simulation should match within about -/+1%. This max error will allow the user to have a +/-5% max error for the sum of cell delay and interconnect delay in PrimeTime. If the cell delays do not match, this indicates a potential library data interpolation problem. One of the reasons is that an insufficient number of indices have been used for characterization in the fast (nonlinear) region of the library table. To minimize interpolation errors, the cell should be re-characterized with more table points in the particular region of interest. 2.2.6 Do the simulations of the PrimeTime driver model and the transistor-level driver agree for C-total and C-effective? 2.2.6.1 Background: After back-annotation of the extracted parasitics from the layout, the PrimeTime delay calculator replaces the instantiated driving cell with a driver model called SDM (Synopsys Driver Model). This model is a Thevenin voltage source with a driving resistance. The parameters of this model are calculated so that the resulting waveform (cell delay and slew) matches, as closely as possible, the actual cell output waveform when Ceffective is the load applied to that cell. For more information on this process, please refer to the PrimeTime Delay Calculator white paper mentioned in the recommended reading paragraph. PrimeTime CAE Document Proprietary Information-Not for distribution without Synopsys Approval 7 SYNOPSYS, INC. 700 East Middlefield Road, Mountain View, CA 94043 USA Phone: 650-584-4200, OR: 1-800-245-8005 Ceff Actual Driving cell Cell Output Transition Cell Input Transition Volt Delay trip point Rd 0 0 tz tz + Dt Time Ceff Thevenin Source Simplified Driver Figure 2: Simplified Driver Model See paragraph 2.2.2 for information about the Ceff Ctotal values. The resulting calculated model parameters rd, tz, and Dt can be obtained by the PrimeTime command: pt_shell> report_driver_model –rise_slew <input_trans> -fall_slew <input-trans> \ -capacitance <Ceff or Ctotal> -lib_cell <driving cell> -from_pin <input pin> \ -to_pin <output pin> which gives **************************************** Report : driver_model Driver : xxx/yy:B-->Z Version: 2002.03 Date : Mon Mar 18 17:40:59 2002 **************************************** Accuracy Settings: slew_lower_threshold slew_upper_threshold input_threshold output_threshold slew_derate_from_library driver_model_max_error lib_thresholds_per_lib = true = = = = = = Rise Fall 35% 35% 65% 65% 50% 50% 50% 50% 0.3 16% Library Inputs: (in library units) Rising input slew = 0.370370 Falling input slew = 0.370370 Output load capacitance = 0.001881 Driver model for sense 'positive-unate': (max) Rise Fall -------------------------------------------------load = 0.001881 0.001881 (pF) delay = 0.263882 0.260043 (ns) slew = 0.029534 0.025686 (ns without derate) PrimeTime CAE Document Proprietary Information-Not for distribution without Synopsys Approval 8 SYNOPSYS, INC. 700 East Middlefield Road, Mountain View, CA 94043 USA Phone: 650-584-4200, OR: 1-800-245-8005 d-load d-delay d-slew rd tz dt error check = = = = = = = = 1.88e-05 7.25e-05 5.06e-05 22.67360 0.192315 0.073450 0.791158 pass 1.88e-05 7.20e-05 3.57e-05 19.72783 0.197800 0.063882 0.743590 pass (pF) (ns) (ns without derate) (kohm) (ns) (ns) (%) (min) Rise Fall -------------------------------------------------load = 0.001881 0.001881 (pF) delay = 0.263882 0.260043 (ns) slew = 0.029534 0.025686 (ns without derate) d-load = 1.88e-05 1.88e-05 (pF) d-delay = 7.25e-05 7.20e-05 (ns) d-slew = 5.06e-05 3.57e-05 (ns without derate) rd = 22.67360 19.72783 (kohm) tz = 0.192315 0.197800 (ns) dt = 0.073450 0.063882 (ns) error = 0.791158 0.743590 (%) check = pass pass You can read in bold the four calculated values for rd, tz and dt for a max and min analysis and for a rising and falling edge. Another way to have this information in a more compact but less readable format is: pt_shell> get_attribute [get_pins <driving pin>] ceff_params_max gives get_att [get_pins xxx/Z] ceff_params_max { A {rd 2.416740e+01 2.154167e+01} {t0 2.344839e-01 2.338319e-01} {delta_t 7.828199e-02 6.975447e-02} {ceff 1.880544e-03 1.880544e-03}} { B {rd 2.267359e+01 1.972783e+01} {t0 1.92315e-01 1.97800e-01} {delta_t 7.343002e-02 6.388229e-02} {ceff 1.880544e-03 1.880544e-03}} and pt_shell> get_attribute [get_pins <driving pin>] ceff_params_min gives get_att [get_pins xxx/Z] ceff_params_min { A {rd 2.26730e+01 2.154167e+01} {t0 2.344839e-01 2.338319e-01} {delta_t 7.828199e02 6.975447e-02} {ceff 1.880544e-03 1.880544e-03}} { B {rd 2.267359e+01 1.972783e+01} {t0 1.92315e-01 0.1978500e-01} {delta_t 7.345002e-02 6.3882e-02} {ceff 1.880544e-03 1.880544e-03}} The slight value differences that one might get between these two different commands are due to the fact that in report_driver_model, we specify in the command line the input slew. So this is a round-off value. When looking at the ceff_params_max/min attribute, the input transition is the one from the design, so the accuracy is slightly higher. 2.2.6.2 Comparison: After you get these parameters from PrimeTime, you can simulate in SPICE the actual driving cell loaded by the lumped capacitance and the effective capacitance; and the driver model (voltage source with a serial Rd resistance) loaded by the lumped capacitance and the effective capacitance. At this stage, the resulting waveforms should really match, especially in the region between the trip points. User can take advantage of PrimeTime SI command write_spice_deck for this task. PrimeTime CAE Document Proprietary Information-Not for distribution without Synopsys Approval 9 SYNOPSYS, INC. 700 East Middlefield Road, Mountain View, CA 94043 USA Phone: 650-584-4200, OR: 1-800-245-8005 2.3 RC-Network Timing Discrepancy RC network delay is defined as the delay between a logic transition on the driving output pin to a logic transition on an input load pin. When the RC network delay or the driver and load transition time between PrimeTime and SPICE simulation do not match, it is called an RC network timing discrepancy. This section describes several possible causes. 2.3.1 Is the driver cell timing discrepancy small? If the driver cell timing between PrimeTime and SPICE simulation does not match within reasonable expectations, this should be investigated first. Please refer to the previous section for more information. 2.3.2 Is the RC-network definition the same in both PrimeTime and the SPICE simulation? It is possible that the units, such as for resistor and capacitor values, are not specified correctly either in the parasitic file (SPEF or DSPF) or in the SPICE simulation file. The SPICE deck must contain the same resistors and capacitors as the ones in the SPEF/DSPF file used by PrimeTime. The units must be also the same in the .db file. A useful command in PrimeTime to check the units is report_units. Units --------------------------------------------Capacitive_load_unit Current_unit : 1e-12 Farad : 0.001 Amp Resistance_unit : 1000 Ohm Time_unit : 1e-09 Second Voltage_unit : 1 Volt This can be checked against the SPEF file header: *T_UNIT 1 NS *C_UNIT 1 FF *R_UNIT 1 OHM *L_UNIT 1 HENRY These units are the values used in Spice language. 2.3.3 Do PrimeTime and the SPICE simulation use the same driver arc? In order for the comparison to be valid, PrimeTime and the SPICE simulation must use the same driver arc. If the network driver has a fan-in of one, such as for an inverter or buffer, both the cell delay and output transition are derived from the same arc. If the network driver has a fan-in of greater than one, such as for a multi-input gate with multiple arcs, PrimeTime propagates only one of the arcs according to whether min or max analysis is active and according to the slew propagation mode. Depending on the setting of the variable timing_slew_propagation_mode , this can be worst slew propagation mode or worst arrival propagation mode. For the worst slew mode, the worst input slew of multi-input gates is always propagated, i.e. this worst input transition is used for the delay and slew calculation for that cell. For the worst arrival mode, the slew of PrimeTime CAE Document Proprietary Information-Not for distribution without Synopsys Approval 10 SYNOPSYS, INC. 700 East Middlefield Road, Mountain View, CA 94043 USA Phone: 650-584-4200, OR: 1-800-245-8005 the latest-arrival input is used for delay and slew calculation for that cell. A SPICE simulation, on the other hand, always uses the actual input slew of that cell. So, once it has been verified that the cell timing matches with the SPICE simulation, the RC-network timing must be verified using the same arc that was propagated by PrimeTime. One way to ensure this is by setting the same side-inputs in both PrimeTime and the SPICE simulation. For more information, see the man pages for the report_delay_calculation command and the timing_slew_propagation_mode variable. This is done automatically if the user uses write_spice_deck utility in primetime. 2.4 Path Timing Discrepancy This section describes how to troubleshoot differences in path delay between PrimeTime and a SPICE simulation. A timing path is a path that starts with an input port or a clock pin of a flip-flop and ends with an output port of a D pin of a flip-flop. It may consist of several cells. Before attempting to troubleshoot path timing discrepancies, it is assumed that any cell timing discrepancies and R-C network discrepancies have been resolved. Please refer to the previous sections on how to resolve these types of discrepancies. 2.4.1 Does the path begin with a port? A comparison should begin with an input pin on a leaf cell, and the characterization waveform should be applied to this pin in the SPICE simulation in order to make the comparison consistent. Be sure to use the set_annotated_transition command to annotate the same input transition time on the pin in PrimeTime as the time used or measured in the SPICE simulation. 2.4.2 Are the side inputs the same in PrimeTime and the SPICE simulation? All side inputs along the path must be specified equivalently for the comparison to be valid. A side input is an input that doesn’t belong to the path but contributes to that path. For example, if the path goes through the pin A from a NAND gate, input B of this NAND gate will be seen as a side input. IN A CLOCK B Side Input Figure 3: Side inputs 2.5 Timing Optimism For the purpose of delay correlation, we define timing optimism as the case where the cell delay or RC network delay determined by PrimeTime is shorter in maximum analysis, or longer in minimum analysis, than determined by SPICE simulation. 2.5.1 Was a realistic characterization waveform used to create the library? Different waveform shapes can have the same slew measurement but induce significant differences in downstream cell delays. Ideally, a waveform shape that induces maximum delays should be used for characterizing libraries for max analysis, and a waveform shape that induces minimum delays should be used for characterizing libraries for min analysis. If only one characterization waveform shape is used, some PrimeTime CAE Document Proprietary Information-Not for distribution without Synopsys Approval 11 SYNOPSYS, INC. 700 East Middlefield Road, Mountain View, CA 94043 USA Phone: 650-584-4200, OR: 1-800-245-8005 timing optimism will be unavoidable in those cases. For example, if the actual waveform in setup analysis is slower than the one used during characterization, the PrimeTime delay will be underestimated. 70% 100% 50% 30% 0% Transition Time time Fastest waveform Typical waveform Slowest waveform Figure 4: Characterization waveform Some libraries are characterized with a pre-driver cell. For better correlation results this pre-driver cell must be used as well in the design. 3 RC Delay Calculator Error and Warning Messages In this section, we will describe guidelines for investigating RC-related messages (DES-XXX, RC-XXX) in PrimeTime. Please refer to the man page for each warning message for additional information. 3.1 Messages During the ‘read_parasitics’ Command 3.1.1 Discrepancies between a logical netlist and its associated parasitic data. The logical netlist describes the connectivity of the leaf cells and hierarchical cells in design and is typically in the form of a Verilog netlist. The parasitic data represents the physical characteristics (resistance, capacitance, inductance) of the nets described in the logical netlist. This data is extracted from the physical database and is typically in the form of a SPEF file. There are valid sources of discrepancies between these two representations of the nets in the design, but these discrepancies should be investigated. Encountering either of the following messages warrants a detailed examination of the parasitic extraction flow/data to verify that these conditions are to be expected an not an indication of a serious problem with the parasitic annotation data. PrimeTime CAE Document Proprietary Information-Not for distribution without Synopsys Approval 12 SYNOPSYS, INC. 700 East Middlefield Road, Mountain View, CA 94043 USA Phone: 650-584-4200, OR: 1-800-245-8005 3.1.1.1 PARA-006 - Error: Driver/Load pin 'xx' is missing in the RC annotation for net 'xxx'. Ignoring the incomplete RC annotation. This is an error because a leaf or connected hierarchy pin is missing in the annotation file. PARA-006 causes a wire load model to be used instead of the parasitic annotation for all net arcs driven by that cell. The error PARA-006 indicates that PrimeTime has encountered a connection to a leaf cell pin that does not have a corresponding complete network description in the SPEF file. There are two ways of resolving this type of inconsistency. One is to complete the network using the either the -complete_with option to read_parasitics or the complete_parasitics command. If you choose not to complete the parasitic network, any SPEF annotation that exists for that net is discarded and the parasitic data for that net is retrieved from the appropriate wire load model. 3.1.1.2 PARA-007- Warning: Unconnected hierarchy pin 'xx' is missing in the RC annotation for net 'xxx’ The warning PARA-007 indicates that PrimeTime has encountered a connection to a hierarchical pin in the logical netlist that does not have a corresponding network description in the SPEF file. In this case, the assumption is that this segment does contribute to the parasitic effects of that net. The contribution to the parasitics is derived from the appropriate wire load model, or as specified by the complete_parasitics command or the -complete_with option to read_parasitics. Unconnected hierarchical Pin PARA-007 Warning PARA-006 Error BLOCK A Figure 5: PARA-006/7 situations 3.1.2 No Warning Multi-driven net (DES-023) Warning: Net 'IA1' is multi-driven. (DES-023) The purpose of this message is to make the user aware that there are multi-driven nets. Be sure you really intend to have this net multi-driven. This warning is informational and occurs only if the PrimeTime delay calculator is used. Please be aware that only some types of multi-drive conditions are supported, such as a configuration where the input pins of the multi-drive cells are connected together. See section 3.3.1.1 for details on this subject. A parallel driver reduction methodology is available to improve the run time. For more information on this feature see Appendix B of this document. PrimeTime CAE Document Proprietary Information-Not for distribution without Synopsys Approval 13 SYNOPSYS, INC. 700 East Middlefield Road, Mountain View, CA 94043 USA Phone: 650-584-4200, OR: 1-800-245-8005 3.2 Warning Messages during a Timing Update When using update_timing, report-timing or report_delay_calculation, the following types of messages can occur 3.2.1 Missing thresholds (DES-021) DES-021 (warning) These environment variables need to be set for accurate RC delay calculation: Variable name Default -----------------------------------------------------rc_slew_lower_threshold_pct_rise 20 rc_slew_lower_threshold_pct_fall 20 rc_slew_upper_threshold_pct_rise 80 rc_slew_upper_threshold_pct_fall 80 rc_input_threshold_pct_rise 50 rc_input_threshold_pct_fall 50 rc_output_threshold_pct_rise 50 rc_output_threshold_pct_fall 50 Thresholds for rise/fall transition times and delay must be defined in the libraries. They can also be specified with shell variables. However, in order to use several libraries defined with different set of trip points, it is far better if they are defined in the library. The rc_*_threshold_* variables specify the trip-points used for computing transition times and delays. If this information is not in the library and you cannot find it anywhere, you need to get the information from the library provider. PrimeTime gets the threshold information using the following order of priority: • Default case (when lib_thresholds_per_lib is true) • • • • • Variables from the library containing the pin rc_*_ threshold_* variables if they are set main library (first library in the link path) Default values (20%/80% slew, 50% delay, 1 as slew-derate) lib_thresholds_per_lib is false • • • rc_*_threshold_* variables if they are set main library (first library in the link path) Default values (20%/80% slew, 50% delay, 1 as slew-derate) See the man page and section 3.4.1.5 for more information on the lib_threshold_per_lib variable. 3.3 Cell arc warnings These warnings are related to the calculation of the Synopsys Driver Model when using NLDM libraries. 3.3.1 Calculation Failure -RC-004: This serious warning implies that the delay calculator was unable to calculate the effective capacitance. In that case, for a conservative analysis, C-total is used in max analysis mode and C-zero is used in min analysis mode. C-total is the sum of all the capacitance values of the network, and in hold analysis, PrimeTime assumes a load equal to 0. The RC-004 warning means that the Ceff calculation failed. But the detailed warning message gives information on the reason for this failure. PrimeTime CAE Document Proprietary Information-Not for distribution without Synopsys Approval 14 SYNOPSYS, INC. 700 East Middlefield Road, Mountain View, CA 94043 USA Phone: 650-584-4200, OR: 1-800-245-8005 In addition, the RC delay calculation is not applied to a transition going to or from Z. So the RC-004 warning never shows up for a disable or enable timing arc. 3.3.1.1 Non-positive drive-resistance Warning: Failed to compute C-effective for the timing arc (xx/yyy) i1/A-->Z (rising positive-unate) because the library data indicates a non-positive drive resistance. [r/f inp_slew = 0.028226/0.028226, out_cap = 0.003015 (lib units)] (RC-004) This message indicates that the library cell delay or output slew does not increase with increasing load capacitance. The library issues must be resolved. You can use the report_driver_model command to test the capacitance-sensitivity of the library data. It calculates the impact of an increase of the loading capacitance by 1% on the delay. The delay and the slew must increase in this case. This problem can be caused by a library extrapolation, an incorrect value for the transition time trip-points, or not enough significant digits in the NLDM tables. Example: pt_shell > report_driver_model –rise_slew 0.028226 –fall_slew 0.028226 –capacitance 0.003015 \ –lib_cell xx/yy –from_pin A –to_pin Z gives: Driver model for sense 'positive-unate': (max) Rise Fall -------------------------------------------------load = 0.003014 0.003014 (pF) delay = 0.054132 0.081334 (ns) slew = 0.044777 0.039348 (ns without derate) d-load = 3.01e-05 3.01e-05 (pF) d-delay = -3.35e-05 6.91e-05 (ns) d-slew = 0.000150 7.13e-05 (ns without derate) rd = 0.000000 5.171246 (kohm) tz = 0.000000 0.057792 (ns) dt = 0.000000 0.022714 (ns) error = -NaN 1.041177 (%) check = FAIL pass The warning is issued because d-delay (increase of delay with respect to increase in load) is negative. A methodology to analyze this issue is available in Appendix A. It is also recommended that the library be analyzed with the Synopsys Liberty Screener. This tool screens the library with criteria such as nonmonotonic behavior, number of significant digits, min/max capacitance values, and min/max transitions values. For more information on this tool, see Appendix C. 3.3.1.2 Inconsistency with a linear driver-model. Warning: Failed to compute C-effective for the timing arc (xx/yyy) i1/A-->Z (rising positive-unate) because the library data is inconsistent with a lineardriver model[r/f inp_slew = 0.028226/0.028226, out_cap = 0.003015 (lib units)] (RC-004) PrimeTime could not find driver-model parameters that effectively match the library delay, slew, and sensitivity to capacitance. Usually this is because the trip-points are not set correctly or the library data is inaccurate, with not enough precision when the library was characterized. If that case, you can increase the value of the shell variable rc_ceff_delay_min_diff_ps from 0.25 to 0.5 or 1.0 until the library can be fixed. This variable specifies the tolerance used by PrimeTime for determining the effective capacitance by looking at the driver cell delay. If doubling or quadrupling this value does not stop the RC-004 warnings, it is more likely that the problem is due to incorrect trip point setting. Note that increasing the tolerance setting helps prevent calculation failures, PrimeTime CAE Document Proprietary Information-Not for distribution without Synopsys Approval 15 SYNOPSYS, INC. 700 East Middlefield Road, Mountain View, CA 94043 USA Phone: 650-584-4200, OR: 1-800-245-8005 but also adversely impacts the accuracy of those calculations that previously did not fail. See the man page on the variable for more information. 3.3.1.3 C-total less than or equal to zero Warning: Failed to compute C-effective for the timing arc (xx/yyy) i1/A-->Z (rising positive-unate) because C-total is less than or equal to zero[r/f inp_slew = 0.028226/0.028226, out_cap = 0.0 (lib units)] (RC-004) This can only happen if the read_parasitics command was incorrectly used with the ‘-pin_cap_included’ option. Obviously, if PrimeTime incorrectly subtracts the pin capacitance from the network, Ctotal can be negative, which prevents the delay calculator from calculating Ceff. 3.3.1.4 Invalid reduced-order model Warning: Failed to compute C-effective for the timing arc (xx/yyy) i1/A-->Z (rising positive-unate) because the RC network has an invalid reduced-order model[r/f inp_slew = 0.028226/0.028226, out_cap = 0.003015 (lib units)] (RC004) This can only happen if the connectivity of the annotated parasitics does not match that of the design. Check to see if there was an accompanying PARA-006/PARA-007 message (missing pin in the parasitics) or LNK message (unconnected pin in the design) for the net. 3.3.1.5 Invalid pole-residue model Warning: Failed to compute C-effective for the timing arc (xx/yyy) i1/A-->Z (rising positive-unate) because the RC network has an invalid pole-residue model[r/f inp_slew = 0.028226/0.028226, out_cap = 0.003015 (lib units)] (RC004) This message indicates that the RC data is represented in terms of pi models R/C/R with additional poles and residues. This model is used to compute the slew at the driver pin. This can only happen with wrong pi-model data imported from RSPF or SPEF RNETs. Example of Reduced SPEF syntax: Figure 6: Reduced Pi Model PrimeTime CAE Document Proprietary Information-Not for distribution without Synopsys Approval 16 SYNOPSYS, INC. 700 East Middlefield Road, Mountain View, CA 94043 USA Phone: 650-584-4200, OR: 1-800-245-8005 3.3.1.6 Unconnected from-pin Warning: Failed to compute C-effective for the timing arc (xx/yyy) i1/A-->Z (rising positive-unate) because from-pin is unconnected[r/f inp_slew = 0.028226/0.028226, out_cap = 0.003015 (lib units)] (RC-004) This can only happen if one of the drivers on a multi-driven net has an unconnected from-pin. In that case, there is also a LNK-22 warning for the unconnected input and an RC-007 because of the multi-drive structure. 3.3.2 Rd override -RC-009: Warning: The drive-resistance for the timing arc (xxx/yy) buf3/A-->Z (falling positive-unate) is much less than the network impedance to ground; PrimeTime has adjusted the drive-resistance to improve accuracy. (RC-009) As previously mentioned, the driver model consists of a voltage ramp in series with a resistor. The resistor helps smooth out the voltage ramp so that the resulting driver waveform has similar curvature to that of an actual transistor driver. An Rd adjustment takes place when the two following conditions are verified: 3.3.2.1 First condition: Rd << Znet U1 U2 Waveforms at net input PrimeTime detects that Znet is greater than Rd and adjusts the driver model to improve accuracy. SDM Rd=small U2 V(t) Thevenin Source Figure 7: RC-009 case: first condition When the drive resistor is much less than the impedance of the network to ground, the smoothing effect is reduced, causing RC delay calculation to be potentially inaccurate. This condition can occur when a very strong driver is connected to a very resistive network. When the library-derived drive resistance is much less than the network’s dynamic impedance to ground, PrimeTime overrides Rd to improve accuracy. PrimeTime CAE Document Proprietary Information-Not for distribution without Synopsys Approval 17 SYNOPSYS, INC. 700 East Middlefield Road, Mountain View, CA 94043 USA Phone: 650-584-4200, OR: 1-800-245-8005 By default, PrimeTime obtains extra pessimism in min analysis mode by not using slew-degradation. 3.3.2.2 Second condition- Net Delay > driver slew Net input waveform t70 t50 Net output waveform t30 Network delay Driver transition time Figure 8: RC-009 case: second condition By default, this adjustment and the warning only take place when in addition to the first condition; the net delay is greater than the driver slew, because it is in this case that the loss of accuracy occurs. Indeed this is expected because the network delay depends upon the driver waveform near and beyond the later slew trippoint. This is precisely the aspect of the waveform most affected by the drive resistance. This is controlled with the shell variable rc_filter_rd_less_than_rnet.. See man page for more information on that variable. 3.3.2.3 Quality of parasitic extraction Finally, users should be very aware that Znet is greatly affected by the quality of parasitic extraction. The default behavior assumes a well-distributed RC network. However, thousands of RC-009 messages may appear when very resistive nets have been extracted with a relatively small number of RC segments. In this case, Znet increases as the number of RC segments is reduced for a given network. PrimeTime can perform more and more accurate calculation if the parasitic network is extracted with greater and greater detail (i.e. it is more distributed). A more distributed network (i.e. increased number of RC segments) can typically be extracted by decreasing the value of the maximum line segment length parameter. Eliminating the use of reduction algorithms in the extraction tool can also lead to a more distributed network. With a more distributed and detailed parasitic network, Znet will decrease, leading to fewer RC-009 messages and more accurate results from PrimeTime. The RC-009 mechanism is controlled by a threshold parameter value that assumes high-resolution RC extraction (i.e. many RC segments for very resistive nets). If low-resolution RC is used, then be sure to set rc_filter_rd_less_than_rnet true to avoid too many RC-009 messages. 3.3.2.4 What to do next? This condition does not arise out of a problem with library data. When this condition occurs, PrimeTime adjusts the drive resistance to improve accuracy. However, note that even with this adjustment, the resulting accuracy might be insufficient. PrimeTime CAE Document Proprietary Information-Not for distribution without Synopsys Approval 18 SYNOPSYS, INC. 700 East Middlefield Road, Mountain View, CA 94043 USA Phone: 650-584-4200, OR: 1-800-245-8005 For users who are concerned with extremely high accuracy and wish to calculate the difference between PrimeTime's driver and network timing results compared to transistor simulation (SPICE), these messages can be used to pinpoint areas to investigate to determine the accuracy of the empirical driver models. Notice usage of CCS models gets rid of this accuracy issue. Otherwise, the RC-009 messages can be safely suppressed. Use the command 'suppress_message RC-009'. 3.4 Net arc warnings The PrimeTime delay calculator uses a Reduced Order Model to model the behavior of the network. The following warnings are related to some failure in the network calculation. 3.4.1 RC-005 Warning: Calculation Failure Warning: Failed to compute the RC network delay from the pin 'xxx/yy' to the pin 'zzz/x' in the network 'xx'. (RC-005) Depending on which other warnings are produced by the delay calculator, you can find the reason why this warning is showing up. 3.4.1.1 Unsupported multi-drive condition In this case, there is also an RC-002 warning. See section 3.5.1 for more details. PrimeTime only supports multi-drive conditions where the drivers are all wired in parallel. If this warning occurs, either apply case analysis to disable unsupported arcs, modify the design to use the supported topology, or annotate delays and slews on the unsupported arcs. The delays and slews can be measured in a SPICE simulation and can be annotated with the set_annotated_delay and set_annotated_transition commands in PrimeTime. See man pages for more information on these commands. 3.4.1.2 No timing arcs Dead-end nets (i.e. those with only drivers or only loads) can be created; reporting to or from pins on such nets can cause this message. You can ignore these messages. 3.4.1.3 Under-driven network Extremely under-driven nets (e.g. one clock buffer connected to hundreds of clock pins) may not converge to one of the waveform trip-points. This sometimes occurs before layout for nets (for example, clock trees) when buffer insertion has not yet been performed. You can annotate delays and slews on nets to be replaced with post-layout clock buffer trees. 3.4.1.4 Slew propagation The worst_arrival slew propagation mode only analyzes constrained paths. If reporting is performed on an unconstrained path, the RC-005 message is issued. Use the report_delay_calculation command or disable worst-arrival slew propagation with the shell variable timing_slew_propagation_mode. PrimeTime CAE Document Proprietary Information-Not for distribution without Synopsys Approval 19 SYNOPSYS, INC. 700 East Middlefield Road, Mountain View, CA 94043 USA Phone: 650-584-4200, OR: 1-800-245-8005 3.4.1.5 Incompatible Voltage Swings The PrimeTime delay calculator can handle a network between two cells belonging to libraries with different trip-points. If the PrimeTime delay calculator fails to calculate the network in this situation, it may be due to an incorrect setup of the rc_xxx variables (trip points) or power rail. If the correct values were not specified in the source of the library, Library Compiler uses a set of default values, possibly resulting in the calculation failure. Notice that the default power rail will be 5.00 if nom_voltage is not specified like this: nom_process: 1.5; nom_voltage : 1.62; nom_temperature : 105. Use: pt_shell> report_delay_calculation –from <driving cell/output> -to <load/input> -threshold From pin: To pin: Main Library Units: 1ns 1pF arc sense: arc type: xxx/yy zzz/x 1kOhm unate net Library Rise Rise Fall Fall Slew Rail Thresholds: Delay Slew Delay Slew Derate Voltage ---------------------------------------------------------------from-pin 40 10->90 50 90->10 1.000 1.550 to-pin 50 20->80 50 80->20 1.000 5.000 Warning: Failed to compute the RC network delay from the pin 'xxx/yy' to the pin 'zzz/x' in the network 'div_0/fsm_inst/lowphase'. (RC-005) Warning: The type of RC delay calculation problems that has just occured prevents the max results from bounding the correct values. (RC-008) Using lump net delay because the calculation with detailed RC failed. Balanced case tree RC delay: (r_wire/load_count) * (c_pin + c_wire/load_count) rise: (0.0422141 / 1) * (0.0072 + (0.035859 / 1)) fall: (0.0422141 / 1) * (0.0072 + (0.035859 / 1)) Rise delay = 0.0018177 Fall delay = 0.0018177 In this example, we can obviously see that the Rail Voltage of the second library is erroneous. You have to correct the library or use the main library set of trip-points by setting the variable: lib_thresholds_per_lib to false (see man page for more information). This appears as the most common condition for RC-005: the lib_thresholds_per_lib variable is true and the driver voltage swing does not cover all the trip-points of a load pin. Another common cause of this problem is using a library without a default operating condition. When this occurs, you can either fix the library or use the set_operating_conditions command on the affected cells. 3.5 Multi-Drive Warnings 3.5.1 Incomplete driver coverage (RC-002) Warning: The net 'A1' controls only a subset of the drivers of PrimeTime CAE Document Proprietary Information-Not for distribution without Synopsys Approval 20 SYNOPSYS, INC. 700 East Middlefield Road, Mountain View, CA 94043 USA Phone: 650-584-4200, OR: 1-800-245-8005 the multi-driven net 'IA1', so detailed RC delay calculation cannot be used. (RC002) This RC-002 message indicates that net A1 is controlling the switching activity of only a subset of the drivers of a multi-driven net. The switching activity of the remaining drivers is uncertain, so detailed RC delay calculation cannot be used. A from-net (A1 in this case) does not cover all of the drivers on a multi-driven net. This multi-drive condition is unsupported by PrimeTime. Instead, the load is assumed to be the total capacitance of the multi-driven net divided by the number of drivers. Ensure all drivers are switched by each from-net (i.e. that they are wired in parallel), or annotate delays and transition times if you seek greater accuracy than the lumped fallback analysis can provide. You may have RC-005 warning as well, as described in section 3.4.1.1. However, unsupported multi-drive conditions will fail cell-arc delay calculation, but a valid driver-model is built for the fallback data at Ctotal/zero and is used to drive the net. The RC-005 message is for problems specific to net delay calculation only. There can be an RC-008 message as well: see section 3.6 for more information. Non supported: Warning DES-023, RC-002, RC-005 Supported: Warning DES-023 Figure 9: Unsupported/Supported Examples 3.5.2 Degenerate driver coverage (RC-003) Warning: The net 'A1' connects to more than one pin on a driver of the multi-driven net 'Z', so detailed RC delay calculation cannot be used. (RC-003) This message indicates that a net connects to more than one pin on a driver of the multi-driven net. Therefore, detailed RC delay calculation cannot be used. Instead, the load is assumed to be the total capacitance of the multi-driven net divided by the number of drivers. PrimeTime CAE Document Proprietary Information-Not for distribution without Synopsys Approval 21 SYNOPSYS, INC. 700 East Middlefield Road, Mountain View, CA 94043 USA Phone: 650-584-4200, OR: 1-800-245-8005 Figure 10: Unsupported RC-003 and Unsupported RC-002 Examples 3.5.3 Calculation failure (RC-007) Warning: Failed to compute C-effective for the multi-driven net 'xxx/yy' driven by cell arcs controlled by the from-net 'xxx/y' (RC-007) This message indicates that multiple drivers are switching faster than the library delay at zero output capacitance. This is a limitation of the current PrimeTime driver model. In max analysis mode, the C-zero fallback is used, but in min analysis mode, there is no valid fallback. For accurate analysis, annotate the delays and slew. See man page for more information. 3.6 Min/Max Bounds Warning (RC-008) Warning: The type of RC delay calculation problems that has just occured prevents the max results from bounding the correct values. (RC-008) In case of one of the previously described failures, a fallback calculation has been selected to guarantee a conservative analysis: C-total is used in max analysis mode and C-zero min analysis mode. However if PrimeTime cannot determine that these fallback values are pessimistic, then it issues an RC-008 message. So this is a supplemental warning that may be due for example to a multi-driven network switching faster than the min delay for this cell or in case of a library extrapolation problem that would return a negative slew. Users should fix the problems associated with the earlier delay calculation warnings, or fix the library or use annotated delay and slew information obtained by circuit simulation. 4 Conclusion This document can help you efficiently analyze, understand, and debug the most frequent issues encountered in PrimeTime analysis with back-annotated detailed parasitics. All the errors and warnings described here can result in the loss of accuracy and pessimism in the analysis, so it is important to carefully examine them. If PrimeTime CAE Document Proprietary Information-Not for distribution without Synopsys Approval 22 SYNOPSYS, INC. 700 East Middlefield Road, Mountain View, CA 94043 USA Phone: 650-584-4200, OR: 1-800-245-8005 the existing data structure is unsupported and unavoidable, it is recommended that you use annotated delay and slew information obtained by circuit simulation. 5 Recommended Reading The following documents are recommended for a deeper understanding of PrimeTime’s RC Delay Calculator. Please contact your Synopsys Applications Consultant for a copy. [1] “Understanding Delay Calculation with Detailed Parasitics in PrimeTime”, PrimeTime white paper from Synopsys, Inc. [2] “Library Qualification Guidelines for PrimeTime”, PrimeTime Application Note, Synopsys, Inc. PrimeTime CAE Document Proprietary Information-Not for distribution without Synopsys Approval 23 SYNOPSYS, INC. 700 East Middlefield Road, Mountain View, CA 94043 USA Phone: 650-584-4200, OR: 1-800-245-8005 Appendix A: Example of how to debug RC-004 warning type described in section 3.3.1.1 If the PrimeTime delay calculator gives an RC-004 failure calculation message as described in step 1, you can analyze the potential issues for the cell: • Is this cell used within the boundaries of the library table (as required in section 2.2.3)? • Does the cell have monotonic behavior (as required in section 3.3.1.1)? Step 1: Look at one of the RC-004 messages from the log file: Warning: Failed to compute C-effective for the timing arc (custom_arrays/dual_64x64_ram_con0) ivg/ivg_comp_fifo0/ivg_comp_fifo_m1 /p1_clk-->p1_rd_data[29] (rising falling) because the library data indicates a non-positive drive resistance. [r/f inp_slew = 0/0, out_cap = 0.0784132 (lib units)] (RC-004) Step 2: pt_shell> remove_annotated_parasitics This will remove the detailed parasitics Step 3: pt_shell> set_annotated_transition -rise 0.0 ivg/ivg_comp_fifo0/ivg_comp_fifo_m1/p1_clk pt_shell> set_annotated_transition -fall 0.0 ivg/ivg_comp_fifo0/ivg_comp_fifo_m1/p1_clk We annotate the transition time that shows up in the warning message Step 4: pt_shell> set_load -subtract_pin_load 0.0784132 [get_nets -of_object \ [get_pins ivg/ivg_comp_fifo0/ivg_comp_fifo_m1/p1_rd_data[29]]] We annotate the load that shows up in the warning message. We subtract the pin loads because PrimeTime adds them automatically. Step 5: pt_shell> report_delay_calculation -from_rise 0.0 -from_fall 0.0 –from \ ivg/ivg_comp_fifo0/ivg_comp_fifo_m1/p1_clk –to \ ivg/ivg_comp_fifo0/ivg_comp_fifo_m1/p1_rd_data[29] Step 6: set_load -subtract_pin_load [expr 0.0784132*1.01] [get_nets -of_object \ [get_pins ivg/ivg_comp_fifo0/ivg_comp_fifo_m1/p1_rd_data[29]]] PrimeTime CAE Document Proprietary Information-Not for distribution without Synopsys Approval 24 SYNOPSYS, INC. 700 East Middlefield Road, Mountain View, CA 94043 USA Phone: 650-584-4200, OR: 1-800-245-8005 We increase the load by 1%. Step7: report_delay_calculation -from_rise 0.0 -from_fall 0.0 –from \ ivg/ivg_comp_fifo0/ivg_comp_fifo_m1/p1_clk –to \ ivg/ivg_comp_fifo0/ivg_comp_fifo_m1/p1_rd_data[29] We look at the impact of this load increase on the cell delay. Step8: Look at the reports from the delay calculations: Reports from Step 5: Report : Design : Version: Date : delay_calculation np 2002.03 Wed Apr 4 14:32:05 2002 From pin: ivq/ivq_comp_fi_fo0/ivq_comp_fifo_ml/pl_clk To pin: ivg/ivg_comp_fifo0/ivg_comp_fifo_m1/p1_rd_data[29] Main Library Units: 1ns 1pF 1kOhm Library: ‘custom_arrays’ Library Units: 1ns 1pF 1kOhm Library Cell: ‘dual_64x64_ram_con0’ arc sense: falling_edge arc type: cell Units: 1ns 1pF 1kOhm Rise Delay cell delay = 1.2892 Table is indexed by (X) input_pin_transition = 0 (Y) output_net_total_cap = 0.0784132 Relevant portion of lookup table: (X) 0.0900 (X) 0.1800 (Y) 0.0660 (Z) 1.3290 (Z) 1.3530 (Y) 0.1320 (Z) 1.3530 (Z) 1.4850 Z = A + B*X + C*Y + D*X*Y A = 1.3890 B = -0.9333 C = -1.2727 D = 18.1818 Z = 1.2892 scaling result for operating conditions multiplying by 1 gives 1.2892 Fall Delay cell delay = 1.2892 Table is indexed by (X) input_pin_transition = 0 (Y) output_net_total_cap = 0.0784132 Relevant portion of lookup table: (X) 0.0900 (X) 0.1800 (Y) 0.0660 (Z) 1.3290 (Z) 1.3530 (Y) 0.1320 (Z) 1.3530 (Z) 1.4850 Z = A + B*X + C*Y + D*X*Y A = 1.3890 B = -0.9333 PrimeTime CAE Document Proprietary Information-Not for distribution without Synopsys Approval 25 SYNOPSYS, INC. 700 East Middlefield Road, Mountain View, CA 94043 USA Phone: 650-584-4200, OR: 1-800-245-8005 C = -1.2727 D = 18.1818 Z = 1.2892 scaling result for operating conditions multiplying by 1 gives 1.2892 Cell Delay rise: 1.2892 fall: 1.2892 Rise delay = 1.2892 Fall delay = 1.2892 Units: 1ns 1pF 1kOhm Transition rise transition = 0.0834543 Table is indexed by (X) input_pin_transition = 0 (Y) output_net_total_cap = 0.0784132 Relevant portion of lookup table: (X) 0.0900 (X) 0.1800 (Y) 0.0660 (Z) 0.0730 (Z) 0.0680 (Y) 0.1320 (Z) 0.1030 (Z) 0.0990 Z = A + B*X + C*Y + D*X*Y A = 0.0490 B = -0.0667 C = 0.4394 D = 0.1683 Z = 0.0834543 scaling result for operating conditions multiplying by 1 gives 0.0834543 Transition fall transition = 0.0834543 Table is indexed by (X) input_pin_transition = 0 (Y) output_net_total_cap = 0.0784132 Relevant portion of lookup table: (X) 0.0900 (X) 0.1800 (Y) 0.0660 (Z) 0.0730 (Z) 0.0680 (Y) 0.1320 (Z) 0.1030 (Z) 0.0990 Z = A + B*X + C*Y + D*X*Y A = 0.0490 B = -0.0667 C = 0.4394 D = 0.1683 Z = 0.0834543 scaling result for operating conditions multiplying by 1 gives 0.0834543 Rise transition = 0.0834543 Fall transition = 0.0834543 Annotated max rise absolute transition: 0 Annotated max fall absolute transition: 0 pin transition: 0 pin transition: 0 Report from Step 7: Report : delay_calculation Design : np Version: 2002.03 Date: Wed Apr 4 14:38:24 2002 PrimeTime CAE Document Proprietary Information-Not for distribution without Synopsys Approval 26 SYNOPSYS, INC. 700 East Middlefield Road, Mountain View, CA 94043 USA Phone: 650-584-4200, OR: 1-800-245-8005 >From pin: ivg/ivg_comp_fifo0/ivg_comp_fifo_m1/p1_clk To pin: ivg/ivg_comp_fifo0/ivg_comp_fifo_m1/p1_rd_data[29] Main Library Units: 1ns 1pF 1kOhm Library: ‘custom_arrays’ Library Units: 1ns 1pF 1kOhm Library Cell: ‘dual_64x64_ram_con0’ arc sense: falling_edge arc type: cell Units: 1ns 1pF 1kOhm Rise Delay cell delay = 1.2882 Table is indexed by (X) input_pin_transition = 0 (Y) output_net_total_cap = 0.0791973 Relevant portion of lookup table: (X) 0.0900 (X) 0.1800 (Y) 0.0660 (Z) 1.3290 (Z) 1.3530 (Y) 0.1320 (Z) 1.3530 (Z) 1.4850 Z = A + B*X + C*Y + D*X*Y A = 1.3890 B = -0.9333 C = -1.2727 D = 18.1818 Z = 1.2882 scaling result for operating conditions multiplying by 1 gives 1.2882 Fall Delay cell delay = 1.2882 Table is indexed by (X) input_pin_transition = 0 (Y) output_net_total_cap = 0.0791973 Relevant portion of lookup table: (X) 0.0900 (X) 0.1800 (Y) 0.0660 (Z) 1.3290 (Z) 1.3530 (Y) 0.1320 (Z) 1.3530 (Z) 1.4850 Z = A + B*X + C*Y + D*X*Y A = 1.3890 B = -0.9333 C = -1.2727 D = 18.1818 Z = 1.2882 scaling result for operating conditions multiplying by 1 gives 1.2882 Cell Delay rise: 1.2882 fall: 1.2882 Rise delay = 1.2882 Fall delay = 1.2882 Units: 1ns 1pF 1kOhm Transition rise transition = 0.0837988 Table is indexed by (X) input_pin_transition = 0 (Y) output_net_total_cap = 0.0791973 PrimeTime CAE Document Proprietary Information-Not for distribution without Synopsys Approval 27 SYNOPSYS, INC. 700 East Middlefield Road, Mountain View, CA 94043 USA Phone: 650-584-4200, OR: 1-800-245-8005 Relevant portion of lookup table: (X) 0.0900 (X) 0.1800 (Y) 0.0660 (Z) 0.0730 (Z) 0.0680 (Y) 0.1320 (Z) 0.1030 (Z) 0.0990 Z = A + B*X + C*Y + D*X*Y A = 0.0490 B = -0.0667 C = 0.4394 D = 0.1683 Z = 0.0837988 scaling result for operating conditions multiplying by 1 gives 0.0837988 Transition fall transition = 0.0837988 Table is indexed by (X) input_pin_transition = 0 (Y) output_net_total_cap = 0.0791973 Relevant portion of lookup table: (X) 0.0900 (X) 0.1800 (Y) 0.0660 (Z) 0.0730 (Z) 0.0680 (Y) 0.1320 (Z) 0.1030 (Z) 0.0990 Z = A + B*X + C*Y + D*X*Y A = 0.0490 B = -0.0667 C = 0.4394 D = 0.1683 Z = 0.0837988 scaling result for operating conditions multiplying by 1 gives 0.0837988 Rise transition = 0.0837988 Fall transition = 0.0837988 Annotated max rise absolute transition: 0 Annotated max fall absolute transition: 0 pin transition: 0 pin transition: 0 Step 9: Analysis and Conclusion From the above two reports, we observe that with a 1% increase of load (0.0784132*1.01), rise/fall delay decreased (from 1.2892 to 1.2882), which is wrong. The behavior of this cell is non-monotonic, which means that the delay doesn’t increase (decreases or stays the same) with increasing load. Therefore, the PrimeTime delay calculator cannot find a correct driver model since the resulting Rd is negative. See section 2.2.6.1 for more information on the driver model. Furthermore, from the report you will also notice the following portion of the lookup table: (Y) (Y) 0.0660 0.1320 (X) (Z) (Z) 0.0900 1.3290 1.3530 (X) (Z) (Z) 0.1800 1.3530 1.4850 which says that (X), meaning the input pin transition, started from 0.0900, whereas in our case (look at the RC-004 message) it is 0.0, which is outside of the above table. So the cell is not used in its characterization range, and some extrapolation inaccuracy is expected. A cell must always been used in its characterization range. See section 2.2.2 for more information on the characterization range. These issues can also been analyzed by the Liberty Screener: see Appendix C for more information. PrimeTime CAE Document Proprietary Information-Not for distribution without Synopsys Approval 28 SYNOPSYS, INC. 700 East Middlefield Road, Mountain View, CA 94043 USA Phone: 650-584-4200, OR: 1-800-245-8005 Appendix B: Parallel Driver Reduction Because clock signals must typically drive a large number of loads, clocks are often buffered to provide the drive strength necessary to reduce clock skew to an acceptable level. A large clock network might use a large number of drivers operating in parallel. These drivers can be organized in a “mesh” or “spine” pattern to distribute the signal throughout the chip. If a design has 1,000 drivers in parallel driving 1,000 loads, PrimeTime must keep track of one million different timing arcs between the drivers and loads. Timing analysis of such a network can consume a large amount of CPU and memory resources. For better performance, PrimeTime can reduce the number of timing arcs that must be analyzed. When the reduction feature is enabled, PrimeTime selects one driver in a parallel network and analyzes the timing arcs through that driver only. Invoking Parallel Driver Reduction Parallel driver reduction is controlled by the following variables: • timing_reduce_multi_drive_net_arcs • timing_reduce_multi_drive_net_arcs_threshold The first of these two variables can be set to true or false to enable or disable parallel driver reduction. By default, it is set to false and no reduction is done. When it is set to true, during design linking, PrimeTime checks for the presence of nets with multiple drivers. If it finds a net with driver-load combinations exceeding the threshold specified by the threshold variable, it reduces the number of timing arcs associated with the drivers of that net. The threshold variable specifies the minimum number of timing arcs that must be present in order to trigger a reduction. By default, it is set to 10,000, which means that PrimeTime reduces the timing arcs of a net if the number of drivers multiplied by the number of loads on the net is more than 10,000. In typical designs, this large number only occurs in clock networks. PrimeTime performs driver reduction for a net when all of the following conditions are true: • The number of driver-load combinations is more than the variable-specified threshold (10,000 by default). • The driver cells are nonsequential library cells (not flip-flops or latches and not hierarchical). • All drivers of the net are instances of the same library cell. • All the drivers are connected to the same input and output nets. To expand a collapsed network to its original form or to perform driver reduction with a different threshold, you must relink the design. PrimeTime CAE Document Proprietary Information-Not for distribution without Synopsys Approval 29 SYNOPSYS, INC. 700 East Middlefield Road, Mountain View, CA 94043 USA Phone: 650-584-4200, OR: 1-800-245-8005 Working With Collapsed Drivers After layout is complete and detailed parasitic information becomes available, it is not possible to annotate this information on a reduced network. To get accurate results, you can use an external simulator such as SPICE to get detailed delay information for the network. Then you can annotate the clock latency values and transition times on the individual clock pins of the sequential cells, while still allowing PrimeTime to treat the reduced network as ideal, with zero delay. This technique provides reasonably accurate results, while being very efficient because the clock network timing only needs to be analyzed once, even for multiple PrimeTime analysis runs. If you back-annotate the design with the read_sdf command, any annotations on the reduced timing arcs are ignored. PrimeTime issues a PTE-048 informational message when this happens. You can suppress these messages with the following command: pt_shell> suppress_message PTE-048 If you write out SDF with the write_sdf command, no interconnect delays are generated for the reduced network. Reducing parallel drivers only affects the timing arcs analyzed by PrimeTime, not the netlist. Therefore, it does not affect the output of the write_changes command. PrimeTime CAE Document Proprietary Information-Not for distribution without Synopsys Approval 30 SYNOPSYS, INC. 700 East Middlefield Road, Mountain View, CA 94043 USA Phone: 650-584-4200, OR: 1-800-245-8005 Appendix C: Synopsys Liberty Screener The Liberty Screener is a utility available to check libraries. You must have access to the library source in order to use this tool. Please note that the settings in the Liberty Screener should be adjusted to adapt to your particular technology. Please contact your Synopsys Applications Consultant for information on how to obtain the Liberty Screener. Table1: Liberty Screener Features Monotonically increasing values • Screen non-monotonic delay/slew arcs in library • Plot delay/slew vs. load for all non-monotonic arcs • Output PrimeTime test cases for all non-monotonic delay/slew arcs Accuracy of library • • Links to .lib for all reported arcs Interpolate values in tables. Users have to compare the interpolation results against SPICE simulations and check for interpolation error. Number of significant digits • Check whether table values have enough significant digits Range of indices • • • Screen potential table extrapolations Check table size Check the minimum input slew Usage: libscr <options> -lib lib_file Options for screening: -check_mono : screen non monotonic delay arcs -check_minc : screen bad min capacitance design rules -check_maxc : screen bad max capacitance design rules -check_maxt : screen bad max transition design rules -check_tsize : screen delay tables with less than recommended size (7x7) -check_sd : screen delay table values with less than recommended (5) number of significant digits -check_sip : screen delay tables whose starting index point is more than recommended (0.0, 0.0) If none of the -check_* option is given, then by default all checks are performed. PrimeTime CAE Document Proprietary Information-Not for distribution without Synopsys Approval 31 SYNOPSYS, INC. 700 East Middlefield Road, Mountain View, CA 94043 USA Phone: 650-584-4200, OR: 1-800-245-8005 Example: libscr -lib GENERIC.lib -out GENERIC.rpt GENERIC.rpt Non Monotonic Delay Arcs GENERIC.lib: GENLIB (3 cells) # .lib Line# Cell Arc 1 301 AN2 A -> Z, combinational, cell_rise WARNING: Found 1 Non Monotonic Arcs Bad Design Rules GENERIC.lib: GENLIB (3 cells) # .lib Line# Cell Arc Load Range Max Cap Max Trans Delay Table Sizes GENERIC.lib: GENLIB (3 cells) # .lib Line# Table Name Table Size 1 213 table_1 4x4 2 219 table_10 3 Input Slope 2.3 Slope Range Recommended 7x7 7 (…) PrimeTime CAE Document Proprietary Information-Not for distribution without Synopsys Approval 32