WRspice supports MOS model selection by the L and W MOS element line. This facility is used to automatically select the proper model for a specific device dimension, from among several models which are nominally similar but optimized for a particular device size. This facility works with any of the MOS model levels.
The MOS models for the specified ranges should use the same ``base'' name plus an arbitrary but unique extension separated from the base name with a period. The element line should refer to the model by the base name. Each of the different models with the same base name should have ranges specified with the model parameters LMIN, LMAX, WMIN, WMAX. The model associated with an instance is the first model found such that the base name matches, and LMIN <= L <= LMAX and WMIN <= W <= WMAX. If the MIN/MAX parameters are not found in a model line, the test is always true, i.e., if no MIN/MAX parameters are specified in a model, that model would match any L, W.
Example:
m1 1 2 3 4 nm l=1.5u w=1u
m2 a b c d nm l=3u w=5u
...
.model nm.1 nmos(level=8 lmin=1u lmax=2u wmin=1u wmax=2u ...)
.model nm.2 nmos(level=8 lmin=2u lmax=4u wmin=1u wmax=2u ...)
.model nm.3 nmos(level=8 lmin=1u lmax=2u wmin=2u wmax=5u ...)
.model nm.4 nmos(level=8 lmin=2u lmax=4u wmin=2u wmax=5u ...)
.model nm.5 nmos(level=8 ...)
In this example m1 would use model nm.1, and m2 would use nm.4. The model nm.5 is a ``catch all'' for elements that don't match the other models. The extension can be omitted in one of the model names.
If a model that uses selection cannot be resolved, the circuit run will be aborted.