The Virtuoso Analog Design Environment XL Monte Carlo sampling methods are Random, Latin Hypercube, and Low Discrepancy Sequence. More accurately, Spectre provides the engine and ADE XL interfaces with the simulator to complete the Monte Carlo analysis task. Random is the standard random sampling method. Latin Hypercube (LHS) is an enhanced method that converges faster. Low Discrepancy Sequence (LDS) is the most recently developed method. Experimental results that compare the three methods are shown in the figure below.
Phase Margin of an op amp is measured and the mean error is compared to the golden result of 100K Monte Carlo samples. Each data point represents the result of 20 independent trials. The mean error is:
This is only one example but, in general, LHS and LDS results are found to be comparable. An advantage of LDS over LHS is that it is compatible with the ADE XL feature to automatically stop the Monte Carlo run given a yield estimate target. Provide a yield target and Monte Carlo will stop performing simulations when the design is either found to exceed the target or found to be low yield. This saves time by not running any more simulations than necessary based on the specified significance level. If needed you can loosen the significance level to get results faster or increase the level depending on your requirements.
Once the Monte Carlo results are available, statistical corners can be created. In ADE XL you can create a statistical corner from any of the simulated samples. There are several options to create the corner, including selecting a point on the histogram, creating a corner out of the worst sample, or by percentile.
ADE XL saves only the relevant information such as seed, sequence number, sampling method, etc. with the corner. Spectre can then recreate the statistical parameter values for the corner from this information. This type of corner is efficient and does not require that all the statistical parameter data for each sample is saved in Monte Carlo. The downside is that some changes to the design topology such as the addition of a new instance to the schematic can invalidate the corner. The simulator can no longer recreate the same set of statistical parameter values when simulating the statistical corner. Two types of statistical corners are possible in ADE XL with version IC6.1.6 ISR6; a corner with the sequence info saved, or a corner that contains all of the statistical parameter values. The values-based corner is more robust in the face of these minor design changes. The new instance added to the design does not invalidate the existing statistical corner of this type. The user can choose which corner type better suits their needs.
All of the above methods define the corner by one of the simulated Monte Carlo samples. To create a 3 sigma statistical corner you must have simulated a large number of samples. A new ADE GXL feature to be released with IC6.1.6 ISR6 addresses this problem. The goal is to create a k sigma statistical corner quickly (by default 3 sigma - you can specify the yield-in-sigma target) without the need to run thousands of simulations. The fast 3 sigma corner flow is to:
- Run Monte Carlo (only a few hundred samples compared with the traditional approach requiring 1000+ samples)
- Create the fast 3 sigma statistical corner
A minimum of 1 and a maximum of 11 extra simulations per corner are needed for this step.
The fast 3 sigma corner algorithm estimates the probability density function (PDF) of the performance distribution maintaining accuracy for non-normal distributions. The specification target value is computed from the PDF estimate.
A statistical corner is then created that matches the target spec value. There can be multiple corners that meet this criteria. This method finds the most representative corner by minimizing the distance to the nominal point. This representative corner has a greater probability to occur. Now the statistical corner can be used for further analysis of the design. Look for this feature in ADE GXL in the next IC6.1.6 release.
Lorenz Neureuter