You are on page 1of 150

RFDE Momentum

May 2008
Notice
The information contained in this document is subject to change without notice.
Agilent Technologies makes no warranty of any kind with regard to this material,
including, but not limited to, the implied warranties of merchantability and fitness
for a particular purpose. Agilent Technologies shall not be liable for errors contained
herein or for incidental or consequential damages in connection with the furnishing,
performance, or use of this material.
Warranty
A copy of the specific warranty terms that apply to this software product is available
upon request from your Agilent Technologies representative.
Restricted Rights Legend
Use, duplication or disclosure by the U. S. Government is subject to restrictions as set
forth in subparagraph (c) (1) (ii) of the Rights in Technical Data and Computer
Software clause at DFARS 252.227-7013 for DoD agencies, and subparagraphs (c) (1)
and (c) (2) of the Commercial Computer Software Restricted Rights clause at FAR
52.227-19 for other agencies.
Agilent Technologies, Inc. 1983-2008.
395 Page Mill Road, Palo Alto, CA 94304 U.S.A.
Acknowledgments
Mentor Graphics is a trademark of Mentor Graphics Corporation in the U.S. and
other countries.
Microsoft, Windows, MS Windows, Windows NT, and MS-DOS are U.S.
registered trademarks of Microsoft Corporation.
Pentium is a U.S. registered trademark of Intel Corporation.
PostScript and Acrobat are trademarks of Adobe Systems Incorporated.
UNIX is a registered trademark of the Open Group.
Java is a U.S. trademark of Sun Microsystems, Inc.
SystemC is a registered trademark of Open SystemC Initiative, Inc. in the United
States and other countries and is used with permission.
MATLAB is a U.S. registered trademark of The Math Works, Inc.

ii
The following third-party libraries are used by the NlogN Momentum solver:
This program includes Metis 4.0, Copyright 1998, Regents of the University of
Minnesota, http://www.cs.umn.edu/~metis; METIS was written by George Karypis
(karypis@cs.umn.edu).
Intel@ Math Kernel Library, (http://www.intel.com/software/products/mkl).
SuperLU_MT version 2.0 SuperLU Copyright: Copyright 2003, The Regents of
the University of California, through Lawrence Berkeley National Laboratory
(subject to receipt of any required approvals from U.S. Dept. of Energy). All rights
reserved. SuperLU Disclaimer:THIS SOFTWARE IS PROVIDED BY THE
COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
AMD Version 2.2 AMD Notice: The AMD code was modified. Used by permission.
AMD copyright: AMD Version 2.2, Copyright 2007 by Timothy A. Davis, Patrick R.
Amestoy, and Iain S. Duff. All Rights Reserved. AMD License:Your use or
distribution of AMD or any modified version of AMD implies that you agree to this
License.This library is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License as published by the Free
Software Foundation; either version 2.1 of the License, or (at your option) any later
version. This library is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
License for more details. You should have received a copy of the GNU Lesser General
Public License along with this library; if not, write to the Free Software Foundation,
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Permission is hereby
granted to use or copy this program under the terms of the GNU LGPL, provided that
the Copyright, this License, and the Availability of the original version is retained on
all copies. User documentation of any code that uses this code or any modified version
of this code must cite the Copyright, this License, the Availability note, and Used by

iii
permission. Permission to modify the code and to distribute modified code is
granted, provided the Copyright, this License, and the Availability note are retained,
and a notice that the code was modified is included. AMD Availability: http://
www.cise.ufl.edu/research/sparse/amd
UMFPACK 5.0.2 UMFPACK Notice: The UMFPACK code was modified. Used by
permission. UMFPACK Copyright: UMFPACK Copyright 1995-2006 by Timothy A.
Davis. All Rights Reserved. UMFPACK License: Your use or distribution of
UMFPACK or any modified version of UMFPACK implies that you agree to this
License. This library is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License as published by the Free
Software Foundation; either version 2.1 of the License, or (at your option) any later
version. This library is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
License for more details. You should have received a copy of the GNU Lesser General
Public License along with this library; if not, write to the Free Software Foundation,
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Permission is hereby
granted to use or copy this program under the terms of the GNU LGPL, provided that
the Copyright, this License, and the Availability of the original version is retained on
all copies. User documentation of any code that uses this code or any modified version
of this code must cite the Copyright, this License, the Availability note and Used by
permission. Permission to modify the code and to distribute modified code is
granted, provided the Copyright, this License, and the Availability note are retained,
and a notice that the code was modified is included. UMFPACK Availability: http://
www.cise.ufl.edu/research/sparse/umfpack UMFPACK (including versions 2.2.1 and
earlier, in FORTRAN) is available at http://www.cise.ufl.edu/research/sparse. MA38
is available in the Harwell Subroutine Library. This version of UMFPACK includes a
modified form of COLAMD Version 2.0, originally released on Jan. 31, 2000, also
available at http://www.cise.ufl.edu/research/sparse . COLAMD V2.0 is also
incorporated as a built-in function in MATLAB version 6.1, by The MathWorks, Inc.
(http://www.mathworks.com ). COLAMD V1.0 appears as a column-preordering in
SuperLU (SuperLU is available at http://www.netlib.org). UMFPACK v4.0 is a built-
in routine in MATLAB 6.5. UMFPACK v4.3 is a built-in routine in MATLAB 7.1.

iv
Contents
1 Momentum Basics
Momentum Major Benefits........................................................................................ 1-1
Momentum Major Features ...................................................................................... 1-1
Momentum Overview................................................................................................ 1-1
About the Simulation Modes..................................................................................... 1-3
Selecting the Correct Mode ................................................................................ 1-4
Using RF Design Environment Examples .......................................................... 1-5
2 The Momentum View
Creating a Momentum Cell View .............................................................................. 2-1
3 Substrate File Definitions
Introduction............................................................................................................... 3-1
Starting the Substrate Editor from RFDE ................................................................. 3-2
Editing the Substrate File Using the Substrate Editor ........................................ 3-3
Using Edit Dialogs .............................................................................................. 3-5
Creating a New Substrate File Using a Text Editor................................................... 3-11
Overlap Precedence................................................................................................. 3-13
The Substrate Green Function Database................................................................. 3-14
Tech File Format....................................................................................................... 3-14
General Tech File Example ...................................................................................... 3-17
GaAs Tech File Example .......................................................................................... 3-18
Si Tech File Example ................................................................................................ 3-19
4 Simulation Frequencies
Setting Up a Frequency Plan.................................................................................... 4-1
Sweep Types ...................................................................................................... 4-4
About Adaptive Frequency Sampling ....................................................................... 4-4
AFS Convergence .............................................................................................. 4-5
Setting Sample Points ........................................................................................ 4-6
Viewing AFS S-Parameters ................................................................................ 4-7
5 Ports
Cadence Pins and Momentum Ports........................................................................ 5-1
Definition of Momentum Ports .................................................................................. 5-2
Automatically Generating Ports ................................................................................ 5-6
Creating Advanced Port Types & Changing Port Properties .................................... 5-6
Reference pins ................................................................................................... 5-7
Calibration .......................................................................................................... 5-9
Differential Ports ................................................................................................. 5-11
6 Substrate Mesh & Simulation Options

v
Introduction............................................................................................................... 6-1
Momentum Simulation Options .......................................................................... 6-2
Global Substrate and Mesh Options................................................................... 6-5
Per-layer Simulation, Substrate and Mesh Options ............................................ 6-10
Using Horizontal Side Currents .......................................................................... 6-11
7 Momentum Simulation
Setting up and Running a Momentum Simulation .................................................... 7-2
Frequency Plans................................................................................................. 7-2
Momentum Ports ................................................................................................ 7-2
Selecting a Process Mode.................................................................................. 7-3
Data Display Options.......................................................................................... 7-4
Reusing Simulation Data .................................................................................... 7-5
Viewing Results Automatically............................................................................ 7-5
Starting a Simulation .......................................................................................... 7-7
Stopping a Simulation ........................................................................................ 7-9
Viewing the Simulation Progress and Results.................................................... 7-10
64-bit Momentum Simulations on Linux and Solaris ................................................ 7-11
Performing Remote/Distributed Simulations............................................................. 7-11
8 Viewing Results Using the Data Display
Opening a Data Display Window .............................................................................. 8-1
Viewing Momentum Data ......................................................................................... 8-1
Viewing S-Parameters .............................................................................................. 8-4
Variables in the Standard and AFS Dataset ....................................................... 8-4
Standard and AFS Datasets............................................................................... 8-5
Viewing Convergence Data ................................................................................ 8-5
9 Using Momentum Simulation Results in Composer
Creating Momentum Simulator Views ...................................................................... 9-1
Opening a New Schematic Window ................................................................... 9-6
Updating Simulator Views .................................................................................. 9-9
Using RFDE Momentum Components with Assura.................................................. 9-10
Running an Assura Extraction of a Momentum Component Model.................... 9-11
10 Displaying Surface Currents
Starting Momentum Visualization............................................................................. 10-1
Working with Momentum Visualization Windows ..................................................... 10-1
Selecting the Number of Views .......................................................................... 10-1
Selecting a View to Work in................................................................................ 10-2
Retrieving Plots in a View................................................................................... 10-2
Working with Annotation in a View ..................................................................... 10-2
Adding Text......................................................................................................... 10-3
Adding Variables................................................................................................. 10-3

vi
Editing Text ......................................................................................................... 10-3
Deleting Text....................................................................................................... 10-4
Refreshing the Window ...................................................................................... 10-4
Viewing Data from Another Project .......................................................................... 10-5
Setting Port Solution Weights ................................................................................... 10-5
Displaying the Layout ............................................................................................... 10-6
Displaying a Current Plot .......................................................................................... 10-6
Animating Plotted Currents ................................................................................ 10-7
Displaying the Mesh on a Current Plot ..................................................................... 10-8
A Theory of Operation
The Method of Moments Technology........................................................................ A-2
The Momentum Solution Process ............................................................................ A-6
Calculation of the Substrate Green's Functions ................................................. A-6
Meshing of the Planar Signal Layer Patterns ..................................................... A-6
Loading and Solving of the MoM Interaction Matrix Equation ............................ A-7
Calibration and De-embedding of the S-Parameters.......................................... A-7
Reduced Order Modeling by Adaptive Frequency Sampling.............................. A-8
Special Simulation Topics ......................................................................................... A-9
Simulating Metallization Loss ............................................................................. A-9
Simulating with Ports ................................................................................................ A-10
Momentum Current Feed Models/Port Types ..................................................... A-10
Typical Port Combinations .................................................................................. A-10
Internal Ports ...................................................................................................... A-11
Limitations and Considerations ................................................................................ A-12
Comparing the Microwave and RF Simulation Modes........................................ A-13
Matching the Simulation Mode to Circuit Characteristics ................................... A-13
Higher-order Modes and High Frequency Limitation .......................................... A-14
Surface Wave Modes ......................................................................................... A-15
Via Structures and Metallization Thickness Limitation ....................................... A-15
Via Structures and Substrate Thickness Limitation ............................................ A-15
CPU Time and Memory Requirements .............................................................. A-16
About the Momentum Solver .............................................................................. A-17
References ............................................................................................................... A-19
B Customization
Public Procedures for Customization........................................................................ B-1
Public Variables for Customization ........................................................................... B-1
Index

vii
viii
Chapter 1: Momentum Basics
Momentum gives you the simulation tools to evaluate and design modern communications systems
products. Momentum is an electromagnetic simulator that computes S-parameters for general
planar circuits, including microstrip, stripline, and other topologies.
Momentum Visualization is an option that gives users a 3-dimensional perspective of simulation
results, enabling you to view and animate current flow in conductors.

Momentum Major Benefits


Momentum enables you to:
Characterize the electrical behavior of components (spirals) and interconnect structures
Design components and interconnect structures
Determine coupling effects
Design critical components and paths
Visualize current flow

Momentum Major Features


An electromagnetic simulator based on the Method of Moments
Adaptive frequency sampling for fast, accurate, simulation results
Comprehensive data display tools for viewing results
Equation and expression capability for performing calculations on simulated data
64-bit simulation support for solving larger process problems on Linux and Sun machines

Momentum Overview
Momentum commands are available from the Virtuoso window. The following steps describe a
typical process for creating and simulating a design with Momentum:
1. Create a Momentum cell view with the structure that you want to simulate. The
Momentum simulations can only be performed on the layout as defined in a separate
Momentum layout cell view. It is possible to define this layout in different ways:

Momentum Major Benefits 1-1


Momentum Basics

Start with a new Virtuoso window, change the view to a momentum view and draw the
layout to be simulated in this window.
Create a new cell from an existing Virtuoso layout. To do this, select Tools >
Momentum. This activates the Momentum-Virtuoso menu at the top of the layout
window. Select the layout structures you want to simulate (if you select none the whole
layout will be selected). Underneath the Momentum-Virtuoso menu, select the Make
Momentum Cell... menu. This brings up the Make Momentum Cell dialog box. Select a
Momentum Cell Name and click OK. This creates a new cell from the momentum view
layout

2. Setup the substrate definition. The definition of the substrate layer stack is done via a
Momentum specific substrate file. These files can be referenced directly, by selecting a
specific substrate file or by including a substrate file in the Cadence tech file. For more
information, refer to Chapter 3, Substrate File Definitions.
3. Setup frequency range for simulation. Specify the frequency range that needs to be
analyzed by Momentum by either specifying the start and stop frequencies of an adaptive
sweep, or by specifying a specific sweep plan for the frequency simulations. For more
information, refer to Chapter 4, Simulation Frequencies.
4. Define the Momentum ports. Ports need to be added or defined to the Momentum layout.
These are the connection points for the part of the circuit that will be simulated with
Momentum. The Momentum S-parameter simulation results are defined with respect to
these ports.
First, one or more Cadence pins need to be defined as connection points to the layout. This
should be done using the standard Virtuosos Create > pin command.
Second, these pins are used to define the Momentum ports, which are terminations with
multiple connection points for the positive and negative reference pins of the termination.
This action is done via the Ports dialogs in the Momentum-Virtuoso simulation dialog. For
more information, refer to Chapter 5, Ports
5. Set the simulation options. All the Momentum simulation options can be accessed from
Simulation > Options. This includes mesh options, as well as the choice between the
Momentum mode: Momentum Microwave or Momentum RF. You can select the mode

1-2 Momentum Overview


based on your design goals. Use Momentum Microwave mode for designs requiring
full-wave electromagnetic simulations that include microwave radiation effects. Use
Momentum RF mode for designs that are electrically small (smaller than half the wavelength
at the highest frequency), and do not radiate. For more information comparing the
Momentum and Momentum RF modes, see About the Simulation Modes on page 1-3.
6. Simulate the circuit. The Momentum simulation process has three different steps, which
by default are run automatically one after the other:
Solve the substrate. Momentum calculates the Green's functions that characterize the
substrate for a specified frequency range. These calculations are stored in a database, and
used later on in the simulation process. For more information, refer to Substrate File
Definitions on page 3-1.
Generate a circuit mesh. A mesh is a pattern of rectangles, triangles and polygonal
cells that is applied to a design in order to break down (discretize) the design into small
cells. A mesh is required in order to simulate the design effectively. You can specify a
variety of mesh parameters to customize the mesh to your design, or use default values
and let Momentum generate an optimal mesh automatically. For more information, refer
to Substrate Mesh & Simulation Options on page 6-1.
Solve the circuit by executing the specified frequency sweep. The simulation process
uses the Green's functions computed for the substrate, plus the mesh pattern and the
currents in the design are calculated. S-parameters are then computed based on the
currents. If the Adaptive Frequency Sample sweep type is chosen, a fast, accurate
simulation is generated, based on a rational fit model. For more information, refer to
Momentum Simulation on page 7-1.
7. View the results. The data from a Momentum simulation is saved as S-parameters. Use the
Data Display to view S-parameters. For more information, refer to Viewing Results Using
the Data Display on page 8-1 and Momentum Basics on page 1-1.
8. Create symbolic view for using Momentum simulation results in the composer
environment.

About the Simulation Modes


Momentum has two modes, the microwave mode, referred to as Momentum Microwave and the
RF mode, referred to as Momentum RF. The RF mode is based on quasi-static electromagnetic
functions enabling faster simulation of designs. At higher frequencies, as radiation effects
increase, the accuracy of the Momentum RF models declines smoothly with increased frequency.
Momentum RF addresses the need for faster simulations down to DC, while conserving computer

About the Simulation Modes 1-3


Momentum Basics

resources. Typical RF applications include RF components and circuits on chips, modules, and
boards, as well as digital and analog RF interconnects and packages.
The microwave mode is based on full-wave electromagnetic functions enabling, taking into
account the radiation effects. Both Momentum modes use the star-loop technology that provides
low-frequency stability down to DC and a mesh-reduction algorithms that allows quick simulation
of complex designs, and require less computer memory and CPU time. For a detailed comparison
of the two simulation modes, see Comparing the Microwave and RF Simulation Modes on
page A-13.

Selecting the Correct Mode


Deciding which mode to use depends on your application. Each mode has its advantages. In
addition to specifically RF applications, Momentum RF can simulate microwave circuits. The
following graph identifies which mode is best suited for various applications. Some applications
can benefit from using either mode depending on the requirements. As your requirements change,
you can quickly switch modes to simulate the same physical design. As an example, you may want
to begin simulating microwave applications using Momentum RF for quick, initial design and
optimization iterations, then switch to Momentum to include radiation effects for final design and
optimization.

Momentum RF Momentum Microwave

High-Speed Digital (SI, BGA)


RF Board (FR4, Duroid)
RF Package (Plastic)

RFIC (Silicon)
RF Module (MCM, LTCC)
Microwave - hybrid (Alumina)
Microwave - IC (GaAs)

Initial design & Final design &


optimization optimization

Figure 1-1. Choose the mode that matches the application.


Momentum RF is usually the more efficient mode when a circuit

1-4 About the Simulation Modes


is electrically small
is geometrically complex
does not radiate
For descriptions about electrically small and geometrically complex circuits, see Matching the
Simulation Mode to Circuit Characteristics on page A-13.

Using RF Design Environment Examples


These examples demonstrate how RF Design Environment can be used to solve real-life problems.

Loading Examples
Use the following steps to load an RFDE example. Examples must be loaded in order to be
opened.
1. Choose Tools > RFDE Example > Load Example in the Cadence Command Interpreter
Window (CIW) to display the Load Example form.
2. Select the desired example from the list and click OK to load the example. The following
items will be executed:
A copy of the example directory will be created and placed in ~/rfdeExamples.
Write permissions for the copy will be set.
The includePaths in the copy will be updated to point to the new location.
The necessary DEFINE lines will be appended to the ./cds.lib file.
A warning will be displayed in the CIW if an existing DEFINE uses a different path.
Advanced Loading Options
Use the following options to customize the loading of an RFDE example.

Copy all example files to Enables you to copy all example files to
directory: ~/rfdeExamples. This is the default method of loading
~/rfdeExamples a library.
Copy simulation files to Enables you to copy the simulation files to the
directory: specified directory. The directory name is read from
~/simulation your CDS environment.

About the Simulation Modes 1-5


Momentum Basics

Copy .artist_states to Enables you to copy the artist_state files to the


directory: specified directory. The directory name is read from
~/.artist_states your environment.
Overwrite existing Enables you to overwrite existing directories. If this
directories options is not selected, the system will not copy files
to a directory that already exists.

Opening Examples
Use the following steps to open an RFDE example that you have loaded.
1. Choose Tools > RFDE Example > Open Example in the Cadence Command Interpreter
Window (CIW) to display the Open Example form.
2. Select the desired example from the list and click OK to open:
A schematic for this cell in read-only mode.
A simulation window for this schematic.
The simulation set-up in the simulation window.
If the simulation window for this schematic is already open, its set-up information is
overwritten.
The data display for this cell.

Unloading Examples
Use the following steps to unload an RFDE example that you have loaded.
1. Choose Tools > RFDE Example > Unload Example in the Cadence Command Interpreter
Window (CIW) to display the Unload Example form.
2. Select the desired example from the list and click OK to unload the example.
If there are any windows open that use the example's library, you are notified and the
unload operation is terminated.
The main library used by the example is removed from the library list. Note that this step
modifies the cds.lib file.
The local copy of the example is deleted if you selected the Delete local copies of
example files (if any) option.

1-6 About the Simulation Modes


Un

Z s ( t 2 ,c ,c )

Z ss (t, , )

About the Simulation Modes 1-7


Momentum Basics

1-8 About the Simulation Modes


Chapter 2: The Momentum View
Momentum operates directly from the Cadence Virtuoso environment. To access
Momentum specific windows, you need to create a momentum view of the layout
that you want to simulate. All the layout objects defined in the Momentum cell view
are on layers mapped in the substrate definition, and are simulated by Momentum.
For more information on substrate definitions refer to Chapter 3, Substrate File
Definitions.

Creating a Momentum Cell View


A Momentum cell view can be generated in several ways. After opening a new cell
view, you can access the Momentum menus that control the simulation by selecting
Tools > Momentum.

You can create a new Momentum view by manually creating a new view of an
existing layout cell, (e.g., by saving the design with this new view). The name of
the view should be momentum.
From an existing layout view, a new Momentum view can be created
automatically by activating the Momentum menu using Tools > Momentum and

Creating a Momentum Cell View 2-1


The Momentum View

then selecting Momentum-Virtuoso > Make Momentum Cell. If nothing in the


layout is selected, all layout objects will be copied in a new Momentum cell. If
you have selected layout objects (using any selection mechanism in layout), only
the selected layout objects are copied to the new Momentum cell. This command
also automatically opens the new Momentum cell view with its associated
Momentum simulation dialog.

Note: If a cell is opened in the layout view, the Make Momentum Cell menu item is
visible under the Momentum-Virtuoso menu. If the cell is opened under the
momentum view, the main Momentum simulation dialog is opened and a number of
short cut menu items are accessible from under the top Momentum-Virtuoso menu
(Make Momentum Cell..., Simulation..., Clear Mesh). In both cases a Whats New menu
item provides access to information on what is new in Momentum Virtuoso.

2-2 Creating a Momentum Cell View


Chapter 3: Substrate File Definitions

Introduction
A substrate definition consists of substrate layers and interface layers.
Substrate layers define the stratification of the 3D world into 2D slabs (x,y coordinates) with a
thickness (z coordinate) containing dielectric media. The boundaries can be open (typically air) or
covered (typically a Perfect Conductor ground).
Typically, the interface layers will be used to define the conductive layers in between the substrate
layers. This is done by mapping a mask to the interface.
Metallization patterns (vias) between these conductive layers are typically defined by mapping
masks to substrate layers
Masks are used to define 3D patterns:
Adding a material to a mask defines the electrical properties.
By mapping a mask into the substrate definition, the nominal z coordinate is defined.
The z coordinates can be swept around its nominal value by attaching operations to a mask
(e.g., thick conductors, box).
The xy coordinate of the pattern is obtained from the geometries on the layout layers that are
mapped to the mask.
Making a mask negative means you are defining cut-out regions instead of patterns (e.g.,
slots).

Introduction 3-1
Substrate File Definitions

Starting the Substrate Editor from RFDE


When editing or creating a new substrate file using the Substrate Editor, the extension of substrate
file should be .ltd. If this extention is not used a text editor will be opened instead of the
Substrate Editor. For more information, refer to Creating a New Substrate File Using a Text
Editor on page 3-11.

3-2 Starting the Substrate Editor from RFDE


Editing the Substrate File Using the Substrate Editor
The substrate editor, shown below, consists of the following components:
1. Main Menu bar
2. Toolbar This section contains the most commonly used buttons.
3. Status bar Displays information when you hover over any item
4. Graphics view This displays 2D cross-section view of substrate stack with mask
mappings, it has basic operations to edit the substrate definition
5. Edit dialogs The edit dialogs contain advanced editing options.
6. View dialogs These are dynamic dialogs diplaying information about the material (i.e.,
operation, stack, mask, units). This information changes with the selection of items in the
graphics view dialog. However, you cannot use them to change the information.

Using the Graphical View


This dialog enables you to visualize the substrate stack and do basic editing. For more advanced
editing, the edit dialogs should be used. During editing, the view dialogs enable you to quickly see
mask or layer properties.

Starting the Substrate Editor from RFDE 3-3


Substrate File Definitions

Double clicking an item (or by using right click > Edit) on the graphic view will open the
respective edit dialog.
Right clicking an empty space in the graphics view opens a menu enabling you to:
1. Add a wall mask This adds a mask having the operation of type Wall in the masks
database, you will need to assign the layout layer to it.
2. Absolute dimensions
3. Constant dimensions
4. Log dimensions
You can choose one of the following three representations for the graphics view.
Absolute Shows the real thicknesses.
Log Shows the logarithmic thicknesses, for best view.
Constant Uses constant thicknesses for all the substrate layers.
Right clicking on a layer open a menu with the following options:
1. Edit This displays the stack edit dialog.

3-4 Starting the Substrate Editor from RFDE


2. Add masks Displays dialog where you can select the masks user wants to map, it will only
show those masks which can be mapped.
3. Move up Moves the selected layer up.
4. Move down moves the selected layer down.
5. Insert layer Inserts one interface and one substrate layer.
6. Clone and insert above Clones the substrate layer and inserts above it.
7. Clone and insert below Clones the substrate layer and inserts below it.
8. Delete with upper interface Deletes the selected layer with upper interface layer.
9. Delete with lower interface Deletes the selected layer with lower interface layer.
Right clicking on mask go_rf displays the following:
1. Edit Masks edit dialog.
2. Unmap Unmaps the mask from the respective layer.
3. Delete Deletes the mask.

Using Edit Dialogs

Editing Units
This sets the global units of a substrate definition for distance, conductivity, resistivity, resistance,
permittivity and permeability.

Distance
um Micrometer
mm Millimeter
cm Centimeter
meter Meter
uinch Microinch
mil Mil (one thousand of an inch)
inch Inch

Starting the Substrate Editor from RFDE 3-5


Substrate File Definitions

Conductivity
Siemens/m Siemens per meter
Siemens/um Siemens per micrometer
Resistivity
Ohm.cm Ohm centimeter
Resistance
Ohm/SQ Ohm per square
Permittivity
Relative to vacuum
Permeability
Relative to vacuum

Editing Parameters
Parameters can be defined for the thickness of any layer or the expansion of any
expand-type-operation. Every parameter defines a name and floating type value. After defining a
parameter, you can reference it using its name.

3-6 Starting the Substrate Editor from RFDE


New parameter Adds new parameter.
Clone (Right clicking any parameter) Clones a parameter with respect to the value.
Delete (Right clicking any parameter) Deletes a parameter.

Editing Materials
This dialog can be used to create a material database, which can be referenced while specifying
material of substrate layers and masks.
Air and Perfect-conductor are present by default and cannot be modified or deleted.

You can choose from 4 operations property Types:


1. Drill Used for creating vias in substrate layers.
2. Sheet Used for creating an object with zero thickness (thin conductor).
3. Expand Used for creating a thick object i.e. for modeling conductors with finite thickness.
This feature automatically expands the mask of a conductor with finite thickness in the
direction orthogonal to the layered medium, using the specified thickness of this conductor.
This increases the thickness of the substrate layer.
You must specify the direction and expansion value:

Starting the Substrate Editor from RFDE 3-7


Substrate File Definitions

Direction It is either up or down. If defined as up, the thickness of the layer above
increase, if defined as down, the thickness of the layer below increase.
Expansion value You can either choose any predefined parameter, or specify the
expansion value.
4. Wall Used to specify boxes and waveguides (i.e., specifying substrate boundaries in the
horizontal direction). A box enables you to set boundaries on four sides of the substrate. A
waveguide enables you to set boundaries on two sides.
New operation Adds a new operation.
Clone (Right clicking any operation) Clones an operation with respect to the properties.
Delete (Right clicking any operation) Deletes an operation.

Editing Stack
The stack of substrate layers, interface layers and open/covered (boundary) layers is defined here.
Substrate layer This layer has two properties, material and thickness. Any material from the
materials database can be referenced. You can also add a new material as by selecting the New
button. For thickness, you can either choose a predefined parameter, or specify the value of the
thickness.
Boundary layer (TOP and BOTTOM) Boundary can either be covered (e.g., grounded bottom
layer) or open (e.g., air as top layer). For both, you must specify the material.
Interface layer This doesn't have any property except its name.

3-8 Starting the Substrate Editor from RFDE


New Layer Depending upon the selected layer, it inserts one interface and one substrate layer.
Clone and insert above (Right clicking substrate layer) Clones the selected substrate layer and
inserts above it.
Clone and insert below (Right clicking substrate layer) Clones the selected substrate layer and
inserts below it.
Delete with upper interface (Right clicking substrate layer) Deletes the selected substrate layer
with upper interface.
Delete with lower interface (Right clicking substrate layer) Deletes the selected substrate layer
with lower interface.
Up/Down buttons You can move substrate and interface layer by using the up/down arrow
buttons.

Editing Masks
The masks database is created here. Each mask can be mapped to a layout layer (containing the
geometries). Also, a mask should be mapped to a stack layer (interface/substrate layers). The result

Starting the Substrate Editor from RFDE 3-9


Substrate File Definitions

(vias, thin/thick conductor layer and boxes/waveguides) depends upon the type of operation
assigned to the mask.

New Mask Creates a new mask.


Clone (right-clicking a mask) Clones the selected mask with respect to mask properties (It
doesn't clone the Stack Layer Mapping).
Delete (right-clicking a mask) Deletes a mask
Number This is a unique auto-generated number for masks, it is used to link the layout shapes to
the substrate location for momentum, therefore in momentum flow, layout number and mask
number should be equal.
Precedence Overlap precedence specifies which layout layer has precedence over another if two
or more layout layers are assigned to the same interface or substrate layer and objects overlap.
Precedence is used by the mesh maker so that objects on the layer with the greatest precedence
number are meshed and any overlap with objects on layers with lesser numbers is logically
subtracted from the circuit. If you do not set the precedence, and there are overlapping objects, a
mesh will automatically and arbitrarily be created, with no errors reported. For more information
on overlap precedence, refer to Overlap Precedence on page 3-13.

3-10 Starting the Substrate Editor from RFDE


Negative Check this option if you want to treat the corresponding layout layer as a cut-out region
(e.g., slot). You can map only one type (either all positive or negative) of masks to an interface
layer.
Auto-create from layers list This option eases the process of adding masks and mapping to layout
layers. It adds masks corresponding to all the layout layers in the layer list using the name and
number of layers. If there are no layout-layers in the database, it asks for the location of layout file
and then creates the corresponding masks.
Layout layer mapping
There are two methods for mapping a layout layer to a mask:
1. Selecting the Use-mask-name-and-number option. By selecting this option the name and
number of the mask will be the same as the name and number of layout layer.
2. Deselecting the Use-mask-name-and-number option and selecting the layout-layer to be
mapped. Doing this enables you to import the layout layers using the import option. You can
also add new layout layers to the layout-layers database using the New button.

Note Adding a new layout layer doesnt add a new layer in the layout.

Stack layer mapping


You need to map a mask to an interface or a substrate layer. Depending upon the type of operation
of mask; mapping to an interface layer results in thin or thick conductor layers, and mapping to a
substrate layer results in vias.
If the mask operation is of type Sheet or Expand, you can only map that mask to an interface layer
to create thin or thick conductors respectively.
If the mask operation is of type Drill, it can only be mapped to substrate layers. This results in vias.
A mask having an operation of type Wall can't be mapped to any layer. Having a mask of type Wall
results in a box or waveguide.

Creating a New Substrate File Using a Text Editor


Momentum also uses an ASCII text file for the description of the substrate definition, which
includes the layer stack definition with the definition of the dielectric layers, the layer map
definition where the layout layers are mapped to the substrate definition as well as the
specification of the losses in the metallization.

Creating a New Substrate File Using a Text Editor 3-11


Substrate File Definitions

The ASCII substrate file (with extension .tch) is Momentum specific.


The following dialog allows to specify the location of a Momentum substrate file:

The file can either be directly referenced by specifying the location of the file in the top window.
You can Browse, Edit or Create a new substrate file using your default text editor.
Alternatively, you can set up your Cadence Tech file with a variable that points to a valid
Momentum substrate file. This variable should be setup in the control class of the tech file either
manually or using the CIW.
To set this variable up using the CIW, do the following:
1. In the CIW choose Tools > Technology File Master...
2. Select Edit Rules.
3. Choose the Technology Library you prefer (i.e., eesofDemoKit)
4. In the classes pane, double click Control.
5. This opens a dialog that enables you to specify control variables.
6. Add the following var:
Name: rfdeMomentumSubstrateFileLocation
Value Type: ILLIST
Value: ~/momInt/subst.tch (Note: include quotes)
Once you setup your techfile with a reference to the subst file, the application will use this
reference unless you over-ride the reference with the alternate file checkbox mechanism.

3-12 Creating a New Substrate File Using a Text Editor


Note The asci substrate file used in RFDE and a momentum project in ADS
(<adsProject>/mom_dsn/<layout>/proj.tch file) are identical, if the layer numbers are equal. For
more information on exporting an ADS substrate file for use in RFDE, refer to Exporting the
Momentum Substrate in Chapter 13 of the ADS Momentum manual.

Overlap Precedence
Overlap precedence, which is defined in the .tch and .ltd files, specifies which layout layer has
precedence over another if two or more layout layers are assigned to the same metallization layer
and objects on the layers overlap. Precedence is used by the mesh maker so that objects on the
layer with the greatest precedence number are meshed and any overlap with objects on layers with
lesser numbers is logically subtracted from the circuit. If you do not set the precedence, and there
are overlapping objects, a mesh will automatically and arbitrarily be created, with no errors
reported. Resistive layers generated from schematics are automatically set to the highest
precedence.

Precedence = 1 Precedence = 2

Overlap removed, geometry of object on top layer is altered

In some cases, you may be designing with an intentional overlap because of manufacturing layout
guidelines. In this case, assign a precedence number to the layout layers that overlap with
precedence order in reverse numerical order (largest to smallest). The system will draw the
boundary at the edge of the higher numbered layer without returning an error.

Note Precedence affects only how the mesh is created, it does not affect or alter the layout layers
in your design. Precedence shapes on the mask with the highest precedence are kept when merging
overlap with shapes on a mask with a lower precedence if they are on the same substrate level.

Overlap Precedence 3-13


Substrate File Definitions

The Substrate Green Function Database


When it is necessary to calculate or access the substrate green function database file (sgfdb file)
Momentum looks for it in the 3 locations listed below, in the order shown:
the supplied directory
the site directory
the user directory
If the sgfdb file is present in one of these directories and it covers the requested frequency range,
Momentum uses it. If it is not, Momentum attempts to calculate a new substrate green function
database file and place it in the substrates subdirectory of the site directory (if the site directory is
not write protected). If the site directory is write protected and the user directory is not, it stores the
database in the substrates subdirectory of the user directory. If both directories are write protected
Momentum exits and displays an error.
To set the supplied-site-user directories Momentum provides the adsMom environment variables:
suppliedGFdatabase (default = {$HPEESOF_DIR}/momentum/lib)
siteGFdatabase (default = {$HOME})
localGFdatabase (default = .)

To modify these values, add for instance the following to the local .cdsenv file
adsMom.envOpts siteGFdatabase string "{$HPEESOF_DIR}/custom/momentum/lib"
adsMom.envOpts localGFdatabase string "{$HOME}"

Note The directory referenced by the variables must be a valid directory. The database
generation program creates the substrates directory in it when this one does not exist.

Tech File Format


The formal definitions:
`a|b Must select one (a or b).
[ ] Optional.
... May repeat.
() Group
<x> User defined value.

UNITS

3-14 The Substrate Green Function Database


DISTANCE = `UM | MM | CM | METRE | UINCH | MIL | INCH
CONDUCTIVITY = SIEMENS/M | SIEMENS/UM
[RESISTIVITY = OHM.CM]
[RESISTANCE = OHM/SQ]
[PERMITTIVITY = RELATIVETOVACUUM]
[PERMEABILITY = RELATIVETOVACUUM]
END_UNITS

BEGIN_STACK

TOP `(OPEN PERMITTIVITY = <permittivity>


[`LOSSTANGENT = <losstangent>
| RESISTIVITY = <resistivity>
|IMAG_PERMITTIVITY = <j.permittivity>']
[PERMEABILITY = <permeability> ]
[IMAG_PERMEABILITY = <j.permeability>] )
| (COVERED [`RESISTANCE = <resistance>
[IMAG_RESISTANCE = <j.resistance>]
| CONDUCTIVITY = <conductivity>
[IMAG_CONDUCTIVITY = <j.conductivity>]
[THICKNESS = <thickness>]'])'

METAL `ABSENT
|GROUND
|STRIP_MASK = {<maskNr1> [<maskNrX>]...} '
[`RESISTANCE = <resistance>
[IMAG_RESISTANCE = <j.resistance>]
|CONDUCTIVITY = <conductivity>
[IMAG_CONDUCTIVITY = <j.conductivity>]
[THICKNESS = <thickness>]

DIELECTRIC [VIA_MASK = {<maskNr1>[<maskNrX>]...}]


HEIGHT = <height>
PERMITTIVITY = <permittivity>
[`LOSSTANGENT = <losstangent>]
|RESISTIVITY = <resistivity>
|IMAG_PERMITTIVITY = <j.permittivity>']
[PERMEABILITY = <permeability>]
[IMAG_PERMEABILITY = <j.permeability>]
...

BOTTOM `(OPEN PERMITTIVITY = <permittivity>


[`LOSSTANGENT = <losstangent>
|RESISTIVITY = <resistivity>
|IMAG_PERMITTIVITY = <j.permittivity>']
[PERMEABILITY = <permeability>]
[IMAG_PERMEABILITY = <j.permeability>])

|(COVERED [`RESISTANCE = <resistance>


[IMAG_RESISTANCE = <j.resistance>]
|CONDUCTIVITY = <conductivity>
[IMAG_CONDUCTIVITY = <j.conductivity>]
[THICKNESS = <thickness>]'])'
END_STACK
[BEGIN_MASK
(MASK <maskNr> [PRECEDENCE = <precedence>]
[`RESISTANCE = <resistance>
[IMAG_RESISTANCE = <j.resistance>]
|CONDUCTIVITY = <conductivity>
[IMAG_CONDUCTIVITY = <j.conductivity>]']

Tech File Format 3-15


Substrate File Definitions

[THICKNESS = <thickness>]
...
END_MASK]

Note The dielectric heights between metal layers should be equal to the distance from the top of
one metal layer to the bottom of the next metal layer above it.

Note It is better to use conductivity than resistance when specifying metal mask layers. This is
because with resistance, the loss is constant, so variation with frequency due to skin effect is not
included, leading to much less accurate results.

Note The mask number <maskNr> referenced in the Momentum Tech file is the same as the
number of the VLE layer in Cadence Virtuoso.

To find this number in Cadence Virtuoso, select the Momentum window and type
rfdeMom_dumpTechLayers( ) in the CIW. This command lists all the layers in the tech file and
their numbers.

3-16 Tech File Format


General Tech File Example
UNITS
DISTANCE = M
RESISTANCE = OHM/SQ
CONDUCTIVITY = SIEMENS/M
RESISTIVITY = OHM.CM
PERMEABILITY = RELATIVETOVACUUM
PERMITTIVITY = RELATIVETOVACUUM
END_UNITS
BEGIN_STACK
TOP OPEN PERMITTIVITY = 1 PERMEABILITY = 1
METAL STRIP_MASK = {8}
DIELECTRIC VIA_MASK = {7} HEIGHT = 1.0e-06 PERMITTIVITY = 3.9 PERMEABILITY = 1
METAL STRIP_MASK = {6}
DIELECTRIC VIA_MASK = {5} HEIGHT = 1.55e-06 PERMITTIVITY = 3.9 PERMEABILITY = 1
METAL STRIP_MASK = {4}
DIELECTRIC HEIGHT = 1.7e-06 PERMITTIVITY = 3.9 PERMEABILITY = 1
METAL ABSENT
DIELECTRIC HEIGHT = 0.0006 PERMITTIVITY = 11.9 PERMEABILITY = 1 RESISTIVITY = 12.5
BOTTOM COVERED RESISTANCE = 0
END_STACK
BEGIN_MASK
MASK 4 PRECEDENCE = 1 CONDUCTIVITY = 2.7e+07 THICKNESS = 1e-06
MASK 6 PRECEDENCE = 0 CONDUCTIVITY = 2.7e+07 THICKNESS = 1e-06
MASK 8 PRECEDENCE = 0 CONDUCTIVITY = 2.7e+07 THICKNESS = 2e-06
MASK 5 PRECEDENCE = 0 RESISTANCE = 0
MASK 7 PRECEDENCE = 0 RESISTANCE = 0
END_MASK

{8} Epsr=1

{6} {7} Epsr=3.9


1.0 um

Epsr=3.9
1.55 um {4} {5}

Epsr=3.9
1.7 um

Epsr=11.9
p=12.5 cm

600 um

General Tech File Example 3-17


Substrate File Definitions

GaAs Tech File Example


UNITS
DISTANCE = M
RESISTANCE = OHM/SQ
CONDUCTIVITY = SIEMENS/M
RESISTIVITY = OHM.CM
PERMEABILITY = RELATIVETOVACUUM
PERMITTIVITY = RELATIVETOVACUUM
END_UNITS
BEGIN_STACK
TOP OPEN PERMITTIVITY = 1 PERMEABILITY = 1
METAL ABSENT
DIELECTRIC HEIGHT = 1e-07 PERMITTIVITY = 5 PERMEABILITY = 1
METAL STRIP_MASK = {1}
DIELECTRIC VIA_MASK = {2} HEIGHT = 0.0001 PERMITTIVITY = 12.9 LOSSTANGENT = 0.001 PERMEABILITY = 1
BOTTOM COVERED RESISTANCE = 0
END_STACK
BEGIN_MASK
MASK 1 PRECEDENCE = 0 CONDUCTIVITY = 3e+07 THICKNESS = 1e-06
MASK 2 PRECEDENCE = 0 CONDUCTIVITY = 3e+07 THICKNESS = 1e-07
END_MASK

Epsr=1

0.1 um {1} Epsr=5

{2}
Epsr=12.9
100 um tand=0.001

3-18 GaAs Tech File Example


Si Tech File Example
UNITS
DISTANCE = M
RESISTANCE = OHM/SQ
CONDUCTIVITY = SIEMENS/M
RESISTIVITY = OHM.CM
PERMEABILITY = RELATIVETOVACUUM
PERMITTIVITY = RELATIVETOVACUUM
END_UNITS
BEGIN_STACK
TOP OPEN PERMITTIVITY = 1 PERMEABILITY = 1
METAL STRIP_MASK = {2}
DIELECTRIC HEIGHT = 2e-06 PERMITTIVITY = 3.9 PERMEABILITY = 1
METAL STRIP_MASK = {1}
DIELECTRIC HEIGHT = 3e-06 PERMITTIVITY = 3.9 PERMEABILITY = 1
METAL ABSENT
DIELECTRIC HEIGHT = 0.00075 PERMITTIVITY = 11.9 RESISTIVITY = 10 PERMEABILITY = 1
BOTTOM OPEN
END_STACK
BEGIN_MASK
MASK 1 PRECEDENCE = 1 CONDUCTIVITY = 3e+07 THICKNESS = 1e-06
MASK 2 PRECEDENCE = 0 CONDUCTIVITY = 3e+07 THICKNESS = 2e-06
END_MASK

Epsr=1
{2}

Epsr=3.9
2.0 um {1}

Epsr=3.9
3.0 um

Epsr=11.9
p=10 cm
750 um

Si Tech File Example 3-19


Substrate File Definitions

3-20 Si Tech File Example


Chapter 4: Simulation Frequencies

Setting Up a Frequency Plan


Multiple frequency plans can be setup for a simulation. Each plan enables you to specify a solution
to be found for either a single frequency point or over a specific frequency range. You can also
select one of several sweep types for this plan. This collection of frequency plans will be run as a
single simulation.
To set up a frequency plan select Frequencies > Add... from the Momentum-Virtuoso Main
window.

Setting Up a Frequency Plan 4-1


Simulation Frequencies

This brings up the Add Frequency Plan dialog shown in the following illustration.

This dialog box allows you to choose between a start and stop frequency range or center-span,
sweep-type, step size or number of steps and the maximum samples limit. When applied, it adds a
frequency plan to the frequency table and updates the application data. See Sweep Types on
page 4-4.

4-2 Setting Up a Frequency Plan


Selecting a frequency plan in the Momentum-Virtuoso Main window enables several other options
under Frequencies.

Edit... provides same the dialog selections as Add..., enabling you to make adjustments to
your plan.
Delete brings up a dialog asking you to confirm the deletion. If confirmed the highlighted
frequency entry will be deleted from the table and the associated data to be deleted from the
application state.
Enable causes the highlighted frequencies in the frequency table to be enabled, and the
associated data in the application state to be modified.
Disable causes the highlighted frequencies in the frequency table to be disabled, and the
associated data in the application state to be modified.

Setting Up a Frequency Plan 4-3


Simulation Frequencies

Sweep Types
There are four different sweep types:
Adaptive
Logarithmic
Linear
Single point
Adaptive is the preferred sweep type. It uses a fast, highly accurate method of comparing
sampled S-parameter data points to a rational fitting model. The value entered in the Sample
Points Limit field is the maximum number of samples used in an attempt to achieve
convergence. The solutions from the final attempt will be saved. If convergence is achieved
using fewer samples, the solutions are saved and the simulation will end. For more
information about this sweep type, refer to About Adaptive Frequency Sampling on
page 4-4. Only one adaptive sweep can be specified. When using an AFS sweep, an
additional dataset is generated with the suffix _a. This dataset contains the smooth
S-parameter results obtained with the rational fitting model.
Logarithmic simulates over a frequency range, selecting the frequency points to be
simulated in logarithmic increments. Type the start and the stop frequencies in the Start and
Stop fields, and select frequency units for each. Enter the number of frequency points to be
simulated or the number of the Points/Decade.
Linear simulates over a frequency range, selecting the frequency points to be simulated in
linear increments based on the step size or the number of steps you specify. Type the start
and the stop frequencies in the Start and Stop fields, and select frequency units for each.
Single simulates at a single frequency point. Type the value in the Frequency field and select
the units.

About Adaptive Frequency Sampling


Adaptive Frequency Sampling (AFS) is a method of comparing sampled S-parameter data points
to a rational fitting model. In order to accurately represent the spectral response of the circuit, the
AFS feature in Momentum takes a minimal number of frequency samples and then applies its
algorithm to the sampled data. Wherever the S-parameters vary the most, samples are taken. When
the fitting model and the sampled data converge, the AFS algorithm is then complete and the
S-parameter data is written into the dataset. In this way, the maximum amount of information can
be obtained from the minimum amount of sampling.

4-4 About Adaptive Frequency Sampling


By using the AFS feature, you can greatly reduce the amount of time required to simulate circuits
that have resonances or other sharp responses that are difficult to detect. Data that would have
remained hidden using other types of analyses can now be obtained.
Even in the case of a low-pass filter, AFS can solve for the S-parameters faster and more
accurately than discrete data sampling. For example, if you were measuring a 2 GHz low-pass
filter, you would enable the AFS feature and then enter a start frequency of 500 MHz and a stop
frequency of 4 GHz. AFS would then sample the two end points, construct the fitting model, and
then sample points in between as needed. As this occurs, the model is automatically refined and
appropriate sample points are taken until the model and the sampled data converge. When
convergence is reached, both sampled data and the AFS data are written into two separate datasets
and can be presented as S-parameter traces on a plot. If the max sample size is reached before
converging, the partial results will be saved and can be reused by simulating the circuit again.

Note AFS data must converge in order to be accurate. Be sure the data is converged by checking
the message in the Momentum output log. If data is not converged, you will see inaccurate results.

AFS Convergence
Convergence is determined by how close the fitting model is to the sampled data. Convergence is
achieved when the sampled points are accurate to -75 dB, and the overall accuracy is -60 dB.
When AFS is used, be sure that the sampled data has converged with the fitting model. This can be
checked by the messages in the output log. If converged, the message will be that AFS is complete.
If not converged, a warning will appear. Examples of such warning messages are:
Maximum number of adaptive frequency samples reached!

Fitting models not (completely) converged.

Consider:- increasing maximum number of sample points.


- activating the reuse option.
If you encounter errors, decrease the frequency range of the frequency plan and increase the
number of sample points. Theoretically, some circuits may require several dozen points to
converge if they are electrically long. This is because the AFS program samples the data at about
each 60 degree rotation, in the Smith chart of the S-parameter with the most phase variation.

About Adaptive Frequency Sampling 4-5


Simulation Frequencies

Note If you simulation does not converge, to assess the quality of the simulation you can view
convergence results in the Data Display. For more information, refer to Viewing Convergence
Data on page 7-5.

Setting Sample Points


If you are using the Adaptive sweep type in a simulation, you may want to select specific sample
points to be used in the AFS process. In general, this is not necessary (and is in fact, discouraged),
but there may be instances where it is beneficial. An application where this may be beneficial is
simulating a structure that has a distinct variation in response at some point over a frequency
range, such as a resonant structure. To set up the simulation:
1. Select the Single sweep type, enter either the value of the resonant frequency or a value near
it in the Frequency field, and add this to the frequency plan list.
2. Select the Adaptive sweep type, set up the plan, then add it to the list of frequency plans.
For this situation, the sample point aids the AFS process by identifying an area where there is
clearly a variation in the response of the circuit.
Applying extra sample points may be necessary for visualization calculations.
It is not beneficial to attempt to add sample points for other purposes, such as attempting to force
smoothing to occur at specific points, without taking into consideration the response at these
points. For example:
1. Selecting the Linear sweep type, adding sample points spread linearly across the frequency
range, and adding the frequency plan to the list.
2. Adding an Adaptive sweep type, selecting the same frequency range, and adding it to the
list.
For this situation, the sample points from the linear simulation will be included in the adaptive
simulation. This impedes the AFS process of selecting the optimal distribution of samples over the
frequency range, and this can produce poor simulation results.
To remedy this situation, either run the Adaptive sweep plan first or make sure that the frequency
ranges of the two plans do not overlap.

4-6 About Adaptive Frequency Sampling


Viewing AFS S-Parameters
When viewing the S-parameters in an AFS dataset, if you zoom in you may see small, unexpected
spurious ripples or oscillations, with an amplitude less than 0.0002. The amplitude of these
oscillations is always less than the AFS accuracy level, which is approximately -60 dB. Generally,
these ripples will only appear if the dynamic behavior of the S-parameters is limited, for example,
an S-parameter that is nearly 1 over the frequency range simulated. This is likely due to the
rational fitting model have too many degrees of freedom and being too complex for this situation.

About Adaptive Frequency Sampling 4-7


Simulation Frequencies

4-8 About Adaptive Frequency Sampling


Chapter 5: Ports

Cadence Pins and Momentum Ports


In this section, the difference between a Cadence pin, the standard Virtuoso pin object with all its
properties, and a Momentum port is explained.
In principle, pins are single-node connections to the circuit, meaning that they are a single
connection point of the circuit with the rest of the circuitry, allowing for either an incoming or
outgoing current. However, to make a true connection, you always need two connection points to
the circuit, one for the incoming current and for the outgoing current associated with the signal.
A Momentum port is always defined as a terminal with a positive and a negative reference node.
As a user you have the freedom to connect the positive and negative reference of the terminal to
one or more Cadence pins.
For instance, in the figure below, one Momentum port is connected to two Cadence pins in the
layout. One pin is its positive reference node and one pin is its negative reference node. This
example shows how a port can be defined for a differential line.

+ref

Port1

-ref

Even though every Momentum port by definition has a positive and negative node, you do not
always have to specify two or more Cadence pins for a Momentum port. When there is a
groundplane defined in the substrate, you can have an implicit definition of the negative reference
node, as indicated in the figure below.

+ref

-ref

Cadence Pins and Momentum Ports 5-1


Ports

In this case, only the positive reference of the Momentum port is connected to a Cadence pin, and
it is assumed that the negative reference has an implicit connection to the groundplane in the
substrate. If no groundplane is present, the implicit reference point is defined as the zero potential
at infinity.

Definition of Momentum Ports


Momentum ports are created using the Momentum specific port dialogs:
Auto-generate creates standard ports from existing Cadence pin instances and lists them
in the Ports section of the Simulation window.
Add... brings up the Add Port dialog box. Updates the application data when applied.
Edit... brings up a dialog box enabling you to edit the port highlighted in the Ports section
of the Simulation window.
Delete deletes the highlighted port.
Synchronize with Layout synchronizes pin information with the layout, and modifies
existing ports and calibration groups.

5-2 Definition of Momentum Ports


Prior to creating the Momentum ports, you need to define Cadence pins in the layout. To create the
pins, you need to use the standard Virtuoso functionality (i.e., use Create > Pin from within the
Virtuoso layout window).
Once a Momentum port is defined, its most relevant information port number, port name,
number of pins associated with the port, impedance (real and imaginary part), port type,
calibration group number and reference offset is shown in the main Momentum simulation
dialog.

Definition of Momentum Ports 5-3


Ports

The type of a port or a pin can be:


point
edge
mixed
not defined (blank)
A pins type depends on how it is defined in the Virtuoso layout. A pin is defined as an edge pin if
the Momentum location of the pin is at an edge of a shape in the layout. By default, the
Momentum location coordinates are equal to the pin coordinates which are the center coordinates
of the bounding box of the shape that defines the pin. The Momentum location coordinates can be
overwritten by the user using the Edit Reference Pin dialog.
An example of an edge pin is given below:

5-4 Definition of Momentum Ports


An example of a point pin is shown in the figure below:

In the Momentum port dialogs, a list of the available pins defined in the Cadence layout is created
when the Momentum application is launched. If a pin is added or altered after opening the port
dialogs, the pin list in the ports dialog can be updated using Port > Synchronize with Layout.

Note If a ports pins are all point, edge, or undefined, its type is point, edge, or undefined. If the
ports pins have different types, then the type is mixed.

Definition of Momentum Ports 5-5


Ports

Automatically Generating Ports


For most applications, you will be able to use standard ports. These are ports with the most
common properties. When using the Ports > Auto-generate menu, all the pins that are in the port
dialog are used to define ports according to the implicit port definition. More specifically, one
Momentum port is created for each of the pins in the layout, where the pin is connected to the
positive reference of the port. The negative reference is defined implicitly. The port name will be
the same as the name of the pin.
The Auto-generate menu allows you to quickly define the ports for your layout. The port
definitions can be changed as needed using the advanced Momentum port dialogs.
The standard port properties are:
uncalibrated
real impedance is 50 Ohms, imaginary impedance is 0 Ohms
no offset in reference planes

Creating Advanced Port Types & Changing Port


Properties
Through the Ports > Add and Ports > Edit dialogs, the Momentum port properties can be set or
modified. These menus can be used to create more advanced port types like differential ports or
ground reference ports. They also allow changes to a ports default properties like impedance and
calibration.
The main ports dialog is shown below.

By default, only the port name and the impedance fields are visible in this dialog. Selecting the
Show Advanced Port Options button will result in the following dialog:

5-6 Automatically Generating Ports


Advanced Port Options include reference pins, and fields needed for calibration.

Reference pins
A list of layout pins is displayed in the port dialog for viewing purposes only. The pin name, type
(point, edge, mixed or nothing), pin group and status are displayed. The status field indicates
whether the pin has already been used in a Momentum port definition. A pin can only be used in
one Momentum port definition at a time. The pin list can be synchronized from the layout using
the Synchronize with Layout button, which will refresh the pin list and alter any port or
calibration group definitions when a pin is added or altered in the layout.

Creating Advanced Port Types & Changing Port Properties 5-7


Ports

Note If the status of a layout pin is USED you will not be able to add it. You first have to make it
free either by removing it from the Port Reference Pin List of the port to which it belongs or by
deleting the port to which it belongs.

When a given pin is defined as a Momentum ports positive or negative reference by using the Pos
-> or Neg -> buttons, it appears in the list of Port Reference Pins. The polarity of the pin (positive
or negative) is then indicated.
The Momentum location of the pin can be adjusted with the Edit Reference Pin command. The
Momentum location is the point in the layout that Momentum will use to define the pins x:y
location and group. If the Momentum location of a pin is on the edge of a metallization, the pin is
defined as an edge pin, and can be used to define a calibrated port. If the Momentum location of a
pin is inside a shape, its type is point. If the pin exists on several layers and has different types on
those layers, its overall type is mixed. If the Momentum location of a pin is not inside a shape or
on the edge of metallization, the pins type is not defined (blank).
The default value for the Momentum location is the center point of the bounding box used in the
layout to define the pin. The Momentum location can be modified so that it coincides with the
edge of the metallization. This modification forces the pin type to edge.

5-8 Creating Advanced Port Types & Changing Port Properties


Note In Cadence it is possible to specify pins (symbolic pins) that are defined on more than one
layer. Momentum cannot handle these pins and an error will be given when such a pin is
encountered in the layout.

Calibration

Note Only ports that are defined using edge pins can be calibrated. A port defined with multiple
pins can only be calibrated if all the pins are edge pins and if all the edges of these pins are in the
same plane (i.e., they are in the same calibration group). For more information on calibration refer
to Calibration and De-embedding of the S-Parameters on page A-7.

To activate calibration for a given port, check the Calibration toggle in the Advanced Port
Options. When calibration is activated for a port, an offset can be specified. By default, the offset is
'0' which means that the reference plane for the S-parameters calculated by Momentum coincides
with the edge of the port. The offset can be edited in the Edit Calibration Group dialog, which is
opened by selecting the Edit button.

Creating Advanced Port Types & Changing Port Properties 5-9


Ports

A positive offset specification means that the reference plane is shifted inward to the structure. A
negative offset specification means that the reference plane is shifted outward from the structure.

S-parameters will be S-parameters will be calculated as if


calculated based on the p1 and p2 were positioned at the
positions of p1 and p2 reference offsets

p1 p2
p1 p2

no reference offset reference offsets


applied to p1 and p2

The offset is applied to every pin in the calibration group.

Note Multiple edge pins whose edges are defined in the same plane are grouped automatically
into the same pin group. This is indicated by the group number in the pin list. For grouped pins that
are calibrated, the calibration lines that are added will be treated simultaneously in the simulations.

Note If all of a ports reference pins are in the same group, the ports calibration group is equal to
the pins group. Otherwise, the ports calibration group is undefined. If all of the ports pins belong
to the same calibration group, a port can be placed in a new calibration group and all of its
reference pins will use that new groups offset.

Adding a new calibration group


There may be an occasion when you want to calibrate a port using a different offset than its
reference pins offset (i.e. the reference pins are a subset of the pins in their calibration group).
Such an occasion requires the port to use a different calibration group than its pins. To create a new
calibration group, select the last choice in the Group field. The last choice represents a new,
unused calibration group. Selecting the Edit button will open the New Calibration Group dialog,
where you may set the groups offset. A port may use its reference pins calibration group, a new

5-10 Creating Advanced Port Types & Changing Port Properties


calibration group, or any other calibration group containing pins in the same pin group as the ports
reference pins.

Differential Ports
Differential ports should be used in situations where an electric field is likely to build
up between two ports (odd modes propagate). This can occur when:
The two ports are close together
There is no ground plane in the circuit or the ground plane is relatively far
away
One port behaves (to a degree) like a ground to the other port, and polarity
between the ports is developed.
The ports are connected to objects that are on strip metallization layers.
The electric field that builds up between the two ports will have an effect on the
circuit that should be taken into account during a simulation. To do this, use
differential ports.
Differential ports have the following properties:
They can be applied to objects on strip layers only.
They are assigned in pairs, and each pair is assigned a single port number.
Each of the two ports is excited with the same absolute potential, but with the
opposite polarity. The voltages are opposite (180 degrees out of phase). The
currents are equal but opposite in direction when the ports are on two
symmetrical lines, and the current direction is approximated for other
configurations.
The two ports must be on the same reference plane.

Creating Advanced Port Types & Changing Port Properties 5-11


Ports

strip port 1 + An electric field will likely build up


between these two lines. Assign the
ports as differential ports. They will be
treated as one port and assigned the
same port number.
port 1 _
strip

port port
3 3
+ _

Assign as differential ports. They will be treated


as one port and assigned the same port number.

Defining Differential Ports in RFDE


The following example uses a simple coupled line and four Cadence pins:
in_pos
in_neg
out_pos
out_neg

5-12 Creating Advanced Port Types & Changing Port Properties


To define a differential port in RFDE:
1. In the Momentum-Virtuoso window select Port > Add...

2. Enter a name for the input port into the Name field at the top of the Add Port dialog box, for
this example, in_port was used.

Note Since a differential port consists of two Cadence pins, the port name must be
explicitly chosen. It is a good practice to select a port name that is different than the
Cadence pin name.

Creating Advanced Port Types & Changing Port Properties 5-13


Ports

3. In the Pins field, select in_pos and press Pos - > to bring the pin into the Port Reference
Pins box.
4. In the Pins field, select in_neg and press Neg - > to bring the pin into the Port Reference
Pins box.

5-14 Creating Advanced Port Types & Changing Port Properties


5. This completes creation of input port. Click OK to dismiss the dialog box.
This new port should now be visable in the Ports section of the Momentum-Virtuoso dialog.

The number of pins listed for in_port is 2, representing both the in_pos and in_neg Cadence
pins.

Creating Advanced Port Types & Changing Port Properties 5-15


Ports

6. Follow the same procedure to create a second Momentum Port, out_port.

5-16 Creating Advanced Port Types & Changing Port Properties


7. Once the Port Reference Pins have been added, click OK to dismiss the dialog
and create the port.

The second port should now be visable in the Ports section of the Momentum-Virtuoso dialog.

Note The Add Port or Edit Port dialogs can only be used to specify one port at a time; you
cannot specify multiple ports in one session.

Creating Advanced Port Types & Changing Port Properties 5-17


Ports

5-18 Creating Advanced Port Types & Changing Port Properties


Chapter 6: Substrate Mesh & Simulation
Options

Introduction
The Momentum Simulation options can be set using the Simulation > Options dialog
from the Momentum simulation dialog.
This dialog enables you to set:
The Momentum Simulation options
Global Substrate and Mesh Options
These option settings are valid for all layers, except for those layers where
specific option settings are specified
Per-layer Simulation, Substrate and Mesh Options
Option settings specific for a layer
If Per-layer options are set for a given layer, these settings have precedence over the
global settings.
The options per-layer setting can only be set for layers defined in the Momentum
substrate definition file (see Substrate File Definitions on page 3-1).
Top level menus:
OK accepts the changes made in this dialog and closes the dialog
Cancel cancels any changes made in the dialog since the last time the dialog
was opened
Defaults resets all the fields to its default values
Apply accepts the changes made in this dialog and keeps the dialog open
Help refers to the chapter on Simulation options

Introduction 6-1
Substrate Mesh & Simulation Options

Momentum Simulation Options

The following Momentum Simulation options can be set:


Momentum Simulation Mode
This allows switching between the RF and Microwave mode of Momentum.
Default is RF. This default is obtained from the adsMom .cdsenv file, the value
of the option named EngineMode is used. See Momentum Basics on page 1-1
for more details on the difference of these two simulation models.
Stop After Calculating
A choice between three settings can be made, Substrate, Mesh, and
S-Parameters. The default is S-Parameters. This default is obtained from the
adsMom .cdsenv file, the value of the option named EngineType is used.
Include TL Calculation
An on or off toggle. Default is off. This dialog field is editable only when
the value for the option Momentum Simulation Mode is Microwave.
Current Model Type
The Thick conductor selection has two options:
2D-distributed Horizontal side currents turned off
3D-distributed Horizontal side currents turned on

6-2 Introduction
The Via selection has three options:
2D-distributed Horizontal side currents are turned off
3D-distributed Horizontal side currents are turned on
Lumped The via is replaced with a resistor and an inductor.
Re-use Results of the Last Simulation
This toggle (by default off) allows reusing frequency point simulation results
from previous Momentum simulations for the same structure. It should be
noted however that this should not be done if changes have been made to the
substrate or layout.
Matrix Solve Method

You can select the matrix solver used by Momentum during a simulation. There
are choices available when selecting a matrix solver:
auto-select
direct dense
iterative dense
direct compressed matrix solver
Auto-select
When choosing auto-select, Momentum will automatically choose the matrix
solver most appropriate for the given problem size at hand. This is the default
matrix solver selection option.
Direct Dense
When selecting direct dense, Momentum will choose the direct dense matrix
solver to be used in the simulation. This implies that the matrix is stored in a
dense matrix format (requiring order N^2 memory) and solved using a direct
matrix factorization technique (requiring order N^3 computer time). The direct
dense matrix solver guarantees to always provide a solution using a
predetermined number of operations. The main disadvantage is that the

Introduction 6-3
Substrate Mesh & Simulation Options

computer time it requires scales qubic with the matrix size N, yielding larger
simulation times for large problem sizes.
Iterative Dense
When selecting iterative dense, Momentum will choose the iterative dense
matrix solver to be used in the simulation. This implies that the matrix is stored
in a dense matrix format (requiring order N^2 memory) and solved using an
iterative matrix solve technology (requiring order N^2 computer time). The
computer time scales quadratic with the matrix size N, yielding faster
simulation times for large problem sizes when compared to the direct dense
matrix solver. The main disadvantage is that the iterative solver does not
guarantee to converge fast. The iterative solver will monitor its convergence
rate and will automatically switch to the direct dense matrix solver when it
observes that the convergence stagnates or the convergence rate is too slow.
Direct Compressed
When selecting direct compressed, Momentum will choose the direct
compressed matrix solver to be used in the simulation. This implies that the
matrix is stored in a compressed matrix format (requiring order NlogN
memory) and solved using a direct compressed matrix factorization technique
(requiring order (NlogN)^1.5 computer time). The direct compressed matrix
solver guarantees to always provide a solution using a predetermined number
of operations. Moreover, the computer time it requires scales linear-logarithmic
with the matrix size N, making this the preferred matrix solver for very large
problem sizes.
For more information on matrix refer to About the Momentum Solver on
page A-17
Dataset Name Use Cell Name
If this toggle is activated (default is on), you can not specify the name of the
dataset output file. The cell name is used.
The dataset name field is only editable when the value for the option Use Cell
Name is <off>. It enables you to specify the name of the dataset output file.

6-4 Introduction
Global Substrate and Mesh Options

The following Substrate items can be specified in the Global Substrate and Mesh
Options menu:
3-D Metal Expansion
Conductors with finite thickness can be modeled in Momentum using the 3D
metal expansion feature. This feature will automatically expand the mask of a
conductor with finite thickness in the direction orthogonal to the layered
medium, using the specified thickness of this conductor.
If No is specified, the metal is treated as a zero-thickness sheet in the
simulation. The automated 3D expansion is activated by selecting either the 3D
metal 'up' or 'down' expansion. In both cases, an extra dielectric layer is
included in the internal Momentum substrate model. This is done for each
metal layer that is expanded. The thickness values of the dielectric layers in

Introduction 6-5
Substrate Mesh & Simulation Options

between the metal layers are not changed, which will preserve the capacitance
value between two conductors lying on top of each other in the substrates.

Note The thickness of the conductor is specified in the substrate definition (see
substrate file format).

Simulations with automatic expansion require more simulation time and


memory, but result in more accurate simulation results. Typically, when the
width/height aspect ratio is smaller than a factor of 5, the effect of accounting
for the finite thickness of the conductors will need to be allowed for in
Momentum simulations.
The following figure illustrates the internal substrate model when using an
up and down expansion for a conductor. In both cases, an extra dielectric
layer is inserted (indicated with [new] in the figure), which in the case of an
up expansion has the dielectric properties of the layer above the metal layer.
In the case of a 'down' expansion, the new layer has the material properties of
the layer below the metal layer.

6-6 Introduction

up expansion

down expansion

Note Extra internal metallization layers are automatically added in


Momentum to model the currents on all four sides of the finite thickness
conductor.

The following Mesh items can be specified in the Global Substrate and Mesh Options
menu:
Mesh Frequency
(Hz) A numeric value, the default is blank. This is the frequency at which the
mesh is calculated. If no value is specified in the options dialog, the simulation
will use the highest frequency specified in the analysis set-up for Mesh
Frequency otherwise the specified value will be used.

Introduction 6-7
Substrate Mesh & Simulation Options

Mesh Density
(cells/wavelength) A numeric value, the default is 0. This default is obtained
from the adsMom .cdsenv file: the value of the option named
CellsPerWavelength is used. The mesh generator will try to generate a mesh
with at least CellsPerWavelength cells per wavelength at the Mesh frequency.
Arc Resolution
(deg) A numeric value, the default is 45. If the value entered is greater than 45,
the simulator will use a value of 45 for Arc Resolution during the analysis. The
arc resolution will determine the length of the arc facets (in degrees) for line
segment sequences recognized by the mesh generator as arcs, if replacing the
original faceting with the new one does not introduce layout errors.
TL Mesh
(cells/width) A numeric value, the default is blank. If a value is provided the
mesh generator will try to place cellsPerWidth cells in the cross section of every
shape it recognizes as a transmission line. If no value is defined, the mesher
uses the cellsPerWaveLength value to determine how many cell there will be
across a TL.
Edge Mesh Specification
None|Automatic|Specify Width. The default is None. If the specification is not
equal to None, the mesh generator will try to create an edge mesh along the
border of the structure. For the edge width you can use the Automatic option,
which uses heuristics to determine the edge width, or specify a width using the
Specify Width option. Simulations with edge mesh are more accurate but take
longer to complete and require more memory.
Edge Mesh Width
(meter) A numeric value, the default is blank. This dialog field is editable only
when the value for the option Edge Mesh Specification is Specify Width.
Layout Healing: Snap Nearby Points and Lines Togetheir
This feature enables you to automatically ignores undesirable small artifacts or
small gaps in the layout. This can improve the quality of the mesh. When
enabled, points and lines within the Snap Distance are combined. Note that if
the automatic setting is selected, a safe estimate will be used.

6-8 Introduction
Caution If you specify a snap distance, its value must be small compared to the
width of relevant layout features. Otherwise, these features will be ignored in
the mesh.

Note Whenever layout healing performs an actual layout change, a warning is


displayed in the Cadence CIW and the details of the change are written to the
mesh report. From the Results menu in the Momentum-Virtuoso menu bar
select, Mesh Report... to verify these changes.

Include Thin Layer Overlap


<on|off> Toggle. Default is on. To obtain accurate capacitance calculations
between thin layers, the mesh generator must ensure that meshes at the
boundary of the overlap are aligned. Simulations with thin layer overlap are
more accurate, but take longer to complete and require more memory.
Reduce Mesh
<on|off> Toggle. Default is on. To decrease the memory requirements and
increase the simulation speed this option will use heuristics to try and reduce
the mesh generated by the mesh generator. In doing so it might undo some of
the mesh settings that have been defined.
Convert Circular Vias to Squares
<on|off> Toggle. Default is off. To decrease the simulation time it is possible to
convert vias with a circular shape (defined as Ellipse) directly into squares
(inner square of the circle) when the Momentum layout is generated.

Caution Connectivity is not checked when performing this operation, so


unwanted open circuits or short circuits may occur. This is most likely to take
place when the viapads contain holes.

Introduction 6-9
Substrate Mesh & Simulation Options

Per-layer Simulation, Substrate and Mesh Options

Some of the settings that can be set using Global Simulation, Substrate and Mesh
options, can also be set specifically and independently for each of the layers defined
in the Momentum substrate. If you choose Global for any selection the global
setting will be used. The dialog entry can be made visible or invisible with the toggle
at the top of this part of the dialog.
Conductivity Model Type
The Thick conductor selection has two options:
2D-distributed Horizontal side currents turned off
3D-distributed Horizontal side currents turned on
The Via selection has three options:
2D-distributed Horizontal side currents are turned off
3D-distributed Horizontal side currents are turned on
Lumped The via is replaced with a resistor and an inductor.
3-D Metal Expansion

6-10 Introduction
Use Global|No|Up|Down. Default is Use Global.
Mesh Density
Use Global|<numeric value>. Default is Use Global.
TL Mesh
Use Global|<numeric value> Default is Use Global
Edge Mesh Specification
Use Global|None|Automatic|Specify Width. Default is Use Global
Edge Mesh Width
<numeric value> Default is <blank>. This dialog field is editable only when the
value for the option Edge Mesh Specification is Specify Width.

Note The per-layer options use the same units as shown with the option name
in the Global Options section of the dialog.

Using Horizontal Side Currents


When selecting this feature no substrate database recalculation is required, by
taking advantage of new construction technology for the Green functions.
Visualization is available in post-processing by selecting Results > Currents...,
which can be used for both 3D mesh, as well as current visualization. For more
information about visualization in RFDE, refer to Starting Momentum
Visualization on page 10-1.

Introduction 6-11
Substrate Mesh & Simulation Options

Horizontal side
currents dominate

Figure 6-1. Thick conductor U-turn visualization with horizontal side currents

Note Because horizontal side currents were added to thick conductors in the
RFDE 2005A release the default settings for edge mesh and metal expansion
changed. Edge mesh is now by default None and thick metal expansion is now
by default Up. This configuration generates better results than edge mesh on
and metal expansion off. For the most accurate results you need them all on,
but then the simulation time and required resources can be much higher.
However for RF frequencies there is normally very little difference in the
results, with or without edge mesh if you enable horizontal side currents and
thick metal expansion.

When the Horizontal side current toggle is set, the horizontal current
components will be added on all conductors, which have been specified as
automatically expanded. This results in a modeling of the current as illustrated
on the following figure:

6-12 Introduction
Note The horizontal current components are not added on regular vias or
when users manually expand finite thickness conductors.

By default, the new horizontal side currents toggle is not set, for backward
compatibility reasons.
Different levels of granularity of the mesh on the side metallization are
possible:
One cell in the horizontal direction: in case edge mesh is turned off and no
Transmission Line Mesh specification is entered.

Note This is the advised setting in case the conductors are specified as
automatically expanded.

Multiple mesh cells in the horizontal direction: in case edge mesh is turned
off and Transmission Line Mesh specification is entered.
Edge mesh in the horizontal direction: in case the global edge mesh toggle is
turned on, an edge mesh is generated on all sides (top, bottom and both sides)
of the automatically expanded conductor. This is illustrated below:

Introduction 6-13
Substrate Mesh & Simulation Options

NOTE The simulation time is greatly increased when multiple mesh segments
are introduced on the side metallization.

6-14 Introduction
Chapter 7: Momentum Simulation
The simulation process combines the Greens functions that were calculated for the
substrate of a circuit, plus mesh information that was calculated for the circuit, and
solves for currents in the circuit. Using these current calculations, S-parameters are
calculated for the circuit.
Prior to running a simulation, the following criteria must be met:
A layout must be specified for the circuit
A substrate definition must be specified for the circuit
The circuit must include at least one port
A simulation frequency plan must be specified
If any one of the above criteria is not met, Momentum will report an error if you try to
run a simulation.
The Momentum planar solver uses information from the substrate database and the
mesh generator to perform the circuit simulation. The substrate calculations and
mesh may be computed prior to running the simulation to ensure they are valid. This
will reduce simulation time.
The steps for performing a simulation include:
Specifying and editing frequency plans
Defining the Momentum Ports
Select simulation options and a process mode
Specifying solution files
Electing to view data
Running the simulation

7-1
Momentum Simulation

Setting up and Running a Momentum Simulation


This section describes the steps necessary to perform a Momentum simulation using
RFDE.
The Simulation dropdown menu has the following selections:

Start Starts the simulation.


Stop Stops the simulation.
Options... Opens the options dialog, enabling you to select which processes to
use during a simulation.
Netlist The netlist function creates the files Momentum requires to run a
simulation in the directory that is reported in the CIW.
Output Log... Displays information from the last simulation performed for the
current cell.

Frequency Plans
You can set up multiple frequency plans for a simulation. For each plan, you can
specify that a solution be found for a single frequency point or over a frequency range.
You can also select one of several sweep types for a plan. This collection of frequency
plans will be run as a single simulation. For more information on setting up a
frequency plan refer to Setting Up a Frequency Plan on page 4-1.

Momentum Ports
If your layout contains Cadence pins, the easiest way to create Momentum Ports is to use the Ports
> Auto-generate menu item. For more information on defining Momentum Ports refer to
Definition of Momentum Ports on page 5-2.

7-2 Setting up and Running a Momentum Simulation


Selecting a Process Mode
To select which processes to use during a simulation choose Simulation > Options...
from the Momentum-Virtuoso window. This opens the Simulation Options dialog
shown in the following illustration.

For more information on Momentum simulation options refer to Momentum


Simulation Options on page 6-2.

Setting up and Running a Momentum Simulation 7-3


Momentum Simulation

Data Display Options

Select Results > Data Display Options... in the Agilent Momentum-Virtuoso window to
open the Data Display Options dialog box. This dialog enables you to set the following
options for plotting the Momentum results using the Data Display:
Toggling Open Data Display After Simulation on or off lets you active or
deactivate the automated creation of a data display window when a
Momentum simulation is completed.
Enabling Translate Results to PSF translates simulation out put to
parameter storage format (PSF), Cadences native data format.
Activating the Enable Automatic Plotting of S-parameters toggle creates the
default S-parameter plot on the data display window automatically when
Open Data Display After Simulation is selected.
Dataset Used for Automatic Plotting lets you select which dataset to use for
automatic plots. You can choose between the most recent dataset or you will
be prompted for which dataset to use.

Note This entry has no effect when the Data Display is opened after a simulation is
completed. In this case the most recent dataset will always be used.

7-4 Setting up and Running a Momentum Simulation


Reusing Simulation Data
To reduce the time required to complete the current simulation, you can use sampled
data from the previous simulation. This function is useful if you extend or shift the
frequency plan and resimulate, or if you want more samples near a resonance
frequency. If you change the circuit geometry, substrate, ports, or mesh parameters,
simulation data cannot be reused.

Caution Momentum does not verify that the design has not changed. Make sure that
only the frequency plan has changed before attempting to reuse data.

Viewing Results Automatically


Simulation data is saved in datasets, so you can view simulation results at your
convenience. If you choose to view results immediately after the simulation is
complete, enable Open data display when simulation completes. A data display
window containing default plot types or the data display template of your choice will
be automatically opened when the simulation is finished. S-parameters plotted on
Smith charts is the default.
If you are using the Adaptive sweep type for your simulation, the data from the
standard dataset is displayed. To switch to the adaptive data choose the <name>_a
dataset from the select dataset list in the Data Display.
To open a data display window:
1. Choose Results > Data Display Options...
2. Enable Open Data Display After Simulation.

Setting up and Running a Momentum Simulation 7-5


Momentum Simulation

3. Click OK to accept the changes.


If you want a template to be loaded into the window:
1. Choose Simulation > Options...

2. Type the name of the template in the Template field.


3. Click OK.

7-6 Setting up and Running a Momentum Simulation


Note If you want to use a template from another project or location, add the
path to the template to the variable MOM_AUTOPLOT_TEMPLATE_PATH in
the ads configuration file rfde.cfg normally located in your ~/hpeesof/config
directory.

Starting a Simulation
The simulation process solves for currents by combining the Greens functions that
were precomputed for the substrate and the mesh calculations. S-parameters are
then calculated and saved to the dataset.
To start a simulation:
First ensure the simulation is defined correctly.
1. Select Setup > Substrate and verify the substrate is correctly defined. For more
information on the Momentum substrate file refer to Substrate File
Definitions on page 3-1.
2. Review the main dialog in the Momentum-Virtuoso window to see that the
frequency plan is setup correctly. For more information setting up a frequency
plan refer to Setting Up a Frequency Plan on page 4-1.
3. Review the main dialog in the Momentum-Virtuoso window to see that the
ports are correct. For more information on ports refer to Cadence Pins and
Momentum Ports on page 5-1

Setting up and Running a Momentum Simulation 7-7


Momentum Simulation

4. Select Simulation > Options to check that Momentum Simulation, Global


Substrate and Mesh, and Per-layer Simulation, Substrate and Mesh options are
set to your specifications.
5. Select Results > Data Display Options... to check that they are set to your
specifications.
6. Select Simulation > Start.
If the simulation cannot be started, look in the Cadence CIW for errors or warnings.
After the simulation has started, messages are displayed in the Cadence simulation
output log. To indicate progress, a line of dots appears across the simulation output
log if the number of unknowns in the simulation is greater than 500; otherwise, only
the frequencies are displayed.
If the simulation fails for a reason related to the setup, the partial data is saved and
a message appears in the simulation output log.
You can determine whether or not the simulation output log opens automatically by
choosing Setup > Environment... from the Momentum-Virtuoso main toolbar and

7-8 Setting up and Running a Momentum Simulation


checking to see if the Automatic Output Log checkbox is selected (default). If not,
selecting it causes the simulation output log to open when you start a simulation.

Note The Print Comments checkbox is not functional at this time.

Viewing Simulation Status


After a simulation is started, any messages regarding the simulation will appear in
the output log or in the Cadence CIW. Messages usually refer to any errors found, the
percent of completion, and simulation completion. For large projects, the percent of
completion for each task in the solution process is given by dots and vertical bars
(there is one | for every nine dots). A full line of 36 dots and four vertical bars
means the task is completed. So, each dot represents the task as being another 2.5%
complete. Nine dots and one vertical bar (.........|) represents the task as being 25%
complete.
If you minimize the simulation output log and want to reopen it, from the
Momentum-Virtuoso menu bar choose Simulation > Output Log.

Stopping a Simulation
To stop a simulation:
1. From the Momentum-Virtuoso menu bar, choose Simulation > Stop or select the
stop icon on the simulation window.
The simulation will stop and the partial data will be saved. To reuse the saved
data:
Choose Simulation > Options..., enable Re-use Results of Last Simulation, select
Apply, then select Simulation > Start.

Setting up and Running a Momentum Simulation 7-9


Momentum Simulation

Viewing the Simulation Progress and Results


As the simulation progresses, you can view substrate, mesh, and solution statistics in
the simulation output log window. Choose Simulation > Output Log to view the output
log from the last simulation performed for the current cell.
From the Results menu in the Momentum-Virtuoso menu bar you can select a variety
of reports, statistics and display options.
S-Parameters brings up a Data Display window.
Currents... brings up a Currents Visualization window.
S-Parameter Statistics... brings up a window displaying the S-parameter
statistics from the last S-parameter calculations performed on the current cell.
Mesh Statistics... brings up a window displaying the mesh statistics from the
last mesh calculations performed on the current cell.
Substrates Statistics... brings up a window displaying the substrates statistics
from the last substrate calculations performed on the current cell.
Mesh Report... brings up a window for clarifications to warnings and errors from
the most recent mesh calculations (if any).
Clear Mesh removes the mesh information from the Momentum view of the cell.
Show Mesh adds the most recent mesh layout data to the Momentum view of
the cell and displays the mesh in the layout window.
Data Display Template... enables you to choose the data display template to be
used for automatic plotting.

Note This template name is stored in the dataset and is used when the Data
Display loads the dataset. As a result, changing this template name will not
change the template currently displayed in the data display window.

Data Display Options... brings up a Data Display Options dialog similar to the
one used in the RFDE dialog and activates the same behavior as the RFDE
application: when applied, it updates the application data specifying if
automatic opening of the display is set (on or off).

7-10 Setting up and Running a Momentum Simulation


64-bit Momentum Simulations on Linux and Solaris
64-bit Momentum simulation provides support for solving larger process problems
that containing a greater number of unknown currents. Because of the inherent
memory limitations of 32-bit architectures, 64-bit Momentum makes it possible to for
you to solve complex problems that were not solvable using 32-bit machines. This is
accomplished by utilizing the 64-bit architectures additional memory overhead and
processing capabilities.
To run a 64-bit Momentum simulation, refer to Setting up and Running a
Momentum Simulation on page 7-2.

Performing Remote/Distributed Simulations

Note For information on how an administrator should setup a remote/distributed


system see the Cadence documentation, Affirma AMS Distributed Processing Option
User Guide. It is important for the remote/distributed system is setup properly or it
will not work.

You can setup your simulator to perform a remote or distributed simulation. Choose
Setup > Simulation/Directory/Host... from the Momentum-Virtuoso main window. This
brings up the Setup Simulator /Host/Directory dialog box.

Simulator Lists the simulator to be used.


Project Directory Enables you to specify the run directory.

64-bit Momentum Simulations on Linux and Solaris 7-11


Momentum Simulation

Host Mode Choose between local, remote, or distributed modes for performing
your simulation.
Host Specifies a path to the host computer for remote simulation (you must
specify the full path).
Remote Directory Specifies a path to the run directory for remote simulation
(you must specify the full path).
To perform a remote simulation:
1. Select Setup > Simulation/Directory/Host...
2. Select the remote radial button in the Host Mode field.
This activates the Host and Remote Directory fields.
3. Fill in the fields with the required information and click OK.
When you start a simulation it will be performed on the remote host, but all the
information will be sent to the Cadence CIW as if you were doing a local simulation.
To perform a distributed simulation:
1. Select Setup > Simulation/Directory/Host...
2. Select the distributed radial button in the Host Mode field.
3. Click OK.
Starting the simulation opens the default Cadence Submit Distributed Simulation
dialog. Fill in the fields and click OK.
This submits the job to the Cadence job monitor and runs it with the attributes
selected in the Submit Distributed Simulation dialog.

NoteTo view items in the queue select Tools > Job Monitor... from the toolbar in the
Momentum-Virtuoso main window.

7-12 Performing Remote/Distributed Simulations


Chapter 8: Viewing Results Using the Data
Display
You have two tools available for displaying the results of a Momentum simulation:
the Data Display, and Momentum Visualization. The visualization tool requires a
separate codeword and is described in following chapters. This chapter describes how
to use the Data Display to display S-parameter results from a Momentum simulation.
Additional data may be calculated during a simulation and saved in the dataset. If
available it can also be viewed or used in calculations:
Propagation constant (gamma) for each port in the circuit
Characteristic impedance of each port
AFS convergence data
This chapter shows how to display Momentum results. For detailed information on
how to use the Data Display, refer the Data Display manual.

Opening a Data Display Window


You view simulation results using the Data Display. You can open a Data Display
window using different methods:
Automatically when a simulation is complete. For steps on how to do this, refer
to Viewing Results Automatically on page 6-6.
By choosing Results > S-Parameters from the Momentum Simulation window
menu bar.
By clicking the Data Display icon in the Momentum Simulation window toolbar.

Viewing Momentum Data


Simulated Momentum data is saved in one or more datasets:
Data collected at the frequency points computed by the simulator are stored in
<design_name>.ds. Design name is either the cell name or the name supplied in
the simulation options dialog.

Opening a Data Display Window 8-1


Viewing Results Using the Data Display

If the Adaptive sweep type is used for simulation, densely resampled data,
computed by AFS at each sampled frequency point, are stored in the dataset
<design_name>_a.ds.
The datasets for the current project are displayed in the dataset listbox.

Datasets in the
current project.
The one in the menu
bar is the default.

You can view Momentum data using any plot type:

Rectangular

Polar

Smith chart

Stacked

List

To view Momentum data:


1. Select the plot type by clicking the appropriate plot icon, dragging the mouse
into the window, then clicking to place the plot.
2. The variables in the default dataset are displayed. Select a different dataset
from the list, if desired.
3. Select the variables containing the data that you want to add to the plot, then
click Add.

Note Most of the simulation data is in complex format. If you are adding data
to a rectangular plot, you must choose to display the data in one of several
scalar formats.

8-2 Viewing Momentum Data


4. You can add data from different datasets to the same plot. Repeat steps two and
three to add more data to the plot.
5. Click OK to view the data.

1. Select a dataset. 2. Select a variable. 3. Click Add. 4. Selected variables


appear here.

Note Multiple graphs within the same view will overlay one another. To view
multiple graphs simultaneously, assign each graph to a separate view.

Viewing Momentum Data 8-3


Viewing Results Using the Data Display

Viewing S-Parameters
Specific information about the data available in the S-parameter datasets is given in
the following sections.

Variables in the Standard and AFS Dataset


A dataset generated from an Momentum simulation contains many variables. Below
are the names of common variables that appear in a Momentum dataset and a
description of the variable.

Variable Description
freq The independent variable frequency, which was specified during
the simulation setup. The number of data points is based on the
sweep type and frequency plans specified during simulation.
GAMMAn The (modal) propagation constant of Port n. It is used in
de-embedding, and is calculated for single, differential, and
coplanar ports only.
PORTZn The impedance of Port n as defined in the Impedance fields of the
Port Editor dialog box. If an impedance is not specified, 50 ohms is
assumed.
S S matrix, normalized to PORTZn.
S(i,j) S-parameters for each pairing of ports in the circuit, normalized to
PORTZn.
S_50 S-matrix, normalized to 50 ohms.
S_50(i,j) S-parameters for each pairing of ports in the circuit, normalized to
50 ohms.
S_CONV and Boolean results indicating AFS convergence occurred (1) or failed
S_CONV(i,j) (0) at a given frequency. Available in datasets from simulations
using Adaptive sweep type.
S_ERROR and Estimated error for a given frequency. For frequency points that
S_ERROR(i,j) converged, the value is below -60 dB. Points that fail to converge
will be greater than -60 dB. Available in datasets from simulations
using Adaptive sweep type.
S_Z0 S matrix, normalized to Z0.
S_Z0(i,j) S-parameters for each pairing of ports in the circuit, normalized to
Z0 of each port.

8-4 Viewing S-Parameters


Z0n Reports the characteristic impedance of the transmission line
connected to Port n. This is not calculated for internal or coupled
ports, in these cases 50 ohms is substituted.
Note Refer to Chapter 4, Ports, for an explanation of the S-parameters for layouts that
use differential, coplanar, and common mode ports.

Standard and AFS Datasets


If the Adaptive sweep type is used for a simulation, two datasets are created for
storing data. The first one contains data computed by the simulator at the frequency
points determined during the simulation. (This dataset is the standard one produced
by any simulation.) The second contains data computed by AFS, resampled with a
very dense frequency distribution. This adaptive dataset is denoted by _a appended
to the dataset name. The adaptive dataset contains the same variables as the
standard dataset, but data is calculated for a significantly greater number of
frequency points.
Typically, when viewing data in the _a dataset, you should see very smooth results,
which reflect the behavior of the circuit. Viewing the standard dataset on the same
plot will show the frequency points for which the simulator was invoked,
superimposed on the smooth curve. Those frequency points will be scattered over the
whole range, with relatively more points grouped in areas where the S-parameters
show more variation. Viewing both datasets can help you determine the quality of the
AFS process on your simulation. For more information on AFS, refer to About
Adaptive Frequency Sampling on page 6-21.

Viewing Convergence Data


Viewing convergence data can be helpful if a simulation using the Adaptive sweep
type has failed. You can view where convergence has been achieved, and evaluate the
quality of unconverged fitting models.
For information on the AFS process, refer to About Adaptive Frequency Sampling
on page 6-21.
The sections that follow describe how to view convergence data. This requires being
familiar with using the Data Display and Equations. For more information on these
topics, refer to the Data Display manual.

Viewing S-Parameters 8-5


Viewing Results Using the Data Display

Data Overview
There are two variables in the adaptive dataset (named <project_name>_a) that
contain convergence data: S_CONV and S_ERROR.
S_CONV contains boolean values indicating where convergence has been
achieved (1) or has failed (0) for the entire S matrix. S_CONV(i,j) contains
boolean values indicating the convergence for S(i,j).
S_ERROR contains the estimated magnitude and phase fitting error for the
entire S matrix. S_ERROR(i,j) contains the fitting error for S(i,j). The error will
be less than -60 dB if convergence is achieved. You can view S_ERROR data in
dB by adding the data to a rectangular plot.

Viewing the Data


There are two suggested methods for viewing convergence. One is to simply plot
S_ERROR(i,j) in dB on a rectangular plot and evaluate the quality of the AFS fit. In
this example, the Low_pass_filter example is simulated with a Sample Points Limit
of 19. The error for S2,1 is plotted. Convergence has been achieved over much of the
frequency span, but not all of it, so the simulation has failed. This indicates the
quality of the simulation over the entire frequency span that was simulated.

Several frequencies
between 8 and 11 GHz fail
to achieve convergence.

A second way to assess the simulation is to use S_CONV to separate converged and
unconverged data for a set of S-parameters and view it on a plot.
To view convergence data:

8-6 Viewing S-Parameters


1. Open a Data Display window and select the adaptive dataset <filename>_a
containing the convergence data as the default dataset.
2. Choose Insert > Equation. Position the equation line in the display area and
Click. Enter the following equation:
Converged_Sij=S(i,j)*S_CONV(i,j)

i,j must refer to the same sets of ports throughout the equation. This equation
will return the converged data, and zero otherwise.
3. Click OK to add the equation to the display area.
4. Choose Insert > Equation and add the following equation:
Not_Converged_Sij=S(i,j)*(1-S_CONV(i,j))

Use the same i,j as in the previous equation. This equation returns the results
where convergence was not achieved.
5. Click OK to add the equation to the display area.
6. Insert a rectangular plot in the display area.
7. The Insert Plot dialog box opens. Under the Datasets and Equations listbox,
scroll to the bottom of the list and select Equation.
8. The variables Converged_S(i,j) and Not_Converged_S(i,j) appear in the
variables list. Select one variable and add it to the plot, in dB.
9. Click OK to view the results on the plot.
10. Insert a second rectangular plot and add the second variable to it.
In the illustration below, the S2,1 convergence results for the low-pass filter,
simulated with the samples limit set to 19, is displayed.
Note that because the AFS process breaks up the entire frequency span into smaller
subsections, the variable S_CONV will be 1 for the points that achieve convergence
over an entire subsection. So, even though the data in S_ERROR indicates almost the

Viewing S-Parameters 8-7


Viewing Results Using the Data Display

entire simulation converged, the plots below indicate the frequency ranges that
converged or failed.

Considerations
For efficiency purposes, the Adaptive Frequency Sampling process splits a simulation
frequency range into smaller subranges that contain a maximum of 16 samples, and
performs calculations on these smaller frequency ranges. The convergence factor (1 or
0) will be the same for all frequencies in a subrange. If convergence is achieved for

8-8 Viewing S-Parameters


some subranges and not others, this will be apparent. Note that for simulations that
have less than 16 samples, the entire frequency range is treated as one internal
subrange, so the convergence data will be all zeros if convergence was not achieved.

Viewing S-Parameters 8-9


Viewing Results Using the Data Display

8-10 Viewing S-Parameters


Chapter 9: Using Momentum Simulation
Results in Composer
Once a momentum view has been successfully simulated, you can create views
suitable for simulation using the Cadence Composer schematic tool.
Simulation can be performed using adsSim or Spectre.

Creating Momentum Simulator Views


You have two options when creating simulator views.
Auto-create Circuit Simulator Views
Create Circuit Simulator Views...

To create the simulator views using Auto-create Circuit Simulator Views, select Tools
> Auto-Create Circuit Simulator Views from the Momentum-Virtuoso window.

Creating Momentum Simulator Views 9-1


Using Momentum Simulation Results in Composer

This option will automatically create a component using the default settings. That is,
the component will not have a reference pin, the name will be the same as the
Momentum Cell and cannot be changed and there will be no ADSsim Default Impulse
Response Parameters set.
To create a schematic view using Create Circuit Simulator Views..., select Tools >
Create Circuit Simulator Views.

This opens the Create Component dialog, shown in the following illustration.

9-2 Creating Momentum Simulator Views


The Create Component dialog offers the option of choosing a component type with or
without a reference pin. If you choose the component without reference pin option, the
component created will have the same attributes as the Auto-create component.,
If you choose component with reference pin, a reference pin is added to the component
and you will need to select a unique component name different than the Momentum
Cell name, (e.g., G1LNA_ind_Mom_wRefPin).
The Create Component dialog also offers the option of setting the ADSsim Default
Impulse Response Parameters.
This option enables you to set the parameters you would normally set when
performing a Time-Domain Simulation for S-parameters.

Creating Momentum Simulator Views 9-3


Using Momentum Simulation Results in Composer

This dialog defines the default parameters for the component. These parameters can
be changed in the Schematic editor on a per instance basis.
The following table describes the parameter details:

Parameter Name Description


ImpMaxFreq Maximum frequency to which device is evaluated. If no input is given,
this value will be automatically set to the maximum frequency of the
Momentum simulation.
ImpDeltaFreq Impulse sample spacing in frequency.
ImpMaxPts Maximum number of points in impulse response.
ImpRelTrunc The relative truncation factor for the impulse response.
ImpAbsTrunc The absolute truncation factor for the impulse response; controls
how small the impulse must be before it is considered zero.
ImpMode Convolution mode
ImpWindow Smoothing window
ImpNoncausalLength Non-causal function impulse response order.

9-4 Creating Momentum Simulator Views


Note It is recommended that these parameters be left blank, allowing the simulator
to auto-determine them. However, it may be necessary to set these parameters in
special cases, such as getting convergence in a Time-Domain simulation.

Select Apply or OK to create the component.

Note When using the simulation views created by RFDE Momentum in composer,
be sure the ads.cxt file is loaded, otherwise netlisting will fail during simulation.

The status of the operation is reported in the CIW. If a simulation view is created, the
message **** Momentum Simulation Views Successfully Created *** is visible.

Once the simulator views are created, they are made available in the library shown
in the Momentum-Virtuoso session window.
The symbol can then be loaded into the schematic. If the Momentum component is
created without a reference pin, as shown below, the reference pin is connected to
ground.

Creating Momentum Simulator Views 9-5


Using Momentum Simulation Results in Composer

Note The size of the symbol is determined by certain environment variables. For
details refer to Public Variables for Customization on page B-1.

Opening a New Schematic Window


To open a new schematic window to use the Momentum-Virtuoso symbol view, choose
File > New > Cellview... in the main Cadence window. This brings up the Create New
File dialog. Select a Library Name, Cell Name and a View Name. Select OK.

9-6 Creating Momentum Simulator Views


This opens the schematic window as shown in the following illustration.

Creating Momentum Simulator Views 9-7


Using Momentum Simulation Results in Composer

Select Add > Instance to bring up the Add Instance dialog box

Use browse to select the Library, Cell, and View you wish to use.

9-8 Creating Momentum Simulator Views


An outline of the component should be visible in the schematic page. Click the
schematic window for placement of the instance.

Updating Simulator Views


The simulator views of the Momentum-Virtuoso component use the Momentum
simulation results found at the time the simulator views are created.
If at a later time the Momentum cell geometry or another aspect of the Momentum
setup is changed, while keeping the same port connections and port ordering, an
update to the simulator views data can be preformed by selecting Tools > Auto-Update
Circuit Simulator View Data. Note, if you used Create Circuit Simulator Views... to
create your component, select Tools > Update Circuit Simulator View Data... to update
your Momentum simulation results.The status of the data update will be shown in
the CIW.
The differences between Auto-update Circuit Simulator View Data and Update
Circuit Simulator View Data are as follows:

Creating Momentum Simulator Views 9-9


Using Momentum Simulation Results in Composer

Auto-Update Circuit Simulator View Data: Installs the results of the latest
Momentum simulation and resets the model parameters to the default values
for a component without a reference pin.
Update Circuit Simulator View Data: Brings up the Create Component dialog
enabling you to choose which component to install the latest Momentum
simulation results to and to set the default model parameters, if so desired.

Note The only way to update the simulator view data is by using the manual
method. You need to personally manage data synchronism between the layout
simulation results and the schematic view.

If the port connectors or the ordering of the ports is changed, you must recreate the
symbol and update the schematic views where the symbol is used.

To determine whether to update component data or create a new component consider


the following:
If you only changed the Momentum model (mommdl) and/or the model
parameters (CDF) update the component.
If you made changes to the ports (number or ordering) you will need to create a
new component.

Note If you created a new component you will need to update all the schematic
views using the new component.

The Create Component command creates a symbol, ads, mommdl and spectre view.
For components without a reference pin, an auLvs view is also created.

Using RFDE Momentum Components with Assura


There are several conditions that must be met before you can use a Momentum
component with the Assura extraction tool:
The Momentum component must be created without a reference pin.
The Assura rules file (extract.rul) must be modified to define pinLayers and the
geomConnect rule.

9-10 Using RFDE Momentum Components with Assura


The Momentum component must be defined as a blackbox (this ensures the
blackbox cell is extracted and keeps connectivity with the rest of the circuit).

Note When you create a Momentum Component without a reference pin, an assura
stop view (auLvs) is automatically created for that component.

The primary difference between a standard component and a Momentum component


to be used in an Assura extraction is that the Assura rules need to be able to
recognize/treat the Momentum component as a blackbox cell and connect it to the
rest of the circuit. This requires using pinLayer or textToPin instead of layer and
adding these layers when you define your geomConnect rule.
This is illustrated in the following example taken from the extract.rul file.

Example
layerDefs("df2"

BJTdum=layer("BJTdum" type("drawing"))

Metal6=layer("Metal6" type("drawing"))
Metal6_pin=pinLayer("Metal6" type("drawing" "pin") )
Metal6_text=textToPin( "Metal6" type("drawing") )
Metal6_pintext=pinText( "Metal6" )
)
Metal6=geomOr(Metal6 Metal6_pin)
geomConnect(
label(Metal6_text Metal6)
label(Metal6_pintext Metal6)
)

Running an Assura Extraction of a Momentum Component


Model
To run an Assura extraction:
1. Create a Momentum component without a reference pin.
2. Edit the Assura rules file (extract.rul) and map the pin layers.

Using RFDE Momentum Components with Assura 9-11


Using Momentum Simulation Results in Composer

3. Choose File > Open from the RFDE CIW.

4. Choose the Cell you wish to extract, select the view as layout and click OK.
This opens the Virtuoso Layout window.
5. From the Virtuoso Layout window select Assura > Run LVS...
This opens the Run Assura LVS dialog. (Run LVS is used to create a layout
component from your layout.)
6. Select Modify avParameters from the Run Assura LVS dialog to open the LVS
avParameters dialog.

7. In the LVS avParameters dialog choose, ?blackBoxCell, then click Use in Run,
select Cells and type in the name of the Momentum cell you wish to use in the
area provided.

9-12 Using RFDE Momentum Components with Assura


8. Click OK.
The blackBoxCell representing the Momentum component can now be seen in
the View avParameters dialog.

9. Click OK. A Progress dialog will open and the layout component to be used with
the Assura extraction will be created.
10. From the Virtuoso Layout window select Assura > Open Run.

Using RFDE Momentum Components with Assura 9-13


Using Momentum Simulation Results in Composer

11. Click OK.


If Open Run was successful, Run RCX... will be enabled in the drop down menu
on the Layout window.
12. Select Run RCX..., when the Run RCX... dialog opens click OK.
This creates the av_extracted view. For more information on RCX extraction,
refer to the Cadence Users Guide.
13. If you wish to confirm the file was created, select File > Open from the RFDE
CIW.
Once RCX has successfully run, an av_extracted view is available from the View
Name selections.
14. Open the Schematic view of the extracted component.

15. Select Tools > Analog Environment. This opens the Choosing
Simulator/Directory/Host dialog.

9-14 Using RFDE Momentum Components with Assura


16. Set the Simulator to ADSsim and click OK to open the Virtuoso Analog Design
Environment window.

Using RFDE Momentum Components with Assura 9-15


Using Momentum Simulation Results in Composer

17. Setup the simulation or load a saved state.


18. Selet Setup > Environment to open the Environment Options dialog for the rest
of the circuit.
To use the Momentum model with the extraction parasitics you must add your
extracted view name, for example av_extracted, to the Switch View List prior
to the other views in your cellView.
If you do not do this, the simulation will run without the extracted parasitics.
This is shown in following illustrations:

Figure 9-1. Simulation run with extracted parasitics

Figure 9-2. Simulation run without extracted parasitics.


19. To run the simulation, select Simulation > Run from the Menu bar of the
Virtuoso Analog Design Environment window.

9-16 Using RFDE Momentum Components with Assura


Chapter 10: Displaying Surface Currents
In Momentum Visualization, you can display electric surface current density
(Amps/meter) on finite conducting objects. This chapter describes how to view
currents.

Note The actual current density is 2 times greater than the value reported by
Visualization.

Starting Momentum Visualization


To start Momentum Visualization choose Results > Currents... from the Momentum
simulation window. The current project must run through a complete simulation to
use Visualization for viewing data. If simulation has been previously completed for a
project, you can start Visualization directly to view the existing data.

Note Momentum Current Visualization is NOT available on Linux.

Note Momentum Current Visualization commands are located in the Currents


menu. The Plot menu enables you to create some S-Parameter plots. However, the
Data Display is better suited to this purpose. For more information refer to Viewing
S-Parameters on page 8-4.

Working with Momentum Visualization Windows

Selecting the Number of Views


By default, the view screen displays a single view. You can optionally display four
views. By using four views, you can display up to four different plots at one time.
To display four views:
Choose Window > Tile.

Starting Momentum Visualization 10-1


Displaying Surface Currents

Tip You can enlarge the viewing area by clicking Hide Controls.

To display a single view:


Choose Window > Full Window. The currently-selected view fills the view screen.

Selecting a View to Work in


You must choose from one of the four views to work in. You can change to a different
view at any time.
To select a view:
Position the mouse in the view and click.
To select a view and enlarge it to a single view:
1. Choose Window > Select View.
2. Select a view from the View list.
3. Click OK. The view screen displays the new view.

Retrieving Plots in a View


Multiple plot types can be stored under a single view. Only one plot at a time can be
displayed in a view, but any other plots that you worked with in the view will be
saved so that you can view them again.
To retrieve a plot from a view:
1. Select a view and either:
2. Use the arrows keys on the keyboard to scroll through plots.
3. From the Plot Type - View list, select a plot type that you worked with. The plot
and all graphical information that was added to the plot is displayed.

Working with Annotation in a View


You can add text to a view, and edit the position and color of the text, by choosing
Display > Annotation. You can save your settings so that they can be reused.

10-2 Working with Momentum Visualization Windows


Adding Text
To add text to a view:
1. Select the view where you want to add text.
2. Choose Display > Annotation. Drag the Annotation dialog box so that any
existing text is in view.
3. Click New Annotation.
4. Type your text into the Annotation Label field. If text already appears in this
field, you can delete it and then type in your text. When you are finished, press
the Enter key.
5. Use the X Location and Y Location scroll tools to position the text on the
display.
6. Click Done to dismiss the dialog box and view the new text.

Adding Variables
There are three variables that can be added to the annotation:
%project%, %view%, and %date%.
These variables can be displayed automatically whenever Momentum Visualization
is in use.

Editing Text
To edit text:
1. Select the view where you want to edit text.
2. Choose Display > Annotation. Drag the annotation dialog box so that any
existing text is in view.
3. Select the text that you want to edit from the Annotations field.
4. To adjust the position of the text in the view, use the X Location and Y Location
scroll tools.
5. To change the size of the text, use the Annotation Size scroll tool to increase or
decrease the font size.

Working with Momentum Visualization Windows 10-3


Displaying Surface Currents

6. To change the thickness of the text characters, use the Annotation Thickness
scroll tool to make fine, normal, or bold-faced characters.
7. To change the color of the text, select one of the colors listed under Annotation
Color.
8. To change the orientation of the text, use Horizontal or Vertical under
Orientation.
9. To change the text, make your changes in the Annotation Label field.
10. To make changes to other lines of text, select the text from the Annotation field
and edit as desired.
11. When you are finished, click Done to dismiss the dialog box.

Deleting Text
To delete text:
1. Select the view that you want to add text to or edit text.
2. Choose Display > Annotation. Drag the annotation dialog box so that any
existing text is in view.
3. Select the text that you want to delete from the Annotations field.
4. Click Delete Annotation.
5. Click Done to dismiss the dialog box.

Refreshing the Window


Choose Window > Refresh at any time to update the displayed views. Typically, the
window refreshes automatically after a command is completed.

10-4 Working with Momentum Visualization Windows


Viewing Data from Another Project
The data from any Momentum project can be directly loaded. After you load new
projects, you can select among any of the projects for data to display.
To load an Momentum project:
1. Choose Projects > Read Momentum Project.
2. Navigate to the folder where the simulation project is saved (project folder)
within the simulation subdirectory and open the folder.
3. Under the project folder is another folder named visualization. Open this folder.
4. Open the folder that contains your specific design. (by default the cell Name)
5. Double-click on any file within this folder. (by default it should display
proj.msh)

Setting Port Solution Weights


Before displaying a current plot, select a frequency and set the port solution weights
for that frequency. Weighting port solutions enables you to specify the amount that
any one port solution contributes to the solution at a given frequency. The weighting
will be reflected in the current plots.
A Thevenin voltage source (voltage source + source impedance in series) is attached
to each circuit port. The source impedance is either the characteristic impedance for
single and differential ports; or 50 ohms for all other port types. The voltage source
amplitude for each port is set to its corresponding solution weight (magnitude +
phase). The displayed currents are those that correspond with this excitation state.
To set port solution weights:
1. Choose Current > Set Port Solution Weights.
2. Select a frequency.
3. Select a port, and enter the magnitude in the Solution Weight field, and enter
the phase in the Solution Phase field.
4. Repeat the previous step for other ports, as necessary for the same frequency.
5. Click OK to complete the command.

Viewing Data from Another Project 10-5


Displaying Surface Currents

Displaying the Layout


An outline of the layout is loaded into a view (if it is missing) when the current plots
are displayed. If a layout is not loaded or if it was deleted, choose Display > Objects to
display the layout.

Displaying a Current Plot


The current plot displays surface currents on all objects of the simulated layout. The
plot can be animated to illustrate the currents propagating through the circuit.

Note Make sure the layout is loaded into the view. Choose Display > Objects to load
the layout if it is missing.

To display a current plot:


1. Choose Current > Plot Currents.
2. Select the graphical format:
Arrow Plots a vector current quantity using arrows to indicate direction and
magnitude.
Contour Displays the equal magnitude contours of the vector current.
Shaded Displays a shaded plot of a magnitude of the vector current. The
magnitude being plotted is represented by a range of colors. A color scale
showing the range of values also appears on the screen.
3. Select the view that you want to use to display the plot.
4. Click OK.

10-6 Displaying the Layout


Animating Plotted Currents
The currents have a sinusoidal, or harmonic, time dependence, with steady-state
conditions assumed. There is an implied e jt time dependence. Animation enables you
to visualize the surface currents in the time domain, illustrating the propagation
through a circuit. Changing time corresponds with changing the additional phase
introduced by the e jt factor. You can change this phase continuously or you can step
through the phase changes manually.
To change the phase manually:
Use the scroll bar. This enables you to freeze the phase in the layout.
To automate the animation:
1. Click Display Properties.
2. Enable Animate.
3. The currents are animated in time. The animation repeats automatically until
Animate is disabled. The speed of the animation can be changed by editing the
Increment field. A larger value speeds the animation, smaller values slow it
down.
4. You can change the maximum value of the color scale. Depending on the
selected graphical format, you can change other options:
For the shade and contour plots, you can set the translucency, and color of the
current.
For the arrow plot, you can change the length of the arrow vector.

Displaying a Current Plot 10-7


Displaying Surface Currents

Displaying the Mesh on a Current Plot


Choose Display > Mesh to add the mesh to a current plot.
To display a mesh:
1. Choose Display > Mesh.
2. Select the view displaying the plot to which you want to add the mesh. Meshes
can be displayed in Objects only.
3. Click OK to complete the command.

Tip Depending on the drawing order, the mesh may be under the shaded current
plot, and not visible. To see the mesh, lower the translucency of the shaded plot.

10-8 Displaying the Mesh on a Current Plot


Appendix A: Theory of Operation
Momentum is based on a numerical discretization technique called the method of
moments. This technique is used to solve Maxwell's electromagnetic equations for
planar structures embedded in a multilayered dielectric substrate. The simulation
modes available in Momentum RF are both based on this technique, but use different
technologies to achieve their results.
Momentum has two modes of operation, Microwave or full-wave mode and the RF or
quais-static mode. The main difference between these two modes lies within the
Green functions formulations that are used. The full-wave mode uses full-wave
Green functions, these are general frequency dependent Green functions that fully
characterize the substrate without making any simplification to the Maxwell
equations. This results in L and C elements that are complex and frequency
dependent. The quasi-static mode uses frequency independent Green functions
resulting in L and C elements that are real and frequency independent. Because of
the approximation made in the full-wave mode, the RF simulations run a lot faster
since the matrix L and C elements only have to be calculated for the first frequency
simulation point. The approximation also implies that the full-wave mode typically
should be used for structures that are smaller than half the wavelength. Both engine
modes are using the so-called star-loop basis function, ensuring a stable solution at
all frequencies. Both engines also make use of a mesh reduction algorithm which
reduces the number of unknowns in the simulation by generating a polygonal mesh.
This mesh reduction algorithm can be turned on or off, with a toggle switch.
The sources applied at the ports of the circuit yield the excitations in the equivalent
network model. The currents in the equivalent network are the unknown amplitudes
of the rooftop expansion functions. Solving the equivalent network for a number of
independent excitation states yields the unknown current amplitudes. When
calibration is requested, a port calibration process is used to calculate the
S-parameter data of the circuit from the current solution.
The following sections in this chapter contain more information about:
The method of moments technology
The Momentum solution process
Special simulation topics
Considerations and software limitations

A-1
Theory of Operation

The Method of Moments Technology


The method of moments (MoM) technique is based upon the work of R.F. Harrington,
an electrical engineer who worked extensively on the method and applied it to
electromagnetic field problems, in the beginning of the 1960's. It is based on older
theory which uses weighted residuals and variational calculus. More detailed
information on the method of movements and Greens theorem can be found in Field
Computation by Moment Methods [1].
In the method of moments, prior to the discretization, Maxwell's electromagnetic
equations are transformed into integral equations. These follow from the definition of
suitable electric and magnetic Green's functions in the multilayered substrate. In
Momentum, a mixed potential integral equation (MPIE) formulation is used. This
formulation expresses the electric and magnetic field as a combination of a vector and
a scalar potential. The unknowns are the electric surface currents flowing in the
planar circuit.
Using notations from linear algebra, we can write the mixed potential integral
equation in very general form as a linear integral operator equation:

d S G ( r, r' ) J ( r ) = E(r ) (1)

Here, J(r) represents the unknown surface currents and E(r) the known excitation of
the problem. The Green's dyadic of the layered medium acts as the integral kernel.
The unknown surface currents are discretized by meshing the planar metallization
patterns and applying an expansion in a finite number of subsectional basis functions
B1(r), ..., BN(r):
N

J( r) Ij Bj ( r ) (2)

The standard basis functions used in planar EM simulators are the subsectional
rooftop functions defined over the rectangular, triangular, and polygonal cells in the
mesh. Each rooftop is associated with one edge of the mesh and represents a current
with constant density flowing through that edge (Figure A-1). The unknown

A-2
amplitudes Ij, j=1,..,N of the basis function expansion determine the currents flowing
through all edges of the mesh.

Figure A-1. Discretization of the surface


currents using rooftop basis functions.
The integral equation (1) is discretized by inserting the rooftop expansion (2) of the
currents. By applying the Galerkin testing procedure, that is, by testing the integral
equation using test functions identical to the basis functions, the continuous integral
equation (1) is transformed into a discrete matrix equation:
for i=1,...,N
N

Z i, j I j = Vi or [Z ] [I] = [V] (3)

with

Z i, j = dSBi ( r ) dS'G ( r, r' ) Bj ( r ) (4)


S S'

Vi = dSBi ( r ) E ( r ) (5)
S
The left hand side matrix [Z] is called the interaction matrix, as each element in this
matrix describes the electromagnetic interaction between two rooftop basis functions.
The dimension N of [Z] is equal to the number of basis functions. The right-hand side
vector [V] represents the discretized contribution of the excitations applied at the
ports of the circuit.

A-3
Theory of Operation

The surface currents contribute to the electromagnetic field in the circuit by means of
the Green's dyadic of the layer stack. In the MPIE formulation, this Green's dyadic is
decomposed into a contribution from the vector potential A(r) and a contribution from
the scalar potential V(r):
A 1 V
G ( r, r' ) = jG ( r, r' )I ------ [ G ( r, r' )' ] (6)
j
The scalar potential originates from the dynamic surface charge distribution derived
from the surface currents and is related to the vector potential through the Lorentz
gauge.
By substituting the expression (6) for the Green's dyadic in the expression (4) for the
interaction matrix elements, yields the following form:

1 -
Z i, j = jL i, j + ---------------- (7)
jC i, j

with


A
L i, j = dSB i ( r ) dS'G ( r, r' )B j ( r' ) (8)
S S'


1- = V
--------- dS B i ( r ) dS'G ( r, r' ) B j ( r' ) (9)
C i, j
S S'
This allows the interaction matrix equation to be given a physical interpretation by
constructing an equivalent network model (Figure A-2). In this network, the nodes
correspond to the cells in the mesh and hold the cell charges. Each cell corresponds to
a capacitor to the ground. All nodes are connected with branches which carry the
current flowing through the edges of the cells. Each branch has in inductor
representing the magnetic self coupling of the associated current basis function. All
capacitors and inductors in the network are complex, frequency dependent and
mutually coupled, as all basis functions interact electrically and magnetically
(Figure A-3). The ground in this equivalent network corresponds with the potential
at the infinite metallization layers taken up in the layer stack. In the absence of
infinite metallization layers, the ground corresponds with the sphere at infinity. The
method of moments interaction matrix equation follows from applying the Kirchoff

A-4
voltage laws in the equivalent network. The currents in the network follow from the
solution of the matrix equation and represent the amplitudes of the basis functions.

Figure A-2. The equivalent circuit is built by replacing each


cell in the mesh with a capacitor to the ground reference and
inductors to the neighboring cells.

Figure A-3. Equivalent network representation of the


discretized MoM problem.

A-5
Theory of Operation

The Momentum Solution Process


Different steps and technologies enable the Momentum solution process:
Calculation of the substrate Green's functions
Meshing of the planar signal layer patterns
Loading and solving of the MoM interaction matrix equation
Calibration and de-embedding of the S-parameters
Reduced Order Modeling by Adaptive Frequency Sampling

Calculation of the Substrate Green's Functions


The substrate Green's functions are the spatial impulse responses of the substrate to
Dirac type excitations. They are calculated for each pair of signal (strip, and/or via)
layers mapped to a substrate level. Although it is necessary to know which signal
layers are mapped to a substrate level, since only impulse responses are being
calculated, it is not necessary to know the patterns on these signal layers. This
implies that the Green's functions can be pre-calculated and stored in a substrate
database. This allows the substrate Green's functions to be reused for other circuits
defined on the same substrate.
The high frequency electromagnetic Green's functions depend upon the radial
distance and the frequency. The computations are performed up to very large radial
distances over the entire frequency band specified by the user. The frequency points
are selected adaptively to ensure an accurate interpolation with respect to frequency.
Computations performed over very wide frequency ranges can consume more CPU
time and disk space to store the results. To increase speed, the RF mode uses
quasi-static electromagnetic Greens functions based on low-frequency
approximation.

Meshing of the Planar Signal Layer Patterns


The planar metallization (strip, via) patterns defined on the signal layers are meshed
with rectangular and triangular cells in the RF simulation mode. As translational
invariance is used to speed up the interaction matrix load process, the meshing
algorithm will maximize the number if uniform rectangular cells created in the mesh.
An additional mesh reduction step, which can be turned on or off, reduces the
complexity of mesh by generating polygonal shaped meshes. This is done by

A-6
recombining some of the original rectangular and triangular meshes. Mesh reduction
reduces the number of unknown currents in the matrix equation.The meshing
algorithm is very flexible as different parameters can be set by the user (number of
cells/wavelength, number of cells/width, edge meshing, and mesh seeding), resulting
in a mesh with different density. It is clear that the mesh density has a high impact
on both the efficiency and accuracy of the simulation results. Default mesh
parameters are provided which give the best accuracy/efficiency trade-off.

Loading and Solving of the MoM Interaction Matrix Equation


The loading step of the solution process consists of the computation of all the
electromagnetic interactions between the basis functions and the filling of the
interaction matrix and the excitation vector. The interaction matrix as defined in the
rooftop basis is a dense matrix, that is, each rooftop function interacts with every
other rooftop function. This electromagnetic interaction between two basis functions
can either be strong or weak, depending on their relative position and their length
scale. The matrix filling process is essentially a process of order (N2), i.e. the
computation time goes up with the square of the number of unknowns.
In the solving step, the interaction matrix equation is solved for the unknown current
expansion coefficients. The solution yields the amplitudes of the rooftop basis
functions which span the surface current in the planar circuit. Once the currents are
known, the field problem is solved because all physical quantities can be expressed in
terms of the currents. In Momentum, the matrix equation is solved with a standard
matrix factorization technique. This implies that the matrix solve process is
essentially a process of order (N3).

Calibration and De-embedding of the S-Parameters


Momentum performs a calibration process on the edge type port, similar to any
accurate measurement system, to eliminate the effect of the sources connected to the
transmission line ports in the S-parameter results. Feedlines of finite length are
added to the transmission line ports of the circuit. Lumped sources are connected to
the far end of the feedlines. These sources excite the eigenmodi of the transmission
lines without interfering with the circuit. The effect of the feedlines is computed by
the simulation of a calibration standard and subsequently removed from the
S-parameter data. A built-in cross section solver calculates the characteristic
impedance and propagation constant of the transmission lines. This allows to shift
the phase reference planes of the S-parameters, a process called de-embedding.
Results of the calibration process includes the elimination of low-order mode

A-7
Theory of Operation

mismatches at the port boundary, elimination of high-order modes, and removal of all
port excitation parasitics.
Besides transmission line ports, Momentum offers the user the ability to define direct
excitation or internal ports. These ports can be specified at any location on the planar
metallization patterns as either a point or an edge feed. They allow to connect both
passive and active lumped components to the distributed model of the planar circuits.
The S-parameters associated with these ports are calculated from the excitation
consisting of a lumped source connected to the equivalent network model at the
locations of the internal ports. The parasitic effects of these lumped sources are not
calibrated out of the S-parameters results.

Note For most RFIC users, internal ports will produce accurate results and better
performance.

Reduced Order Modeling by Adaptive Frequency Sampling


A key element to providing fast, highly accurate solutions using a minimum of
computer resources is the Adaptive Frequency Sampling (AFS) technology. When
simulating over a large frequency range, oversampling and straight line interpolation
can be used to obtain smooth curves for the S-parameters. Oversampling however
implies a huge amount of wasted resources. Momentum allows the user to benefit
from a smart interpolation scheme based on reduced order modeling techniques to
generate a rational pole/zero model for the S-parameter data. The Adaptive
Frequency Sampling algorithm selects the frequency samples automatically and
interpolates the data using the adaptively constructed rational pole/zero model. This
feature allows important details to be modeled by sampling the response of the
structure more densely where the S-parameters are changing significantly. It
minimizes the total number of samples needed and maximizes the information
provided by each new sample.
In fact, all kinds of structures can take advantage of the AFS module. The Adaptive
Frequency Sampling technology reduces the computation time needed for simulating
large frequency ranges with Momentum significantly.

A-8
Special Simulation Topics
Some special simulation topics are discussed in this section:
Simulating metallization loss
Simulating internal ports and ground references

Simulating Metallization Loss


When using Momentum, losses in the metallization patterns can be included in the
simulation. Momentum can either treat the conductors as having zero thickness or
include the effects of finite thickness in the simulation. In the substrate definition,
the expansion of conductors to a finite thickness can be turned on/off for every layer.
For more information, refer to Via Structures and Metallization Thickness
Limitation on page A-15.
Momentum uses a complex surface impedance for all metals that is a function of
conductor thickness, conductivity, and frequency. At low frequencies, current flow
will be approximately uniformly distributed across the thickness of the metal.
Momentum uses this minimum resistance and an appropriate internal inductance to
form the complex surface impedance. At high frequencies, the current flow is
dominantly on the outside of the conductor and Momentum uses a complex surface
impedance that closely approximates this skin effect. At intermediate frequencies,
where metal thickness is between approximately two and ten skin depths, the surface
impedance transitions between those two limiting behaviors. This treatment of metal
loss is a good approximation for many cases but can be less accurate for very narrow
conductors.
The meshing density can affect the simulated behavior of a structure. A more dense
mesh allows current flow to be better represented and can slightly increase the loss.
This is because a more uniform distribution of current for a low density mesh
corresponds to a lower resistance.
Losses can be defined for groundplanes defined in the substrate definition. This uses
the same formulation as for loss in microstrips (i.e., through a surface impedance
approximation). It should be noted however that since the groundplanes in the
substrate description are defined as infinite in size, only HF losses are incorporated
effectively. DC losses are 0 by definition in any infinite groundplane. DC
metallization losses in groundplanes can only be taken into account by simulating a
finite size groundplane as a strip metallization level.

A-9
Theory of Operation

Simulating with Ports


A port is defined as one or more pins connected to either the positive or negative
reference of a port. There are two different port types:
edge - can be calibrated and non-calibrated
internal
A port is always defined as having a positive and negative connection point. The
negative connection point can be explicit (e.g. on an infinite groundplane), in which
case the user does not have to specify a location.

Momentum Current Feed Models/Port Types


Momentum port type determined by its location:

Location inside layout: Point Port (internal port)

Location on layout boundary: Edge Port

Typical Port Combinations


Single with implicit reference definition

+ref

-ref

Implicit reference to groundplane in substrate: negative reference not explicitly


defined in port definition. (most common case)

A-10
Differential line setup

+ref

Port1

-ref

Ground reference setup

+ref

Port1

-ref

Common mode with implicit reference definition

+ref

-ref

Implicit reference to groundplane in substrate: negative reference not explicitly


defined in port definition.

Internal Ports
Momentum offers the ability to use internal ports within a structure. Internal ports
can be specified at any location on the planar metallization patterns, and they make
possible a connection for both passive and active lumped components to the
distributed model of the planar circuits. Refer to Figure A-4.

A-11
Theory of Operation

The S-parameters associated with these ports are calculated from the excitation
consisting of a lumped voltage source connected to the equivalent network model, as
shown in Figure A-3. The ground reference for these ports in the resulting
S-parameter model is the ground of the equivalent network, and this ground
corresponds physically to the infinite metallization layers taken up in the layer stack.
In the absence of infinite metallization layers, the ground no longer has a physical
meaning and corresponds mathematically with the sphere at infinity.
It is important to mention that in this case, the associated S-parameters also lose
their physical meaning, as the applied voltage source is assumed to be lumped, that
is electrically small, since it sustains a current flow from the ground to the circuit
without phase delay. To overcome this problem, a ground reference must be specified
at a distant electrically small from the internal port. Failure to do so may yield
erroneous simulation results.

direct excitation point feed

Figure A-4. Internal port and equivalent network model.


The following sections illustrate the use of internal ports with ground planes and
with ground references, and the results.

Limitations and Considerations


This section describes some software limitations and physical considerations which
need to be taken into account when using Momentum:
Comparing the microwave and RF simulation modes
Matching the simulation mode to circuit characteristics
Higher-order modes and high frequency limitation
Substrate waves and substrate thickness limitation

A-12
Parallel-plate modes and high frequency limitation
Via structures and metallization thickness limitation
Via structures and substrate thickness limitation
CPU time and memory requirements

Comparing the Microwave and RF Simulation Modes


Momentum has two simulation modes: the Microwave and RF mode. The Microwave
mode uses full-wave formulation, the RF mode uses a quasi-static formulation. In the
quasi-static formulation, the Green functions are low-frequency approximations to
the full-wave and more general Green functions. Because of the approximations
made in the RF mode, the simulations are more efficient. The approximation is valid
for structures that are small compared to the wavelength (size of the circuit smaller
than half a wavelength).

Matching the Simulation Mode to Circuit Characteristics


The Momentum RF mode can be used to simulate RF and microwave circuits,
depending on your requirements. However, Momentum RF is usually the more
efficient mode when a circuit is electrically small, geometrically complex, and does
not radiate. This section describes these characteristics.

Radiation
Momentum RF provides accurate electromagnetic simulation performance at RF
frequencies. However, this upper limit depends on the size of your physical design. At
higher frequencies, as radiation effects increase, the accuracy of the Momentum RF
models declines smoothly with increased frequency.

Electrically Small Circuits


Momentum RF works best for electrically small circuits as its accuracy smoothly
decreases with increasing electrical size relative to a given frequency. A circuit is
considered electrically small relative to a given frequency if its physical dimension is
smaller than half the wavelength of the frequency. Depending on which value you
know, maximum circuit dimension or maximum simulation frequency, you can
determine a qualitative approximation of the circuits electrical size. Suppose you
have a circuit with dimension D as shown in the following figure:

A-13
Theory of Operation

You can use one of the following two expressions strictly as a guideline to have an
awareness about the circuits electrical size relative to the maximum frequency you
plan to run the simulation. When you know the value of D, use the first expression to
approximate the maximum frequency up to which the circuit is electrically small.
When you know the maximum simulation frequency, use the second expression to
approximate the maximum allowable dimension:
150
F < ---------
D
or
150
D < ---------
F
where:
D = the maximum length in mm diagonally across the circuit.
F = the maximum frequency in GHz.
During a simulation, Momentum RF calculates the maximum frequency up to which
the circuit is considered electrically small, and displays that value in the output log.
This is similar to using the first expression above since the dimension of a layout is
typically fixed, and it is the simulation frequency that is swept.

Higher-order Modes and High Frequency Limitation


Since Momentum does not account for higher-order modes in the calibration and
de-embedding process, the highest frequency for which the calibrated and
de-embedded S-parameters are valid is determined by the cutoff frequency of the port
transmission line higher-order modes. As a rule of thumb for microstrip transmission

A-14
lines, the cutoff frequency (in GHz) for the first higher-order mode is approximately
calculated by:
Cutoff frequency fc = 0.4 Z0 / height
where Z0 is the characteristic impedance of the transmission line. For a 10 mil
alumina substrate with 50 ohm microstrip transmission line, we obtain a high
frequency limit of approximately fc = 80 GHz.

Surface Wave Modes


If the substrate is not homogeneous, surface wave modes can exist. The parallel plate
mode can be seen as a special case of a surface wave mode. Their behavior is
identical. Both are cylindrical waves that propagate radially away from the source.
They are guided by the substrate. Both fundamental and higher order surface wave
modes exist. Similar conclusions can be drawn with respect to limitations such as the
effects of the modes.

Via Structures and Metallization Thickness Limitation


In Momentum, the current flow on via structures is only allowed in the vertical
direction; horizontal or circulating currents are not modeled. As via structures are
metallization patterns, the modeling of metallization losses in via's is identical to the
modeling of metallization loss in microstrip. There is an automated procedure that
allows for the expansion of the finite thickness conductor.

Via Structures and Substrate Thickness Limitation


The vertical electrical currents on via structures are modeled with rooftop basis
functions. In this modeling, the vertical via structure is treated as one cell. This
places an upper limit to the substrate layer thickness as the cell dimensions should
not exceed 1/20 of a wavelength for accurate simulation results. Momentum
simulations with via structures passing through electrically thick substrate layers
will become less accurate at higher frequencies. By splitting the thick substrate layer
into more than one layer, more via-cells are created and a more accurate solution is
obtained.

A-15
Theory of Operation

CPU Time and Memory Requirements


Both CPU time and memory needed for a Momentum simulation increase with the
complexity of the circuit and the density of the mesh. The size N of the interaction
matrix equation is equal to the number of edges in the mesh. For calibrated ports, the
number of unknowns is increased with the edges in the feedlines added to the
transmission line ports.

CPU Time
The CPU time requirements for a Momentum simulation can be expressed as:
CPU time = A + B N + C N2 + D N 3
where:
N = number of unknowns
A, B, C, D = constants independent of N
The constant term A accounts for the simulation set up time. The meshing of the
structure is responsible for the linear term, BN. The loading of the interaction matrix
is responsible for the quadratic term and the solving of the matrix equation accounts
for:
part of the quadratic term (when using the iterative solver)
the cubic term (when using the direct solver)
It is difficult to predict the value of the constants A, B, C and D, as they depend on
the problem at hand.
The quadratic and the cubic terms are dominating the overall CPU-time
requirements. For small to medium size problems, as the constant C is much larger
than D, the solution time is dominated by the loading of the matrix. For larger
problems the matrix solve time with its cubic term will eventually dominate the
CPU-time requirements.

Memory Usage
The memory requirement for a Momentum simulation can be expressed as:
Memory = X + Y N + Z N2
where

A-16
N = number of unknowns
X, Y, Z constants independent of N
Like with the CPU time expression, the constants X, Y and Z are difficult to predict
for any given structure.
For medium to large size problems, the quadratic term, which accounts for storing of
the interaction matrix, always dominates the overall memory requirement. For small
structures, memory usage can also be dependent upon the substrate. The substrate
database must be read and interpolated, which requires a certain amount of memory.
Algorithms to make trade-off between time and memory resources are implemented
in the simulator. These algorithms result in additional usage above that required to
solve the matrix. Total memory consumption is typically less than 1.5 times what is
required to store the matrix, for large matrices.

About the Momentum Solver


Momentum has three solvers to address the linear system of equations that results
from the Method of Moment description of an EM problem:
a traditional direct solver, for the dense MoM system of equations
an iterative Krylov solver
a direct compressed matrix solver
In the auto-select mode, Momentum automatically chooses an appropriate solver for
the EM problem depending on; the problem size (number of unknowns), other
characteristics of the problem (especially ease and effectiveness of precondition for
the iterative solver) and the platform/machine Momentum is running on.

Direct Versus Iterative Solvers


The traditional, direct solvers use a Gauss elimination type of algorithm forming an
LU decomposition of the square system matrix first, followed by a sequence of two
simple solve steps to solve the complete system on the triangular systems formed
with the lower and upper triangular matrices L and U. This solve mechanism is very
reliable and works for all types of problems, but the LU decomposition phase is
expensive in computation time because this process requires time that grows with
the cube of the number of unknowns in the system.
(Gauss elimination for a dense linear system is a process of order N^3, with N the
number of unknowns). This means that when using a direct solver for Momentum

A-17
Theory of Operation

problems with a large number of basis unknowns, the time required for the solve
stage of the simulation eventually dominates the entire simulation time. This can
occur for problems of 5000 basis unknowns and above. This is especially true in
Momentum RF mode, where you only need a single expensive load step for all
frequency points, but a solve stage in all frequency points.
The iterative Krylov subspace solver does not require an expensive decomposition of
the system matrix, but instead uses a sequence of matrix vector products to
iteratively get a good approximation of the solution of the linear system. Krylov
subspace methods allow many problems to get to the solution of the linear system
using a number of steps that is very small compared to the problem size (number of
unknowns). So, their computation time essentially depends on how efficiently a
matrix vector product can be executed for a given problem. For linear systems with a
dense system matrix, matrix vector products have time requirements that grow with
the square of the number of unknowns in the system.
But the robustness and reliability of iterative Krylov solvers on general system
matrices is far below that of the direct solvers. It is hard to guarantee faster solve
times or even that the iterative solver will converge properly for all types of system
matrices encountered in Momentum problems. The effectiveness of an iterative
Krylov solver greatly depends on the preconditioning applied to the linear system of
equations. Preconditioning techniques are transformations applied to the linear
system so that the convergence behavior of the iterative solution method improves.
These preconditioning techniques depend on heuristics that are often problem
dependent and can vary from very simple and fast to very elaborate with a lot of
processing overhead (killing the speed advantages).
The convergence complications with the iterative solver and the problem dependence
of the most appropriate solver makes manual selection difficult for the user.
Momentum avoids this difficulty by trying to select the best solver for the current
problem automatically. Sometimes, this requires that Momentum fall back to the
direct solver and doing a recalculation, but the computational cost is still below that
of adding an additional AFS point.

Dense Versus Compressed Matrix Solvers


The traditional direct and iterative solver operate on the dense representation of the
linear system of equations that results from the Method of Moment description of an
EM problem. As a result, the memory required to store the matrix grows with order
N^2, where N is the size of the matrix. Momentum now also includes a proprietary
matrix compression technique that enables to reduce the matrix memory it needs. In

A-18
the compressed state, the required matrix memory only grows with order NlogN,
enabling to simulate much larger structures on a computer with a given available
RAM.

References
[1] R. F. Harrington, Field Computation by Moment Methods. Maxillan, New York
(1968).

A-19
-20 References
Appendix B: Customization

Public Procedures for Customization


Public Procedures for Customization:
rfdeMomSim_customMenuList
When the procedure rfdeMomSim_customMenuList is defined to return a list of
menuIds, these menuIds (e.g., created using hiCreatePullDownMenu) are added to
the rfde Momentum main simulation window menu bar.

Public Variables for Customization


The following environment variables govern the creation of momentum symbols:
adsMom.symbol pinSeparation string
adsMom.symbol labelHeigth string
adsMom.symbol pinHalfSize string
By default schematic settings are used so these are left blank in the .cdsenv file for
the adsMom tool. To define the value put around the float value:
pinseparation: the distance between two pin. (if value equals schematic
symGridSpacing is used).
labelHeigth: the size of the label (if value equals schematic
symbolLabelFontHeight is used).
pinHalfSize: half the size of the Pin Symbol (if value equals , it is set to 0.5*
the value of the environment variable schematic symbolLabelFontHeight).

B-1
Customization

B-2
Index
Numerics D
3D expansion, 6-5 Data Display window
64-bit Momentum, 7-11 viewing simulation results, 8-1
datasets
A of adaptive data, 8-2
adaptive of results, 8-5
sweep type of standard data, 8-2
and adaptive frequency sampling, 4-4 that store data, 8-1
and datasets, 8-2 variables, 8-4
data, 8-5 de-embedding, A-7
setting sample points, 4-6 differential ports
Adaptive Frequency Sampling, A-8 defining, 5-11
(AFS), 4-5 discrete matrix, A-3
about, 4-4 displaying
and convergence, 4-5 layouts, 10-6
and S-parameters, 4-7 mesh, 10-8
covergence data objects, 10-6
variables, 8-6 surface currents, 10-1
viewing convergence data, 8-5
advanced port types, 5-6 E
animating edge pin, 5-4
plotted currents, 10-7 equivalent network model, A-4
Assura
F
using Momentum components with, 9-10
file extension
C for datasets, 8-1
cadence pins, 5-1 freq variable, 8-4
calibration, 5-9, A-7 frequency
circuits limitations, A-14
analyzing in Momentum, 7-1 frequency plans
convergence and simulations, 4-1
of adaptive sweep, 4-5
G
viewing data, 8-5
CPU Gamma variable, 8-4
requirements, A-16 graphical view
time, A-16 substrate editor, 3-3
current plots Greens functions, A-6
animating, 10-7 grounds
currents reference ports, A-11
displaying, 10-1 H
plotting, 10-6
halting
customization
a simulation, 7-9
menus, B-1
healing, layout, 6-8
procedures, B-1
horizontal side currents, 6-2, 6-10
variables, B-1

Index-1
I surface wave, A-15
ImpMaxFreq, 9-4 Momentum
interaction matrix, A-3 limitations, A-12
loading and solving, A-7 simulation modes, A-13
physical interpretation, A-4 Momentum ports, 5-1
internal ports, A-11
N
L netlist function, 7-2
layout healing, 6-8 network model, A-4
layout layers
and overlap, 3-13 O
layouts objects
displaying, 10-6 displaying, 10-6
limitations odd modes
of Momentum, A-12 ports, 5-11
vias, A-15 overlap precedence, 3-13

M P
mask parameters (RFDE)
number, 3-16 ImpMaxFreq, 9-4
matrix phases
discrete, A-3 in current plots, 10-7
interaction, A-3 pins
loading and solving, A-7 cadence, 5-1
physical interpretation, A-4 edge, 5-4
matrix solver, 6-3 point, 5-5
auto-select, 6-3 reference, 5-7
dense versus compressed, A-18 Virtuoso, 5-1
direct compressed, 6-4 plots
direct dense, 6-3 of currents, 10-6
direct versus iterative, A-17 of the mesh, 10-8
iterative dense, 6-4 point pin, 5-5
memory port properties
usage, A-16 changing, 5-6
mesh ports, A-11
and metallization loss, A-9 calibration, A-7
displaying on a plot, 10-8 differential, 5-12
theory, A-6 defining, 5-11
metallization layers internal, A-11
and overlap, 3-13 Momentum, 5-1
metallization loss, A-9 solution weights, 10-5
vias, A-15 PORTZ variable, 8-4
method of moments, A-1 propagation modes
microwave simulation mode, A-13 ports, 5-11
mixed potential integral equation, A-2
modes R
ports, 5-11 reference pins, 5-7
simulation, A-13 remote

Index-2
64-bit Mometum, 7-11 in Momentum, 6-3
results S-parameters
stored in dataset variables, 8-4 variables, 8-4
viewing, 8-1 starting
reusing a simulation, 7-7
simulation data, 7-5 stopping
RF simulation mode, A-13 a simulation, 7-9
rooftop function, A-2 substrate editor
graphical view, 3-3
S subtracting geometries, 3-13
S matrix, 8-4 surface currents
S variable, 8-4 displaying, 10-1
S_50 variables, 8-4 plotting, 10-6
S_CONV surface wave modes, A-15
viewing, 8-6 sweeps
S_CONV variables, 8-4 types
S_ERROR adaptive frequency sampling, 4-4
viewing, 8-6 and sample points, 4-6
S_ERROR variables, 8-4
S_Z0 variables, 8-4 T
sample points theory of operation
and simulation, 4-6 overview, A-1
simulation data
reusing, 7-5 V
simulation modes, A-13 variables
matching to circuits, A-13 containing results, 8-4
selecting, 1-4 of convergence data, 8-6
simulations vias
64-bit Momentum, 7-11 limitations, A-15
frequency plans, 4-1 viewing
halting, 7-9 AFS parameters, 4-7
modes, A-13 S_CONV, 8-6
of metallization loss, A-9 S_ERROR, 8-6
prerequisites, 7-1 simulation results, 7-5
process, 7-1 simulation status, 7-9
remote, 7-11 simulation summary, 7-10
setting sample points, 4-6 views
starting, 7-7 simulator auto-update, 9-1, 9-9
steps for defining, 7-1 simulator create, 9-1
stopping, 7-9 Virtuoso pin, 5-1
summary, 7-10
viewing results, 7-5 W
viewing status, 7-9 weighting port solutions, 10-5
solution process
theory of operation, A-6 Z
solver, matrix Z0 variables, 8-5
dense versus compressed, A-18
direct versus iterative, A-17

Index-3
Index-4

You might also like