Periodic Noise Analysis (pnoise)
Description
The Periodic Noise, or PNoise analysis is similar to the conventional noise analysis, except that it includes frequency conversion effects. Hence it is useful for predicting the noise behavior of mixers, switched-capacitor filters, and other periodically driven circuits. It is particularly useful for predicting the phase noise of autonomous circuits, such as oscillators.
PNoise analysis linearizes the circuit about the periodic operating point computed in the prerequisite PSS analysis. It is the periodically time-varying nature of the linearized circuit that accounts for the frequency conversion. In addition, the affect of a periodically time-varying bias point on the noise generated by the various components in the circuit is also included.
The time-average of the noise at the output of the circuit is computed in the form of spectral density versus frequency. The output of the circuit is specified with either a pair of nodes or a probe component. To specify the output of a circuit with a probe, specify it using the oprobe parameter. If the output is voltage (or potential), choose a resistor or a port as the output probe. If the output is current (or flow), choose a vsource or iprobe as the output probe.
If the input-referred noise or noise figure is desired, specify the input source by using the iprobe parameter. For input-referred noise, use vsource or isource as the input probe; for noise figure, use a port as the probe. Currently, only a vsource, an isource, or a port may be used as an input probe. If the input source is noisy, as is a port, the noise analysis computes the noise factor (F) and noise figure (NF). To match the IEEE definition of noise figure, the input probe must be a port with no excess noise and its noisetemp must be set to 16.85C (290K). In addition, the output load must be a resistor or port and must be identified as the oprobe.
If port is specified as the input probe, both input-referred noise and gain are referred back to the equivalent voltage source inside the port. S-parameter analysis calculates those values in traditional sense.
The reference sideband (refsideband) specifies which conversion gain is used when computing input-referred noise, noise factor, and noise figure. The reference sideband specifies the input frequency relative to the output frequency with:
|f(input)| = |f(out) + refsideband * fund(pss)|
Use refsideband=0 when the input and output of the circuit are at the same frequency (such as with amplifiers and filters). When refsideband differs from 0, the single side-band noise figure is computed.
The noise analysis always computes the total noise at the output, which includes contributions from the input source and the output load. The amount of the output noise that is attributable to each noise source in the circuit is also computed and output individually. If the input source is identified (using iprobe) and is a vsource or isource, the input-referred noise is computed, which includes the noise from the input source itself. Finally, if the input source is identified (using iprobe) and is noisy, as is the case with ports, the noise factor and noise figure are computed. Therefore if:
No = total output noise
Ns = noise at the output due to the input probe (the source)
Nsi = noise at the output due to the image harmonic at the source
Nso = noise at the output due to harmonics other than input at the source
Nl = noise at the output due to the output probe (the load)
IRN = input referred noise
G = gain of the circuit
F = noise factor
NF = noise figure
Fdsb = double sideband noise factor
NFdsb = double sideband noise figure
Fieee = IEEE single sideband noise factor
NFieee = IEEE single sideband noise figure
Then,
IRN = sqrt(No^2/G^2)
F = (No^2 - Nl^2)/Ns^2
NF = 10*log10(F)
Fdsb = (No^2 - Nl^2)/(Ns^2+Nsi^2)
NFdsb = 10*log10(Fdsb)
Fieee = (No^2 - Nl^2 - Nso^2)/Ns^2
NFieee = 10*log10(Fieee).
When the results are output, No is named out, IRN is named in, G is named gain, F, NF, Fdsb, NFdsb, Fieee, and NFieee are named F, NF, Fdsb, NFdsb, Fieee, and NFieee, respectively.
In a phase noise analysis for an oscillator, the line width, which is also known as the corner frequency, is defined as either the full width at half maximum (FWHM), or as twice the half power (-3dB) width (HW). In the absence of 1/f noise and ignoring any noise floor, the phase noise spectrum satisfies the Lorentzian equation:
L(f) = (1/pi) * [ pi * c * fosc^2 ] / [(pi * c * fosc^2)^2 + f^2],
Where 'c' is a constant that defines the phase noise characteristics of the oscillator, 'fosc' is the fundamental frequency of the oscillator, and 'f' is the offset frequency of the oscillator. Therefore:
line width := FWHM = 2* HW = 2 * pi * c * fosc^2.
Unlike other analyses in Spectre, this analysis can only sweep frequency.
Syntax
Name [p] [n] ... pnoise parameter=value ...
The optional terminals (p and n) specify the output of the circuit. If you do not specify the terminals, you must specify the output with a probe component.
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.
|
|
sweeptype
|
unspecified
|
Specifies if the sweep frequency range is the absolute frequency of input or if it is relative to the port harmonics. When the unspecified value is used, Spectre RF sweeps using relative when autonomous simulation is performed or when the analysis is PSP; for other cases Spectre RF sweeps the absolute value of the input. Possible values are absolute, relative and unspecified.
|
|
relharmnum
|
1
|
Harmonic to which relative frequency sweep should be referenced.
|
|
stophalffund
|
no
|
If yes, automatically choose stop frequency of pnoise/hbnoise to be half of the fundamental frequency obtained from pss/hb analysis. Only works for noisetype = sampled/pmjitter/timedomain. Possible values are no and yes.
|
Probe parameters
|
oprobe
|
|
Compute total noise at the output defined by this component.
|
|
iprobe
|
|
Refer the output noise to this component.
|
|
refsideband
|
|
Conversion gain associated with this sideband; is used when computing input-referred noise or noise figure.
|
Sampled analysis parameters
|
thresholdvalue
|
0
|
Sampled measurement is done when the signal crosses this value.
|
|
crossingdirection
|
all
|
Specifies the transitions for which sampling must be done. Possible values are all, rise, fall and ignore.
|
|
maxsamples
|
16
|
Maximum number of sampled events to be processed during the sampled analysis.
|
|
sampleratio
|
1
|
The ratio between sampled frequency and fund frequency (sampled frequency/fund frequency)..
|
|
externalsourcedata
|
|
Name of PXF analysis that provides information to compute the contribution of external jitter sources.
|
|
measurement
|
NULL
|
Specifies the jitter event list that will be measured.
|
Output parameters
|
noisetype
|
timeaverage
|
Specifies computation of time-averaged or time-sampled noise information. Possible values are timeaverage, correlations, timedomain, pmjitter and sampled.
|
|
maxsideband
|
7
|
In shooting pnoise, the parameter determines the maximum sideband that is included when computing noise, that is either up-converted or down-converted to the output by the periodic drive signal. In HB pnoise, the parameter determines the size of the small signal system when HB pnoise is performed. This parameter is critical for the accuracy of HB pnoise analysis. Using a small maxsideband may cause accuracy loss. The default value for the shooting pnoise is 7. For the HB pnoise, the default is the harms/maxharms setting in the HB large signal analysis.
|
|
sidebands
|
[...]
|
Array of relevant sidebands for the analysis.
|
|
save
|
|
Signals to output. The option 'save' specifies the signals to be saved in the result. 'allpub' saves all signals at all levels of hierarchy in the schematic, including the internal signals of device models. 'all' works like 'allpub'. 'lvl' saves all signals through the level of hierarchy set in 'nestlvl' option. 'lvlpub' works like 'lvl'. 'selected' is not recommended to use here. Possible values are all, lvl, allpub, lvlpub and selected.
|
|
nestlvl
|
|
Levels of subcircuits to output.
|
|
maxcycles
|
0
|
Maximum cycle correlation frequency included when computing noise, that is either up-converted or down-converted to the output by the periodic drive signal.
|
|
noiseskipcount
|
-1
|
Calculate time-domain noise on only one of every noiseskipcount time points. When < 0, the parameter is ignored. When >=0, the simulator uses this parameter and ignores numberofpoints.
|
|
noisetimepoints
|
[...]
|
Additional time points for time-domain noise analysis.
|
|
numberofpoints
|
5
|
Number of time points of interest in the period where time domain PSD is calculated. Simulator divides the period evenly into N segments (N=numberofpoints) and calculates time domain PSD on the starting time point of each segment. When < 0, the parameter is ignored.
|
|
saveallsidebands
|
no
|
Save noise contributors by sideband. Possible values are no and yes.
|
|
separatenoise
|
no
|
Separate noise into sources and transfer functions. Possible values are no and yes.
|
|
cyclo2txtfile
|
no
|
Output cyclo-stationary noise to text file as input source of next stage. Possible values are no and yes.
|
|
noiseout
|
usb
|
Specify noise output. You can set a vector like noiseout=[usb am pm]. And all are using single sideband(SSB) convention, half of the total power. Possible values are usb, lsb, am and pm.
|
Convergence parameters
|
tolerance
|
|
Tolerance for linear solver. The default value is 1.0e-9 for shooting-based solver and 1.0e-4 for harmonic balance-based solver.
|
|
relativeTol
|
|
Relative tolerance for harmonic balance-based linear solver. Default value is 1.0e-2.
|
|
gear_order
|
2
|
Gear order used for small-signal integration.
|
|
solver
|
turbo
|
Solver type. Possible values are std, turbo, std_hh and turbo_hh.
|
|
oscsolver
|
turbo
|
Oscillator solver type. It is recommended that you use ira for huge circuits. Possible values are std, turbo, ira and direct.
|
|
resgmrescycle
|
short
|
Restarts GMRES cycle. Possible values are instant, short, long, recycleinstant, recycleshort, recyclelong and custom.
|
|
hbprecond_solver
|
autoset
|
Select a linear solver for the GMRES preconditioner. Default is autoset. With autoset, the simulator will automatically select the appropriate precondtioner. The preconditioner affects the rate of convergence of the linear matrix solver used in periodic small-signal analysis. When autoset is selected, the simulator may decide to switch to a different preconditioner after the analysis begins. When that happens, the simulator may issue a warning instructing you to choose a different preconditioner during subsequent runs. Although not required, choosing a different preconditioner according to the simulator's instructions may speed up subsequent analyses. Possible values are basicsolver, blocksolver, autoset, blockdense, blocksolver2 and directsolver.
|
|
lowmem
|
0
|
Harmonic balance low memory mode; Possible values are 0, 1, or number (>=10). The default value is '0', the low memory mode is turned off; if '1' is set, the standard low memory mode is turned on; If a number no less than 10 is set, Spectre interprets the value as the memory requested in GigaBytes..
|
|
ppv
|
no
|
If set to yes, save the oscillator PPV after performing noise analysis. Possible values are no and yes.
|
|
ppvfile
|
|
File to which the PPV of oscillator is written.
|
|
augmented
|
yes
|
This parameter will be removed in future release soon. The parameter 'noiseout' is recommended. If set to yes, the frequency-aware PPV method is used to calculate the total noise of the oscillator; if set to pmonly, only the PM part of the oscillator noise is calculated; if set to amonly, only the AM part of the oscillator noise is calculated. The output of AM/PM noise is using double sideband convention. Possible values are no, yes, pmonly and amonly.
|
|
lorentzian
|
cornerfreqonly
|
This option determines if the Lorentzian plot is used in the oscillator noise analysis. 'lorentzian=yes' is only valid for 'noisetype=timeaverage'. Possible values are no, cornerfreqonly and yes.
|
|
pnoisemethod
|
default
|
This option selects the shooting pnoise method. Possible values are default and fullspectrum.
|
|
krylov_size
|
200
|
This parameter is used to set maximum iteration count of the linear matrix solver used in periodic small-signal analysis. After reaching 1.25*krylov_size iterations, the iteration is forced to terminate because of the poor rate of convergence. Increase the krylov_size if the simulation reports insufficient norm reduction errors in GMRES.
|
|
osc_version
|
dts
|
Specifies the method to use in small signal analysis for autonomous circuit. Possible values are floquet, augmented and dts.
|
|
osc_accuracy
|
2
|
Accuracy control in small signal analysis for autonomous circuit when osc_version=dts. The higher this value, the more iterations GMRES solver will take. Maximum effective value is 5.
|
|
freqdivide
|
1
|
Large signal frequency division. Used for oscillator circuit with divider in when osc_version=dts for shooting engine.
|
Annotation parameters
|
annotate
|
sweep
|
Degree of annotation. Possible values are no, title, sweep, status, steps and detailed_hb.
|
|
title
|
|
Analysis title.
|
|
oscmacrogene
|
no
|
If set to yes, harmonic balance steady-state and phase noise data are saved. Applies only if there is pm noise out. Possible values are no and yes.
|
|
oscmacrosave
|
|
File to which harmonic balance steady-state solution and phase noise data are to be written.
|
In practice, noise can mix with each of the harmonics of the periodic drive signal applied in the PSS analysis and end up at the output frequency. However, the PNoise analysis includes only the noise that mixes with a finite set of harmonics that are typically specified using the maxsideband parameter; however, in special circumstances, the harmonics may be specified with the sidebands parameter. If Ki represents sideband i, then
f(noise_source) = f(out) + Ki * fund(pss)
The maxsideband parameter specifies the maximum |Ki| included in the PNoise calculation. Therefore, noise at frequencies less than f(out)-maxsideband*fund(pss) and greater than f(out)+maxsideband*fund(pss) are ignored. If selected sidebands are specified using the sidebands parameter, then only those specified are included in the calculation. When specifying the sidebands ensure that you include a sideband that contributes significant noise to the output; otherwise, the results will be erroneous.
The number of requested sidebands does not change the simulation time substantially. However, the maxacfreq of the corresponding PSS analysis should be set to guarantee that |max{f(noise_source)}| is less than maxacfreq; otherwise, the computed solution might be contaminated by aliasing effects. The PNoise simulation is not executed for |f(out)| greater than maxacfreq. Diagnostic messages are printed for those extreme cases, indicating which maxacfreq should be set in the PSS analysis. In majority of simulations, however, this is not an issue, because maxacfreq is never allowed to be smaller than 40x the PSS fundamental.
Phase Noise measurements are possible by using the Analog Design Environment (ADE). Two pnoise analyses are pre-configured for this simulation and most of the analysis named mod2 has limited use outside of the Analog Design Environment (ADE) environment. Direct Plot is configured to analyze these results and combine several wave forms to measure AM and PM components of the output noise. For details, see the Spectre RF User Guide.
You can define sweep limits by specifying the end points or by providing 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) to 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. Alternatively, you may specify the values that the sweep parameter should take by using the values parameter. If you specify both a specific set of values and a set specified using a sweep range, the two sets are merged and collated before being used. All frequencies are in Hertz.
Return to top