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

Independent Resistive Source (port)

In time-domain, a port is a resistive source that is tied between pos and neg. It is equivalent to a voltage source in series with a resistor, and the reference resistance of the port is the value of the resistor. The DC value given for the port voltage specifies the DC voltage across the port when it is terminated in its reference resistance (in other words, the DC voltage of the internal voltage source is double the user specified DC value, dc). The same is true for the values for the transient, and PAC signals of the port. However, the amplitude of the sine wave in the transient and PAC analyses can alternatively be specified as the power in dBm delivered by the port when terminated with the reference resistance. In frequency-domain, a port can have complex reference impedance. The value of AC signal of the port specifies the voltage across the port when it is terminated in its complex conjugate reference impedance. The reactance part of the impedance is ignored when the port is used in time-domain analyses.

While useful as a stimulus in high frequency circuits, the port has three unique capabilities. First, it acts to define the ports of the circuit to the S-parameter analysis. Second, it has an intrinsic noise source, and so allows the noise analysis to directly compute the noise figure of the circuit. And finally, it is the only source for which the amplitude can be specified in terms of power.

You can define 2 or 3 terminal port. if you define 2-terminal port it operates like was described above. In case of 3-terminal port it also includes internal ideal choke inductor and ideal blocking capacitor. They are work like switches to terminate or connect appropriate branch dependent on type of analysis

This device is not supported within altergroup.

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

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

Sample Instance Statement

p20 (2 0) port num=2 r=50 type=pulse period=1e-9 rise=1e-10 fall=1e-10 val1=1 width=0.5n mag=1
 p30 (2 0 choke) port num=1 r=50 lchoke=0.1 cblock=0.00001 type=pulse period=1e-9 rise=1e-10 fall=1e-10

Instance Syntax

Name  p  n ... port parameter=value ...

Instance Parameters

dc=0 V

DC value.

General waveform parameters

type=dc

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

fundname

Name of the fundamental frequency. Must be specified if the source is active during a qpss analysis or it is the active clock during an envlp analysis.

delay=0 s

Waveform delay time.

edgetype=linear

Type of the rising and falling edges. This is for pulse waveform and pulse-like piecewise linear waveform. Possible values are linear or halfsine.

Pulse waveform parameters

val0=0 V

Zero value used in pulse and exponential waveforms.

val1=1 V

One value used in pulse and exponential waveforms.

period= s

Period of waveform.

rise (s)

Rise time for pulse waveform (time for transition from val0 to val1). If parameter rise is not given, then the rise time will be the same as fall time; if fall time is not given either, then the rise time will be 1/100 of the waveform period; if the waveform is not periodic, then the rise time will be 1/100 of the simulation interval.

fall (s)

Fall time for pulse waveform (time for transition from val1 to val0). If parameter fall is not given, then the fall time will be the same as rise time; if rise time is not given either, then the fall time will be 1/100 of the waveform period; if the waveform is not periodic, then the fall time will be 1/100 of the simulation interval.

width= s

Pulse width (duration of val1).

PWL waveform parameters

file

Name of file containing waveform.

wave=[...]

Vector of time/value pairs that defines waveform.

offset=0 V

DC offset for the PWL waveform.

scale=1

Scale factor for the PWL waveform.

pwldbm (dBm)

Power of PWL waveform in dBm (alternative to scale).

stretch=1

Scale factor for time given for the PWL waveform.

rms

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

pwlfilter=none

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

rolloff

Desired rolloff factor for the raised cosine filter, default value is 0.2. Only valid when 'pwlfilter' is set to nrc.

pwlbandwidth

Bandwidth of the pwl input signal. Be used when 'pwlfilter' is set to nrc.

allbrkpts

All the points in the PWL waveform are breakpoints if set to yes. 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 V

DC level for sinusoidal waveforms.

ampl=1 V

amplitude of sinusoidal waveform.

dbm (dBm)

Amplitude of sinusoidal waveform in dBm (alternative to ampl).

freq=0 Hz

Frequency of sinusoidal waveform.

sinephase=0

Phase of sinusoid when t=delay.

ampl2=1 V

amplitude of second sinusoidal waveform.

dbm2 (dBm)

Amplitude of second sinusoidal waveform in dBm (alternative to ampl2).

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 which containing 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=[...] V

Vector of amplitude of sinusoidal channel source.

dbmvec=[...] dBm

Vector of amplitude of sinusoidal waveform in dBm (alternative to amplvec).

phasevec=[...]

Vector of phase of sinusoidal channel source.

maxharms=[...]

Array of 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 EXP 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. A string that contains a series of the four states, 1 0 m z. For prbs, it can contain only 0 and 1, and m, z is not supported.

rptstart=1

The starting bit when repeating. The data repeats from the specified bit to the end of the bit string. The parameter should be an integer from 1 to the length of the bit string.

rpttimes=0

The repeat times. The output will maintain the state of the last bit after the last repeat. If its value is negative, the string repeats forever.

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 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, 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 whose 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 whose frequency are defined by pjfreq.

pjtype="sine"

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

seed

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

taps=[...]

The use of taps is discouraged. For PRBS, taps is an integer array which sets the locations of the LFSR taps. Use lfsrtaps instead. See section, 'PRBS Type Waveform' below for details of the PRBS operation.

lfsrtaps=[...]

For PRBS source, lfsrtaps is an integer array which sets the location of LFSR taps. Locations are 1-based and ordered form MSB to LSB of the LFSR. The largest element of the taps array is equal to the width of the LFSR. See section, 'PRBS Type Waveform' for details of PRBS source operation.

lfsrseed=[...]

For PRBS source, lfsrseed is an integer array which sets the initial state of the LFSR. Array elements sets the locations 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, the registerlength defines the width of the LFSR and the LFSR works in Maximum Length Sequence mode. See section 'PRBS Type Waveform' below for details of MLS setting.

triggerthreshold (V)

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

triggerdelthresh (V)

For PRBS in external triggering mode, triggerdelthresh is used with triggerthreshold 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, trigger direction defines the direction of the control signal at the crossing event. Possible values are 'rise', 'fall', or '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 from 0.2*(val1-val0) to 0.8*(val1-val0), etc. 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 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. Noise data file contains an optional parameter noisetype. 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=[...] V2/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, ssbphasenoise and edgephasenoise.

noiseinterp=linear

Determine 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.

noisetemp (C)

Noise temperature of port. If not specified, the noise temperature is taken to be 290 K.

isnoisy=yes

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

Port parameters

r=50

Reference resistance.

x=0

Reference reactance, ignored for time domain analyses.

lchock=0.1 H

Choke inductor for network analyser.

lchoke=0.1 H

Choke inductor for network analyser.

cblock=0.0001 F

Blocking capacitance for network analyser.

num

Port number.

m=1

Multiplicity factor.

Small signal parameters

mag=0 V

Small signal voltage.

phase=0

Small signal phase.

xfmag=1 V/V

Transfer function analysis magnitude.

pacmag=0 V

Periodic AC analysis magnitude.

pacdbm (dBm)

Periodic AC analysis magnitude in dBm (alternative to pacmag).

pacphase=0

Periodic AC analysis phase.

Temperature effects parameters

tc1=0 1/C

First order temperature coefficient.

tc2=0 C-2

Second order temperature coefficient.

tnom (C)

Parameters measurement temperature. Default set by options.

Harmonic balance parameters

harmvec=[...]

Harmvec, rvec, and xvec are considered together, and are only applied in harmonic balance large-signal analyses.  Harmvec is a list of harmonics to have impedances set manually. If the input to the circuit has a single frequency, then this is a list of harmonics like [1 3] which would set the first and third harmonic. When there are two inputs, then each harmonic has two indexes. An example would be [2 -1 -1 2] which would set the harmonics 2, -1, and -1, 2 manually. When there are three inputs, then each harmonic has three indexes, and so on.

rvec=[...]

Rvec is the list of series resistance values that go with the list of harmonics to be set manually. If there are three harmonics in the harmvec, for example [1 4 5] in a single tone analysis, then there must be three resistance values in rvec, like [60 70 80]. The order in the list corresponds to the order of harmvec. In this example, harmonic 5 gets set to 80 Ohms. All values must be specified. There is no default.

xvec=[...]

Xvec is the list of series reactance values that go with the list of harmonics to be set manually. If there are two harmonics in the harmvec, for example [2 -1  1 -2] in a two tone circuit, then xvec must have two values, like [0 25]. The order in the list corresponds to the order of harmvec. In this example, harmonic 1, -2 gets set to 25 Ohms. All values must be specified. There is no default.

ro=50

Series resistance for all the harmonics that are not set manually. This is also the value used in time-domain (transient and shooting PSS) and AC analyses.

xo=0

This is used for the  frequency-domain analyses only.  This specifies the series reactance for all the harmonics that are not set manually. This value is ignored in time-domain analyses. It is used to represent the port impedance at all frequencies in AC analysis.

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 that 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 the small signal parameters and the noise parameters. The type parameter selects which type of waveform is generated. You may specify parameters for more than one waveform type, and use the alter statement to change the waveform type between analyses. There is one exception for type bit. You cannot change bit type to other types or other types to bit.

Related Topics

Independent Resistive Source (port)

Mathematical Definitions

Circuit Components

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 the time and the value.

If you set allbrkpts to yes, you force the simulator to place time points at each point specified in a PWL waveform during a transient analysis. This can be expensive for waveforms with many points. If you set allbrkpts to no, Spectre inspects the waveform, looking for abrupt changes, and forces 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 state. 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 parameter period here defines the length of a bit and it must be given. 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.

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 specify rpttimes to a negative number for sources but not for patterns. Type spectre -h pattern for details on how to use pattern parameters.

PRBS Type Waveform

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

The 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 the MSB. At a trigger event, the LFSR is shifted to the right and the MSB is given by the 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 the 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 emitted every period seconds, excluding the optional jitter. Alternatively, you can apply an external clock to the optional 3rd and 4th terminals. In external trigger mode, the pulses are emitted 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 triggerdirection. In external trigger mode, the 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, borrowing 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; and, pj is the periodic jitter whose amplitude is pjamp and whose 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.

When computing the noise figure of a circuit driven at its input by a port, the noise temperature (noisetemp) of the port should be set to 16.85C (290K) in order to match the standard IEEE definition of noise figure. In addition, all other sources of noise in the port (noisefile and noisevec) should be disabled. If a noiseless port is desired, set the noise temperature to absolute zero or below, and do not specify a noise file or noise vector.

Related Topics

Independent Resistive Source (port)

PWL Type Waveform

Circuit Components


Return to top
 ⠀
X