Never miss a story from Analog/Custom Design. Subscribe for in-depth analysis and articles.
As the process feature sizes have scaled down, the impact of device mismatch on circuit performance has increased and now, even more Monte Carlo simulations are required to analyze the impact of this mismatch on performance metrics. With standard Monte Carlo algorithms, it is not feasible (high cost) to complete even one million Monte Carlo simulations needed in memory design to determine 4σ yield numbers. It is obvious that more than one billion simulations would be required for high-sigma yield analysis.
Spectre FMC Analysis has been developed with an advanced algorithm to speed up the high-sigma simulation with two capabilities, FMC worst sample prediction and FMC yield estimation. This blog describes the command-line options to use these capabilities of Spectre FMC analysis.
This new feature allows you to extract useful statistical information without running the full set of Monte Carlo samples, especially for a high-sigma analysis. It simulates the worst samples of a measurement only in the tail of distribution based on the machine learning sample reordering method. Building a model with job distribution can further speed up the performance, as shown below.
Spectre FMC worst sample prediction is supported in both Virtuoso ADE Product Suite and Spectre command line.
To perform the worst sampling simulation, you need to specify any two of these parameters: numruns, fmcsigma and fmcnumtailsamples.
Then, specify the selected measurements to be identified for the worst sample in the statistics target goal block.
Spectre FMC yield estimation provides a fast answer for quick sigma, failure rate, and confidence intervals when the simulation budget is limited. It determines the yield based on the boundaries of a measurement goal with a fixed cost of simulations.
To improve performance, you can use distributed mode for both FMC worst sample prediction and FMC yield estimation analyses. Use one of the available options, fork, lsf, or sge, to launch child processes. In addition, use the command-line option +mp=<number_of_processes> to specify the number of child processes to be launched.
To run all the distributed jobs on the same host, specify +mplauncher=ksh in addition to the above command.
You may also contact your Cadence Customer Support for guidance.
For more information on Cadence products and services, visit www.cadence.com.
Spectre Tech Tips is a blog series aimed at exploring the capabilities and potential of Spectre®. In addition to providing insight into the useful features and enhancements in Spectre, this series broadcasts the voice of different bloggers and experts, who share their knowledge and experience on all things related to Spectre. Enter your email address in the Subscriptions box and click SUBSCRIBE NOW to receive notifications about our latest Spectre Tech Tips posts.