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

11


Monte Carlo Analysis

Monte Carlo analysis can be used to perform statistical analysis to estimate parametric yields and generate information about the performance characteristics of the circuits you design.

To perform statistical analysis for a single test, you can use ADE Explorer. For multiple tests or for multi-technology tests, you can use Monte Carlo in ADE Assembler.To used advanced run options or features, such as, high yield estimation, you require an additional license, Virtuoso Variation Option.

The following figure gives a snapshot of the licenses required to run various Monte Carlo methods and features.

The following topics in this chapter describe how to run Monte Carlo using ADE Assembler:

Preparing Setup for Monte Carlo Analysis

The following sections provide details on how to set up Monte Carlo analysis:

Preparing Setup in the Data View Assistant of ADE Assembler

You can run Monte Carlo analysis over more than one test and corner. To selects the tests and corners that you want to use in analysis, do the following:

  1. In the Data View assistant pane, identify the tests over which you want to run Monte Carlo and select the check boxes next to their names.
    The Run Summary pane reflects the number of tests you have selected.
  2. Ensure that the simulator specified for the selected tests is Spectre, APS, or AMS Designer (with Spectre as the solver).
    You can run Monte Carlo analysis only with these simulators. For details on simulators that support Monte Carlo, refer to Before Running a Monte Carlo Analysis in Virtuoso ADE Explorer User Guide.
  3. Disabled output expressions—expressions for which the Plot check box is not selected in the Outputs Setup tab—will not be evaluated for Monte Carlo simulations. So ensure that the Plot check box is selected for the output expressions that you want to be evaluated.
  4. (Optional) Specify correlation constraints in Constraint Manager. The correlation constraints are evaluated during the Monte Carlo run. For more information, see Chapter 5, “Working with Constraints.”
  5. (Optional) To use corners in the analysis, ensure that the # Corners check box on the Run Summary pane is selected.
    You can modify the corners you have defined in the Corners Setup form.
  6. (Optional) If you do not want to include the nominal corner in the Monte Carlo analysis, you can deselect the Nominal Corner check box on the Run Summary pane.

Setting Run Options in the Monte Carlo Form

Select the task that you want to perform and specify related options in the Monte Carlo run options form.

  1. Choose Run – Monte Carlo Sampling to open the Monte Carlo form.
    Alternatively, select Monte Carlo Sampling in the Select a Run Mode drop-down list on the Run toolbar, then click (Simulation Options) on the Run toolbar.
    The Monte Carlo form appears, as shown below.
    This form includes two sections:
    – Guided Mode: Provides guidance in terms of the tasks you need to perform using Monte Carlo.
    – Advanced – Show All Options: Provides a relevant set of options to be set based on the task selected in the Guided Mode section.
  2. Select an appropriate task that you want to perform.
  3. Click the red arrow to the left of the to expand the Advanced – Show All Options section.
    An example of the advanced options displayed for the default run mode, Run a fixed number of points, is shown below.

In this section, you can specify various options as listed below:

Running a Monte Carlo Simulation and Viewing Results

To run a Monte Carlo simulation, click Run Simulation on the Run toolbar.

ADE Assembler calculates the number of simulations to be run. If the number exceeds the threshold limit specified using the warnWhenSimsExceed environment variable, a warning message is displayed to confirm if the run is to be continued.

Depending on the run options, ADE Assembler runs simulation for the identified samples. If the auto stop options are selected, the run is stopped automatically when the defined criteria is selected.

The following sections provide more details about running Monte Carlo simulations and viewing results:

Running Incremental Monte Carlo Analyses

You can use the Manual Tuning run mode in ADE Assembler to run Monte Carlo incrementally. In this run mode, you can append the results of multiple Monte Carlo runs to the same history and results view.

Important Points to Note

Consider the following points while running incremental Monte Carlo analyses in the Manual Tuning run mode:

For more details on the Manual Tuning run mode, refer to Performing Manual Tuning.

Running Multi-Technology Simulations for Monte Carlo Analysis

You can run a Monte Carlo analysis in the multi-technology mode by enabling the Multi-Technology Mode option for a simulator and specifying the related Multi-Technology Simulation (MTS) options. For details on how to enable these settings, refer to Multi-Technology Designs and Locally Scoped Models and Options.

After identifying the MTS blocks and specifying MTS options for them, run the Monte Carlo analysis. If you have specified different model libraries for the MTS blocks, the statistical and process parameters used for those blocks are different than the parameters used for the non-MTS blocks.

Viewing Results of Monte Carlo Analysis with MTS

After a multi-technology simulation is run, you can view the results on the Results tab. To view the process and statistical parameters used for simulation of a data point, change the results view to the Yield view, right-click a result data cell and choose Print Statistical Parameters.

The Results Display Window shows a list of all the process and statistical parameters along with the statistical value used for simulation. The names of parameters for the MTS blocks are prefixed with the name of their corresponding block. For example, in the following figure, the names of parameters for the inv MTS block are prefixed with inv.

Similarly, in the Sensitivity Analysis results window, the parameter names for MTS blocks are prefixed with the name of their corresponding block. For more details, refer to Support for MTS in Sensitivity Analysis.

Viewing Results

After the run is complete, ADE Assembler displays the results in the Yield view on the Results tab of the Outputs pane, as shown below.

Results are reported for each test, corner and measurement expression and the total yield is reported for the circuit. For details about this view, refer to Yield view in Chapter 19, “Viewing, Printing, and Plotting Results.”.

You can also use the Summary view or the Detail view on the Results tab to view the detailed results for the Monte Carlo analysis. In these views, the results for each Monte Carlo sample is displayed under a row named
Parameters: parameter-name=parameter-value, mc_iteration=n

where n is the number of the sample. For example, in the following figure of the Detail view, the results under the row Parameters: cload=100f, mc_iteration=1 displays the results for the first iteration.

To view the description of the each column in the Detail view of the Results tab, refer to Hiding and Showing Data on the Results Tab. In some cases, the results are shown as Canceled. To know more about this status, refer to Starting a Simulation.

For more details on how to view and use the Monte Carlo results, refer to the following topics in Virtuoso ADE Explorer User Guide:

Viewing Statistical Parameters for Monte Carlo Samples

After running a Monte Carlo analysis, you can switch to the Detail view on the Results tab of the Outputs pane to view the detailed results for each Monte Carlo sample. If the results for any sample need further investigation, you can view the statistical parameters for that sample so that you can debug your design.

To view and print the statistical parameters for a Monte Carlo sample, do the following:

  1. In the Select the results view drop-down list on the Results tab of the Outputs pane, select Detail.
    The Detail view is displayed.
  2. Right-click a result for a sample in the Nominal column and select Print Statistical Parameters.
    The statistical parameters for that sample are displayed in a Results Display Window.

For information about printing the contents in the Results Display Window, see Printing Results from the Results Display Window.

Viewing Sensitivity Results

To view data on the sensitivity of variables and measurement expressions for a Monte Carlo run, do one the following:

Debugging in Debug Environment

If any particular data point fails or shows undesired results, you can select the result in the Detail view and load it in the debug environment. Here, you can modify the setup of that data point to debug it and run a single Monte Carlo simulation to verify the results, and bring back the updated test to the active maestro view.

Varying Design Variables with Statistical Distribution

You can specify design variables that you want to vary with statistical distribution in Monte Carlo analysis.

To vary design variables with statistical distribution:

  1. In the Data View assistant, right-click Global Variables, and then select Define Statistical Variation.
    Alternatively, click Specify Design Variables on the Monte Carlo form.
    The User-Defined Statistical Variation Setup form opens.
  2. Click the Enable design variable statistical variation check box.
  3. From the Name drop-down list, select a global design variable that you want to vary.
    Ensure that the selected variable is not used in an enabled corner. If a variable is used in both corners and statistical variation, an error is displayed before running a simulation.
  4. From the Test(s) drop-down list, select the tests for which you want to vary the design variables.
  5. From the Distribution Type drop-down list, select one of the following distribution methods: Gaussian, LogGaussian, Uniform, or LogUniform.
  6. In the Standard Deviation (Std) field, specify the standard deviation for the Gaussian or LogGaussian method. This field is not available for Uniform and LogUniform methods.
  7. In the Range (N) field, specify a range for the Uniform or LogUniform method. Note that the parameter is varied in the range of the nominal value ±N. This field is not available for Gaussian and LogGaussian methods.
  8. Select the check mark in the Enabled column.
  9. Repeat steps 3–8 to add another design variable.
    After the setup is complete, you can export this setup to a CSV file by clicking the Export command. You can later import this CSV file to reuse this setup by clicking the Import command.
  10. Click OK to close the User Defined Statistical Variation Setup form.
  11. Run Monte Caro analysis and plot the values of user-defined statistical parameter to see how it varies according to the specified statistical distribution.
    ADE Assembler generates the statistics block of user-defined statistical process parameters to include it in the netlist, as shown in the following figure.
    The Run Log also reports information about the user-defined statistical parameters.

Post-Processing Monte Carlo Results

The default results view for the Monte Carlo Sampling run mode is the Yield view. This view displays the overall yield estimate based on the pass or fail status of all the specifications. For details on the different columns in this view, refer to the Yield view.

You may change the default results view for the Monte Carlo Sampling run mode using the defaultResultsViewForMonteCarlo environment variable.

Also refer to the following topics for the post-processing commands for Monte Carlo results:

Managing Monte Carlo Results in the Yield View

The following topics explain how you can manage the Monte Carlo results either to show the most relevant data or to create statistical corners that can be used in the next simulation runs:

Viewing Data for a Specific Confidence Interval

During or after a Monte Carlo analysis run, you can specify a confidence level to display the confidence intervals for the estimated yield, mean, and sigma.

To set the confidence level, right-click the gray-colored row at the top and choose Set Confidence Level. The Set Confidence Level form is displayed, as shown in the following figure.

Specify a percentage value in the One-sided Confidence Level field and click OK.

ADE Assembler displays the confidence intervals for the yield, mean, and sigma values, as shown in the following figure.

Creating Statistical Corners

After running Monte Carlo simulations, you can analyze the yield and identify the specifications for which the results need improvement. You can then create statistical corners to be used in further analysis and design optimization.

You can create statistical corners by using any of the following methods:

For the first method, you can use the Create Statistical Corner command in the right-click context-sensitive menu of the Detail or Detail – Transpose results views. The commands for these methods are available in the context-sensitive menu for the specification results in the Yield results view, as shown below.

For more details on these ways, refer to the topics given below.

Creating a Statistical Corner Using the Monte Carlo Results

By using the results of a Monte Carlo simulation, you can create statistical corners of two types:

You can specify the default type for statistical corners by setting the value of the createStatisticalCornerType environment variable. By default, this variable is set to "auto", which allows ADE Assembler to automatically choose a type for the statistical corner based on the status of the Create Statistical Corner check box. For details, see How does ADE Assembler choose a type for statistical corner when createStatisticalCornerType is set to "auto"?.

Set this variable to "sequence" to always create a statistical corner by using a sequence ID of a sample. Set it to "values" to always create a statistical corner by using the statistical parameter values of a sample. Set it to "prompt" to always display the Create Statistical Corner form in which you can confirm which one of the two types mentioned above you want to use to create a statistical corner.

How does ADE Assembler chooses a type for statistical corner when createStatisticalCornerType is set to "auto"?

The following figure describes the process followed by ADE Assembler to create a statistical corner when createStatisticalCornerType is set to "auto":

If the Create Statistical Corners check box is selected in the Monte Carlo options form and a high-yield estimation Virtuoso Variation Option (VVO) method is used to run a Monte Carlo simulation, ADE Assembler automatically creates values-based statistical corners.

If the Create Statistical Corners check box is not selected, you need to interactively create statistical corners from the results of a Monte Carlo run. For this, open the Detail or Detail - Transpose results view, right-click a point and choose Create Statistical Corner from the context-menu. Depending on the status of the Save Statistical Parameter Data check box in the Monte Carlo options form for that run, ADE Assembler creates a statistical corner in two ways:

You can also create a statistical corner for a particular point in the histogram for a specification. For this, plot a histogram for the desired specification, right-click a point for which you want to create a corner, and choose Create Statistical Corner. ADE Assembler creates a corner using the parameter values for that point.

Creating a Statistical Corner from a Worst Sample

In this method, ADE Assembler helps in identifying a sample that generated the worst result for a specification and creates a statistical corner using the sample details.

To create a statistical corner from the worst sample, do the following:

  1. Open the Monte Carlo results in the Yield view and identify the specification for which you need to improve the yield.
  2. Right-click the row for that specification and choose Create Statistical Corner from Worst Sample.

ADE Assembler looks into the simulation results to find a sample that gives the worst result for that specification and creates a statistical corner using that sample. The new corner is added it to the Corners list in the Data View assistant pane. The corner is named as Stat_Seq_<seq_ID>_<spec_name>, where <seq_ID> is the sequence ID of that sample and <spec_name> is the name of the specification. For example, if you choose to create a corner for the worst sample for UGF, ADE Assembler creates a corner with the name Stat_seq_40_UGF, where the sequence ID of the sample is 40.

Note the details of the statistical corner in the following figure.

The figure given above shows that ADE Assembler saves the sequence ID, seed, and other Monte Carlo settings to the statistical corner when simulating it. Using this information, the simulator can recreate the statistical parameter values for the corner. This type of corner is efficient and does not require saving all the statistical parameter data for each sample in Monte Carlo. However, one disadvantage is that some changes to the design topology, such as, addition of a new instance to the schematic, can invalidate the corner. In that case, the simulator cannot recreate the same set of statistical parameter values when simulating the statistical corner. You would then need to rerun the Monte Carlo simulation to recreate statistical corners.

To avoid this, you can create statistical corners by directly saving the parameter values from the sample in the corner details and by not referring to any sequence ID. For more details, refer to Creating a Statistical Corner Using the Monte Carlo Results.

Creating a Statistical Corner from Percentile

In this method, you can create a corner for the nth worst percentile for a given specification. That is, a statistical corner is created from the Monte Carlo sample that gives the nth worst output for a specification.

To create a statistical corner from percentile, right-click the output of a specification in the Yield view and choose Create Statistical Corner from Percentile. The Create Statistical Corner form is displayed, as shown in the following figure.

Specify a percentile value for which you want to create a sample and click OK.

ADE Assembler creates a new statistical corner and adds it to the Corners node in the Data View assistant pane, as shown in the following figure.

The default name of a new statistical corner consists of a prefix Stat_seq followed by the sequence ID of the sample and the specification name. The tooltip for a corner displays the values for all corner conditions, names of the base specification and base corner, and the percentile value used to create that corner, as shown in the following figure.

If the specification type is < or >, only one statistical corner is created from the percentile. A < specification type represents a corner larger than the average value. A > specification type represents a corner smaller than the average value. If the specification type is range or if a specification is not defined, two corners are created–one in each direction.

By default, the corner uses the sequence ID of the sample that gives the nth worst output for a specification. Using this information, the simulator can then recreate the statistical parameter values for the corner when simulating it. This type of corner is efficient and does not require saving all the statistical parameter data for each sample in Monte Carlo. However, one disadvantage is that some changes to the design topology, such as, addition of a new instance to the schematic, can invalidate the corner. In that case, the simulator cannot recreate the same set of statistical parameter values when simulating the statistical corner. You would then need to rerun the Monte Carlo simulation to recreate statistical corners.

To avoid this, you can create statistical corners by directly saving the parameter values from the sample in the corner details and by not referring to any sequence ID. For more details, refer to Creating a Statistical Corner Using the Monte Carlo Results.

A statistical corner is enabled only for the test associated with the specification for which the corner is created.

Creating Statistical Corners by Using Target Yield Value (Specified in Sigma)

This is a fast method to create 3-sigma or user-specified sigma statistical corners without requiring a large number of Monte Carlo samples.

Creating statistical parameters by this method requires the Virtuoso Variation Option license. For more information, see The K-Sigma Corners Method in Virtuoso Variation Aware User Guide.

Displaying Statistical Parameters of Statistical Corners

After you create the statistical corners, you can view them in the Corners section of the Data View assistant. You can also view them in the Corner Setup form, as shown below.

The Design Variables row displays the statistical parameters count in the N stat vars format, where N indicates the number of statistical parameters. To view the complete list of these parameters, double-click in the Design Variables cell for a statistical corner. The complete list of statistical parameters is displayed in the default text editor window for Virtuoso, as shown in the figure above.

If the default text editor for Virtuoso specified by the $EDITOR shell variable in UNIX or the editor SKILL variable is Vim, the editor might appear blank. Either use the -f option with gvim by setting editor="gvim -f" in CIW or change the default text editor.

Filtering Out Data from the Yield View

By default, the statistical calculations displayed in the Yield view are based on all the points in Monte Carlo results. However, you can filter out and eliminate the points that were either partially complete or they resulted in simulation or evaluation errors so that the yield estimate is calculated only on the points for which simulation was successfully completed.

A typical Monte Carlo error point represents a real failure of the design. Therefore, it is recommended to filter the error points only when it is certain that the error points are invalid.

To apply a filter in the Yield view, right-click the gray-colored row at the top and choose Filter Points from Yield Estimate.

Generating Plots, Tables, and Reports

ADE Assembler provides the following post-processing commands that you can use to print and plot the results data in different ways that suit your data analysis requirements:

You can find these commands in any of the following ways:

For details on these commands, refer to Generating Plots, Tables, and Reports in Virtuoso ADE Explorer User Guide.

Saving Monte Carlo Results in CSV Format

After a Monte Carlo run is complete, you can save the results in CSV format. ADE Assembler saves the results for each corner in a separate.csv file. For this, do the following:

Related Topics

axlWriteMonteCarloResultsCSV.

Introduction to Mismatch ID

During Monte Carlo analysis, Spectre generates random parameter values based on the defined model distributions. Circuit calibration and yield estimation in a multi-test setup require that identical mismatch variation is applied to the design under test for each Monte Carlo sample point.

By specifying a mismatch ID, you can ensure that the same values for each statistical parameter are generated across all tests in your setup. You can specify a mismatch ID either at the subcircuit level or at the instance level.

The Configuration File for Mismatch ID

When you run Monte Carlo analysis after specifying mismatch ID, a configuration file with the name mc.yaml is created in the netlist directory of the simulation run.

"mc.yaml" is specified as the value of the Spectre montecarlo parameter config in the netlist, as shown in the following figure.

The contents of the mc.yaml file for a test are as follows:

Scope: Subcircuit Scope: Instance
# Monte Carlo Yaml configuration for test: nameOfTheTest
version: versionNumber
montecarlo:
  mismatchid:
    sub:

nameOfTheSubcircuit: mismatchID

# Monte Carlo Yaml configuration for test: nameOfTheTest
version: versionNumber
montecarlo:
  mismatchid:
    inst:
      nameOfTheInstance: mismatchID
Example:
# Monte Carlo Yaml configuration for test: dc
version: 1.0
montecarlo:
  mismatchid:
    sub:
      DUTtop: 1
Example:
# Monte Carlo Yaml configuration for test: dc
version: 1.0
montecarlo:
  mismatchid:
    inst:
      I0: 1

Examples of Mismatch ID Configuration

This section provides some examples of how you can configure mismatch IDs to ensure that statistical parameter values for instances or subcircuits in your design are the same across all tests in your setup.

Example 1

Consider the following design in which you want to generate the same values of statistical parameters for the blocks highlighted in green.

You can do so by specifying the same mismatch ID either at the subcircuit level or at the instance level for both the tests, as shown in the following YAML configurations for each test.

Example 2

Consider the following design in which you want to generate the same values of statistical parameters for the blocks highlighted in green.

You can do so by specifying the same mismatch ID either at the subcircuit level or at the instance level for both the tests, as shown in the following YAML configurations for each test.

Example 3

Consider the following design in which you want to generate the same values of statistical parameters for the blocks highlighted in green.

You can do so by specifying the same mismatch ID at the instance level for both the tests, as shown in the following YAML configurations for each test.

Specifying a Mismatch ID

To specify a mismatch ID:

  1. Open your design in ADE Assembler or ADE Explorer.
  2. Select Monte Carlo Sampling from the Run Mode drop-down list.
  3. Click the Simulation Options command.
    The Monte Carlo form opens.
  4. From the Sampling Method drop-down list, select Random.
  5. Click Specify Mismatch ID (Not Specified).
    The Mismatch ID form opens.
  6. Select the Enable Mismatch ID check box.
  7. In the Test column, click a cell to select either All Tests or a specific test in your setup.
  8. In the Scope column, double-click a cell to select either Subcircuits or Instances.
  9. In the Data column, double-click a cell, and then click to select the subcircuit or instance for which you want to specify the mismatch ID. Depending upon what you chose in step 8, either the Select Subcircuits or the Select Instances form opens.
    • On the Select Subcircuits form, from the list of available subcircuits, select a circuit and then click >> to add it to the selected list. Click OK to return to the Mismatch ID form.
    • On the Select Instances form, select a library cellview to list available instances. From the list of available instances, select an instance and then click >> to add it to the selected list. Alternatively, you can click Select in the Schematic Selection section to select an instance from the schematic.
  10. In the ID column, specify an integer value as the mismatch ID. For example, 1.
  11. In the Enable column, ensure that the check mark is selected.
  12. Repeat steps 6–11 to add other subcircuits or instances.
    Ensure that you specify the same mismatch ID against the subcircuits and instances for which you want to generate the same values of statistical parameters across all tests.
  13. Click OK to close the Mismatch ID form.
  14. Click OK on the Monte Carlo form.
  15. Click Run Simulation.

The Mismatch ID Form

The Mismatch ID form lets you specify mismatch IDs for the instances and subcircuits so that the values of statistical parameters generated for those instances or subcircuits remains same across all tests.

Field Description

Enable Mismatch ID

Enables mismatch IDs.

Import

Imports the mismatch ID configuration from an existing YAML configuration file. This is helpful when you do not want to manually configure mismatch IDs one by one.

Export

Exports the current mismatch ID configuration on the Mismatch ID form to a YAML file for the specified test. This is helpful when you want to reuse an existing mismatch ID configuration defined on the Mismatch ID form.

Tests

Selects all tests or a specific test from the setup.

Scope

Specifies whether to define the mismatch ID at the subcircuit level or at instance level.

Data

Selects the subcircuit or the instance for which you want to specify the mismatch ID.

ID

Specifies an integer value as the mismatch ID.

Enable

Enables the specified mismatch ID.

Exporting a Mismatch ID Configuration to a YAML File

After you have specified mismatch IDs on the Mismatch ID form, you can export this configuration to a YAML file that you can later reuse by importing the file.

To export a mismatch ID configuration to a YAML file:

  1. On the Mismatch ID form, select a test for which you want to export the mismatch ID configuration from the drop-down list next to the Export command.
  2. Click Export to save the mismatch ID configuration defined on the form to a YAML file.
    The Select File for Mismatch ID Export form opens.
  3. Select a directory where you want to save the YAML file.
  4. In the File name field, specify the name of the file.
  5. Click Save to save the mismatch ID configuration to a YAML file.

Importing a Mismatch ID Configuration from a YAML File

You can reuse a YAML file that you saved earlier to configure mismatch IDs without manually specifying them for each subcircuit and instance one-by-one.

To import a mismatch ID configuration:

  1. On the Mismatch ID form, click the Enable Mismatch ID check box.
  2. Click Import.
    The Select File for Mismatch ID Import form opens.
  3. Select the YAML file containing the mismatch ID configuration that you want to import.
  4. Click Open.
    The mismatch IDs as defined in the YAML file are updated in the Mismatch ID table.

Advanced Monte Carlo Methods

When you have the have the Virtuoso Variation Option (VVO) license, you can use the following advanced methods that are available on the Monte Carlo run options form:

For more information about these methods, refer to the Virtuoso Variation Option User Guide.


Return to top
 ⠀
X