Page tree
Skip to end of metadata
Go to start of metadata

Using Statistical Design

Statistical design is the process of:

  • Accounting for the random (statistical) variations in the parameters of a design.
  • Measuring the effects of these variations.
  • Modifying the design to minimize these effects.

Yield analysis is the process of varying a set of parameter values, using specified probability distributions, to determine how many possible combinations result in satisfying predetermined performance specifications.

Yield is the unit of measure for statistical design. It is defined as the ratio of the number of designs that pass the performance specifications to the total number of designs that are produced. It may also be thought of as the probability that a given design sample will pass the specifications.

Because the total number of designs produced may be large or unknown, yield is usually measured over a finite number of design samples or trials in the process known as yield estimation. As the number of trials becomes large, the yield estimate approaches the true design yield. Parameter values that have statistical variations are referred to as yield variables.

Three statistical design options are available:

  • Yield analysis This process involves simulating the design over a given number of trials in which the yield variables have values that vary randomly about their nominal values with specified probability distribution functions. The numbers of passing and failing trials are recorded and these numbers are used to compute an estimate of the yield.
  • Monte Carlo analysis This process involves simulating the design over a given number of trials in which the yield variables have values that vary randomly about their nominal values with specified probability distribution functions.
  • Yield optimization Also known as design centering, this process involves multiple yield analyses with the goal of adjusting the yield variable nominal values to maximize the yield estimate. During yield optimization, each yield improvement is referred to as a design iteration.

Yield and Monte Carlo analysis and yield optimization for ADS are supported as follows:

  • Analog/RF Systems Any analysis type (such as AC, DC, S-Parameter, Harmonic Balance, Circuit Envelope, and Transient simulation types).
  • Signal Processing For ADS Ptolemy simulation.

Statistical Design Minimum Requirements

Prior to performing a statistical design, you need:

  • At least one component parameter in your design identified as a yield variable. You specify details in the Component Parameter dialog box by choosing the Tune/Opt/Stat/DOE Setup button.
  • At least one yield specification ( YieldSpec ) component specified, then placed in the design window. A yield specification defines a single (or double) sided range of acceptable performance for a given response. For each trial during yield analysis, the yield spec is compared to the simulated response to determine the pass/fail status of the current trial.
  • One yield analysis ( Yield ) or yield optimization ( YldOpt ) component placed in the design window to specify all YieldSpec components to be included, data to be saved, Shadow model type (if used), enabling of post production tuning, and parameters to be displayed.
  • One simulation control component (for example, an AC, DC, S-Parameter, Harmonic Balance, Circuit Envelope or Transient component for Analog/RF Systems or a Data Flow Controller for Signal Processing).

The design components needed for yield analysis are located in the Optim/Stat/Yield/DOE library or palette for Analog/RF Systems and the Controllers library or palette for Signal Processing. They include the following:

  • Yield analysis ( Yield )
  • Monte Carlo analysis ( MC )
  • Specification for yield analysis ( YieldSpec )
  • Yield Optimization ( YldOpt )

Performing Yield Analysis

Yield analysis determines the percentage of acceptable and unacceptable units based on the YieldSpec component definitions. Yield analysis randomly varies network parameter values according to statistical distributions while comparing network measurements to the user-specified performance criteria found in the YieldSpec .

Yield analysis is based on the Monte Carlo method. A series of trials is run in which random values are assigned to all of your design's statistical variables, a simulation is performed, and the yield specifications are checked against the simulated measurement values. The number of passing and failing simulations is accumulated over the set of trials and used to compute the yield estimate.

Other capabilities of yield analysis include the following:

  • Accumulated sets of selected network responses can be viewed or plotted.
  • Performance histograms can be viewed or plotted to display the distribution of measured circuit responses. Refer to Creating a Measurement Histogram for full details. Refer to Editing Traces for details on viewing these histograms.
  • Overall performance variation can be assessed as a result of random variations in component parameter values.

Specifying Component Parameters for Yield Analysis

The procedure for specifying components for yield analysis is as follows:

  1. Select and place an appropriate component from one of the component palettes or component libraries. For example, place a parallel resistor-inductor-capacitor (PRLC) from the Lumped Components palette.
  2. Double-click on the component in the design window to access its associated dialog box.
  3. From the dialog box, highlight the parameter that you want to vary in the Select Parameters box (for example R for parallel resistance), then choose the Tune/Opt/Stat/DOE Setup button, which will only appear for valid statistical parameters. The Setup dialog box appears, with the Optimization tab active. Click the Statistics tab.
  4. From the Statistics Status drop-down list, select Enabled so that you can set specification of the appropriate fields. Enabled causes the parameter to be varied when the simulation is run. Disabled allows you to temporarily suspend any parameter variation previously assigned, and Clear removes the values you previously applied to the design.
  5. From the Type drop-down list, select an appropriate statistical Value Type from:
  6. From the Format drop-down list, select an appropriate statistical value format:
    • For Gaussian, choose +/- std.dev. % or +/- std.dev.
    • for Uniform, choose min/max , +/- Delta % or +/- Delta .
    • for Discrete, only min/max/step is available.
    • for LogNormal, choose +/- std.dev. % or +/- std.dev.
      For complete descriptions of the available format, refer to the section Value Types for Statistical Design in Available Value Types.
  7. If you selected std.dev or +/- std.dev % or +/-Delta or +/-Delta % formats, specify the deviation value. For these formats, the units can also be specified in the drop-down list next to each input field.

    Note

    For a Gaussian or LogNormal distribution, std.dev refers to the standard deviation (or sigma), either as a percentage of the nominal value or an absolute value. For a Uniform distribution, Delta refers to the distribution limit values, either as a percentage of the nominal value or an absolute value.

  8. If you selected a min/max format, you can optionally enter values for nominal, minimum, and maximum in the appropriate boxes, and select an appropriate unit assignment for each from the drop-down list next to the boxes.

    Note

    Unit specification via the Setup dialog box is not possible for variables defined in the Var/Eqn component.

  9. From the Nominal Value field and the Units drop-down list, the value and units in your design for this component are displayed. You can change these if you wish.
  10. If you intend to include any of the parameters of this component for post production tuning, click the Optimization tab and click the Post Production Tuning checkbox. For more details, refer to the section, Enabling Post Production Tuning.
  11. Choose OK.

Specifying Multiple Parameters for Yield Analysis

The Simulation Variables Setup dialog lists all the component parameters in a design while allowing the simultaneous adjustment of a number of parameters across multiple components on a single schematic. To view the dialog, in the Schematic window, click Simulate > Simulation Variables Setup.

To specify components for yield analysis, follow these steps:

  1. Select the checkbox in the Statistics column to enable yield analysis for a particular component.
  2. In the Type drop-down list, select the appropriate statistical Value Type from, Gaussian, Uniform, Discrete and Lognormal.
  3. From the Format drop-down list, select an appropriate statistical value format:
    • For Gaussian, choose +/- std.dev. % or +/- std.dev.
    • for Uniform, choose min/max , +/- Delta % or +/- Delta.
    • for Discrete, only min/max/step is available.  
    • for LogNormal, choose +/- std.dev. % or +/- std.dev.
      For complete descriptions of the available format, refer to the section Value Types for Statistical Design in Available Value Types.
  1. The default values for Min, Max, and Step are displayed as appropriate. To modify a Min, Max, and Step value, enter the desired value in the appropriate field. The default values for Min, Max, and Step are 50%, 150% and 10% of the nominal value of the parameter, respectively.
  2. To disable yeild analysis, deselect the checkbox in the Statistics column.
  3. Select the Show selected items only checkbox to display only the selected components in the schematic.
  4. Click Deselect All to deselect all parameters.
  5. Click Ok to close the dialog.

Placing an Appropriate Simulation Control Component for Yield Analysis

An appropriate simulation control component must be placed in the design prior to initiating a yield analysis.

For Analog/RF Systems simulation, all analysis types are supported, for example place one of the following components:

  • AC from the AC Simulation palette or library
  • DC from the DC Simulation palette or library
  • S-Param from the S-Param Simulation palette or library
  • Harmonic Balance from the HB Simulation palette or library
  • ENV from the Envelope Simulation palette or library
  • Tran from the Transient Simulation library

For Signal Processing, place a:

  • Data Flow controller

For details on specifying parameters for each of these control components, refer to Using Circuit Simulators or ADS Ptolemy Simulation.

Setting Up a Yield Specification

Yield specifications are defined by placing a YieldSpec component (which is accessed from the Optim/Stat/Yield/DOE palette or library for Analog/RF Systems or from the Controllers palette or library for Signal Processing). Once placed, you can double-click it to display the Specification for Yield Analysis dialog box.

You can place more than one YieldSpec component if needed. The YieldSpec s to be used are referenced in the Yield Simulation dialog box, as described in the section, Setting Job Parameters for Yield Analysis.

To set appropriate yield specifications in this dialog box:

  1. If desired, enter a name in the Instance Name field that is different from the assigned default name shown.
  2. In the Select Parameter list box on the left, click on each parameter that you want to set up, then make other associated specifications in the box on the right. When you select a parameter, such as Expr, all relevant items in your design will be displayed in the box. The style of this box varies depending on the parameter, as described in the table below.

    Parameter

    Description

    Use Model

    Expr

    A valid AEL expression that operates on the simulation results, such as mag(S11). For more information on AEL expressions, refer to AEL or Measurement Expressions.

    The list box label becomes Measurement Equations. All associated expressions are displayed in the box. Select the one you want to use and it will appear just below in the Selection box. For expressions unrelated to MeasEqns, you must type them in the Selection box.

    SimInstanceName

    Enter the instance name for the simulation control component that you placed in your design, which will generate the data used by the Expr field.

    The list box label becomes Analysis Components. Select the analysis component (simulation controller), such as S-parameter, that you want to use and it will appear just below in the Selection box.

    Min

    Enter a number for a minimum acceptable response value.

    Fields for Parameter Entry Mode and Equation editor are used as in any component parameter dialog box. Type a value in the box. Note: Both Min and Max do not have to be specified, but at least one does.

    Max

    Enter a number for a maximum acceptable response value.

    Same as above.

    Weight

    The Weight parameter is irrelevant in YieldSpec component.

    Fields for Parameter Entry Mode and Equation editor are used as in any component parameter dialog box. Type a value in the box.

    RangeVar

    Independent variable name.

    Same as above, but note that this parameter is "indexable" and can be applied to more than one independent variable.

    RangeMin

    Minimum limit of range for independent variable during optimization.

    Same as above.

    RangeMax

    Maximum limit of range for independent variable during optimization.

    Same as above.

Setting Job Parameters for Yield Analysis

To set job parameters, you need to specify appropriate data in the Yield Simulation dialog box.
This four-tabbed dialog appears when you place a Yield Analysis component (labeled Yield ). Do the following:

  1. Place the Yield Analysis component in the appropriate design window.
  2. Double-click the component to being up the dialog box. The Setup tab is active.
  3. Make specifications in each tab (Setup, Parameters, Models/tuning, and Display) of the dialog box, as described in the next sections.

Selecting a Yield Specification

First select the Setup tab of the Yield Simulation dialog box to set up a yield analysis.

  1. The options in the Statistical Variations box support two different statistical models:
    • ADS traditional model - The statistical variables use ADS syntax and are set up as R=50 stat{gauss +/-1%}.
    • Spectre statistical model - The variations process and mismatch use Spectre syntax and are provided only for use in ADS Dynamic Link. They are specified in the Statistics block in the foundry files, and define the process variations and mismatch variations.
       
      When choosing options in the Statistical Variations box:
      • _stat_{...} refers to the statistical variables defined in ADS traditional model. Choose _stat_{...} to set the ADS syntax for statistical variations.
      • process and mismatch refer to the statistical variables defined in a Spectre model.
      • If there are no variables set, checking any option will affect the simulation. For example, the ADS traditional model uses only stat{...} variables. Selecting process or mismatch will change the results.
  2. In the Yield Specs box, accept the default Use All Specs in Design checkbox. This is the best approach for most designs, and all Yield Spec components placed in a design will be implicitly associated with the Yield controller.
    To associate a subset of all Yield Specs with a given Yield controller, deselect the Use All Specs in Design checkbox. Select a Yield Spec from the Edit drop-down list, which will include all yield specification components that are currently placed in the design, as described in the section, Setting Up a Yield Specification. Choose Add to place in the Yield Specs box, and repeat this procedure if necessary. Choose the Cut or Paste buttons, if necessary to make any changes in the YieldSpecs box.
  3. Under Stopping criterion , specify the number of desired trials to use during the yield analysis process.
  4. Choose Apply to retain the specifications that you have made while you enter data into the Parameters tab, as described in the next section.

Setting Parameter Information for Yield Analysis


You set parameter information in the Parameters tab of the Yield Simulation dialog box, such as what data to save and parameter attributes. To do this, follow these steps:

  1. In the Output Data field, specify which data you want to retain in your dataset following yield analysis. Check the following choices that apply.
    • Analysis outputs sends all measurements (including measurement equations) to the dataset. This can create a substantial amount of data.
    • YieldSpec expressions (default) sends the result of each active YieldSpec's Expr field to the dataset.
    • Random variables sends the values of all random variables to the dataset for each Monte Carlo trial.
  2. In the Output Data Control field, specify whether you want to:
    • Save data for all trials . Data for all trials is saved. This can create a substantial amount of data.

      Note

      For yield analysis, enabling this feature can slow the analysis time considerably when many trials are being run. The default is off, where only the first and last trials are saved to the dataset.

    • Update display during Yield Analysis (default). This updates the dataset on each yield analysis trial so you can see the results in the Data Display window as they occur (instead of waiting to the end where all the traces are displayed at once).
  3. In the Levels field, enter a number for the desired annotation level. Levels are 0-4, with increasing information displayed in the Status window. (2 is the default.)
  4. In the Other field, specify a seed value. Seed is a value for the random number generator used by the simulator to initiate yield analysis. If Seed is not specified, the simulator chooses its own seed, which will be different each time a yield analysis is performed.
  5. Choose Apply to retain the specifications that you have made while you enter data into the Models/tuning tab, as described in the next section.

Selecting a Shadow Model Type for Yield Analysis


You use the Models/tuning tab of the Yield Simulation dialog box to select the Shadow Model, an optional method of yield analysis.

The Shadow Model works as follows: A series of trials is run in which the random variations in your design's statistical parameters are used in a mathematical model of the design's performance to compute the yield. This allows a greater number of trials and therefore greater accuracy in the yield estimate without a significant increase in the computation time required.

To enable one of two available methods of Shadow Model analysis:

Click the selection of your choice, using either of two methods:

  • Maximally flat quadratic Shadow Model (which is usually faster)
  • Agilent EEsof Shadow Model (which is usually more accurate)

If None is selected, the Monte Carlo method will be applied to the simulator, not to the mathematical Shadow Model.

Consult the following references for details concerning the Monte Carlo method and the Maximally Flat Quadratic Approximation model.

  • R. Spence and R. S. Soin. Tolerance Design of Electronic Circuits, Addison-Wesley, 1988.
  • Radoslaw (Radek) Biernacki, John Bandler, Jian Song, and QI-Jun Zhang. Efficient Quadratic Approximation for Statistical Design , IEEE Transactions on Circuits and Systems, vol. 36, No. 11, November 1989.

Enabling Post Production Tuning

The Models/tuning tab of the Yield Simulation dialog box is also used to enable post production tuning. This section includes a description of the post production tuning feature, followed by a section on setting up post production tuning.

Purpose of Post Production Tuning

During yield analysis, the component parameters that are specified as yield variables are allowed to vary statistically about their nominal values using given probability distribution functions. The yield estimate that results is derived from a given number of trials with these parameter variations.

If, for example, your circuit contained several fixed valued resistors and capacitors with manufactured values known to vary about their nominal values, this yield estimate would take this variation into account.

Suppose that in addition to these fixed valued components, your circuit also contains a trimmer-capacitor and potentiometer that you can tune at the end of production in one last effort to meet specifications. The standard yield estimate would not take this tunability into account.

For such a situation, the simulator can employ Post production tuning. This feature, combined with yield analysis, allows certain parameter values to receive additional tuning if they first resulted in a failure to meet the yield specifications. The parameters that receive this special treatment are referred to as post production tunables.

Setting Up Post Production Tuning

Post production tunables are allowed to take on values over a range as specified in the Optimization tab of the parameter component Setup dialog box. To set up post production tuning:

  • First use the Optimization tab of the Component Parameter Setup dialog box (which you access by selecting the Tune/Opt/Stat/DOE Setup button) to specify the optimization range for the Post Production Tuning parameter, and be sure to check the Post Production Tuning checkbox to enable the variable for tuning. For more information, refer to Specifying Component Parameters for Optimization.
  • Remember that a parameter designated for Post Production Tuning must have a yield distribution assigned to it.
    For example, if you wanted to specify "R" as a post production tuning variable with discrete optimization range and discrete statistical distribution, the format for R requires the following:
    R=10 opt{ppt discrete 0 to 15 by 1} stat{discrete 0 to 15 by 1}

Post production tuning is supported for both yield analysis and yield optimization. Note that some trials take longer because of the tuning that must take place in the background.

To set specifications for post production tuning, select one of the following from the Models/tuning tab of the Yield Simulation dialog box:

  • None (to disable post production tuning)
  • Maximize performance (unconditionally attempts to find the best performance for each trial)
  • Convert failures (attempts to convert any failed trial into a passing trial, but does not attempt to tune for maximum performance)
  • Choose Apply to retain the specifications that you have made while you enter data into the Display tab of the Yield Simulation dialog box, as described in the next section.

Displaying Analysis Data on the Schematic

Selecting the yield analysis parameters that will be displayed on your schematic is done the same way as in nominal optimization. Refer to Displaying Analysis Data on the Schematic for details. Below is a yield analysis example.

When you have finished setting up all the tabs in the Yield Simulation dialog box, click OK .

Note

MaxTrials , Enable and RestoreNom are reserved parameters and are not currently available. Selecting these parameters in the Display parameter on schematic section will display the parameters on the schematic; however, changes to the parameter values will not be recognized.


Initiating Yield Analysis

To initiate a yield analysis, select Simulate or click the Simulate button on the toolbar. The analysis status is displayed in the Status window. Upon completion of the analysis, the simulator ceases analysis and indicates success.

Note

If the yield analysis process becomes exceedingly long, you can use the Stop Simulation command on the Simulation/Synthesis menu in the status window to interrupt the process.


Swept Yield Analysis

Yield analysis can be swept as any other ADS analysis. When the Yield analysis controller is referenced by a parameter sweep controller, the yield analysis is performed for each value of the sweep variable and the results output as a function of the sweep variable. For more information, refer to Swept Optimization.

Sweeping Temperature in a Yield Analysis

Varying the temperature randomly while doing a Yield analysis is a bit complicated. The temperature, temp, can be swept in a Parameter Sweep but you are not allowed to specify it as a variable in a VarEqn. ADS allows sweeping temperature in a Parameter Sweep during a Yield analysis. These steps show how to set up a Yield analysis where the temperature is randomized:

  1. Make the YieldSpec refer to a Parameter Sweep instead of the actual analysis.
  2. Make the Parameter Sweep sweep the desired analysis.
  3. Set the Parameter Sweep's variable to temp.
  4. Create a variable (or whatever is needed): vtemp = 25 stat{uniform 0 to 125}
  5. Make the Parameter Sweep vary between vtemp and vtemp, with a single sweep point:
    Start=vtemp
    Stop =vtemp
    Nr Points = 1
    

Yield Analysis Example

Note

The example used in this topic is from Analog/RF Systems simulation. However, the yield analysis procedure is the same for ADS Ptolemy Signal Processing simulation.

For the following yield analysis example, suppose that we start with the octave-band, 2-to-1 matching transformer that we optimized to have an optimal equal-ripple response in the previous example. Now suppose there is a specification on the design that it must have an input return loss of at least 18 dB from 200 MHz to 400 MHz.

This example is called yldex1_wrk , and it is located in the directory $HPEESOF_DIR/examples/Tutorial . To access this example workspace and enable simulation, first copy it to a work directory. To open an example choose File > Open > Example from the ADS Main window.

  1. A YieldSpec component is added to the design to define that specification, as shown in the following figure.
    Design Including YieldSpec Component
  2. Assume the following:
    • You can obtain inductances of any nominal value between 10 and 50 nH.
    • You can obtain capacitors having any nominal value between 1 and 10 pF.
    • The tolerance on the inductance and capacitance values is +/- 5%.
      This information can be specified in the schematic by changing the Value Types of the appropriate parameters to Uniform , and the value type format to +/- Delta% .
      The schematic represents the octave-band, equal-ripple, 2-to-1 matching transformer, modified to specify the tolerances on the inductance and capacitance values.
  3. A yield analysis of the design indicates about 77% yield in the status window.

Creating a Measurement Histogram

A measurement histogram displays the frequency of occurrence of a selected single scalar measurement function. A histogram is a bar graph in which the height of each bar represents the number or the percent of the recorded measurement values that occurred within each measurement value bin.

  • The scalar measurement value appears on the X-axis.
  • The X-axis is divided into bins.
  • The Y-axis displays the number or percentage of simulated measurement points that fall into the range of each measurement bin.

You can set the minimum and maximum display range on the X-axis, as well as the number of bins using the histogram AEL expression. Refer to histogram in Measurement Expressions for more information.

Setup Requirements

Histograms are created after your yield analysis is complete. The stored data is post-processed into histogram form via a set of equations and expressions in the Data Display window. The prerequisites for creating a measurement histogram are:

  1. Set up and perform a yield analysis. For the general procedure refer to Performing Yield Analysis. However, there are a few specific settings that must be selected to enable histogram generation, as described next.
  2. Edit the Yield component to select the Parameters tab of the Yield Simulation dialog box.
  3. In the Output Data field, select the YieldSpec expressions and Random variables check boxes as shown below. This will save the data needed for post-processing.
  4. Click OK .
  5. Initiate your yield analysis by selecting Simulate or click the Simulate button on the toolbar.

Generating the Measurement Histogram

To learn how to generate a histogram we will use the same filter design shown in the figure Design Including YieldSpec Component and, in addition, we will use the post-processing capability of the Data Display window. Do the following:

  1. After the yield analysis simulation is complete, choose Window > New Data Display . The Data Display window appears.
  2. Choose Insert > Equation or click the Eqn button on the left side of the window.
  3. Position the pointer on the display and click. The Enter Equations dialog box appears.

    Note

    For more information on entering equations, refer to Equations in the Data Display documentation.

  4. Type in the following equation and click OK . Or, in the finished example, access the data display file $HPEESOF_DIR/examples/Tutorial/yldex1_wrk/measurement_hist.dds

    Spec1_perfHist = histogram_stat(Spec1,,200MHz,400MHz,20)

    When the equation is entered using our example, the following histogram is generated.

Measurement Histogram

Histogram_stat(data, normalized, innermostindepLow, innermostindepHigh,numBins,minBins,maxBins) is for producing yield histogram. The first argument is required, others are options. The function gives the same functionality as the following series of equations and expressions, which are hidden inside histogram_stat.

freq=indep(Spec1)
Spec1_freq_low_limit=200 Mhz
Spec1_freq_high_limit=400 Mhz
Spec1_low_index=find_index(freq[0,::], Spec1_freq_low_limit)
Spec1_high_index=find_index(freq[0,::], Spec1_freq_high_limit)
Spec1_subrange=Spec1[::,Spec1_low_index::Spec1_high_index]
Spec1_subrange_freq_collapsed=collapse(Spec1_subrange)
Spec1_perfHist=histogram(Spec1_subrange_freq_collapsed)

The design-specific parameters shown above, such as a low-frequency limit of 200 MHz and a high-frequency limit of 400 MHz, only apply to this example. Your design will vary. The idea here is to understand the methodology of entering a series of equations and expressions to generate a histogram from your data.

  1. If you want to generate a histogram with percent on the Y-axis instead of the number of outcomes, set the second argument of histogram_stat to "yes":

    Spec1_perfHist_normalized=histogram_stat(Spec1,"yes",200MHz,400MHz,20)

    Normalized Histogram

The following ADS expressions are used in the preceding example:

  • histogram()
  • find_index()
  • yield_sens()
  • collapse()
  • histogram_sens()

For more information, refer to the Measurement Expressions documentation.

Note

ADS names optimization/yield/DOE variables in a specific way to avoid confusion in the dataset or Status window, as follows:
<enclosing_definition_name>.<instantiation_path>.variable_name.For more information on this naming convention, refer to Understanding How ADS Names Optimization Variables.


Creating a Sensitivity Histogram

A sensitivity histogram displays the sensitivity of a measurement statistical response to a selected statistical variable. See the following figure for a sample sensitivity histogram.

A sensitivity histogram is a bar graph that shows the effect on a specified statistical response versus the value of a selected statistical variable. 1

  • The X-axis shows the range of value of the selected statistical variable divided into "bins".
  • The Y-axis shows, for each bin, a point estimate of the performance response. This point estimate is the statistical response.
    Possible examples for statistical response are yield, average performance, performance variance, as well as others. The following figure shows a sensitivity histogram with yield as the statistical response.


Parts of a Sensitivity Histogram Display
  1. Michael D. Meehan and John Purviance, Yield and Reliability in Microwave Circuit and System Design , Artech House Inc., 1993.

Setup Requirements

Sensitivity histograms are created the same way as measurement histograms, as explained in the last section. The only difference is the additional equations and expressions entered after your yield analysis is complete. Refer to Setup Requirements for the setup procedure.

Generating the Sensitivity Histogram

Note

Generating a sensitivity histogram involves the same steps as generating a measurement histogram, described in the last section, except that additional equations and expressions are required.

To learn how to generate a sensitivity histogram, we will use the same filter design shown in the figure Design Including YieldSpec Component and we will use the post-processing capability of the Data Display window. Do the following:

  1. After the yield analysis simulation is complete, choose Window > New Data Display . The Data Display window appears.
  2. Choose Insert > Equation or click the Eqn button on the left side of the window.
  3. Position the pointer on the display and click. The Enter Equations dialog box appears.

    Note

    For more information on entering equations, refer to Equations in the Data Display documentation.

  4. Type in the following equation and click OK . Or, for the finished example, access the data display file ../yldex1_wrk/yield_sens.dds.
    Yldsens=histogram_sens(Spec1,C1v,,-18.0,200MHz,400MHz,20)
    When the equation is entered using our example, the following sensitivity histogram is generated:
    Yield Sensitivity Histogram

Histogram_sens(data,sensitivityVar,goalMin,goalMax,innermostindepLow, innermostindepHigh,numBins) is for producing a sensitivity histogram. Among its arguments, data , sensitivityVar , goalMin and/or goalMax are required. Others are optional. The function gives the same functionality as the following series of equations and expressions, which are hidden inside histogram_sens.

freq=indep(Spec1)
Spec1_freq_low_limit=200 Mhz
Spec1_freq_high_limit=400 Mhz
Spec1_low_index=find_index(freq[0,::], Spec1_freq_low_limit)
Spec1_high_index=find_index(freq[0,::], Spec1_freq_high_limit)
Spec1_subrange=Spec1[::,Spec1_low_index::Spec1_high_index]
fail=0.0
pass=1.0
curVar=C1v
curSpec1_value=-18.0
maxS11=max(Spec1_subrange)
maxS11_vs_curVar=vs(maxS11, curVar)
pf_maxS11=if(maxS11_vs_curVar > curSpec1_value) then fail else pass
yldsens= yield_sens(pf_maxS11)

Notice that the yield is higher for smaller values of C1v. This indicates that yield can be improved by reducing the nominal value of C1v. Also notice that this sensitivity plot includes the effects of all other statistical variables in the design (C2v, L1v, and L2v). In addition, sensitivity plots provide valuable insight into component tolerances and can be used to identify problem components.
The design-specific parameters shown above, such as a low-frequency limit of 200 MHz and a high-frequency limit of 400 MHz, only apply to this example. Your design will vary. The idea here is to understand the methodology of entering a series of equations and expressions to generate a histogram from your data.

Performing Monte Carlo Analysis

Monte Carlo analysis is similar to Yield analysis. Both analyses randomly vary network parameter values according to statistical distributions to get the overall performance variation. The only difference is that yield analysis will determine the number of passing and failing simulations over the set of trials and is used to compute the yield estimate.

Specifying Component Parameters for Monte Carlo Analysis

The procedure for specifying components for Monte Carlo analysis is the same as described in Specifying Component Parameters for Yield Analysis.

Placing an Appropriate Simulation Control Component for Monte Carlo Analysis

The procedure for placing an appropriate simulation control component for a Monte Carlo analysis is the same as described in Placing an Appropriate Simulation Control Component for Yield Analysis.

Setting Up a Yield Specification for Monte Carlo Analysis

Monte Carlo analysis can use the yield specification component to specify the desired performance. The procedure for setting up a yield specification for a Monte Carlo analysis is the same as described in Setting Up a Yield Specification

Setting Job Parameters for Monte Carlo Analysis

This three-tabbed dialog box appears when you place and double-click a Monte Carlo controller component (labeled MC ) located in the Optim/Stat/Yield/DOE library or palette for Analog/RF Systems and the Controllers library or palette for Signal Processing). Do the following:

  1. Place the Monte Carlo ( MC) controller component in the appropriate design window.
  2. Double-click the component to bring up the dialog box. The Setup tab is active.
  3. Make specifications in each tab (Setup, Parameters, and Display) of the dialog box, as described in the next sections.

Selecting a Yield Specification for Monte Carlo Analysis

To set up a Monte Carlo analysis in the Setup tab of the Monte Carlo Simulation dialog box:

  1. The options in the Statistical Variations box support two different statistical models:
    • ADS traditional model - The statistical variables use ADS syntax and are set up as R=50 stat{gauss +/-1%}.
    • Spectre statistical model - The variations process and mismatch use Spectre syntax and are provided only for use in ADS Dynamic Link. They are specified in the Statistics block in the foundry files, and define the process variations and mismatch variations.
       
      When choosing options in the Statistical Variations box:
      • _stat_{...} refers to the statistical variables defined in ADS traditional model. Choose _stat_{...} to set the ADS syntax for statistical variations.
      • process and mismatch refer to the statistical variables defined in a Spectre model.
      • If there are no variables set, checking any option will not affect the simulation. For example, the ADS traditional model uses only stat{...} variables. Selecting process or mismatch will not change the results.
  2. In the Yield Specs box, accept the default Use All Specs in Design checkbox. This is the best approach for most designs, and all Yield Spec components placed in a design will be implicitly associated with the Monte Carlo controller.
    To associate a subset of all Specs with a given Monte Carlo controller, deselect the Use All Specs in Design checkbox. Select a Yield Spec from the Edit drop-down list, which will include all yield specification components that are currently placed in the design, as described in the section, Setting Up a Yield Specification. Choose Add to place in the Yield Specs box, and repeat this procedure if necessary. Choose the Cut or Paste buttons, if necessary to make any changes in the YieldSpecs box.
  3. Under Stopping criterion , specify the number of desired trials to use during the Monte Carlo process.
  4. Choose Apply to retain the specifications that you have made while you enter data into the Parameters tab, as described in the next section.

Setting Parameter Information for Monte Carlo Analysis

To set parameter information, such as what data to save and parameter attributes, in the Parameters tab of the Monte Carlo Simulation dialog box:

  1. In the Output Data field, specify which data you want to retain in your dataset following Monte Carlo analysis. Check the following choices that apply.
    • Analysis outputs sends all measurements (including measurement equations) to the dataset. This can create a substantial amount of data.
    • YieldSpec expressions (default) sends the result of each active Yield Spec's Expr field to the dataset.
    • Random variables sends the values of all random variables to the dataset.
  2. In the Output Data Control field, specify whether you want to:
    • Save data for all trials . Data for all trials is saved. This can create a substantial amount of data.
    • Update display during Yield Analysis (default). This updates the dataset on each Monte Carlo trial so you can see the results in the Data Display window as they occur (instead of waiting to the end where all the traces are displayed at once).
  3. In the Levels field, enter a number for the desired annotation level. Levels are 0-4 (default is 2), with increasing information displayed in the Status window.
  4. In the Other field, specify a seed value. Seed is a value for the random number generator used to initiate a Monte Carlo analysis. If Seed is not specified, the simulator chooses its own seed, which will be different each time a Monte Carlo analysis is performed.
  5. Choose Apply to retain the specifications that you have made.

Displaying Monte Carlo Analysis Data on the Schematic

Selecting the Monte Carlo analysis parameters that will be displayed on your schematic is done the same way as in nominal (performance) optimization by choosing the Display tab. Refer to Displaying Analysis Data on the Schematic for details. Below is a Monte Carlo Simulation dialog box example.

Note

Monte Carlo analysis can be used without the yield specification component. In this case, the SimInstanceName is used to specify the underlying simulation component defined in Placing an Appropriate Simulation Control Component for Monte Carlo Analysis.


Several Monte Carlo Simulation Display Parameters
Display parameter Description
SimInstanceName Simulation Instance Name
NumIters Number of Iterations
MaxTrials Maximum number of Trials
Seed Seed
PerformNomSim Obsolete Parameter
SaveSolns Save Solutions
SaveSpecs Save Specifications
SaveRandVars Save Results and Variables
UpdateDataset Update Dataset
SaveAllIterations Save All Iterations
UseAllSpecs Use All Specifications
YieldSpecName Yield Specification Name
StatusLevel Status Level
Enable Enable
RestoreNomValues Restore Nominal Values
StartTrial † Start Trial Number (default = 0)
StopTrial † † Stop Trial Number (default =NumTrials).
† StartTrial and StopTrial can be specified so that the Monte Carlo Analysis will run from StartTrial to StopTrial. For more information, refer to Using StartTrial and StopTrial

† The Number of Trials set in the Stopping Criterion section of the Setup tab is the default value; however, a -1 is displayed on the schematic to indicate that NumTrials will be used.

When you have finished setting up all the tabs in the Monte Carlo Simulation dialog box, click OK .

Using StartTrial and StopTrial

Two control parameters can be used to specify a Monte Carlo or Yield Analysis run-start and stop, StartTrial and StopTrial . These two parameters work together with NumTrials to force a Monte Carlo/Yield Analysis to run from StartTrial to StopTrial.

  • NumTrials (required parameter) will control the number of trials for Monte Carlo or Yield Analysis. The number of trials is measured from 1 to N.
  • StartTrial (optional parameter) will control the start trial number for Monte Carlo or Yield Analysis. The default StartTrial value is 1. If StartTrial is not specified or is less than zero, StartTrial will assume the default value of 1.
  • StopTrial (optional parameter) will control the stop trial number for Monte Carlo or Yield Analysis. If StopTrial is not specified or is less than zero, it will assume the value of NumTrials. If StopTrial is specified more than NumTrials, StopTrial will reset to the value of NumTrials internally. The only valid values for StopTrail fall in the range 0 < StopTrial < NumTrials .

These optional parameters are used for specific cases. IC designers occasionally want to debug a design in (seeded) Monte Carlo simulations. For example, suppose a designer makes 100 runs of a design. The 40th, 53rd, and 54th runs generate out-lier performance. The designer then corrects the design and wants to re-run these three cases. In this case, the designer could set StartTrial to 40 and StopTrial to 54.

Initiating Monte Carlo Analysis

To initiate a Monte Carlo analysis, select Simulate or click the Simulate button on the toolbar. The analysis status is displayed in the Status window. Upon completion of the analysis, the simulator ceases analysis and indicates success.

Note

If the Monte Carlo analysis process becomes exceedingly long, you can use the Stop Simulation command on the Simulation/Synthesis menu in the status window to interrupt the process.


Performing Yield Optimization


Yield optimization adjusts nominal values of selected element parameters to maximize yield. Also referred to as design centering, yield optimization is the process in which the nominal values of yield variables are adjusted to maximize the yield estimate.

When you activate yield optimization, you are required to enter the number of design iterations. This is the number of yield improvements you wish the simulator to obtain. Each design iteration may require several yield analyses (yield estimations).

You are not required to enter the number of trials to be used for each yield analysis. The number of trials is a dynamic variable computed during yield optimization, varying with changing yield estimates and confidence levels. Therefore, the yield estimate derived from yield optimization often differs from that for a single yield analysis with a user-specified number of trials.

To have control over the confidence level and hence the accuracy of the yield estimate, it is recommended that you perform a yield analysis after the yield optimization is completed, using the nominal parameter values obtained from the yield optimization. Choose an appropriate number of trials based upon the following formula, where N is the number of trials.

For a 95.4% confidence level , an Error = ± 2% and a yield of 80%

N = 1600 trials

For more information, refer to Monte Carlo Trials and Confidence Levels.

Setting Job Parameters for Yield Optimization

To set job parameters, you need to specify appropriate data in the Yield Optimization dialog box.

This four-tabbed dialog box appears when you place and double-click a Yield Optimization component (labeled YldOpt ) located in the Optim/Stat/Yield/DOE library or palette for Analog/RF Systems and the Controllers library or palette for Signal Processing). Do the following:

  1. Place the Yield Optimization ( YldOpt) component in the appropriate design window.
  2. Double-click the component to bring up the dialog box. The Setup tab is active.
  3. Make specifications in each tab (Setup, Parameters, Models/tuning, and Display) of the dialog box, as described in the next sections.

Selecting a Specification for Yield Optimization


To set up a yield optimization in the Setup tab of the Yield Optimization dialog box:

  1. In the Yield Specs box, accept the default Use All Specs in Design checkbox. This is the best approach for most designs, and all Yield Spec components placed in a design will be implicitly associated with the Yield Optimization controller.
    To associate a subset of all Specs with a given Yield Optimization controller, deselect the Use All Specs in Design checkbox. Select a Yield Spec from the Edit drop-down list, which will include all yield specification components that are currently placed in the design, as described in the section, Setting Up a Yield Specification. Choose Add to place in the Yield Specs box, and repeat this procedure if necessary. Choose the Cut or Paste buttons, if necessary to make any changes in the YieldSpecs box.
  2. Under Stopping criterion , specify the number of desired iterations to use during the yield optimization process.
  3. Choose Apply to retain the specifications that you have made while you enter data into the Parameters tab, as described in the next section.

Setting Parameter Information for Yield Optimization


To set parameter information, such as what data to save and parameter attributes, in the Parameters tab of the Yield Optimization dialog box:

  1. In the Output Data field, specify which data you want to retain in your dataset following yield optimization. Check the following choices that apply.
    • Analysis outputs sends all measurements (including measurement equations) to the dataset for each yield optimization iteration. This can create a substantial amount of data.
    • YieldSpec expressions (default) sends the result of each active Yield Spec's Expr field to the dataset.
    • Optimization variables sends the values of all optimization variables to the dataset for each improvement found during the yield optimization.
  2. In the Output Data Control field, specify whether you want to:
    • Save data for all iterations . Data for all iterations is saved. This can create a substantial amount of data.

      Note

      For yield optimization, enabling this feature can slow the simulation time considerably when many iterations are being run. The default is off, where only the first and last iterations are saved to the dataset.

    • Update display during optimization (default). This updates the dataset on each optimization iteration so you can see the results in the Data Display window as they occur (instead of waiting to the end where all the traces are displayed at once).
  3. In the Levels field, enter a number for the desired annotation level. Levels are 0-4 (default is 4), with increasing information displayed in the Status window.
  4. In the Other field, specify a seed value for use with the random optimizer. Seed is a value for the random number generator used to initiate an optimization. If Seed is not specified, the simulator chooses its own seed, which will be different each time a yield analysis or yield optimization is performed.
  5. Choose Apply to retain the specifications that you have made while you enter data into the Models/tuning tab, as described in the next section.

Selecting a Shadow Model Type for Yield Optimization


You use the Models/tuning tab of the Yield Optimization dialog box to select the Shadow Model, an optional method of yield optimization.

The Shadow Model works as follows: A series of trials is run in which the random variations in your design's statistical parameters are used in a mathematical model of the design's performance to compute the yield. This allows a greater number of trials and therefore greater accuracy in the yield estimate without a significant increase in the computation time required.

To enable one of two available methods of Shadow Model analysis:

Click the selection of your choice, using either of two methods:

  • Maximally flat quadratic Shadow Model (which is usually faster)
  • Agilent EEsof Shadow Model (which is usually more accurate)

If None is selected, the Monte Carlo method will be applied to the simulator, not to the mathematical Shadow Model.

Consult the following references for details concerning the Monte Carlo method and the Maximally Flat Quadratic Approximation model.

  • R. Spence and R. S. Soin. Tolerance Design of Electronic Circuits, Addison-Wesley, 1988.
  • Radoslaw (Radek) Biernacki, John Bandler, Jian Song, and QI-Jun Zhang. Efficient Quadratic Approximation for Statistical Design , IEEE Transactions on Circuits and Systems, vol. 36, No. 11, November 1989.

Enabling Post Production Tuning

Post Production Tuning can be used with yield optimization just as in yield analysis. The feature is enabled in the lower part of the Models/tuning tab of the Yield Optimization dialog box. Refer to Enabling Post Production Tuning for a description of this feature.

Choose Apply to retain the specifications that you have made while you enter data into the Display tab of the Yield Optimization dialog box, as described in the next section.

Displaying Analysis Data on the Schematic


Selecting the yield optimization parameters that will be displayed on your schematic is done the same way as in nominal (performance) optimization by choosing the Display tab. Refer to Displaying Analysis Data on the Schematic for details. Below is a yield optimization dialog box example.


When you have finished setting up all the tabs in the Yield Optimization dialog box, click OK .

Swept Yield Optimization

Yield Optimization can be swept as any other ADS analysis. When the Yield Optimization controller is referenced by a parameter sweep controller, the yield optimization is performed for each value of the sweep variable and the results output as a function of the sweep variable. For more information, refer to Swept Optimization.

Yield Optimization Example

This example demonstrates how to optimize the yield of the same octave-based, 2-to-1 matching transformer that was used in the example at the beginning of this topic. Refer to the section Yield Analysis Example.

This example is called yldoptex1_wrk , and it is located in the directory $HPEESOF_DIR/examples/Tutorial . To access this example workspace and enable simulation, open the example by choosing File > Open > Example from the Main window.

In the Yield Analysis example, the network was optimized to have an equal-ripple response. The yield of the equal-ripple design, assuming ± 5% tolerance on the inductances and capacitances and a minimum return loss of 18 dB, was approximately 77%. This figure is based on using 1000 trials and therefore has a margin or error between ± 2 and ± 3% at a confidence level of 95%.

To optimize the yield of the transformer:

  1. From the Schematic window, select File > Open to open the example yldoptex0 , which uses the schematic design from the yldex0 example (shown in the section Yield Analysis Example), except that the YldOpt control component is used instead of the Yield component.
    The optimization range for the nominal parameter is identical to that used in the example in the section, Optimization Examples in Nominal Optimization. Twenty iterations are specified on the YldOpt control component.
    The initial design is shown in the following figure. The initial yield analysis, as noted in the section Yield Analysis Example, indicated a yield of about 77%.
    Initial Design Prior to Yield Optimization
  2. Select Simulate > Simulate or click the tool bar Simulate button.
    The analysis status in the status window indicates progress by displaying the current iteration number and yield estimate, along with the current optimal nominal component values, as shown in the following figure. Use the scroll bar to view more iterations and variables.

Progress of Yield Optimization

Upon completion of the simulation, the optimized yield should be more than 90%, indicating less than half as many failures as the equal ripple design.

  1. Select Simulate > Update Optimization Values to change the nominal values on the schematic to the optimized ones. The results are shown in the following figure.
    Schematic Design with Optimized Values

If we look at the VarEqn component, we see that the optimized values have been updated on the schematic.
!optstat-4-1-26.gif!

Note

The values that you obtain if you run through the example may differ slightly from those shown here due to the random nature of the yield optimization algorithm.

The example shows that an equal-ripple design, having equal distance between the specification and the actual response at both ends and the middle of the frequency band is not optimal when component variations are taken into account. The yield of such a design can be improved dramatically merely by shifting the nominal value by a small amount using yield optimization.

Statistical Correlation

The Statistical Correlation component ( StatCorr ) is used in yield analysis and yield optimization. The schematic shown in the following figure illustrates the use of this feature.

Any statistical variable can be correlated to another statistical variable regardless of the distribution of the variables. The correlation coefficient parameter CorrVal should be in the range of x , where -1.0 < x < 1.0. If for a system of correlated variables, the correlation matrix is not positive definite , a warning message will be displayed and the correlation values altered so that the analysis can proceed.

In this example, a "dummy" yield analysis is used to generate the random outcomes for R1v, R2v, R3v, and R4v. The Statistical Correlation component StatCorr1 is used to correlate R1v with R2v and R3v with R4v at a level of 0.9, which is a strong positive relationship.

StatVarA[1]="R1v"

StatVarB[1]="R2v"

CorrVal[1]=0.9

StatVarA[2]="R3v"

StatVarB[2]="R4v"

CorrVal[2]=0.9


simpleCorr Schematic

The StatCorr1 component has only a few parameters as shown in the Statistical Correlation for Yield Analysis dialog box, below:

The following figure shows a scatter plot and histograms of both random variables R1v and R2v.


Scatter Plot and Histograms

The data below shows the statistical correlation values for R4v, R3v, R2v, and R1v.

corrStatVarName

originalCorr.R4v

originalCorr.R3v

originalCorr.R2v

originalCorr.R1v

R4v
R3v
R2v
R1v

1.000
0.900
0.000
-0.300

0.900
1.000
0.000
0.300

0.000
0.000
1.000
0.900

-0.300
0.300
0.900
1.000


corrStatVarName

updatedCorr.R4v

updatedCorr.R3v

updatedCorr.R2v

updatedCorr.R1v

R4v
R3v
R2v
R1v

1.000
0.820
-0.063
-0.214

0.820
1.000
0.063
0.214

-0.063
0.063
1.000
0.833

-0.214
0.214
0.833
1.000

 

 

  • No labels