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

Transient Analysis (tran)

Description

This analysis computes the transient response of a circuit over the interval from start to stop. The initial condition is taken to be the DC steady-state solution, if not otherwise given.

Syntax

Name tran parameter=value ...

Parameters

Simulation interval parameters

stop

(s)

Stop time.

tpoints

[...] s

Multiple of pairs<pstep, stop>.

start

0 s

Start time.

pstep

(s)

print step.

outputstart

start s

Output is saved only after this time is reached.

autostop

no

If yes, the analysis is terminated when all event-type measurement expressions have been evaluated. Event-type expressions use thresholding, event, or delay type functions. If the value is spice, autostop is consistent with spice simulator. Possible values are no, yes and spice.

Time-step parameters

maxstep

(s)

Maximum time step. The default is derived from errpreset.

step

0.001*(stop-start) s

Minimum time step used by the simulator solely to maintain the aesthetics of the computed waveforms.

minstep

(s)

Minimum time step. If specified, the error tolerance requirements may be ignored when step size is less than minstep.

istep

0.001*(stop-start) s

When step size is greater than istep, the local truncation error checking is enabled for algebraic nodes.

Initial-condition parameters

ic

all

The value to be used to set the initial condition. Possible values are dc, node, dev and all.

skipdc

no

If set to yes, there is no DC analysis for transient. Possible values are no, yes, useprevic, waveless, rampup, autodc and sigrampup.

rampupratio

0.1

The rampup ratio for skipdc=rampup and sigrampup.

rampuptime

(s)

The rampup time for skipdc=rampup. The default value is set to rampupratio*stop.

readic

File that contains initial condition.

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.

linearic

no

Enable linear IC method to calculate initial conditions automatically from a type of stability analysis in the range [0.5*oscfreq, 1.5*oscfreq]. Overrides user-defined initial conditions if instability is detected. Possible values are no and yes.

oscfreq

0.0

Estimation of the oscillation frequency when linear IC method is enabled.

Convergence parameters

readns

File that contains an estimate of the initial transient solution.

cmin

0 F

Minimum capacitance from each node to ground.

State-file parameters

write

File to which initial transient solution is to be written.

writefinal

File to which final transient solution is to be written.

ckptperiod

Checkpoint the analysis periodically by using the specified period.

saveperiod

Save the tran analysis periodically on the simulation time.

saveperiodhistory

no

Maintains the history of saved files. If yes, maintains all the saved files. Possible values are no and yes.

saveclock

(s)

Save the tran analysis periodically on the wall clock time. The default is 1800s for Spectre. This parameter is disabled in the APS mode by default.

savetime

[...]

Save the analysis states into files on the specified time points.

savefile

Save the analysis states into the specified file.

recover

Specify the file to be restored.

Integration method parameters

method

Integration method. The default is derived from errpreset. Possible values are euler, trap, traponly, gear2, gear2only, trapgear2 and trapeuler.

Emir output parameters

emirformat

none

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

emirstart

(s)

EM/IR start time.

emirstop

(s)

EM/IR stop time.

emirfile

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

emirtimewindows

[...]

Time check windows of emir. Array should have an even number of values [b_begin1 b_end1 b_begin2 b_end2 ...], the priority is higher than 'emirstart' and 'emirstop'.

Accuracy parameters

errpreset

Selects a reasonable collection of parameter settings. Possible values are liberal, moderate and conservative.

relref

Reference used for the relative convergence criteria. The default is derived from errpreset. Possible values are pointlocal, alllocal, sigglobal and allglobal.

lteratio

Ratio used to compute LTE tolerances from Newton tolerance. The default is derived from errpreset.

fastbreak

no

If yes, VHDLAMS Break statement is handled using faster Verilog method. Possible values are no and yes.

d2aminstep

0

Minimum stepsize that can be taken when there is a D2A event. If this is zero, the simulators min step size is chosen.

fastcross

cm

Specifies how VerilogA @cross, @above functions and AMSDesigner connect modules impact the time step control. no ... enforces time step at exact crossing point, discrete ... optimized time step control with best accuracy/performance trade-off, cm ... same as discrete for Spectre, but further performance optimization of connect modules in AMSD, yes ... better performance with cross function tolerances relaxed.. Possible values are no, yes, discrete and cm.

transres

1e-9*stop s

Transition resolution. The transient analysis attempts to stop at corners of input waveforms (for example, corners of rising/falling edge of a pulse). If such events occur within a time less than transres, the analysis combines the events into one and forces only one time point. The rest of the steps are determined by error control. This may lead to loss of detail.

lteminstep

0.0 s

Local truncation error is ignored if the step size is less than lteminstep.

ltethstep

1e-12 s

LTE tolerance can be relaxed for signal with discontinuity when step size is less than ltethstep.

d2atimetol

0

Time tolerance for D2A events. The smaller the value, the closer the time when the analog solver actually executes the d2a event may be to the time when the event gets reported.

vrefmax

Upper limit of the voltage reference for relative error calculation.

irefmax

Upper limit of the current reference for relative error calculation.

vrefbins

[1 3 5 10]

Specifies the voltage bins when bin_relref=yes is used. Default setting is vrefbins=[1 3 5 10].

irefbins

[1e-6 1e-5 1e-4 1e-3 1e-2 1e-1]

Specifies the current bins when bin_irelref=yes is used. Default setting is irefbins=[1e-6 1e-5 1e-4 1e-3 1e-2 1e-1].

resetref

no

If yes, reset reference voltages/currents. Possible values are no and yes.

Annotation parameters

annotate

sweep

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

annotateic

no

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

annotatedigits

4

number of significant digits for annotate tran time. Possible values are 0, 1, 2 ...16. If set to 0, the number of significant digits is dynamic according to current time and step. If set to n (n = 1, 2 ...16), the number is equal to n..

title

Analysis title.

Output parameters

save

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

nestlvl

Levels of subcircuits to output.

oppoint

no

Should operating point information be computed for initial timestep; if yes, where should it be printed (screen or file). Possible values are no, screen, logfile and rawfile.

skipstart

0 s

The time to start skipping output data.

skipstop

stop s

The time to stop skipping output data.

skipcount

1

Save only one of every skipcount points.

strobeperiod

0 s

The output strobe interval (in seconds) of transient time.

strobedelay

0 s

The delay (phase shift) between the skipstart time and the first strobe point.

strobeoutput

strobeonly

Specifies which time points to output during strobe. Possible values are strobeonly, all and none.

strobestep

0 s

Equivalent to strobeperiod.

strobefreq

The reciprocal of strobeperiod (strobestep).

strobestart

0 s

Equivalent to skipstart.

strobestop

stop s

Equivalent to skipstop.

strobetimes

[...] s

Times in ascending order when strobe output performed.

progress_t

Print out the annotate message every interval specified by progress_t in terms of minutes. Note that this degrades performance.

progress_p

Print out the annotate message every progress_p percent of transient time. Note that this degrades performance.

compression

no

Perform global waveform compression. Possible values are no, all, wildcardonly and yes.

comppreset

moderate

Defines waveform compression accuracy. Possible values are moderate, conservative and liberal.

compref

pointlocal

Reference used for relative error criteria in waveform compression. Possible values are alllocal, pointlocal, sigglobal and abstol.

compvabstol

1.0e-3 V

Absolute voltage tolerance for waveform compression.

compiabstol

1.0e-12 A

Absolute current tolerance for waveform compression.

comppwrabstol

1.0e-15 W

Absolute power tolerance for waveform compression.

compreltol

0.001

Relative tolerance for waveform compression.

complvl

Enables waveform compression for specified hierarchy level and below (top level=1). All levels above specified level are not compressed. Complvl has higher priority than global compression statement.

flushpoints

Periodically flush all unwritten data from the buffer to the outputs after calculating the specified number of points.

flushtime

(s)

Periodically flush unwritten data from the buffer to the outputs after the specified time has elapsed.

flushofftime

(s)

Real time to stop flushing outputs.

flushpercent

Flush unwritten data in the buffer to outputs for every X% of the transient progress.

infonames

[...]

Names of info analyses to be performed at the time point in the infotimes array.

infotimes

[...] s

Times when the analysis specified by infonames is performed.

infotime_pair

yes

If set to yes, there is a 1:1 correspondence between the values in infonames and in infotimes. For example, infonames[0] will be run at infotimes[0], infonames[1] will be run at infotimes[1], etc. If set to no, all analysis in infonames will be run at each infotimes time. Possible values are no and yes.

acnames

[...]

Names of ac, noise, sp, stb, xf, or lf analyses to be performed at each time point in the actimes array. The named small-signal analyses are not run separately, but only as part of the transient analysis.

actimes

[...] s

Times when analyses specified in acname array are performed.

actime_pair

yes

If set to yes, there is a 1:1 correspondence between the values in acnames and in actimes. For example, acnames[0] will be run at actimes[0], acnames[1] will be run at actimes[1], etc. If set to no, all analysis in acnames will be run at each actimes time. Possible values are no and yes.

Newton parameters

maxiters

5

Maximum number of iterations per time step.

dcmaxiters

150

Maximum number of dc iterations in tranFindInitialState.

restart

yes

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

Circuit age

circuitage

(Years)

Stress time. Age of the circuit used to simulate hot-electron degradation of MOSFET and BSIM circuits.

Transient noise parameters

trannoisemethod

default

use this option to enable the adaptive noise step control. Possible values are default and adaptive.

noisefmax

0 Hz

The bandwidth of pseudorandom noise sources. A valid (nonzero) noisefmax turns on the noise sources during transient analysis. The maximum time step of the transient analysis is limited to 0.5/noisefmax.

noisescale

1

Noise scale factor applied to all generated noise. Can be used to artificially inflate the small noise to make it visible above transient analysis numerical noise floor, but it should be small enough to maintain the nonlinear operation of the circuit .

noiseseed

Seed for the random number generator. Should be positive integer. Specifying the same seed allows you to reproduce a previous experiment.

mc_auto_noiseseed

no

Regenerate the seed at every monte carlo iteration using same mechanism. Possible values are yes, no. Default is no.. Possible values are no and yes.

noisefmin

1 Hz

If specified, the power spectral density of the noise sources depends on the frequency in the interval from noisefmin to noisefmax. Below noisefmin, the noise power density is constant. If noisefmin=noisefmax, then only white noise would be included, and noise sources are evaluated only at noisefmax for all models. 1/noisefmin should be smaller than the requested time duration of transient analysis.

noiseon

[...]

The list of instances to be considered as noisy during transient noise analysis.

noiseoff

[...]

The list of instances to be considered as not noisy during transient noise analysis.

Dynamic parameters

param

Name of the parameter to be updated to a different value with time during tran. You can use param=isnoisy with param_vec=[...] to turn On or Off the transient noise in time windows. For example, param=isnoisy param_vec=[0ns 0 100ns 1 500ns 0 ] . The transient noise is OFF (param value is 0) from time 0 to 100ns and the noise is ON (param value is 1) from 100ns to 500ns and OFF from 500ns to stop time.

paramset

Name of the dynamic parameter set.

param_vec

[...] s

The time_value points to param=name.

param_file

The file that contains the time_value points to param=name.

sub

Name of the subcircuit instance parameter specified in param=name.

mod

Name of the device model parameter specified in param=name.

dev

Name of the device instance parameter specified in param=name.

param_step

Defines the frequency of updating the dynamic parameter values. If param_step=0, it updates the parameter value at a given time point.

paramsetfile

The file that contains the paramset data used for dynamic parameter change using event-triggered analysis.

steppreset

Used to dynamically change time-step control related settings in Spectre X. Example: tr1 tran stop=10u param=steppreset param_vec=[0 vx 3u mx]. Possible values are cx, ax, mx, lx and vx.

speed

Used to dynamically change time-step control related settings in Spectre FX. Example: tr1 tran stop=10u param=speed param_vec=[0 vx 3u mx]. Possible values are cx, ax, mx, lx, vx and sx.

Fault analysis parameters

faulttimes

[...] s

Fault times in ascending time order where transient fault analysis is performed. 'faulttimes' is required parameter for TFA, and optional for DFA. 'faultstart/faultstep/faultstop', 'faultevent', or 'faultfile' can be used as an alternative.

faultstep

(s)

The time interval between the fault times.

faultstart

0 s

The start time, or the first fault time, of transient fault analysis.

faultstop

stop s

The stop time, or the last fault time, of transient fault analysis.

faultfile

Name of the file that contains the fault times in ascending time order for transient fault analysis.

faultevent

[...] s

Events to perform transient fault analysis.

faultautostop

no

Auto-stop fault analysis when the fault is detected based on assert violation. Possible values are no, func, check, both and all.

faultdetratio

Auto-stop fault simulation when the specified detection ratio achieved.

faultconfidlevel

Auto-stop fault simulation when the specified detection ratio achieved with given confidence level.

faultskipdc

yes

Enforce skipdc=yes during fault analysis when no solution found during initial DC analysis. Possible values are no and yes.

faultstrobe

no

Time point strobe will be enabled during fault analysis. Possible values are no and yes.

faultmethod

linear

Simulation method used for transient fault analysis. Possible values are linear, maxiters, onestep, leadtime, testpoint and timezero.

faulttablefmt

txt

Format of fault table file. Possible values are txt and bin.

faults

[...]

Names of the fault blocks from the fault list to perform transient fault analysis. Default value is faults=[*].

faultsid

[...]

Indexes of faults from the list to perform fault analysis. If specified, simulation performed for requested subset of fault list.

faultsname

[...]

Names of faults from the list to perform fault analysis. If specified, simulation performed for requested subset of fault list.

faultsinst

[...]

List of instances to perform fault analysis. If specified, simulation performed only for faults within given instances.

faultsamplenum

Number of samples in random sampling of fault list during simulation.

faultsampleratio

[R1 R2]

A set of two values R1 and R2 (in percentage) to simulate the samples between the given range. 'faultsampleratio=R' is equivalent to 'faultsampleratio=[0 R]'.

faultseed

1

Optional starting seed for random number generator during fault sampling.

faultsamplemethod

random

Method to be used for fault sampling. Possible values are random, randomweighted, randomuniform and weightsorted.

faultsamplereplace

yes

Perform fault sampling with sample replacement during fault analysis. Possible values are no and yes.

faultsort

yes

Perform fault simulation according to the order in the fault list. If 'no', random order applied. Possible values are no and yes.

faultcollapse

no

Perform fault collapsing in the list before fault simulation. Possible values are no and yes.

faultduplicate

yes

Perform fault simulation for all faults from the list. If 'no', identical and equivalent faults will be excluded from simulation. Possible values are no and yes.

faultsave

testpoints

Set of data to be saved during transient fault analysis. Possible values are testpoints, all and none.

faultddm

File containing the command line options to run 'spectre_ddmrpt' when fault simulation finished.

faultdb

File name to save fault simulation data in the format specified by 'faultfmt'.

faultfmt

File format to save fault simulation data. Possible values are csv, xl and sql.

faultleadtime

[...] s

The lead time intervals where the fault will be injected before the fault time when faultmethod=leadtime.

faultmaxiters

Maximum number of iterations per time step for transient fault analysis. Default is 50 for fault method 'maxiters', 10 for 'onestep', and 5 for other methods.

faultlimiting

log

Limiting algorithm to aid Newton convergence during transient fault simulation. Possible values are delta, log, dev and none.

faultrampsteps

0

Maximum number of steps for fault conductance stepping to improve convergence after fault injection with method 'maxiters'. Recommended value faultrampsteps=10.

faultlimsteps

yes

Auto stop slow simulation for the faults taking above average number of time steps. Possible values are no and yes.

faultmaxsteps

Maximum steps allowed to perform one fault simulation. Simulation auto-stops if not finished earlier than specified step count.

faultlimtime

Maximum elapsed time allowed to perform one fault simulation (in hours). Simulation auto-stops if not finished earlier than specified time.

faultsafecheck

no

Enable auto-stop during the nominal simulation when the assert with 'safecheck' specified has been violated. Possible values are no and yes.

faultrampinterval

0

The coefficient (between 0 and 1) to define the size of time interval to ramp fault conductance after fault injection when 'faultmethod=leadtime' specified.

faultic

no

Perform dc analysis after fault injection as initial conditions for transient fault analysis. Possible values are no, bridge, open, custom, param, all and yes.

faultactivestart

0

The time to begin circuit activity tracing for fault list generation.

faultactivevabstol

0.1

The minimum voltage value to consider an element as active for fault list generation.

faultactiveiabstol

1e-6

The minimum current value to consider an element as active for fault list generation.

Custom errpreset parameters

maxstepratio

Maximum time step ratio for custom 'errpreset'.

reltolratio

Reltol ratio for custom 'errpreset'.

thermal_node_window

[...]

Time  windows of thermal node analysis. Array should have an even number of values [b_begin1 b_end1 b_begin2 b_end2 ...], currently it only supports one time window.

msgSuppress

[...]

Used to change the message severity threshold after the given time point, messages are suppressed if the run time is after the given time point and its severity is below the threshold. Arguments should have pairs of time and message severity, supported message severity are 'none', 'notice', 'warning', 'error'. 'none' means suppress nothing. Example: tr1 tran stop 100u msgSuppress=[10u notice 20u warning 30u error 60u none ...]The message severity threshold becomes invalid after tran analysis is finished..

You can specify the initial condition for the transient analysis by using the ic statement or the ic parameter on the capacitors and inductors. If you do not specify the initial condition, the DC solution is used as the initial condition. The ic parameter on the transient analysis controls the interaction of various methods of setting the initial conditions. The effects of individual settings are as follows:

ic=dc: All initial conditions are ignored, and the DC solution is used.

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

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

ic=all: Both ic statements and ic parameters are used, and the ic parameters override the ic statements.

If you specify an initial condition file with the readic parameter, initial conditions from the file are used, and any ic statements are ignored.

After you specify the initial conditions, Spectre computes the actual initial state of the circuit by performing a DC analysis. During this analysis, Spectre forces the initial conditions on nodes by using a voltage source in series with a resistor whose resistance is rforce (see options).

With the ic statement, it is possible to specify an inconsistent initial condition (one that cannot be sustained by the reactive elements). Examples of inconsistent initial conditions include setting the voltage on a node with no path of capacitors to ground, or setting the current through a branch that is not an inductor. If you initialize Spectre inconsistently, its solution jumps, that is, it changes instantly at the beginning of the simulation interval. You should avoid such changes because Spectre can have convergence problems while trying to make the jump.

You can skip DC analysis entirely by using the parameter skipdc. If DC analysis is skipped, the initial solution is trivial or is given in the file that you specified by using the readic parameter, or if the readic parameter is not specified, by the values specified on the ic statements. Device-based initial conditions are not used for skipdc. Nodes that you do not specify with the ic file or ic statements start at zero. You should not use this parameter unless you are generating a nodeset file for circuits that have trouble in the DC solution; it usually takes longer to follow the initial transient spikes that occur when the DC analysis is skipped than it takes to find the real DC solution. The skipdc parameter might also cause convergence problems in the transient analysis.

The possible settings of parameter skipdc and their descriptions are as follows:

skipdc=no: Initial solution is calculated using normal DC analysis (default).

skipdc=yes: Initial solution is given in the file specified by the readic parameter or the values specified on the ic statements.

skipdc=useprevic: Initial solution obtained from the previous analysis is used.

skipdc=waveless: Same initial solution as skipdc=yes, but the waveform production in the time-varying independent sources is disabled during the transient analysis.  Independent source values are fixed to their initial values (not their DC values).

skipdc=rampup: Independent source values start at 0 and ramp up to their initial values from start to rampuptime. If rampuptime is not given, rampuptime will be set to rampupratio*stop.  After that their values remain constant.  Zero initial solution is used.

skipdc=autodc: Same as skipdc=waveless if a nonzero initial condition is specified.  Otherwise, same as skipdc=rampup.

skipdc=sigrampup: Independent source values start at 0 and ramp up to their initial values in the first phase of the simulation.  Unlike skipdc=rampup, the waveform production in the time-varying independent source is enabled after the rampup phase.  The rampup simulation is from the 'start' parameter. If the start parameter is not specified, the default start time is set to -rampupratio*stop.

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.

Nodesets and initial conditions have similar implementation, but produce different effects. Initial conditions define the solution, whereas nodesets only influence it. When you simulate a circuit with a transient analysis, Spectre forms and solves a set of differential equations. Because differential equations have an infinite number of solutions, a complete set of initial conditions must be specified to identify the required solution. Any initial conditions that you do not specify are computed by the simulator to be consistent. The transient waveforms then start from initial conditions. Nodesets are usually used as a convergence aid and do not affect the final results. However, in a circuit with more than one solution, such as a latch, nodesets bias the simulator towards finding the solution closest to the nodeset values.

The method parameter specifies the integration method. The possible settings and their meanings are as follows:

method=euler: Backward-Euler is used exclusively.

method=traponly: Trapezoidal rule is used almost exclusively.

method=trapeuler: Backward-Euler and the trapezoidal rule are used.

method=gear2only: Gear's second-order backward-difference method is used almost exclusively.

method=gear2: Backward-Euler and second-order Gear are used.

method=trapgear2: Allows all three integration methods to be used.

method=trap: An advanced version of trap that uses all three integration methods.

The trapezoidal rule is usually the most efficient when you want high accuracy. This method can exhibit point-to-point ringing, but you can control this by tightening the error tolerances. For this reason, though, if you choose very loose tolerances to get a quick answer, the backward-Euler or second-order Gear will probably give better results than the trapezoidal rule. Second-order Gear and backward-Euler can make systems appear more stable than they really are. This effect is less pronounced with second-order Gear or when you request high accuracy.

Several parameters determine the accuracy of the transient analysis. reltol and abstol control the accuracy of the discretized equation solution. These parameters determine how well charge is conserved and how accurately steady-state or equilibrium points are computed. You can set the integration errors in the computation of the circuit dynamics (such as time constants), relative to reltol and abstol by setting the lteratio parameter.

The parameter relref determines how the relative error is treated. The relref options are as follows:

relref=pointlocal: Compares the relative errors in quantities at each node to that node alone.

relref=alllocal:   Compares the relative errors at each node to the largest values found for that node alone for all past time.

relref=sigglobal:  Compares relative errors in each circuit signal to the maximum for all signals at any previous point in time.

relref=allglobal:  Same as relref=sigglobal, except that it also compares the residues (KCL error) for each node to the maximum of each node's past history.

The errpreset parameter lets you adjust the simulator parameters to fit your needs quickly. You can set errpreset to conservative if the circuit is very sensitive, or you can set it to liberal for a fast, but possibly inaccurate, simulation. The setting errpreset=moderate suits most needs.

The effect of errpreset on other parameters is shown in the following table. In this table, T= stop - start.

errpreset   reltol relref method maxstep lteratio

--------------------------------------------------------------------

liberal   * 10 sigglobal trapgear2 Interval/50 3.5

moderate   sigglobal traponly Interval/50 3.5

conservative   * 0.1   alllocal   gear2only   Interval/100  10.0

The default value for errpreset is moderate.

The value of reltol is increased or decreased from its value in the options statement, but it is not allowed to be larger than 0.01. Spectre sets the value of maxstep so that it is no larger than the value given in the table. Except for reltol and maxstep, errpreset does not change the value of any parameters you have explicitly set. The actual values used for the transient analysis are given in the log file.

'errpreset' also controls the LTE Check:

Liberal Moderate Conservative

--------- ----------- ------------

LTE Check   Caps/Inds Loose nodes strict nodes

It controls how the simulator follows signals other than capacitor voltages and inductor currents. When errpreset=liberal, the timestep is not controlled to follow these signals. When errpreset=moderate, the timestep is reduced to follow large changes in these signals. When errpreset=conservative, the timestep is reduced to follow small changes in these signals.

If the circuit you are simulating has infinitely fast transitions (for example, a circuit that contains nodes with no capacitance), Spectre might have convergence problems. To avoid this, you must prevent the circuit from responding instantaneously. You can accomplish this by setting cmin, the minimum capacitance to ground at each node, to a physically reasonable nonzero value. This often significantly improves Spectre convergence.

Spectre provides two methods for reducing the number of output data points saved: strobing, based on the simulation time, and skipping time points, which saves only every N'th point.

The parameters strobeperiod and strobedelay control the strobing method.strobeperiod sets the interval between the points that you want to save, and strobedelay sets the offset within the period relative to skipstart. The simulator forces a time step on each point to be saved, so that the data is computed, and not interpolated.

The skipping method is controlled by skipcount. If this is set to N, only every N'th point is saved.

The parameters skipstart and skipstop apply to both data reduction methods. Before skipstart and after skipstop, Spectre saves all computed data.

If you do not want any data saved before a given time, use outputstart. If you do not want any data saved after a given time, change the stop time.

Dynamic Parameters during Transient Analysis

The parameters defined in the Dynamic parameters section allows you to change temperature, design parameters or some option parameters (reltol, residualtol, vabstol, iabstol, and isnoisy) during transient simulation.

Example1: change temperature during tran with param_step=0(default).

tran1 tran stop=0.5u param=temp param_vec=[0ns 20 50ns 25]

In this tran run, the temperature is 20C from 0ns-50ns, then it changes to 25C at 50ns.After tran is done, the temperature is reset back to its default value.

You can also define time value pairs in a file and give the file name through parameter param_file.

The format of the file is defined as follows:

; comments

tscale tscale_value

time  value

20  50.0

30  60.0

where, the comment line starts with a semicolon (;), tscale is a keyword, and tscale_value is a value, such as 1.0e-6 or 1.0e-9 that is applied to each time point under the time column. time and value are two key words that identify the time and value columns. The values under the time column define the time points and each time point is scaled by tscale_value. The values under the value column define the values for the dynamic parameter.

Note that no unit is supported in the file format.

Example2: change temperature during tran with param_step=10ns

tran1 tran stop=0.5u param=temp param_vec=[0ns 20 50ns 25] param_step=10ns

In this tran run, the temperature is interpolated with slope (25-20)/(50ns-0ns) and updated every param_step (10ns).

Example3: change design parameter.

tran1 tran stop=0.5u param=gain sub=x1 param_vec=[0 5 1u 20]

Example4: turn On and Off transient noise in time windows.

tran1 tran stop=0.5u noisefmax=10G noiseseed=1

param=isnoisy param_vec=[0ns 0 100ns 1 500ns 0 ]

The transient noise is OFF from time 0 to 100ns. Noise is ON from 100ns to 500ns and noise is OFF from 500ns to stop time.

The default value for compression is no. The output file stores data for every signal at every time point for which Spectre calculates a solution. Spectre saves the X-axis data only once, because every signal has the same x value. If compression=all, Spectre writes data to the output file only if the signal value changes by at least two times the convergence criteria. To save data for each signal independently, X-axis information corresponding to each signal must be saved. If the signals stay at constant values for large periods of the simulation time, setting compression=all results in a smaller output data file. If the signals in your circuit move around a lot, setting compression=all results in a larger output data file. The compvabstol, compiabstol and comppwrabstol can be used to control output compression abstol for voltage, current and power respectively. The possible value (alllocal, pointlocal, sigglobal and abstol) of compression in transient statement will be deprecated in the next release.


Return to top
 ⠀
X