Integrated Inductor Design using ADS Momentum
A common passive component in RFIC design is the integrated inductor and designers are commonly interested in the total inductance as well as the quality factor, or Q. In this tutorial you will learn how to take the layout of an inductor that was generated using Cadence and import it into ADS Momentum where you can find the inductance and Q values for that particular layout. This tutorial can also be adapted to designing integrated transformers where one is also interested in the coupling factor, k.
It is assumed that the reader is familiar with the basic operation of Cadence and the basic operation of ADS.
Inductor Layout
- Begin by starting Cadence and creating a new layout cell view for the inductor. It is important that each inductor be given its own cell view because we will later be generating a time-domain model for using in future Cadence simulations and this model will be specific to a particular layout.
- Once you have created the new layout view, click on
Options->Display
and change the X Snap Spacing and the Y Snap Spacing to the minimum spacing required by your fabrication process.- If you are using a Cadence Process Design Kit (PDK) this setting is likely to be set by default.
- Create the inductor layout making sure that it is DRC clean
- IMPORTANT: It is imperative that the input and ports to the inductor be lined up exactly. If they are misaligned by even one grid pacing the resulting ADS simulations may become inacurate. In the below example the ports line up exactly in the y-dimension. The x-dimension does not matter (i.e., the ports do NOT have to be right on top of each other)
- If you instance a parameterized cell (p-cell) inductor, then you should flatten the layout by selecting
Edit->Hierarchy->Flatten
and then delete everything but the drawing layers from the design.
Exporting Layout to ADS
We will now export the inductor layout to a *.gds file in preparation for simulation and modeling of the inductor in ADS Momentum.
- In the Cadence CIW window click
File->Export->Stream
this brings up the Stream Out window.- Enter the name of the exported gds file. The file should have an extension '.gds' in the Stream File field.
- In the Technology Library field, enter the technology library that is attached to your working library. This will often be the name of your Cadence PDK library.
- In the Library field, enter the name of the Library where the inductor cell view is located
- In the Toplevel Cell(s) field, enter the name of the cell view containing the inductor layout
- In the View field enter the view name of the inductor layout (e.g., layout)
- Select Options and then the Layers tab
- Click on Load File and load the layer mapping file (if you have one). This file maps the cadence layers (i.e., M1, V12, M2, etc.) to gds layers and will have an extension of *.map. It may be called something like cds2gds.map and if you are using a PDK this file will sometimes be included in the PDK files. You can also use Automatic Mapping if no mapping file exists.
- Click OK
- In the Stream Out window click Translate
ADS S-Parameter Simulation
ADS is a 2.5-D electromagnetic simulator. You will use ADS to perform S-parameter simulations on your inductor layout and then extract characteristics such as inductance, quality factor, and self-resonant frequency from the results. Typically, the inductor is being designed for use in a larger circuit that will be designed using Cadence. You can also use ADS to generate an equivalent time-domain model of the inductor for use in future Cadence simulations. This process will be broken up into several steps and it is assumed that the reader has some basic familiarity with ADS.
Importing the Layout into ADS
- Begin by starting ADS and creating a new project. Alternatively, you can open an existing project.
- Create a new layout window by clicking
Window->New Layout
- You will now import the *.gds file that you created from your Cadence layout. In the ADS layout window click
File -> Import
- In the File Type select GDSII Stream Format
- Enter the name and location of your *.gds file in the Import file name (source) field
- In the Layers file name enter the name of the ADS layers file (if one exists). If you are using a PDK it is likely that such a file (with file extension *.lay) exists in the PDK files. If one does not exist, you can create one by hand or simply leave the field blank.
- Click OK
- Once you have imported your *.gds file into ADS you should see your inductor layout in the ADS layout window. Save your work, and remember that you must save the layout in the current project directory as this is where ADS will look for it.
- In general it is best to let ADS save the file in the default location. It causes fewer headaches later on.
- We must make sure that the ADS grid spacing matches the grid spacing used in Cadence to create the layout. In the layout window click
Options->Preferences
and click on the Grid/Snap tab - Change the Snap Grid Distance (in layout units) to match the X Snap Spacing and Y Snap Spacing that was used in Cadence
- You can leave the Snap Grid Per Minor Display Grid and the Snap Grid Per Major Display Grid at the default values
- It is a good idea to merge all of the metal layers as this will help speed up the simulation time
- This is done by selecting everything on one layer and clicking
Edit -> Merge -> Union
- Repeat this step for each layer
- This is done by selecting everything on one layer and clicking
- Next you must insert ports. Click
Insert -> Ports
- Place a port at each terminal of the inductor ensuring that the layer on which the port is inserted matches the metal layer on the inductor that the port is being connected to
- IMPORTANT: If the ports are on the same side of the inductor (see the figure below) the ports must be at exactly the same y-dimension for accurate simulation results.
- Snapping options exist for ease of placement
Configure Simulation Settings
- In order for the simulation to be accurate an accurate substrate definition file must be used. There may be a future tutorial on how to create this file manually, but for right now it is assumed that you already have such a file (for example from the PDK). Load the substrate file by clicking
Momentum->Substrate->Open
. When asked if you would like to open a supplied substrate click No- Browse to your chosen substrate file and click OK
- The next step is to configure the Mesh. ADS uses the finite element method (FEM) to solve the complex differential equations required in order to get a solution for the EM fields generated by the structure of interest (in this case in inductor). As such it will generate a trapazoidal mesh and we need to define some of the characteristics of this mesh.
- In the layout window click
Momentum->Mesh->Setup
- Set the Mesh Frequency to a frequency higher than the maximum frequency of interest. For example if you wanted to model and inductor from 1 GHz to 10 GHz you might set the Mesh Frequency to 15 GHz
- Set the Mesh Density to 30 cells/wavelength. The larger this number the more accurate the simulation but the longer the overall simulation time.
- Leave the Arc Resolution (max 45 deg) at the default value of 45
- Unselect Edge Mesh
- Select Horizontal side currents (thick conductors)
- Click OK
- In the layout window click
- You must now setup the S-parameter simulation
- Click
Momentum->Simulation->S-parameters
- Fill in the Start and Stop frequencies and use the default values for everything else
- You can specify the name of the resulting dataset in the Dataset field
- Click Simulate
Note: that the first time you run the simulation it will take quite a long time because ADS must first generate the Green's functions and then save them. Subsequent simulations, however, will be much shorter because ADS will be able to simply load the precalculated Green's functions. The exception is if the simulation frequency range is increased. In this case ADS must recalculate the Green's functions for the new, expanded frequency range and hence the simulation will again take a long time. If the frequency range is reduced, this does not apply.
Viewing Results
Generating the Time-Domain Model
This section will deal with how to create a time-domain model that is equivalent to the layout that was simulated above. For this section you will need to have a dataset containing the S-parameter simulation results. This is obtained by simply running an S-parameter simulation over the frequency range of interest.
- Begin by creating a new schematic and build the inductor model of choice using ideal elements from the Lumped Components library. A common model is the 9-element model shown below where Ls is the series inductance, Rs is the series resistance, Cbr is the interwinding capacitance, Cox is the oxide capacitance, Csub and Rsub are used to model the effects of the lossy substrate.
- From the Data Items library add a data block with the same number of ports as your inductor.
- This is likely going to be 2, so you would add an s2p block. It coule, however, be three if you are modeling a center tapped inductor or even more than four if you are modeling a transformer.
- Double click on the newly placed data item in your schematic to edit its properties.
- Make sure that under Parameter Entry Mode it reads Network parameter filename
- Under File Name enter the name of the dataset from your S-parameter simulation. The file extension should be a *.ds. (There will be two version of your dataset file dataset.ds and dataset_a.ds. You should choose the dataset_a.ds)
- Under File Type select Dataset