Limit or Min/Max Distribution

To define a Monte Carlo netlist parameter with a limit or min/max distribution, use the following syntax:

.PARAM name=LIMIT(nominal_value,absolute_offset])

Either the minimum value (nominal_value-absolute_offset) or the maximum value (nominal_value + absolute_offset) will be selected, with equal probability.

For example, to create a sample set consisting of the two values 5 and 15, you could use:

.PARAM D1=LIMIT(10, 5)

Setting a Component or Model to Use Monte Carlo Analysis

When the netlist specifies the name of a Monte Carlo netlist parameter as the value of an instance or model parameter, Nexxim will generate a random variable for it, and will recalculate the random variable when the instance or model parameter is referenced.

For both the instance and the model usage, the reference to the Monte Carlo distribution can be individual or grouped.

Instance Parameter with Individual Reference

In an individual reference, the instance parameter references the Monte Carlo netlist parameter directly.

In the following example, the two resistors will be simulated using separate random distributions for their resistance values:

.PARAM indiv=AUNIF(0, 0.05)
...
Rtest1 Vin 0 R='0.1 + indiv'
Rtest2 Vin 0 R='0.1 + indiv'

Instance Parameter with Group Reference

In a group reference, the instance parameter references a netlist parameter that in turn references the Monte Carlo netlist parameter.

In the following example, both resistors will be simulated using the same set of random values for resistance.

.PARAM indiv=AUNIF(0, 0.05)
.PARAM group='10*indiv'
...
Rtest1 Vin 0 R='0.1 + group'
Rtest2 Vin 0 R='0.1 + group'

Model Parameter with Individual Reference

In an individual reference, the model parameter references the Monte Carlo netlist parameter directly.

In the following example, the two MOSFET instances will be simulated using the random distribution for model parameter TOX specified for the model.

.PARAM indiv_model=AGAUSS(0, 5, 3)
...
Mtest1 Vcc Vin 0 MonteModel
Mtest2 Vcc Vin 0 MonteModel
.MODEL MonteModel NMOS LEVEL=1 TOX='1.0e-7+indiv_model*1e-8'

Model Parameter with Group Reference

In a group reference, the model parameter references netlist parameter that in turn references the Monte Carlo netlist parameter.

In this example, all instances of either MonteModel1 or MonteModel2 will use the same values of model parameter TOX.

.PARAM indiv_model=AGAUSS(0, 5, 3)
.PARAM group_model='indiv_model*1e-8'
...
Mtest1 Vcc Vin 0 MonteModel1
Mtest2 Vcc Vin 0 MonteModel2
.MODEL MonteModel1 NMOS LEVEL=1 TOX='1.0e-7 + group_model'
.MODEL MonteModel2 NMOS LEVEL=1 TOX='1.0e-7 + group_model'

Combining Instance and Model Distributions

The netlist can specify one distribution on an instance parameter, and a different distribution on a model parameter. The two distributions must be referenced by different parameters. Nexxim then creates two distributions, one for the model and another for the element. For example, a MOSFET instance could use a Monte Carlo distribution for channel length variations (that might differ from instance to instance of MOSFETs on a wafer) and the model could use a different distribution for oxide thickness (that could differ from wafer to wafer).