Product Documentation
Virtuoso ADE Assembler User Guide
Product Version IC23.1, November 2023

26


Worst Case Corners

A corner is a combination of variables or process models that define a scenario in which you want to measure the performance of your design. For more information about corners, see Simulating Corners.

When you work with large simulation data, defining corner conditions results in hundreds or thousands of possible corner combinations to run. Therefore, running simulations over all corners becomes time consuming process and also requires large computation resources. Therefore, Worst Case Corners helps to reduce the overall project time devoted to simulation and still provide a high level of accuracy.

By identifying Worst Case Corners, the problem is reduced to a subset of worst case conditions. These worst case corners can then be used in verification and design. In addition, running simulations over a reduced set of corners facilitates design changes to be validated quickly.

This chapter covers the following topics to describe how to use the Worst Case Corner analysis in ADE Assembler:

Prerequisites for Setting Up the Worst Case Analysis

Before you create worst case corners, perform the following steps:

  1. On the Run toolbar, in the Select a Run Mode drop-down list, select Worst Case Corners.
  2. If you want to vary variables, ensure that you have specified variables in the Variables and Parameters assistant.
  3. On the Outputs Setup tab, select the required spec and ensure that for each spec, you specify an objective type and a target value. Worst case corners are created only for the relevant specs.
    If you specify tolerance (tol) or range objective types for the spec you choose, two worst case corners are created. For all other objective types, one worst case corner is created.

Specifying the Worst Case Corner Analysis Setup

After you select the run mode, click the Simulation Options button to specify the worst case corner setup.

The Worst Case Corners form appears as shown in the figure below.

In the Worst Case Corners form, specify the settings that you want to use while running the sensitivity analysis to identify the worst case corners. In this form, you can specify the Temperature, variables, and models that you want to vary and also specify the method by which you want to vary them.

The various form fields are explained in detail in the following sections:

Choosing a Method

In the Method field, specify the method (algorithm) by which you want to vary the variables. Depending upon the method you specify in this field, the tool, decides how many and which combination of variables are to be simulated.

Following are the five available methods:

The first three algorithm methods, OFAT 3-level, OFAT Sweep, and Central Composite Design, are termed as Response Surface Methods (RSM), which means in these methods, a polynomial model is created and values for each corner variable is chosen based on the fact whether the specified value fits into the model. The worst case corner is the combination of variable values that are not simulated. As a result, after the worst case corner is created, the tool performs the corner validation for these methods.

For the 2^K Factorial and Full Factorial methods, the tool determines the worst case corner from the simulated combination values. The combination that gives the worst result for each spec is identified as the worst case corner.

When you create a statistical corner from a given spec and then run Worst Case Corner simulation using OFAT, Central Composite Design, or Factorial methods to create worst case corner for other variables, then the worst case corner is created only for the spec for which the statistical corner was created. When the automatic method is used, the worst case corner is created for each enabled PVT or statistical corners.

The following table outlines the comparison between these five methods that helps you choose an appropriate method to get the desired results:

Methods Accuracy Simulation # (M parameters with N1, N2,...,Nm levels) Example Simulation # (10 parameters with 3 level each) Limitations

OFAT 3-level

Quadratic and non-interacting variables

2*M+1

21

Not accurate for strong non-linear or interacting variables

OFAT Sweep

Non-linear variables

N1+N2+...+NM-M+1

21

Not accurate for interacting variables

Central Composite Design

Quadratic and variable interactions

2*M+2*C(M,2)+1

111

Not accurate for strong nonlinear variables

2^K Factorial

Linear and interacting variables

2^M

1024

Not accurate for non-linear variables

Full Factorial

Most accurate

N1*N2*...*NM

59049

Long simulation time for large number of variables

Example

To better understand these method, consider the following example:

Suppose you have three variables, var1, var2, and var3, with the following values:

Var1: Lo, Nom, Hi

Var2: Lo, Nom, Hi

Var3: Val1, Val2, No, Val3, Val4

OFAT 3-Level

If you run the OFAT 3-Level method, the table below describes the combination of variables that are simulated for this run.

Point Var1 Var2 Var3

1

Nom

Nom

Nom

2

Nom

Nom

Val1

3

Nom

Nom

Val4

4

No

Lo

Nom

5

No

Hi

Nom

6

Lo

Nom

Nom

7

Hi

Nom

Nom

OFAT Sweep

If you run the OFAT Sweep method, the table below describes the combination of variables that are simulated for this run.

Point Var1 Var2 Var3

1

Nom

Nom

Nom

2

Nom

Nom

Val1

3

Nom

Nom

Val2

4

Nom

Nom

Val3

5

Nom

Nom

Val4

6

Nom

Lo

Nom

7

Nom

Hi

Nom

8

Lo

Nom

Nom

9

Hi

Nom

Nom

Central Composite Method

If you run the Central Composite Design method, the table below describes the combination of variables that are simulated for this run.

Point Var1 Var2 Var3

1

Nom

Nom

Nom

2

Hi

Nom

Nom

3

Lo

Nom

Nom

4

Nom

Hi

Nom

5

Nom

Lo

Nom

6

Nom

Nom

Val4

7

Nom

Nom

Val1

8

Hi

Hi

Nom

9

Lo

Lo

Nom

10

Hi

Nom

Val4

11

Lo

Nom

Val1

12

Nom

Hi

Val4

13

Nom

Lo

Val1

2^K Factorial

If you choose the 2^K FActorial method, the table below describes the combination of variables that are simulated for this run

Point Var1 Var2 Var3

1

Lo

Lo

Val1

2

Lo

Lo

Val4

3

Lo

Hi

Val1

4

Lo

Hi

Val4

5

Hi

Lo

Val1

6

Hi

Lo

Val4

7

Hi

Hi

Val1

8

Hi

Hi

Val4

Full Factorial

The Full Factorial method includes the 45 combinations of variables. This is the most accurate method.

Determining the Number of Data Points

The No of Points label to the right of the Method field displays the total number of data points for which simulation is to be run. The tool calculates these data points based on the algorithm selected in the Method drop-down list, nominal value and the range of parameter values. Normally, the tool dynamically changes the value of this label.

Importing Values from the Corners Setup

In the tabular format given in the centre of the form, specify the variables that you want to vary during the analysis. If the corners are already defined in the Corners Setup form, you can use the Import from Corner Setup command to directly import all or selected variables from the existing setup. When you click this button, the following two options appear:

The Import from Corner Setup command follows the local corner selection, which means if corners are globally disabled in Run Summary, but enabled in the Corner Setup form, these corners are also imported in the Worst Case Corner form.
At any point, you can click the Clear button to clear all the content of the Worst Case Corner form.

Specifying Temperature

To vary temperature, specify values for temperature in the Value cell. To import the value of temperature from all the corners, right-click in the Value column and choose Import from All Corners (refer the figure below).

Type a nominal temperature value in the Nominal cell for temperature or double-click in the cell to open the drop-down list. All the values specified in the Value cell are displayed in the list. Select a nominal temperature value from this list. The nominal value should be in the given value list. If you type a nominal temperature value that is not in the specified value list, that value is not accepted by the form.

Alternatively, you can get the value of temperature from the test. For this, right-click in the Nominal cell for temperature and choose Get Value from Test. If the value taken from the test does not exist in the Value cell, the tool automatically creates an inclusion list to add the nominal value to the existing values.

Specifying Global Variables

To specify global variable values:

A drop-down list containing variables is displayed. Select the required variables from this list. The tool reads the range of values from the active setup in ADE Assembler and displays them in the Value column. The tool also reads the value of that variable from the test and if that value is one of the values in the Value column, displays the same in the Nominal cell.

If you want to add all variables in the setup in a single step, select the ALL option from the drop-down list that appears when clicking Click to add.

For example, in the above figure, the value for IREF in the test is 56u, which is there in the value list. Therefore, the tool automatically fills that value in the Nominal cell. However, for VDD, the value in the test is 2.0, which is not in the given value list. Therefore, no value is displayed in the Nominal column. In this case, you can choose to get the nominal value either from the test or a setup state. For that, right-click in the Nominal column and choose an appropriate option. If the value taken from any of these sources does not exist in the Value cell, the tool automatically creates an inclusion list to add the nominal value to the existing set of values in the Value cell.

If required, you can edit the value list in the Value cell. The tool dynamically calculates the number of points and changes the value in the No. of points label.

Specifying Parameters

To specify parameters:

A drop-down list containing the parameters is displayed. Select the required parameters from this list. Similar to the global variables, the tool reads the range of values and design value for the selected parameters from the Variables and Parameters assistant and displays them in the Value and the Nominal column. Similar to the global variables, if the nominal value is not one of the values in the Value column, the Nominal cell is blank. You need to fill in that value.

If there is only a single value in the Value column, the same value is filled in the Nominal cell as well. However, if required, you can change the nominal value. In that case, the tool creates an inclusion list with the values from both the Value and Nominal columns.

To change the parameter values, double-click in the Value column and edit the values by specifying a range or a list of space-separated values. Alternatively, you can select one or more values and right-click to display the shortcut menu and choose:

If required, you can change the nominal value for variables. The default nominal value is taken from the values of the parameter in the design. To change the nominal value for a variable or parameter, double-click in the Nominal cell for the variable or parameter. A list of possible nominal values is displayed. You can either select a value from the list or edit the value.

If you specify a nominal value outside the specified range or the sweep set, the tool does not accept the value and makes the cell blank. A valid nominal value for a parameter is any value from within the range or sweep set corresponding to the parameter.

Specifying Model and Model Groups

To specify model files:

To specify model groups:

To add a nominal value, double-click in the Nominal cell and select name of a section that you want to use as a nominal value for the selected model file.

It is also possible to specify a model file without selecting any section. In this case, the model file specified in the Worst Case Corners form is used instead of the model file specified with the test.

The setup required for creating worst case corners is complete.

Running Worst Case Corners

The worst case corners cannot be run with swept variables. Therefore, either disable sweeps or ensure that all the swept variables are overridden in the Worst Case Corners form.

After the worst case corner variables and methods have been specified in the Worst Case Corner form, click the Run Simulation button on the Run toolbar to run the simulation for the specified corners.

Below is a step-wise description about the basic tasks that are performed when a worst case corner simulation is run and the worst case corners are evaluated. These steps help you find out whether the design meets the specification across all corners before running a large number of simulations.

  1. In the first step, the worst case corners are created by generating and simulating the design samples for the specified set of parameter values. You can use different algorithms to generate the worst case corners. For more information about the available algorithms, see Choosing a Method.
  2. Then, the simulation is run for the specified parameter and values. If you have chosen an RSM algorithm in the Worst Case Corner form, the tool generates the predicted results and validates the obtained simulation results against the predicted results. For more information about the results validation, see Validating Worst Case Corners.
  3. Now, the simulated results generated from the previous step are compared with the predicted result expressions. If the generated results do not match the predicted results, you can use a different algorithm and rerun the worst case corner simulation to achieve the desired results. This makes the process faster because you are not required to run all the simulations again if you use an RSM algorithm.
  4. The above steps are then repeated to predict the values for all remaining corners. All the expressions are evaluated and then the simulation is run for all the combination sets.

When the Full Factorial method is used to create worst case corners, the simulation first checks if all specifications have been failed in the run, instead of only checking the test status because it can have partially failed specs too. Those specifications are ignored for which all the points have been failed and a message is displayed in the run log. In this case, the first failed point is considered as the worst case point.

Related environment variable: warnWhenWCCSimsExceed

Validating Worst Case Corners

If you have selected an RSM algorithm, such as OFAT 3-Level, OFAT Sweep, or Central Composite Design, the tool generates a set of predicted results and then validates these results against the results obtained from the actual simulation run.

The validation step does not take place when you have only one variable, such as temp.

Refer to the following sections to know more about how the worst case corners are validated:

Viewing Validation Results Using Run History

To view the history information for a particular simulation run, click the History tab. The histories of the previous simulation run are displayed in the Data View assistant. The history name for a particular simulation run includes the name of the run mode.

Alternatively, you can click the history tabs displayed at the bottom of the Results window.

To view the history for a previous worst case corner run, expand WorstCaseCorners.1 as shown in the figure below.

If you selected an RSM method, such as OFAT 3-level, OFAT Sweep, or Central Composite, the worst case corner simulation run creates a group run with child histories. To view child histories, expand the History Children section as shown in the figure above. The following two histories are displayed under this section:

In the first child run, the samples are generated and simulated to create the worst case corner. This run also generates the predicted result expressions for each corner if an RSM algorithm is used.

In the second child run, the worst case corners are simulated and validated against the predicted results. The validation is performed only if you have selected a RSM algorithm in the Worst Case Corners form.

In the second child history tab, the predicted worst case corner value is calculated for all corners and is displayed for each test in a separate row in the results window. The figure below shows the predicted and generated corners for SlewRate.

In this figure, the Output column displays two values for the Test, SlewRate, Slew_Rate and Slew_Rate_I:predicted.

In the next step, the simulated value for the test that has been generated after simulating the worst case corners is compared against the corresponding predicted value, and then the difference between these two values is calculated. If the test output includes a range spec, two worst case corners are created, one for the high value range and the other for the low value range. Similarly, two predicted results values are generated for high and low value ranges, respectively.

When you select to display the results in the Detail and Detail-Transpose view, a tooltip appears when you move the mouse pointer on the parameter values.

Viewing Validation Results Using Log File

A log file is created while a simulation for the worst case corners is running. This log file maintains a record of all the tasks that the tool performs during the worst case corner run (as shown in the figure below). This log file displays the difference between the actual simulated value and the predicted value and the error relative to the total range of simulated values, which provides you a hint about whether the worst case corner run was successful.

If the relative error is greater than 10% of the total range of simulated values, the tool displays a message in the log file that suggests you to use another alogrithm to get more accurate worst case corners. For example, in the figure above, the tool suggests you to use the OFAT Sweep algorithm to get the optimal results. You can then change the method in the Worst Case Corners form and rerun the simulation.

The approach described above is followed for all set of corners.

Creating Worst Case Corners Automatically

The Automatic method enables you to find worst case corners without manually specifying the algorithm to generate accurate worst case corners. It accurately and efficiently identifies worst cases corners for a wide range of applications. If you do not know which algorithm you need to apply to find worst case corners, it is recommended that you use the Automatic method, which finds all the worst case corners efficiently and generates worst case corners accurately by running fewer simulations.

To generate worst case corners using this method, select the Automatic option from the Method drop-down list in the Worst Case Corner form.

When you use this method, the tool performs the following tasks:

  1. Runs OFAT sweep method.
  2. Runs fractional factorial design on the important variables based on OFAT results.
  3. Runs local optimization based on the worst case corner from OFAT and fractional factorial samples.

The worst case corners are generated and displayed in the Corners Setup form. For more details about different ways of viewing worst case corners, see Viewing Worst Case Corners.

The figure below displays the run log generated after the simulation run is complete.

For each test enabled in the setup, the run log displays the details of the worst case corners created and the total number of points simulated during the run.

From the information displayed at the end of the run log, you can determine that the Automatic method required a much lesser number of simulation runs as compared to the Full Factorial method.

When the method used is Automatic, you can also create worst case corners for a given specification by using the Sensitivity Analysis results. These results are generated after the Worst Case Corners simulation run is complete.

In the Sensitivity Analysis window, right-click in a cell and choose Create Worst Corners. The worst case corners are created for the selected specification and displayed in the Corner Setup form. This option can be used to re-create worst case corners when the previously generated corners are deleted.

Viewing Worst Case Corners

Worst case corners are created for every specification and are indicated by the prefix WCC. You can view worst case corners by doing one of the following:

Viewing Worst Case Corners in the Corners Setup Form

In the Corners Setup form, a tooltip displays the spec and method that has been used to create the worst case corners. Move the cursor on a worst case corner name to view the tooltip, as shown in the figure below.

Viewing Worst Case Corners in the Data View

To view the worst case corners from the Data View assistant pane, follow these steps:

  1. In the Data View assistant pane, click the Data tab.
  2. Expand the Corners tree.
  3. Point to a worst case corner name, such as WCC_SlewRate.
    A tooltip, as shown in the figure below, displays the spec and method used for creating the worst corners.

Viewing Results in Sensitivity Analysis Window

The Sensitivity Analysis window opens up automatically when the simulation run is complete. This window displays the results generated from the actual simulation data. The results, which are the relationship between each measurement and the parameter that you change, are displayed in a separate row. By default, the result is displayed in the percentage format.

When you double-click a value displayed in the cell, the Virtuoso Visualization and Analysis XL window appears displaying the plots for the selected measurement value. For example, if you double-click the IREF and Slew_Rate Nominal cell, the following graph shown in the below figure appears. This graph displays the regression and correlation coefficient values for the selected measurement results.

Specifying the Number of Best Design Points to be Saved

When you specify the number of design points that are to be saved during a optimization run, the same setting is applied to the worst case corners run. This means only the specified number of best design points are saved in the database after the run is complete and not all the design points.

To specify the number of best design points that are to be saved during a optimization or worst case corners run:

In this form, in the Design Points per Optimization Run section, select the Save best design point(s) check box and specify the number of best design points to be saved.

Alternatively, to save all the design points in the database, select the Save all design points option.


Return to top
 ⠀
X