General Sweep Specification

In this topic:


SIMetrix features a common sweeping algorithm which is used to define the swept analysis modes: .DC, .AC, .NOISE and (now) .TF, along with multiple analyses such as Monte Carlo.

The sweep algorithm has 6 modes:

  • Device. Sweeps a single default value of a specified device. E.g. voltage of a voltage source, resistance of a resistor or the capacitance of a capacitor.
  • Temperature
  • Parameter. Parameter can be referenced in an expression for a model or instance parameter.
  • Model parameter. Named model parameter.
  • Frequency. (Not applicable to .DC)
  • Monte Carlo. Perform a specified number of steps with distribution functions (i.e tolerances) enabled.
  • Sensitivity. Perturbs each distribution function in turns to evaluate sensitivity of that function.
  • Worst-case. Requires a prior sensitivity analysis. Perturbs all distribution functions to their full tolerance in a direction determined by their sensitivity to a specified goal function.
Standard SPICE only provides a subset of the above. .DC can only sweep voltage and current sources, .AC and .NOISE can only sweep frequency while .TF can't be swept at all.

As well as providing these modes, each of the modes can sweep in four different ways. These are linear, decade, octave and list.


All the swept analysis modes use the same general syntax to specify the sweep parameters. However, to maintain compatibility with SPICE and its derivatives including earlier versions of SIMetrix, each analysis mode allows variations to this standard syntax. The general syntax is described below while the variations allowed for each analysis mode are described in the section dedicated to that analysis mode.

All of the analysis modes can optionally be entered in a similar manner to .MODEL statements i.e. as an unordered list of parameter names followed by their values. For example, the following is a perfectly legal noise analysis specification:

.noise V=vout DEVICE=V1 VN=0 F=1k LIN=(100 -10m 10m)

In the various forms of the syntax described in the following sections, some of the parameter names may be omitted as long as they are entered in a particular order. It is sometimes, however, easier to remember parameter names rather than a default order, so the method described above may be more convenient for some users.

General syntax for swept analyses

.AC|.DC|.NOISE|.TF sweep_spec [ analysis specific parameters ]

sweep_spec: One of the following:

DEVICE device_name step_spec F frequency
TEMP step_spec F frequency
PARAM param_name step_spec F frequency
MODEL model [PARAM] mod_param_name step_spec F frequency
FREQ step_spec
MONTE num_steps F frequency OUTFILE xml_logfile NOMCLOG
SENS [SENSID sensid] [SPAN span] [OUTFILE sens_outfile]
WC [SENSID sensid] [INFILE sens_infile] [WCID wcid] [OUTFILE wc_outfile]


device_name Name of device to be swept. The following components may be swept: Capacitors, all controlled sources, fixed current source, fixed voltage source, inductors and resistors
param_name Name of parameter used in expression. Expressions may be used to define an instance or model parameter and may also be used in arbitrary sources
model Name of model containing parameter to be swept. If the model is a binned model (as used in some process development kits for IC design) you can specify a specific bin (e.g. modname.1) or the base name (e.g. modname). If you specify the base name, all bins in the model will be swept.
mod_param_name Name of model parameter
num_steps Number of steps to be performed for Monte Carlo sweep
frequency Specified frequency for which .NOISE, .AC and .TF analyses are to be performed. May be zero for .AC and .TF.
sensid Identifier for sensitivity analysis. In the SENS specification this may be any arbitrary string. This may then be used in a worst-case analysis (WC specification) to signify that the worst-case analysis should receive its sensitivity data from that analysis. The sensid value must also be included in sensitivity measurement function (.SENSMEAS) definitions. If sensid is omitted from the sweep specification, a default value will be used. This is the analysis name, TRAN for .tran, AC for .AC etc. For single step sweeps, the default name is prefixed with sweep_
span Proportion of the tolerance on a component that is perturbed for sensitivity measurement. The default value is 1.0 meaning that the component will be perturbed the whole tolerance from its nominal value
step_spec See below
sens_outfile File that will receive the sensitivity data. This is an XML format file that is used to generate reports and pass data to a subsequent worst-case analysis. It is not usually necessary to specify this parameter; a default file located in the temporary data directory will be used if this parameter is omitted
sens_infile Specifies input data file for a worst-case analysis. This file is usually generated by a sensitivity analysis. If omitted the file specified by sens_outfile in the most recent sensitivity analysis sharing the same sensid will be used.
wcid Identifier for worst-case analysis. This is used to identify sensitivity measurement functions that should be called to provide data output for this analysis. If omitted, the parameter defaults to the value of sensid
wc_outfile Data output file for worst-case analysis

step_spec is defined as follows:

STP start stop step
LIN num_points start stop
DEC num_points_decade start stop
OCT num_points_octave start stop
LIST val1 [ val2 ... ]


start First value
stop Last value (inclusive)
step Interval
num_points Total number of points
num_points_decade Number of points per decade
num_points_octave Number of points per octave
STP and LIN modes are both linear sweeps but specified differently. STP specifies start, stop and a step size, while LIN specifies start, stop and the total number of points.