Product Documentation
Spectre Circuit Simulator Reference
Product Version 23.1, September 2023

DC Analysis (dc)

Description

DC analysis finds the DC operating-point or DC transfer curves of the circuit. To generate transfer curves, specify a parameter and a sweep range. The swept parameter can be circuit temperature, a device instance parameter, a device model parameter, a netlist parameter, or a subcircuit parameter for a particular subcircuit instance. You can:

sweep the circuit temperature by giving the parameter name as param=temp without a dev, mod or sub parameter.

sweep a top-level netlist parameter by giving the parameter name without a dev, mod or sub parameter.

sweep a subcircuit parameter for a particular subcircuit instance by specifying the subcircuit instance name with the sub parameter, and the subcircuit parameter name with the param parameter.

After the analysis is complete, the modified parameter returns to its original value.

Syntax

Name dc parameter=value ...

Parameters

Sweep interval parameters

start

0

Start sweep limit.

stop

Stop sweep limit.

center

Center of sweep.

span

0

Sweep limit span.

step

Step size, linear sweep.

lin

50

Number of steps, linear sweep.

dec

Points per decade.

log

50

Number of steps, log sweep.

values

[...]

Array of sweep values.

valuesfile

Name of the file containing the sweep values.

hysteresis

no

Perform DC hysteresis sweep. When set to yes, a reverse sweep will automatically be added to the DC sweep. Possible values are no and yes.

Sweep variable parameters

dev

Device instance whose parameter value is to be swept.

mod

Model whose parameter value is to be swept.

param

Name of parameter to sweep.

State-file parameters

force

none

Determine whether to force values for DC. Uses the values from the device and node ICs. Possible values are none, node, dev and all.

readns

File that contains estimate of DC solution (nodeset).

readforce

File that contains force values.

write

File to which solution at first step in sweep is written.

writefinal

File to which solution at last step in sweep is written.

useprevic

no

If set to yes or ns, use the converged initial condition from previous analysis as ic or ns. Possible values are no, yes and ns.

Output parameters

save

Signals to output. Possible values are all, lvl, allpub, lvlpub, selected, none and nooutput.

nestlvl

Levels of subcircuits to output.

print

no

Print node voltages. Possible values are no and yes.

oppoint

no

Should operating point information be computed; if yes, where should it be printed (screen or file). Operating point information is not printed if sweep parameter param is set ( if user wants to enable this kind of output for dc sweep, use option enable_dcsweep_op_info=yes ). Possible values are no, screen, logfile and rawfile.

check

yes

Check operating point parameters against soft limits. Possible values are no and yes.

Convergence parameters

homotopy

all

Method used when no convergence occurs on initial attempt of DC analysis. You can specify methods and their orders by specifying a vector setting such as homotopy=[source ptran gmin]. Possible values are none, gmin, source, dptran, ptran and all.

newton

normal

Users can specify newton methods such as newton=none, and newton=normal. Possible values are none and normal.

restart

yes

Restart from scratch if any condition has changed. If not, use the previous solution as initial guess. Possible values are no and yes.

maxiters

150

Maximum number of iterations.

maxsteps

10000

Maximum number of steps used in homotopy method.

Annotation parameters

annotate

sweep

Degree of annotation. Possible values are no, title, sweep, status, estimated, steps, iters, detailed, rejects and alliters.

title

Analysis title.

Emir output parameters

emirformat

none

Format of the EM/IR database file. Possible values are none and vavo.

emirfile

Name of the EM/IR database file. The default is '%A_emir_vavo.db'. The file is printed to a raw directory.

swpuseprevic

yes

DC sweep uses the solution of previous point as starting point. Possible values are no, yes and ns.

component

component instance.

You can define sweep limits by specifying the end points or the center value and span of the sweep. Steps can be linear or logarithmic, and you can specify the number of steps or the size of each step. In addition, you can specify a step size parameter (step, lin, log, or dec) and determine whether the sweep is linear or logarithmic. If you do not specify a step size parameter, the sweep is linear when the ratio of stop to start values is less than 10 and logarithmic when this ratio is 10 or greater. If you specify the oppoint parameter, Spectre computes and prints the linearized model for each nonlinear component.

Nodesets help find the DC or the initial transient solution. You can specify nodesets in the circuit description file with nodeset statements or in a separate file by using the readns parameter. When nodesets are specified, Spectre computes an initial guess of the solution by performing DC analysis, while forcing the specified values on to nodes by using a voltage source in series with a resistor whose resistance is rforce. Spectre then removes these voltage sources and resistors and computes the required solution from this initial guess.

Nodesets have two important uses. First, if a circuit has two or more solutions, nodesets can bias the simulator towards computing the required solution. Second, this is a convergence aid. By estimating the solution of the largest possible number of nodes, you might be able to eliminate a convergence problem or significantly speed up convergence.

When you simulate the same circuit multiple times, it is recommended that you use both write and readns parameters and assign the same file name to both parameters. DC analysis then converges quickly even if the circuit has changed since the last simulation, and the nodeset file is automatically updated.

You can set the 'force' parameter and specify the values to force the DC analysis. The values used to force signals are specified by using the force file, the ic statement, or the ic parameter on the capacitors and inductors. The force parameter controls the interaction of various methods of setting the force values. The effects of individual settings are as follows:

force=none: All initial conditions are ignored.

force=node: The ic statements are used, and the ic parameter on the capacitors and inductors are ignored.

force=dev: The ic parameters on the capacitors and inductors are used, and the ic statements are ignored.

force=all: Both the ic statements and the ic parameters are used, with the ic parameters overriding the ic statements.

If you specify a force file with the readforce parameter, force values read from the file are used, and any ic statements are ignored.

After you specify the force conditions, Spectre performs DC analysis with the specified nodes forced to the given value by using a voltage source in series with a resistor whose resistance is rforce (see options).


Return to top
 ⠀
X