Page tree
Skip to end of metadata
Go to start of metadata

Preparing a Circuit for Simulation in ADS

This topic describes a variety of items that can be added to an ADS schematic to prepare it for circuit simulation. You should be familiar with this process and with working in projects before continuing here.

The process for creating a schematic-selecting and placing components, editing component parameters, and wiring-is described in the Schematic Capture and Layout documentation and in the Advanced Design System Quick Start.

Refer to the following topics for details on using simulation-specific items:

Using Current Probes

Current probes are added to a schematic to collect current data at that point in the circuit. You can place as many probes as you want in a schematic. Current probes are found on the Probe Components palette.

Current probes have parameters that you may want to edit, but it is not necessary. You may want to rename the probe to something meaningful, since the name is used to name the data collected with the probe.

Note

Current probes (I_Probe components) must be placed so that the arrow on the probe points in the direction of (positive) current flow. To flip a probe horizontally, choose Edit > Rotate/Mirror > Mirror About Y .

Naming Nodes

To collect voltage data at nodes of interest, you label the nodes on the schematic.

There are two types of nodes: global nodes and named nodes .


By placing a GlobalNode component on a sub-level or top-level schematic of a design ( Insert > Global Node ), you can select and edit the name of a node that will maintain the same identity throughout the entire hierarchy of designs. This means the nodes with the same name as the global node name in other designs are all electrically connected. This facilitates the interconnection of boards, IC chips, and connectors.

A named node can be applied to any schematic, but it is specific to that schematic only.

To specify a global node:

  1. Choose Insert > Global Node and place the component on the schematic. Double-click to display the dialog box for entering a name.
  2. Type a name in the Enter global node name field. Click Add . On this design and lower-level designs, it will be considered the same node.
  3. To make an existing named node a global node, select it from Node Name List and click Add.

To name a node:

  1. Choose Insert > Wire/Pin Label .
  2. In the dialog box appears, type the desired name and click the node on the schematic that you want to associate with that name.

    Note

    In general, voltage and current data is in phasor representation, so the voltage values at named nodes are peak voltage.

  3. You can repeat this for other nodes, or click Done to dismiss the dialog box.

    Note

    By placing an exclamation mark (!) at the end of node name, it becomes a global node for compatibility with Cadence formats. This should be used only if Cadence compatibility is required.

Using NodeSet and NodeSetByName Components


The following sections provide details on the components NodeSet and NodeSetByName, which are available in all simulation palettes.

Using NodeSet or NodeSetByName to Facilitate a Simulation

By placing a NodeSet or NodeSetByName component at strategic places in a circuit, you can instruct the DC simulator to begin its analysis at a given best-guess voltage. It is also possible to enter values for connection resistance.

These node set components can be used in any analysis, but are especially useful for:

  • Circuits that are bi-stable, such as flip-flops or ring oscillators, to force it to a known high or low state rather than letting the DC solver find the meta-stable state halfway between high and low.
  • Circuits that are isolated from DC by blocking capacitors.

NodeSet and NodeSetByName work in a two-stage process. In the first stage, these elements attach the specified voltage source with a series resistor to the specified node(s) to force a value. A DC solution for the entire circuit is then calculated. In the second stage, the forcing source and resistor are removed and the DC solution is refined, using the previous DC solution as an initial guess.

If you choose to use a NodeSetByName component, you can specify a name to facilitate the retrieval of voltage data in the dataset.

Note that if you specify both a DC Initial Guess File and a nodeset component, the former takes precedence.

NodeSet Fields

Following are details on the fields in the dialog box for the NodeSet component.

Instance Name Displays and edits the name of the component.

Select Parameter Selects a voltage or resistance for editing. V (volts) is an estimated initial node voltage. R is connection resistance.

Add adds a voltage or resistance to the Select Parameter field.

Cut deletes a voltage or resistance from the Select Parameter field.

Paste copies a voltage or resistance that has been cut and places it in the Select Parameter field.

Parameter Entry Mode Select standard or file-based data.

Optimization/Statistics/DOE Setup Opens a dialog box providing for the entry of parameters related to optimization and statistics.

Display parameter on schematic Displays or hides a selected node on the schematic.

NodeSetByName Fields

Following are details on the fields in the dialog box for the NodeSetByName component.

Instance Name Displays and edits the name of the component.

Select Parameter Selects a node name for editing. This name is associated with an initial voltage V and a connection resistance R.

Add adds a node name from the Edit Node Name field to the Select Parameter field.

Cut deletes a node name from the Select Parameter field.

Paste copies a node name that has been cut and places it in the Select Parameter field.

Select a Node Name: Selects a node name for editing, or for adding to the Select Parameter field.

Node Name List: Type in a node name.

Volt The initial voltage guess associated with the node name. Use this field to edit the voltage.

Res The connection resistance associated with the node name. Use this field to edit the resistance.

Display parameter on schematic Displays or hides a selected node name on the schematic.

Highlighting Nodes

Highlighting nodes can help you identify specific points in a schematic or subnetwork. To do this, choose Simulate > Highlight Node . This opens a window that lists all nodes (such as named connections, wires, pins, and ports) in a circuit and in all of its subcircuits. Click a node in the list and it will be highlighted on the schematic.

Highlighting nodes can help in troubleshooting a simulation problem. If problems are encountered at a node during simulation, the error and node name will appear in the Simulation/Synthesis Messages window. By using the highlight node feature you can quickly zoom in on the problem area.

Clearing Highlights

There are two ways to clear all highlights:

  • In the Highlight Node window, click Clear . This clears all highlights that have been set.
  • In the Schematic window, choose View > Clear Highlighting.

    Hint

    The highlight color can be changed through Options > Preferences > Display > Highlight .

Using Constants, Variables, and Functions

Advanced Design System contains built-in global constants, variables, and functions that can be used in a schematic. You can use them:

  • With the VarEqn component
  • With components whose parameters can be defined using equations. (For a selected parameter, the Equation Editor button will appear in the component editing dialog box.)

These can simplify schematic design. For example, you can set a variable named Frequency to a specific value, then use the variable wherever the frequency needs to be specified in the schematic. If you want to change the frequency, you do so in one place.

For more information on how to use VarEqn, refer to the VarEqn component help.

Note

You can use the conditional statement if/then/else/endif in variable definitions and component equations. Be sure to include the endif .

Many of the projects in the Examples directory use variables. One example that includes many variable definitions plus conditional statements is NADC_PA.dsn_ in RF_Board/NADC_PA_prj .

Lists of constants, variables, and functions are next.

Pre-Defined Constants

The pre-defined built-in constants available for use in an equation are:

Constant

Value

Description

e

2.718 282 ...

e

ln10

2.302 585 ...

ln(10)

c0

2.997 924 58 e+08 m/s

speed of light

e0

8.854 188 ... e-12 F/m

vacuum permittivity (1/(u0*c0*c0)

u0

1.256 637 ... e-06 H/m

vacuum permeability (4*pi*1e-7)

boltzmann

1.380 658 e-23 J/K

Boltzmann's constant

qelectron

1.602 177 33 e-19 C

charge of an electron

planck

6.626 075 5 e-34 J*s

Planck's constant

pi

3.141 593 ...

pi

Pre-Defined Variables

The pre-defined, built-in variables for use in an equation are:

Variable

Default Value

Description

time

0 s

analysis time

timestep

1 s

analysis time step

freq

1 e+006 Hz

analysis frequency for linear and multi-tone simulations such as Harmonic Balance and Circuit Envelope

temp

25 C

analysis temperature; set by Options Temp

tnom

25 C

default nominal temperature for models; set by Options Tnom

_freq1 through _freq12

1 e+0006 Hz

fundamental frequencies defined for multi-tone simulations such as Harmonic Balance and Circuit Envelope

Pre-Defined Functions

Function arguments have the following designations.

Complex

Real

Strings

x, y

r, r0, r1, rx, ry, lower_bound, upper_bound

s, s1, s2

In general, the functions return a complex number, unless it is a string operator as noted. A function that returns a real value effectively has a zero value imaginary term.



Function Description
cos(x) cosine function, x is in radians
cot(x) cotangent function, x is in radians
conj(x) complex-conjugate function
cosh(x) hyperbolic cosine function
coth(x) hyperbolic cotangent function
exp(x) exponential function
imag(x) imaginary-part function
log(x) log base 10 function
ln(x) natural log function
mag(x) magnitude function
phase(x) phase (in degrees) function
phasedeg(x) phase (in degrees) function
phaserad(x) phase (in radians) function
real(x) real-part function
sin(x) sine function, x is in radians
sinh(x) hyperbolic sine function
sqrt(x) square root function
tan(x) tangent function, x is in radians
tanh(x) hyperbolic tangent function
abs(rx) absolute value function
arcsinh(rx) arcsinh function
arctan(rx) arctan function, returns radians
atan2(rx, ry) arctangent function (two real arguments), returns radians
complex(rx, ry) real-to-complex conversion function
db(rx) decibel function, 20 log10(x)
dbpolar(rx, ry) (dB,angle)-to-rectangular conversion function, rx=mag in dB, ry=angle, degrees
dbmtow(rx) convert dBm to watts
deg(rx) radian-to-degree conversion function
int(rx) convert-to-integer function
jn(r0, r1) bessel function
max(rx, ry) maximum function
min(rx, ry) minimum function
polar(rx, ry) polar-to-rectangular conversion function, rx=magnitude, ry=angle, degrees
rad(rx) degree-to-radian conversion function
sgn(rx) signum function
sinc(rx) sin(x)/x function
sprintf(...) formatted print utility; returns a string
example:
x = 2
y = 14
z = sprintf( "%i.%i", x, y)
results in the string "2.14"
sprintf follows standard C programming syntax
strcat(...) string concatenation utility; returns a string
example:
s1 = "my cat"
s2 = " is frisky"
s3 = strcat( s1, s2)
results in the string "my cat is frisky"

The Effect of Expressions on Units

Due to the way that the simulator processes expressions, the following expression is considered valid by the ADS simulator: F = 1.0 M M. This value is interpreted by the simulator as: F = 1.0 * 1.0e6 * 1.0e6. This situation can occur when a variable is defined with units and the variable is then used as a component parameter that also has a units field. Although valid, such an expression usually does not specify the intended value.

The behavior of the Edit Component Parameters dialog is designed so that a parameter value, initially specified as a number followed by a scale factor, is changed to a non-numeric value, and the scale factor setting is automatically set to None . This scale factor setting can be changed manually, if desired.

Applying Measurements

Measurements are pre-defined expressions that make it easy to make common calculations such as VSWR or signal-to-noise ratio. Measurements are available from the simulation palettes and have two purposes:

  • They can be used on the schematic, in conjunction with simulations, to process the results of a simulation.
  • They can be used in Data Display equations to process the results of a simulation and display various relationships graphically.

To create your own measurement, use the MeasEqn component. For details about measurements, refer to Simulator Expressions and Measurement Expressions documentation.

To add a measurement to a schematic:

  • Select a measurement from the simulation palette and place it on the schematic.
    • You can modify the measurement to customize it or change the name. Click the Help button in the dialog box for details about the measurement.
    • You can select the measurement for output for a specific analysis. This has the effect of restricting evaluation to that analysis only (if more exist), as well as saving the result after each analysis iteration (e.g. each time point, or frequency point), instead of after all iterations, thus using less memory for intermediary data.

To view the results after running the simulation:

  1. Open a Data Display window and select a plot and place it in the window.
  2. The name of the measurement will appear in the list of variables. Select it to add it to the plot and click OK.

Measurements can also be used in Data Display equations to perform additional processing after a simulation. For information on how to use measurements in Data Display equations, see Data Display.

Quantities Measurements Can Reference

Measurements can reference:

  • Any simulation outputs (voltages, currents, S-parameters) from the current circuit level and levels below using full hierarchical names (refer to Simulation Output Names).
  • Other measurements and variable equations. Measurement equations and variable equations follow the same nested scoping rules: measurement equations can reference other measurement and variable equations at the current or higher levels. Note that measurement and variable equations cannot share the same name (see Naming Conventions).
  • Existing data in datasets produced by previous simulations or imported via the Data File Tool. The full circuit path of the saved simulation output is always required. Using the same syntax used for data displays to reference an existing dataset entry, preface the measurement name with the dataset name.

Example

MeasEqn1 = Vout

accesses node Vout in the current circuit

MeasEqn2 = saved_dataset.DC1.DC.Vout

accesses node Vout , generated by analysis DC1 in the dataset saved_dataset.ds

Simulation Output Names

To successfully use measurement equations, you must understand the full names associated with simulation outputs. Each simulation output has a unique name. A measurement may refer to such an output by using its unique name, or a condensed version of it. The full unique name of a simulation output is described in the following illustration.

where:

  • analysis_path is a concatenated string of the full circuit names of all the simulations driving the analysis. For example, a single top-level DC analysis called DC1 on the design results in the analysis path DC1.DC . If a top-level sweep analysis called Sweep1 drives that DC analysis, then the circuit path is Sweep1.DC1.DC. The .DC suffix is specific to the DC analysis. Major suffixes are as follows:

    DC

    .DC

    AC

    .AC

    AC noise

    .NC

    Harmonic Balance, P2D, XDB, Envelope, LSSP

    .HB

    Harmonic Balance noise

    .HB_NOISE

    Transient

    .TRAN

  • circuit_path is the path of the simulation output (node voltage, current, etc.) with respect to the circuit level of the measurement that references it. For example:
    MeasEqn1 = Vout
    may reference a node voltage Vout at the current level (hence no path), while
    MeasEqn2 = X1.Vout
    may reference a node voltage Vout in the subcircuit X1 of the current level (hence the circuit path is X1.)
    Unlike node voltages and currents, S-, Y-, Z-parameters and the corresponding delays require no circuit path.
  • name is the name of the simulation output (e.g. Vout for a node voltage, _I_Probe1.i_ for the current through current probe _I_Probe1_ , S for scattering parameters).

The circuit path and the name are required for proper reference. The analysis path is optional, and may be used in the case where a design contains multiple analyses to differentiate between same-name outputs. The analysis path need not be complete. For example, the node voltage Vout generated through the DC analysis DC1 may be referenced by a same-level measurement as follows:

MeasEqn1 = Vout

MeasEqn2 = DC.Vout

MeasEqn3 = DC1.DC.Vout

but not MeasEqn4 = DC1.Vout

The same resolution rules used for a data display apply here to analysis outputs.

Using Simulation Templates

A number of templates are available to facilitate setting up common simulations. Copy these to a directory where you have write permission.

To use a simulation template:

  1. Choose Insert > Template .
  2. From the dialog box that appears, select the desired simulation type and click OK . Place the template in the Schematic window and modify it as required.
Simulation Template Descriptions

Template

Description

BJT_curve_tracer

This simulation uses a swept current source for the base current and a swept voltage source for the collector voltage, to simulate the DC collector current versus collector-emitter voltage curves of a BJT.

ConvPulseRespT

This simulation uses nonlinear, time-domain analysis to simulate the pulse response of a network. The pulse response can be the reflection from a network or transmission line or the transmission of the signal through the network or transmission line. Also, coupling of the pulse signal from one line to another can be simulated. If the circuit contains distributed elements, then convolution will be used during the simulation. The reflected and transmitted signals may be shown.
Refer to the example file: examples/RF_Board/TDRcrosstalk_prj to see this template in use.

ConvStepRespT

This simulation uses nonlinear, time-domain analysis to simulate the step response of a network. The step response can be the reflection from a network or transmission line or the transmission of the signal through the network or transmission line. Also, coupling of the step signal from one line to another can be simulated. If the circuit contains distributed elements, then convolution will be used during the simulation. The reflected and transmitted signals may be shown.
Refer to the example file: examples/RF_Board/TDRcrosstalk_prj to see this template in use.

DC_BJT_T

This generates the same I-V curves as the BJT_curve_tracer, except that the sources and simulation controllers are packaged up into a subcircuit.

DC_FET_T

This generates the same I-V curves as the FET_curve_tracer, except that the sources and simulation controllers are packaged up into a subcircuit.

FET_curve_tracer

This uses swept voltage sources for the gate and drain voltages, to simulate the DC drain current versus drain-source voltage curves of a FET.

HB1Tone

This simulation generates the output power, power gain, harmonic distortion, and the output spectrum, when the test signal is a sinusoid at one power and frequency.

HB1ToneSwptFreq

This simulation generates the frequency-dependent output power, power gain, harmonic distortion, and the output spectrum, when the test signal is a sinusoid at one power and is swept over frequency.

HB1ToneSwptPwr

This simulation generates the output power, power gain, harmonic distortion, output spectrum, and gain compression, when the test signal is a swept-power sinusoid at one frequency.

HB2Tone

This simulation generates the output power, power gain, output spectrum, and third- and fifth-order intermodulation distortion points (input- and output-referred) when the test signals are two sinusoids of the same power.

HB2ToneSwptPwr

This simulation generates the output power, power gain, output spectrum, and third- and fifth-order intermodulation distortion points (input- and output-referred), as well as the intermodulation distortion levels when the test signals are two sinusoids and their power is swept.

LinearPulseRespT

This simulation uses linear, swept-frequency AC analysis to simulate the time-domain pulse response of a network. The pulse response can be the reflection from a network or transmission line or the transmission of the signal through the network or transmission line. Also, coupling of the pulse signal from one line to another can be simulated. The reflected and transmitted signals may be shown.
Refer to the example file: examples/RF_Board/TDRcrosstalk_prj to see this template in use.

LinearStepRespT

This simulation uses linear, swept-frequency AC analysis to simulate the time-domain step response of a network. The step response can be the reflection from a network or transmission line or the transmission of the signal through the network or transmission line. Also, coupling of the step signal from one line to another can be simulated. The reflected and transmitted signals may be shown.
Refer to the example file: examples/RF_Board/TDRcrosstalk_prj to see this template in use.

MixConvGainNF

This simulates the conversion gain and noise figure of a mixer.

MixTOI

This simulates the output spectrum, output power, conversion gain, and third-order intercept points of a mixer.

S_Params

This simulates the S-parameters of any two-port network, and generates Smith chart plots for S11 and S22, and polar plots for S21 and S12. The Smith charts include a circle of constant VSWR, whose value you may set.

S_Params_DC

This simulates the S-parameters of any two-port network, and generates Smith chart plots for S11 and S22, and polar plots for S21 and S12. The Smith charts include a circle of constant VSWR, whose value you may set. In addition, it generates zoomed plots of S11 and S21, over a reduced frequency range. A DC simulation is also run.

SP_BJT_T

This is a two-port vector network analyzer equivalent with biasing for a BJT. It sweeps the base current and collector-emitter voltage, and simulates the S-parameters of the device at each bias point, at one analysis frequency.

SP_DiffT

This simulates the S-parameters of any two-port network, but the test ports are ungrounded. This allows the simulation of differential-mode S-parameters.

SP_FET_T

This is a two-port vector network analyzer equivalent with biasing for a FET. It sweeps the gate-source and drain-source voltages, and simulates the S-parameters of the device at each bias point, at one analysis frequency.

SP_NWA_4PortBiasLogT

This simulates the S-parameters of any four-port network, but plots the data assuming you want to compare two sets of two-port S-parameters. It generates Smith chart plots for S11 and S33, and S22 and S44, and polar plots for S21 and S43, and S34 and S12. The Smith chart plots show circles of constant VSWR.
It is identical to SP_NWA_4PortT, except that a log frequency sweep is used, and a single DC bias may be set for each of the test ports.

SP_NWA_4PortBiasT

This simulates the S-parameters of any four-port network, but plots the data assuming you want to compare two sets of two-port S-parameters. It generates Smith chart plots for S11 and S33, and S22 and S44, and polar plots for S21 and S43, and S34 and S12. The Smith chart plots show circles of constant VSWR.
It is identical to SP_NWA_4PortT, except that a single DC bias may be set for each of the test ports.

SP_NWA_4PortLogT

This simulates the S-parameters of any four-port network, but plots the data assuming you want to compare two sets of two-port S-parameters. It generates Smith chart plots for S11 and S33, and S22 and S44, and polar plots for S21 and S43, and S34 and S12. The Smith chart plots show circles of constant VSWR.
It is identical to SP_NWA_4PortT, except that a log frequency sweep is used.

SP_NWA_4PortT

This simulates the S-parameters of any four-port network, but plots the data assuming you want to compare two sets of two-port S-parameters. It generates Smith chart plots for S11 and S33, and S22 and S44, and polar plots for S21 and S43, and S34 and S12. The Smith chart plots show circles of constant VSWR.

SP_NWA_LogT

This simulates the S-parameters of any two-port network, and generates Smith chart plots for S11 and S22, and rectangular plots for dB(S21) and dB(S12). It is identical to the SP_NWA_T template, except that a log frequency sweep is used.

SP_NWA_T

This simulates the S-parameters of any two-port network, and generates Smith chart plots for S11 and S22, and rectangular plots for dB(S21) and dB(S12). A two-port vector network analyzer equivalent instrument is used. In addition, it generates zoomed plots of S11 and S21, over a reduced frequency range. Also, plots showing available gain and stability circles may be created.

Sparams_wNoise

This simulates the S-parameters and noise figure of any two-port network, and generates Smith chart plots for S11 and S22, and rectangular plots for dB(S21) and dB(S12). The Smith charts include a circle of constant VSWR, whose value you may set. In addition, it generates zoomed plots of S11 and S21, over a reduced frequency range. Also, plots showing available gain, noise figure, and stability circles are created.

S_ParamsLargeSignal

This simulates the S-parameters of any two-port network, as a function of frequency, and input signal power. The S-parameters are computed as the ratios of the incident and reflected waves at the fundamental frequency. The Rollett stability factor, K and the group delay are also computed from the S-parameters. This template is particularly useful for computing the output reflection coefficient of a device when it is being driven by a large input signal. Note that this template does not use a LSSP simulation controller. Instead it uses harmonic balance combined with small-signal mixer mode.

Using Simulation Instrument Components

Simulation instrument components provide a method for symbolically connecting your circuit to an instrument. You connect your design to components that represent various instruments and run the simulation.

The instruments are set up as curve tracers, TDRs, and network analyzers. There are two or more of each type of instrument-each one is designed for a particular simulation or measurement. They are located on the Component Palette, under Simulation-Instrument. For details on each component, see Simulation Instruments.

To use a simulation instrument:

  1. Create your design.
  2. From the Component Palette, choose Simulation-Instrument . Select the appropriate instrument and place it on your schematic.
  3. Connect the ports of your design to the instrument connectors.
  4. Set the instrument parameters.
  5. Run the simulation.
  • No labels