Product Documentation
Spectre Circuit Simulator Components and Device Models Reference
Product Version 23.1, June 2023

Independent Current Source (isource)

The value of the DC current as a function of the temperature is given by:

    I(T) = I(tnom) * [1 + tc1 * (T - tnom) + tc2 * (T - tnom)^2].

Sample Instance Statement

i1 (in 0) isource dc=0 type=pulse delay=10n val0=0 val1=500u period=500n rise=1n fall=1n width=250n

Instance Syntax

Name  sink  src  [ctlp]  [ctln] isource parameter=value ...

Positive current exits the source node and enters the sink node.The third node ctl is used as a switch only for prbs source.

Instance Parameters

dc=0 A

DC value.

General waveform parameters

type=dc

Waveform type. Possible values are dc, pulse, pwl, sine, exp, bit, prbs, pwlz, sigbus and oscmacro.

fundname

Name of the fundamental frequency. The parameter must be specified if the source is active during qpss analysis or if the source is an active clock during an envlp analysis.

delay=0 s

Waveform delay time.

edgetype=linear

Type of rising and falling edges; effective for pulse, pulse-like piecewise linear, bit, and prbs sources. Possible values are linear and halfsine.

Pulse waveform parameters

val0=0 A

Zero value used in pulse and exponential waveforms.

val1=1 A

One value used in pulse and exponential waveforms.

period=infinity s

Period of waveform. When type=prbs, period defines the bit duration.

rise (s)

Rise time for pulse waveform (time for transition from val0 to val1). If the rise parameters is not specified, the rise time is the same as fall time. If the fall time is also not specified, the rise time is 1/100 of the waveform period. If the waveform is not periodic, the rise time is 1/100 of the simulation interval. If type=prbs, the rise time is 1/10 of the bit duration.

fall (s)

Fall time for pulse waveform (time for transition from val1 to val0). If the fall parameter is not specified, the fall time is the same as rise time. If the rise time is also not specified, the fall time is 1/100 of the waveform period. If the waveform is not periodic, the fall time is 1/100 of the simulation interval. If type=prbs, the fall time is 1/10 of the bit duration.

width=infinity s

Pulse width (duration of val1).

PWL waveform parameters

file

Name of the file containing the waveform.

wave=[...]

Vector of time/value pairs that defines the waveform.

offset=0 A

DC offset for the PWL waveform.

scale=1

Scale factor for the PWL waveform.

stretch=1

Scale factor for time given for the PWL waveform.

rms

Desired rms (root of mean square) value of the PWL waveform.

pwlfilter=none

Add filter for pwl source, where the pwl data should be equal space sampled. Possible values are nrc (normal raised cosine filter) and none.

rolloff

Desired rolloff factor for the raised cosine filter. The default value is 0.2. This parameter is valid only when pwlfilter is set to nrc.

pwlbandwidth

Bandwidth of the pwl input signal. This parameter is used when pwlfilter is set to nrc.

allbrkpts

If set to yes, all points in the PWL waveform are breakpoints. Default is yes if the number of points is less than 20. Possible values are yes and no.

pwlperiod (s)

Period of the periodic PWL waveform.

pwlperiodstart (s)

Period start time of the periodic PWL waveform.

pwlperiodstop (s)

Period stop time of the periodic PWL waveform.

pwlperiodstopvalue

Value of the source at the time of pwlperiodstop.

pwlperiodstopslope=30p s

Switching time from the last PWL value to the stopvalue.

twidth=pwlperiod/1000 s

Transition width used when making PWL waveforms periodic.

highz=1e12

The impedance of high z state.

min_z_transition_width=10e-12 s

Minimum width of transition from z-state to non z-state. The width of transition is set as 1e-3*(z-state duration).

min_zx_transition_width=DBL_MAX s

Minimum width of transition from z-state.

min_xz_transition_width=DBL_MAX s

Minimum width of transition to z-state.

zx_transition_width=DBL_MAX s

Width of transition from z-state.

xz_transition_width=DBL_MAX s

Width of transition to z-state.

max_zx_transition_width=DBL_MAX s

Maximal width of transition from z-state.

max_xz_transition_width=DBL_MAX s

     Maximal width of transition to z-state.

max_z_transition_width=DBL_MAX s

    Maximal width of transition related to z-state.

tdvalue

PWL wave value before time=td.

abstime=1

Possible value is '0' or '1'. if set to 0, then the time specified by wave or file is time increase compared with last point.

Sinusoidal waveform parameters

sinedc=dc A

DC level for sinusoidal waveforms.

ampl=1 A

Amplitude of sinusoidal waveform.

freq=0 Hz

Frequency of sinusoidal waveform.

sinephase=0

Phase of sinusoid when t=delay.

ampl2=1 A

Amplitude of second sinusoidal waveform.

freq2=0 Hz

Frequency of second sinusoidal waveform.

sinephase2=0

Phase of second sinusoid when t=delay.

fundname2

Name of the fundamental frequency associated with freq2. Must be specified if freq2 is used in a qpss analysis.

iqmodfiles=[...]

Two file names that contain pwl I/Q source waveform.

fmmodindex=0

FM index of modulation for sinusoidal waveform.

fmmodfreq=0 Hz

FM modulation frequency for sinusoidal waveform.

fmmodfiles=[...]

One or two file names: containing FM waveform for one file case, and FM I/Q signals for two files with I file first.

ammodindex=0

AM index of modulation for sinusoidal waveform.

ammodoffset=1

AM offset of modulation for sinusoidal waveform.

ammodfreq=0 Hz

AM modulation frequency for sinusoidal waveform.

ammodphase=0

AM phase of modulation for sinusoidal waveform.

damp=0 1/s

Damping factor for sinusoidal waveform.

freqvec=[...] Hz

Vector of support frequency of sinusoidal channel source.

amplvec=[...] A

Vector of amplitude of sinusoidal channel source.

phasevec=[...]

Vector of phase of sinusoidal channel source.

maxharms=[...]

Array of the number of harmonics of each frequency.

Exponential waveform parameters

td1=0 s

Rise start time for exponential wave.

tau1 (s)

Rise time constant for exponential wave.

td2 (s)

Fall start time for exponential wave.

tau2 (s)

Fall time constant for exponential wave.

expperiod (s)

Period of the periodic exponential waveform.

expvec=[...]

Vector of rise start time, rise time constant, fall start time, fall time constant, rise start time.

Pattern parameters

data

The bit string that contains a series of the four states, 1 0 m z. For prbs, it can contain only 0 and 1. m and z are not supported.

rptstart=1

The position of the bit which is used as the starting bit while repeating the string. The string is repeated from the bit specified by this parameter till the last bit present in the string. The parameter should be an integer greater than 1. It can go up to the length of the bit string.

rpttimes=0

The number of times the string is to be repeated. The output will maintain the state of the last bit after the last repeat. The parameter should be a non-negative integer.

td01=0 s

Time delay for 0 to 1 transition.

td10=0 s

Time delay for 1 to 0 transition.

Prbs parameters

ref (V)

Sets the crossing reference for the control node. This parameter applies only when the Prbs source operates as a 3- or a 4- terminal device. When the voltage across terminals 3 and 4 drops below ref, the output of the source is set to 0. If terminal 4 is not specified, it is assumed to be connected to ground.

jitter (s)

The parameter jitter is obsolete. It has no effect on the output.

rjseed=1

The seed for random number generator, which is used in generating random jitter for PRBS sources. The default value is 1.

rjrms (s)

When set for PRBS source or Bit source, the source has a normally distributed random jitter whose mean is zero and standard deviation is rjrms.

pjamp=[...] s

When set for PRBS source or Bit source, the source has multiple periodic jitters whose amplitudes are defined by pjamp and frequencies are defined by pjfreq.

pjfreq=[...] Hz

When set for PRBS source or Bit source, the source has multiple periodic jitters whose amplitudes are defined by pjamp and frequencies are defined by pjfreq.

pjtype="sine"

For PRBS source or Bit source, pjtype defines the types of periodic jitters. Possible values are sine, sawtooth, and square.

seed

This parameter is obsolete, however, is retained for backward compatibility. Set registerlength=[2 ... 32] to choose a Maximum Length Sequence or define a custom PRBS by using the lfsrtaps and lfsrseed parameters.

taps=[...]

For PRBS source, taps is an integer array that sets the location of the LFSR taps. For more information about the PRBS operation, see the 'PRBS Type Waveform' section. Note: The use of taps is not recommended. Use lfsrtaps instead.

lfsrtaps=[...]

For PRBS source, lfsrtaps is an integer array that sets the location of LFSR taps. Locations are 1-based and ordered from MSB to LSB of the LFSR. The largest element of the taps array is equal to the width of the LFSR. For more information about the PRBS source operation, see the 'PRBS Type Waveform' section.

lfsrseed=[...]

For PRBS source, lfsrseed is an integer array that sets the initial state of an LFSR. Array elements set the location of non-zero bits. Locations are 1-based and ordered from MSB to LSB of the LFSR. For example, assume lfsrtaps=[6] and lfsrseed=[1 3 5]. The width of the register is then 6 bits and the initial state is '101010'.

registerlength

When set for PRBS source, the registerlength parameter defines the width of the LFSR that works in the Maximum Length Sequence mode. For more information about MLS setting, see the 'PRBS Type Waveform' section.

triggerthreshold (A)

For PRBS, when the triggerthreshold parameter is set and the source is instantiated with optional control terminals (terminals 3 and 4; if terminal 4 is unspecified it is assumed to be connected to ground), the parameter defines the crossing threshold for the trigger event. The event causes the emission of the next PRBS pulse.

triggerdelthresh (A)

For PRBS in external triggering mode, the triggerdelthresh parameter is used with the triggerthreshold parameter to define the crossing threshold. For rising edge triggering, the threshold is (triggerthreshold + triggerdelthresh); for falling edge triggering, the threshold is (triggerthreshold - triggerdelthresh). The default value is zero.

triggerdirection="both"

For PRBS in external triggering mode, triggerdirection defines the direction of the control signal at the crossing event. Possible values are rise, fall, and both.

transitionreference

Defines the voltage swing for the duration of rise and fall time as a percentage of val1 - val0. For example, transitionreference =100 means that the output voltage transitions from val0 to val1 in rise seconds. 90 means that it transitions from 0.1*(val1-val0) to 0.9*(val1-val0) in rise seconds, 80 means that it transitions from 0.2*(val1-val0) to 0.8*(val1-val0) in rise seconds, and so on. Possible values are 100, 90, 80, 70 and 60.

modulation=none

Type of amplitude modulation; effective for bit and prbs sources. Possible values are none and pam4.

pam4_mapping=0132

The PAM4 mapping string specifies the mapping from a pair of bits to 4-level voltages. Possible values are: 123, 132, 213, 231, 312, 321, 0123, 0132, 0213, 0231, 0312, 0321, 1023, 1032, 1203, 1230, 1302, 1320, 2013, 2031, 2103, 2130, 2301, 2310, 3012, 3021, 3102, 3120, 3201, and 3210.

Osc Macro Parameters

oscmacrofile

Name of the file containing the harmonic balance steady-state solution with/without phase noise data.

freqscale

Frequency scale factor

amplscale

Amplitude scale factor.

Noise Parameters

noisefile

Name of the file containing excess spot noise data in the form of frequency-noise pairs. The noise can be specified as the spectral density in V^2/Hz, or as single-sideband phase noise in dBc. The parameter noisetype determines how Spectre interprets the noise data. Noisetype parameter in data file has identical definition to same parameter noisetype and supersedes it. It is intended to prevent misuse of the datafile.

noisevec=[...] A2/Hz

Excess spot noise as a function of frequency in the form of frequency-noise pairs. The parameter noisetype determines how Spectre interprets the noise data.

noisetype=noisevoltage

noisetype parameter specifies the units and source of noise data. When this parameter is set to noisevoltage, the noise data represents the noise spectral density in V^2/Hz of noise measured at the output of a driven circuit. When set to ssbphasenoise, the noise data represents the single-sideband phase noise in dBc measured at the output of a free oscillator. When set to edgephasenoise, the noise data represents the single-sideband phase noise in dBc measured at the output of a driven or oscillator circuit in sampled pnoise/hbnoise jitter analysis. For noisetype=noisevoltage, the frequencies are taken as absolute. For ssbphasenoise and edgephasenoise, the frequencies are offset from the carrier. Note that Noisetype=edgephasenoise is tied to a specific sampling edge position and should be used only for simulating jitter at that given edge position. Noisetype=ssbphasenoise can be used only with pnoise, qpnoise, hbnoise analyses, the noise source will be ignored in transient noise and AC noise analyses.

Possible values are noisevoltage and ssbphasenoise.

noiseinterp=linear

Determines how the specified noise data is interpolated. This parameter only applies to noisetype=noisevoltage. When set to linear, interpolation is linear over both axes. When set to loglog, Spectre uses log interpolation over both axes. Possible values are linear and loglog.

isnoisy=yes

Should isource generate noise. Possible values are yes and no.

Small signal parameters

mag=0 A

Small signal current.

phase=0

Small signal phase.

xfmag=1 A/A

Transfer function analysis magnitude.

pacmag=0 A

Periodic AC analysis magnitude.

pacphase=0

Periodic AC analysis phase.

Multiplication factor parameters

m=1

Multiplicity factor.

Temperature effects parameters

tc1=0 1/C

First order temperature coefficient.

tc2=0 C-2

Second order temperature coefficient.

tnom=27 C

Parameter measurement temperature. The default value is set by the options statement.

trise=0.0 C

Temperature rise from ambient.

If you do not specify the DC value, it is assumed to be the time=0 value of the waveform.

Sinusoidal waveform in the time interval 0<t<delay has constant value equal to the value at t=delay.

In DC analyses, the only active parameters are dc, m, and the temperature coefficient parameters. In AC analyses, the only active parameters are m, mag, and phase. In transient analyses, all parameters are active except small-signal parameters and noise parameters. The type parameter selects the type of waveform to be generated. You may specify parameters for more than one waveform type and use the alter statement to change the waveform type between analyses. However, you cannot change bit type to other types or other types to bit.

PWL Type Waveform

A vector of time-value pairs describes the piecewise linear waveform. As an alternative, you can read the waveform from a file. In this case, you give time-value pairs one pair per line with a space or tab between time and value.

The input file may also contain design variables. For example, the input file can have time, value, or both time and value as variables. The expressions may also contain empty spaces.

If you set allbrkpts to yes, you force the simulator to place the time points at each point specified in a PWL waveform during transient analysis. This can be expensive for waveforms with many points. If you set allbrkpts to no, Spectre looks for abrupt changes in the waveform and forces the time points only at those changes.

The PWL waveform is periodic if you specify pwlperiod, pwlperiodstart and pwlperiodstop. If both pwlperiod and pwlperiodstart are specified, pwlperiod should be greater than wavelength - pwlperiodstart, where wavelength means the last time point. If only pwlperiod is specified and pwlperiodstart is undefined, the period starts at the first time point or wavelength - pwlperiod, whichever is greater. If only pwlperiodstart is specified and pwlperiod is undefined, the period ends at the last time point in the waveform vector. If pwlperiodstop is defined, the waveform stops the repeat at the specified time, and the source value changes to pwlperiodstopvalue at the time period specified by pwlperiodstopslope. If the value of the waveform specified is not the same at both the period beginning and the period end, you must provide a non-zero value fortwidth. Before repeating, the waveform changes linearly in an interval of twidth from its value at period - twidth to its value at the beginning of the waveform. Therefore, twidth must always be less than period.

Bit Type Waveform

Bit type waveform is the analog waveform of a series of digital logic states. It uses the pattern parameters to provide the digital state sequence, and some pulse waveform parameters to define the waveform characteristics.

To define the waveform characteristics, use parameters: val1, val0, rise, fall, and period. The general parameter delay can also be used for bit type to define the delay time from the beginning of the transient interval to the beginning of the first bit. The state during the delay time is the same as the first state specified in data.

It is mandatory to specify the parameter period, which defines the length of a bit.

Pattern parameters are used to specify the digital bit string. The pattern parameters of sources are the same as those of a pattern, except that you can set rpttimes to a negative value for sources but not for patterns. For more information on how to use pattern parameters, run the spectre -h pattern command.

PRBS Type Waveform

When type=prbs, the source generates a pseudo-random bit sequence. The sequence is defined by the LSB of a Fibonacci Linear Feedback Shift Register (LFSR) at trigger events.

LFSR is initially loaded by a seed. The value fed back to the input (MSB) is given by feedback=tap_1 ^ tap_2 ^...^ tap_N, where ^ represents an exclusive-or operation, and tap_i represents the i-th bit of the register, counting from 1 and starting from MSB. At a trigger event, the LFSR is shifted to the right and MSB is given by feedback.

LFSR Modes

The sequence can be defined by custom values of seeds and taps. Alternatively, you can specify a maximum length sequence by setting the length of LFSR. To specify custom seeds and taps, use the lfsrseed and lfsrtaps arrays. To specify a maximum length sequence, use the parameter registerlength=[2 ... 32]. Spectre sets the seeds and taps automatically. You can optionally set lfsrseed to override the automatically chosen seed.

Triggering Mode

By default, the sequence is triggered by an internal clock and pulses are generated every period seconds, excluding the optional jitter. Alternatively, you can apply an external clock to the optional third and fourth terminals. In external trigger mode, the pulses are generated when the clock crosses the specified threshold in the specified direction. The threshold is defined by the triggerthreshold parameter and the direction is specified by the triggerdirection parameter. In external trigger mode, jitter and bit period parameters are ignored.

Jitter

Let {s_i} be a sequence of ones and zeros whose transitions occur at intervals given by n*T + j(t), where T is the bit duration. Then, according to the Verilog-A terminology, the jittered output is given by s(t+j(t)) = transition(s_i? Vhigh : Vlow, rise, fall). j(t) = rj(t) + pj(t), where rj (random jitter) is a normally distributed random variable whose mean is 0 and standard deviation is given by the parameter rjrms. pj is the periodic jitter whose amplitude is pjamp and frequency is pjfreq. The parameter pjtype defines the type of jitter waveform. For sine, the periodic jitter is given by
pj(t) = pjamp*cos(2*pi*pjfreq*t). Other types are square and sawtooth.

Noise of the source

You can give the excess noise of the source as a file or specify it with a vector of frequency-noise pairs. For a file, give the frequency-noise pairs one pair per line with a space or tab between the frequency and noise values.

Output Parameters

tempeff (C)

Effective temperature for a single device.

Operating-Point Parameters

i (A)

Current through the source.

v (V)

Voltage across the source.

pwr (W)

Power dissipation.

Related Topics

Linear Current Controlled Current Source (cccs)

Linear Current Controlled Voltage Source (ccvs)

Current Sources

Circuit Components


Return to top
 ⠀
X