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

Periodic Transfer Function Analysis (pxf)

Description

A conventional transfer function analysis computes the transfer function from every source in the circuit to a single output. Unlike a conventional AC analysis that computes the response from a single stimulus to every node in the circuit, the Periodic Transfer Function or PXF analysis computes the transfer functions from any source at any frequency to a single output at a single frequency. Thus, like PAC analysis, PXF analysis includes frequency conversion effects.

The PXF analysis directly computes such useful quantities as conversion efficiency (transfer function from input to output at required frequency), image and sideband rejection (input to output at undesired frequency), and LO feed-through and power supply rejection (undesired input to output at all frequencies).

As with a PAC, PSP, and PNoise analyses, a PXF analysis must follow a PSS analysis.

Unlike other analyses in Spectre, this analysis can only sweep frequency.

Syntax

Name  [p]  [n] ... pxf 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.

Probe parameters

probe

Compute every transfer function to this probe component.

Sampled analysis parameters

ptvtype

timeaveraged

Specifies whether the PTV analysis will be traditional or sampled under certain conditions. Possible values are timeaveraged and sampled.

sampleprobe

The crossing event at this port triggers the sampled small signal computation.

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.

extrasampletimepoints

[...]

Additional time points for sampled PTV analysis.

sampleratio

1

The ratio between sampled frequency and fund frequency (sampled frequency/fund frequency)..

Jitter parameters

externalsources

Pairs of terminals or nodes corresponding to external jitter sources.

extcorrsources1

Pairs of terminals and nodes for the first group of correlated external jitter sources.

extcorrsources2

Pairs of terminals and nodes for the second group of correlated external jitter sources.

deterministicsources

Pairs of terminals or nodes corresponding to deterministic jitter sources.

determsourcesfreqs

Frequency list corresponding to the external deterministic jitter sources.

Output parameters

stimuli

sources

Stimuli used for pxf analysis. Possible values are sources and nodes_and_terminals.

sidebands

[...]

Array of relevant sidebands for the analysis.

maxsideband

7

An alternative to the sidebands array specification, which automatically generates the array: [ -maxsideband ... 0 ... +maxsideband ]. For the shooting analysis, the default value is 7. For HB small signal analysis, the default value is the harms/maxharms setting in the HB large signal analysis. It is ignored in HB small signal when it is larger than the harms/maxharms value of large signal.

freqaxis

Specifies whether the results should be printed as per the input frequency, the output frequency, or the absolute value of the input frequency. The default is absin. Possible values are absin, in and out.

save

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

nestlvl

Levels of subcircuits to output.

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

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.

Modulation conversion parameters

modulated

no

Compute transfer functions/conversion between modulated sources and outputs. Possible values are single, first, second and no.

outmodharmnum

1

Harmonic for the PXF output modulation.

inmodharmvec

[...]

Harmonic list for the PXF modulated sources.

moduppersideband

1

Index of the upper sideband included in the modulation of an output for PAC and HBAC, or an input for PXF.

The variable of interest at the output can be voltage or current, and its frequency is not constrained by the period of the large periodic solution. While sweeping the selected output frequency, you can select the periodic small-signal input frequencies of interest by setting either the maxsideband or the sidebands parameter. For a given set of n integer numbers representing the sidebands K1, K2, ... Kn, the input signal frequency at each sideband is computed as f(in)= f(out) + Ki * fund(pss), where, f(out) represents the (possibly swept) output signal frequency and fund(pss) represents the fundamental frequency used in the corresponding PSS analysis. Thus, when analyzing a down-converting mixer and sweeping the IF output frequency, Ki= +1 for the RF input represents the first upper-sideband, while Ki= -1 for the RF input represents the first lower-sideband. By setting the maxsideband value to Kmax, all 2 * Kmax + 1 sidebands from -Kmax to +Kmax are selected.

The number of requested sidebands does not change substantially the simulation time. However, the maxacfreq of the corresponding PSS analysis should be set to guarantee that | max{f(in)} | is less than maxacfreq; otherwise, the computed solution might be contaminated by aliasing effects. The PXF simulation is not executed for | f(out) | greater than maxacfreq. Diagnostic messages are printed for those extreme cases, indicating how 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.

With PXF, the frequency of the stimulus and of the response are usually different (this is an important area in which PXF differs from XF). The freqaxis parameter is used to specify whether the results should be output versus the input frequency (in), the output frequency (out), or the absolute value of the input frequency (absin).

You can specify the output with a pair of nodes or a probe component. Any component with two or more terminals can be a voltage probe. When there are more than two terminals, they are grouped in pairs, and you use the portv parameter to select the appropriate pair of terminals. Alternatively, you can simply specify a voltage to be the output by giving a pair of nodes on the PXF analysis statement.

Any component that naturally computes current as an internal variable can be a current probe. If the probe component computes more than one current, you use the porti parameter to select the appropriate current. It is an error to specify both portv and porti. If neither is specified, the probe component provides a reasonable default.

The stimuli parameter specifies the inputs for the transfer functions. There are two choices. stimuli=sources indicates that the sources present in the circuit should be used. The xfmag parameters provided by the sources may be used to adjust the computed gain to compensate for gains or losses in a test fixture. One can limit the number of sources in hierarchical netlists by using the save and nestlvl parameters. stimuli=nodes_and_terminals indicates that all possible transfer functions should be computed.

This is useful when it is not known in advance which transfer functions are interesting. Transfer functions for nodes are computed assuming that a unit magnitude flow (current) source is connected from the node to ground. Transfer functions for terminals are computed assuming that a unit magnitude value (voltage) source is connected in series with the terminal. By default, the transfer functions from a small set of terminals are computed. If transfer functions from specific terminals are required, specify the terminals in the save statement. You must use the :probe modifier (for example, Rout:1:probe) or specify useprobes=yes on the options statement. If transfer functions from all terminals are required, specify currents=all and useprobes=yes on the options statement.

Modulated small signal measurements are possible by using the Analog Design Environment ( ADE ) environment. The modulated option for PXF and other modulated parameters are set by the Analog Design Environment (ADE). PXF analyses with this option produce results that could have limited use outside such an environment. Direct Plot is configured to analyze these results and combine several wave forms to measure AM and PM transfer function from single sideband or modulated stimuli to the specified output. 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
 ⠀
X