################################################################## # # # # ### # ##### # # # # # # ## # # # # # # # # # # # # # ####### # # # ##### # # # # # # # # # # # # # # # # # # # # # # ### ##### ##### ################################################################## r4.0.1, 2012-12-20 ################################################################## * * Monte Carlo analysis using Spectre circuit simulator * and X-FAB's statistical device models * ################################################################## 0. Content =========== 1 - Basics about XFAB's statistical models 2 - Simulation of process variation 3 - Simulation of device matching 4 - List of statistical models 0.1 Remark ---------- This readme file is a summary of the detailed application note "SPICE Models & Simulations" which is available on X-TIC. It can be found under the topic "Application Notes, Helps & Hints". Please pay attention to this document. 1. Basics about XFAB's statistical models ========================================== 1.1 Monte Carlo analysis overview ---------------------------------- Monte Carlo analysis can be performed as a means to understand a circuit's tolerance to process variation and statistical mismatch. A large number of spice simulations (.DC, .AC, .TRAN etc.) are run, all having different, randomly-generated, model parameters. It can be thought of as randomly selecting points in the possible parameter space, according to predefined distributions. The results of these simulations can be displayed as histogram, scatter plot or a family of curves. Monte Carlo analysis should go hand in hand with worst-case-corner simulation and can be used to verify or improve on these simulation results. To use Monte Carlo analysis a special prepared set of device models is required. Two different types of simulation are supported by XFAB's statistical model set. 1) Simulation of process parameter variation. 2) Simulation of statistical device matching. Please find further information about Monte Carlo analysis in the latest spectre manuals. 2. Simulation of process variation (lot) ========================================= Simulator vendors use different names for this. * lot to lot variation * wafer to wafer variation * global variation * major distribution All these terms mean the same thing. A process parameter get a new value every simulation run. During this run, all instances of this parameter share the same value. A very simple example should make this comprehensible: Gate oxide thickness will vary from run to run. During a single run, all devices in the same circuit share the same value for gate oxide thickness. On the next run, a new value is picked up from the predefined parameter range. 2.1 Simulator statements to enable process simulation ------------------------------------------------------ First select in ADE's model library setup dialog window the scs-file "/xh018/lpmos/xh018.scs" to enable the access to the statistical models. Use the section "mc_g" for gaussian, or "mc_u" for uniform parameter distribution. Then include the file param.scs to select the number of sigma to use for the simulation. (section 3s, 4s, 5s, 6s) The files bip.scs, bsim3v3.scs, cap.scs, dio.scs, ind.scs and res.scs are not required for statistical simulation. These files have to be disabled or deleted in the setup dialog. To perform process simulation, please select "Process only" in the box "Analysis Variation" of the Analog Statistical Analysis tool. Please find further information in the spectre reference guide. 2.2 Possible types of process parameter distributions ------------------------------------------------------ The statistical model set for process parameters was made in this way that MC analysis covers the whole possible parameter range which is defined by the worst case corner edge points. The process related parameters can follow either uniform or gaussian distribution. 2.2.1 Uniform distribution Uniform distribution of process parameters is very artificial. It has nothing to do with real process parameter variation! All values of the possible parameter range (the region between wp and ws points) will occur with the same possibility. To enable the uniform parameter set please select the section "3s" or "6s" of the file "param.scs" and the section "mc_u" of the file "xh018.scs" in ADE's model library setup dialog box. This distribution can be used to make statistical range analysis which is an ideal extension to the classic corner analysis. The advantage over corner analysis is that not only the min/max points are simulated. The whole possible parameter range between the corners is covered. A parameter value, somewhere between min and max, at which the results are worse, can be found on this way. Another advantage is that it is impossible to forget a critical parameter combination because the values of the single parameters are selected randomly. The covered parameter range is set up by the parameter xsf__. Some values for this parameter are predefined in the file param.scs The user can choose between +-3sigma or +-6sigma variation by selecting the cases 3s or 6s. 2.2.2 Gaussian distribution Simulating uniform parameter distribution is a very artificial approach. To make more realistic simulations, the provided parameter set with gaussian distributed process parameters can be used. To enable the gaussian distributed parameter set please select the section "3s" or "6s" of the file "param.scs" and the section "mc_g" of the file xh018.scs in ADE's model library setup dialog box. Using the gaussian distribution is closer to the reality. The edge values will occur with low possibility now. (according to the possibility which is described by gaussian distribution) This approximates the reality more than the artificial uniform distribution. But there is a disadvantage too. A large amount of simulation runs is required to cover the whole range of possible parameter values. Large can be 10000 in some cases! 3. Simulation of device matching (dev) ======================================= Simulator vendors use different names for this. * local variation * dev variation * matching / mismatch All these terms mean the same thing: Two identical designed elements do not have identical properties during a simulation run. The statistical mismatch of identical designed devices is simulated. Possible systematic mismatch is not part of these models! Matching parameters, which are included in the models, are derived from real measurements of special matching test structures. They are always Gaussian distributed. Thats why all matching parameters have everytime a Gaussian distribution -even if uniform parameter set is selected! Otherwise matching simulation would be totally erroneous! 3.1 Be careful -------------- All matching parameters were measured using test structures with a layout which was optimised for good matching behaviour. This means that these parameters can only be reached with an optimised layout. Bad layout will lead to bad matching! The statistical mismatch, which is described in the models, is only proportional to 1/sqrt(m*DeviceArea). The factor m is the device multiplier. (how many identical devices are in parallel) Other effects, which are not included in the spice models, may have a larger influence to device matching as the modeled statistical mismatch. Some keywords are: dummy structures, placement, length of connections, metal coverage, device orientation, temperature gradients and so on. All these things are NOT considered in the matching models. The model calculates the mismatch only via the device area! 3.2 Running the matching simulation ----------------------------------- Select "Mismatch only" in the box "Analysis Variation" of the Analog Statistical Analysis tool. Please find further information in the simulator reference guide. 4. List of Monte Carlo Models ============================== X-FAB provides Monte Carlo models for the most important devices. (Not for all devices!) Some models don't have matching parameters. See following table for details: |-----------------------------------------------------------------------| | DIODES | |-----------------------|-----------------------|-----------------------| | Device | process (lot) | matching (dev) | |-----------------------|-----------------------|-----------------------| | dn | x | | | dp | x | | | dnw | x | | | dn3 | x | | | dp3 | x | | | dnw3 | x | | | ddnwmv | x | | | dpdnwmv | x | | | dipdnwmv | x | | | ddnw | x | | | dpdnw | x | | | dipdnw | x | | | dnhpw | x | | | dphnw | x | | | dhpw | x | | | dhnw | x | | | dndf | x | | | dpdwhn | x | | | dwhn | x | | | dpwhn | x | | | | | | | dsb | x | | | dnp20 | x | | | dpp20 | x | | | | | | | dphoa | x | | | dphob | x | | | | | | |-----------------------------------------------------------------------| | RESISTORS | |-----------------------|-----------------------|-----------------------| | Device | process (lot) | matching (dev) | |-----------------------|-----------------------|-----------------------| | rdn | x | x | | rdp | x | x | | rnw | x | x | | rdn3 | x | x | | rdp3 | x | x | | rnw3 | x | x | | rdnwmv | x | x | | rnp1 | x | x | | rpp1 | x | x | | rpp1s | x | x | | rnp1h | x | x | | rpp1k1 | x | x | | | | | | rm1 | x | | | rm2 | x | | | rm3 | x | | | rm4 | x | | | rm5 | x | | | rmtp | x | | | rmtpl | x | | | | | | |-----------------------------------------------------------------------| | CAPACITORS | |-----------------------|-----------------------|-----------------------| | Device | process (lot) | matching (dev) | |-----------------------|-----------------------|-----------------------| | cmm4t | x | x | | cmm5t | x | x | | cmm6t | x | x | | cdmm4 | x | x | | cdmm4t | x | x | | ctmm5 | x | x | | ctmm5t | x | x | | cmmh4t | x | x | | cmmh5t | x | x | | cmmh6t | x | x | | cdmmh4 | x | x | | cdmmh4t | x | x | | ctmmh5 | x | x | | ctmmh5t | x | x | | | | | | csandwt3 | x | x | | csandwt4 | x | x | | csandwt5 | x | x | | | | | | csf3 | x | x | | csf4 | x | x | | csf5 | x | x | | csf3a | x | x | | csf4a | x | x | | csf5a | x | x | | csf2p | x | x | | csf3p | x | x | | csft4 | x | x | | csft5 | x | x | | csft4a | x | x | | csft5a | x | x | | csft6 | x | x | | csft6a | x | x | | | | | |-----------------------------------------------------------------------| | MOSFETS | |-----------------------|-----------------------|-----------------------| | Device | process (lot) | matching (dev) | |-----------------------|-----------------------|-----------------------| | ne | x | x | | nei | x | x | | nei_6 | x | x | | nei_m_6 | x | x | | pe | x | x | | pei | x | x | | nel | x | x | | neli | x | x | | neli_6 | x | x | | neli_m_6 | x | x | | pel | x | x | | peli | x | x | | | | | | nn3 | x | x | | | | | | ne3 | x | x | | ne3i | x | x | | ne3i_6 | x | x | | ne3i_m_6 | x | x | | | | | | pe3 | x | x | | pe3i | x | x | | | | | | nd3 | x | | | nd3i | x | | | nd3i_6 | x | | | nd3i_m_6 | x | | | | | | | nmma | x | | | pmma | x | | | nedi | x | | | nedia | x | | | ped2 | x | | | ped | x | | | | | | | nhv | x | | | nhhv | x | | | nmmc | x | | | nmmd | x | | | nmc | x | | | nma | x | x | | | | | | phv | x | | | phhv | x | | | pmmc | x | | | pmc | x | | | pma | x | x | | | | | |-----------------------|-----------------------|-----------------------| | BIPOLAR | |-----------------------|-----------------------|-----------------------| | Device | process (lot) | matching (dev) | |-----------------------|-----------------------|-----------------------| | qpva | x | x | | qpvb | x | x | | qpvc | x | x | | | | | | qpva3 | x | x | | qpvb3 | x | x | | qpvc3 | x | x | | | | | | qnva | x | x | | qnvb | x | x | | qnvc | x | x | | | | | | qpvhscr | x | x | | qpvascr | x | x | | | | | |-----------------------------------------------------------------------|