Video lectures from the iCS group @ IIT Madras

Monte Carlo analysis in Cadence

  • To do Monte Carlo analysis, you need to have a library with process and mismatch statistics defined. For components in a pdk, this has to be provided by the pdk vendor. You may want to run Monte Carlo with random variations in standard components like R,L,C. An example file that defines these components with variations is here. A similar file will be given by the pdk vendor for their components.
  • This file needs to have 3 sections: param, stats, and models in that order. If you need to add other components, e.g. voltage sources with randomly varying values, they can be added in a similar to R, L, C in statsLib.scs.
  • The randomly varying parameter(e.g rmult, lmult, cmult in statsLib.scs) can be defined in the model description or as a circuit parameter. But, to model mismatch, where each instance of the model has a different value, it has to be specified as a circuit parameter, as done in the file above. For this, each component has to be embedded in an inline subcircuit with the same terminal definitions as the original component with an additional parameter(see the file statsLib.scs)
  • These model sections have to be added to the model setup in the right order(param, stats, and models )

  • Running the analysis and plotting waveforms/histograms are done through the Analog Statistical Analysis window (Tools → Monte Carlo in Analog Design Environment)