utmost4_users1

March 17, 2018 | Author: gideontargrave7 | Category: Computer Engineering, Electrical Engineering, Electronic Engineering, Computing, Technology


Comments



Description

Utmost IVUser’s Manual Silvaco, Inc. 4701 Patrick Henry Drive, Bldg. 2 Santa Clara, CA 95054 Phone: (408) 567-1000 Web: www.silvaco.com May 12, 2015 Notice The information contained in this document is subject to change without notice. Silvaco, Inc. MAKES NO WARRANTY OF ANY KIND WITH REGARD TO THIS MATERIAL, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTY OF FITNESS FOR A PARTICULAR PURPOSE. Silvaco, Inc. shall not be held liable for errors contained herein or for incidental or consequential damages in connection with the furnishing, performance, or use of this material. This document contains proprietary information, which is protected by copyright laws of the United States. All rights are reserved. No part of this document may be photocopied, reproduced, or translated into another language without the prior written consent of Silvaco, Inc. AccuCell, AccuCore, Athena, Athena 1D, Atlas, Blaze, C-Interpreter, Catalyst AD, Catalyst DA, Clarity RLC, Clever, Clever Interconnect, Custom IC CAD, DeckBuild, DevEdit, DevEdit 3D, Device 3D, DRC Assist, Elite, Exact, Expert, Expert C++, Expert 200, ExpertViews, Ferro, Gateway, Gateway 200, Giga, Giga 3D, Guardian, Guardian DRC, Guardian LVS, Guardian NET, Harmony, Hipex, Hipex C, Hipex NET, Hipex RC, HyperFault, Interconnect Modeling, IWorkBench, Laser, LED, LED 3D, Lisa, Luminous, Luminous 3D, Magnetic, Magnetic 3D, MaskViews, MC Etch & Depo, MC Device, MC Implant, Mercury, MixedMode, MixedMode XL, MultiCore, Noise, OLED, Optolith, Organic Display, Organic Solar, OTFT, Quantum, Quantum 3D, Quest, RealTime DRC, REM 2D, REM 3D, SEdit, SMovie, S-Pisces, SSuprem 3, SSuprem 4, SDDL, SFLM, SIPC, SiC, Silvaco, Silvaco Management Console, SMAN, Silvaco Relational Database, Silos, Simulation Standard, SmartSpice, SmartSpice 200, SmartSpice API, SmartSpice Debugger, SmartSpice Embedded, SmartSpice Interpreter, SmartSpice Optimizer, SmartSpice RadHard, SmartSpice Reliability, SmartSpice Rubberband, SmartSpice RF, SmartView, SolverLib, Spayn, SpiceServer, Spider, Stellar, TCAD Driven CAD, TCAD Omni, TCAD Omni Utility, TCAD & EDA Omni Utility, TFT, TFT 3D, Thermal 3D, TonyPlot, TonyPlot 3D, TurboLint, Universal Token, Universal Utility Token, Utmost III, Utmost III Bipolar, Utmost III Diode, Utmost III GaAs, Utmost III HBT, Utmost III JFET, Utmost III MOS, Utmost III MultiCore, Utmost III SOI, Utmost III TFT, Utmost III VBIC, Utmost IV, Utmost IV Acquisition Module, Utmost IV Model Check Module, Utmost IV Optimization Module, Utmost IV Script Module, VCSEL, Verilog-A, Victory, Victory Cell, Victory Device, Victory Device Single Event Effects, Victory Process, Victory Process Advanced Diffusion & Oxidation, Victory Process Monte Carlo Implant, Victory Process Physical Etch & Deposit, Victory Stress, Virtual Wafer Fab, VWF, VWF Automation Tools, VWF Interactive Tools, and Vyper are trademarks of Silvaco, Inc. All other trademarks mentioned in this manual are the property of their respective owners. Copyright © 1984 - 2015, Silvaco, Inc. 2 Utmost IV User’s Manual How to Read this Manual Style Conventions Font Style/Convention Description Example • This represents a list of items or terms. • • • 1. This represents a set of directions to perform an action. To open a door: 1. Unlock the door by inserting the key into keyhole. 2. Turn key counter-clockwise. 3. Pull out the key from the keyhole. 4. Grab the doorknob and turn clockwise and pull.  This represents a sequence of menu options and GUI buttons to perform an action. FileOpen Courier This represents the commands, parameters, and variables syntax. HAPPY BIRTHDAY Times Roman Bold This represents the menu options and buttons in the GUI. File New Century Italics This represents the variables of equations. x+y=1 2. 3. Note: Schoolbook This represents the additional important information. 3 Bullet A Bullet B Bullet C Note: Make sure you save often when working on a manual. Utmost IV User’s Manual Table of Contents Chapter 1  Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Chapter 2  Getting Started . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.1 Installing the Firebird Database Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.2 Configuring Firewall for Firebird Database Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.3 Creating a Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.4 Upgrading your Utmost IV Database Version . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.5 Connecting to a Database from Utmost IV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.6 Setting Up the SmartView Viewer for Utmost IV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Chapter 3  Databases and Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 3.1 Opening a Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 3.2 Closing a Database. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 3.3 Logging Into and Out of a Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 3.4 Changing the User Password for a Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 3.5 Creating a New Project. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 3.6 Opening a Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 3.7 Modifying the Project Permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 3.8 Importing a Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 3.9 Exporting a Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 3.10 Reading Project Parts from Existing Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 Chapter 4  Datasets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 4.1 Dataset Keys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 4.2 Editing a Dataset. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 4.3 Modifying the Dataset Permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 4.4 Deleting Datasets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 4.5 Importing Datasets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 4.6 Exporting Datasets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 4.7 Writing a Dataset out to CSV Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 Chapter 5  Managing the Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 5.1 Deleting Projects and Datasets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 5.2 Changing the Owner of Projects and Datasets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 5.3 Changing the Permissions of Projects and Datasets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 5.4 Unlocking Projects and Datasets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 Chapter 6  Acquisition Module. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 4 Utmost IV User’s Manual Table of Contents 6.1 Defining Temperatures. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 6.2 Defining the Wafer Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 6.2.1 Defining the Header, Batch and Wafer Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 6.2.2 Defining the Die Selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 6.2.3 Defining the Group Selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 6.3 Defining Devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 6.4 Defining Extractions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 6.5 Defining Variables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 6.6 Defining Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 6.6.1 Editing the Controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 6.6.2 Editing an Instrument . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 6.6.3 Editing the Scanner Instrument . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 6.6.4 Editing the Noise Instrument . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 6.7 Defining Connections. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 6.7.1 Manual Ground Connections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 6.8 The Model Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 6.9 The Device Subset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 6.10 The Measurement Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 6.10.1 Defining the Node Names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 6.10.2 Defining a Sweep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 6.10.3 Defining a Constant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 6.10.4 Defining the Mirror . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 6.10.5 Defining the Iterator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 6.10.6 Defining the Iteratee Sweep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 6.10.7 Defining a Pulse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 6.10.8 Defining a Target . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 6.10.9 Defining the LCR Source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 6.10.10 Defining the LCR Target . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 6.10.11 Defining a Port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 6.10.12 Defining the Noise Target . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 6.10.13 Defining a Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 6.10.14 Defining a Plot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 6.10.15 Common Device Nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 6.11 The Extraction Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 6.12 Acquiring Data using the Measurement Sequence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 6.12.1 Selecting Measurement Mode or Simulation Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 6.12.2 Combining the Device Subset and the Measurement Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 6.12.3 Combining the Device Subset and the Extraction Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 6.12.4 Running the Measurement Sequence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 6.12.5 Capacitance Calibration and De-embedding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 6.12.6 Generating a Script Version of the Measurement Sequence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 6.13 The Measured Datasets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 Chapter 7  Optimization Module. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 7.1 Creating and Managing Searches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 7.2 Searching for Datasets in the Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 7.3 Sorting Datasets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 7.4 Displaying Dataset Plots in the Viewer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 5 Utmost IV User’s Manual . . . . . .13 The Dataset Subset. . . . . . . .5 Deleting a Model Card .3 Changing a Model Card . . . . . . . . . . . . . . . . . . . . . 138 7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 Saving the Parameter Modifications . . . . . . . . . . . . . . . .10. . . . . . . . . . . . . . . . . . . . . . . . .9 Exporting Model Cards . . . . . . . 127 7. . . . . . . . . . . . . .2 Data Floor . . .6. . . . . . . . . . . . . . . . . . . . . . . . . .15 Deleting Model Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5 Reverting to the Last Saved Model Parameters . . . . . . . 123 7. . . . . .10 Exporting Model Params . . . . .10. . . . . . . . .Table of Contents 7.6. . . . . . . . . . . . .4 Exporting the Netlist . . . 162 6 Utmost IV User’s Manual . . . . 155 7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5. . . . . . . . . . . . . . .6. . . . . . 117 7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 7. . . . . . . . . . . . . . . . . . . . .1 Choosing an Optimizer . . . . . . . . .6. . . 131 7. . . . . .11. . .1 Displaying Plots from Datasets with Multiple Sweeps . . . . . . . .8 Defining Variables. . . . . . . . . .2 Displaying Additional Information about the Dataset in the Viewer . . . .11. . . . . . . . . . . . . .11. . . . . . . . . 155 7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 7. . . . . . .5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 7. . . 149 7. . . . . . . . . . 146 7.6 Clearing the Model Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 7. . . . . . .6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10. . . . . . . . . . . . . .5. . . 131 7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6. . . . . . . . . . .15 The Extraction Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5. . . . .6. . . . . . . . . . . 130 7. . . . . . . . . . . . . . . . . . . 153 7. . . . . . . . . . . . . . . . . . . .6. . . . . . . . . . . . . . . . . . . . . . . . . . . . .11 Exporting Model Library to Spayn . . . . . . . . . . . . .3 Reading from an External Model Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10. . . . . . . 131 7. . . . . . . . . . . . . . . . . . . . . . 152 7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5 Defining the Netlist for Simulation . . . . . . . . . . . . . . . . . . . . . . . . . . 153 7. . . . . . . . . . . . . . .6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 7. . . . . . . . . 159 7. . . . . . . . . . . . . . . . . . . .6 Optimizing Model Parameters from Rubberband . . . . . . . . . . . . . . . . . . . . . .17 Using an Expression to Define a Model Parameter . . . . 154 7. . . . . . . . . . . . . . . . . .6 The Model Library . 142 7. . . . . . . . . . . . . . . . . . . . .3 Effect of Boxes on Error Calculation . . . 155 7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 7. . . . 142 7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156 7. . . . . . . . . . . . . . . . . . . . . . . . . .11 Using Rubberband to Explore and Modify Model Parameters . . . . . . . . . . . .2 Modifying Parameter Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7 Importing Model Cards .1 Linear and Logarithmic Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14 Editing Model Parameters . . . . . . . . . .4. . . . .5 Displaying the Error on the Viewer . . . . . . . . .4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 7. . . . . . . . . . . . . . . . . . . . . . . . . . 126 7. . . . . . . . . . . . . . . . . . . . . . . . . .2 Copying a Model Column . . . . . . . . . . . . . . . . . . . . . . . 151 7. . . . . . . . . . . .13 Renaming a Model Parameter . . . . . 132 7. . . . . . . . . . . . . . . . . . . . . 150 7. . . . . . . . . . . . . . . . . . . . . .6. . . . . .11. . . . . . . .6. . . . . . . . .14. . . . . . . .4 De-selecting a Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9 Comparing Measured and Simulated Data. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6. . . . . . . . . . .2 Macro Model Netlist . . . 160 7. . . . . . . . . . . . . . . . . . . . 124 7. . . . . . . . . . . . . . . . . . . . . .10. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2 Defining the Optimization Target Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7 Defining Extractions . . . . . . . . . . . . . . . . . . .1 Compact Model SPICE Netlist . . . . . . . . . . . . . . . . .6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 7. . . . . . 155 7. . . . . . . . . . . . . . . . . . . . . . . . . .6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 7. . . . . . . . . . . . . . . . . . . . . . . 156 7. . . . . . . . . . . . . . . . . . 125 7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10 Error Calculation. . . . . . . . . . . .1 Combining the Dataset Subset and Extraction Setup . . . . . . . . . . . . . . . . .16 Automation Using the Optimization Sequence . . . . . . 158 7. . .4 Outlier Removal . . . . .14 The Optimization Setup . . . . . . . . . . . . . .4 Duplicating a Model Card . . . . . . . . . . . . . . . . . . . . . . . .1 Creating a New Model Card . . . . . . . . . . . . . . . . . . . . . . . . . . . .12 Optimizing the Model Parameters from the Viewer . . . . . . . . . . . . . . . . . . . . . .16 Marking and Unmarking Model Parameters . . . .1 Selecting a Parameter to Rubberband . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 7. . . . . . 154 7. . . . . . . . . . . .8 Importing Model Params .14. . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 7. . . . . . . . . . . . . . . . . . . . . 128 7. . . . . . . . . . . . . . . . . . . . . . . . . . . .11. . . . 112 7. . . . . . . . . . . . . . . . . . . . . . . .12 Inserting Model Parameters . . 162 7. . . . . . . . . . 130 7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 Choosing the Model Parameters to Optimize . . . . . . 161 7. . . . . . . . . . . . . . . . . .6. .16. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11. . . . . . . . . . . . . . . . . . . . . . .5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 9. . . . . . . . . . . . . . . . 188 9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5 makeExtraction . . . . . . . . . . . . . . . . . . . . . . . . . .4 Rubberbanding your Verilog-A Model with SmartSpice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1 Automated Report Document Generation using the Sequence . . . . . . . . . . . . . . . . . . 187 9. . . . . . . . . . . . . . . . .4. . . . . . . . .3 Automatically Creating a Script from a Project . .4. . . . . . . . . 177 8. . . . . . . . . . . . . . . 185 9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 9. . . . . . . . . . . . . . .4 Running the Optimization Sequence . . . . . . . . .3 The Parameters . . . . 166 7. . . . 169 Chapter 8  Developing your own SPICE Model using Verilog-A. . . . . . . . . . 168 7. . . . . . . . . . . . . . . . . . . . . . .5 The Analog Code Section . . . . . . . . .2 Running a Script using the Command Line Interface . . . . . . . . . . . .1. . . .4. . . . . . . . . . . . . . . .1 Writing the Verilog-A Module Code. . 184 9. . . . . . . . . . . . . . . .16. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 makeDevice . . . . . . . . . . . . . . . . . . . . . . .16. . . . . . . . . . . . . . . . . . . . . . . . . . . . .4. . . . . . . . . . . . . . . . . . .16. . . . . . . . . . . . . . . . . . . . . . . . 171 8. . . . . . . .16. . . . . . . . .6 Inserting a Pause in the Sequence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 7. . . . . . . . . . .2 Automatic Plot File Generation using the Sequence . . . .7 makeNetlist . . . . . . . . . . . . . . . . . . . . . . . . . . . .15 writeToFile . . . . . . . . . . . .2 readProject . . . . . . . . . . . . . . . . . . . . . . . . . . . .4. 186 9. . . . .4 makeDeviceNode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191 9. . . . .5 Combining Verilog-A Models and other SPICE Models . . . . . . . . 165 7. . . . .3 Displaying the Data for the Optimization Step . . . . . . . . . . . . . . . . . . . . . . . . 185 9. . . . . . . . . . . . . . .17. . . . . . . . . . . . 184 9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Utmost4 Object Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2 makeAttribute . . . . . . . . . .1. . . . . . . . . . . . . . . . . . . . . . . . . .17 Reporting . . . . . . . . . . . .2 Adding a Verilog-A Model Card into the Model Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9 openCurrentWorkingDirectory . . . . . . . . . . . . . . . . . . 189 9. . . . . . . . . . 182 9. . . . . . . . . . . . . . . . . . . .12 optimize3 . 162 7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2 Combining the Dataset Subset and Optimization Setup . . . . . . . . 188 9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 9. . . 189 9. . . . . . . . . . . . . . . . . . . . . 173 8. . . . . . . . . . . . . . . . . . . 175 8. . . . . . . . . . . .4. . . . . 180 Chapter 9  Script Module . . . . . . . . . . . . . . . . . . . . . . . . . .Table of Contents 7. . . .4 Variables for internal Use .4 Silvaco. . . . . .4. . . . . . . . . . . . . . . . . . . . . . . . . . .1. . . .16. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 9. . . . . . . .4. . . . . . . . .16.4. . . . . . .1. . 191 7 Utmost IV User’s Manual . . . . .8 makeVariable . . . . . . . . . . . . . . . . . . . . . .6 makeModelLibrary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191 9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5 Changing the Current Position in the Sequence . . . . . . . . . .1 The Module Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 9. . . . . . . . . . 186 9.4. . . . . . . . . . . . . . . . . . . . . . . . . . . . .10 openDatabase . . . . . . . . . . . . . .1 readDataSets . . . . . . . . . . . . . . . . . . . . . . . . . . 186 9. . . . . . . . . . . . . . . .17. . . . . . . . . . . . . . . . . 174 8. . . . . . . . . . .14 system . . . . . . . . .1. . . . . .3 Adding a Verilog-A Element into the Netlist. . . . . . . . . . . . . . . . . . . . . . . . . .5. .7 Using Rubberband from the Optimization Sequence . .4. . . . . . . . . . . . . . . . 172 8. . . . . . . . . . . . . . . . . . . . . .11 openDirectory .4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 9. . . . . . . . . . . .1 getDataFromSimulation2 . . . . .1 Running a Script Directly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5 Database Object Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6 Adding Capacitance into a Verilog-A Model . . . . . . . . . . . . . . . . . . . . . . . . . 166 7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13 releaseLicenses . . . . . . . . . . . . . . . . . . . . .8 Generating a Script Version of the Optimization Sequence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 8. . . . . . . . . . . . . . . 173 8. . . . . . . . . . . . . . . . . . . . . .16. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4. . . . . . . . . . .2 The Electrical Connections . . . 168 7. . . . . . . 208 9. . . . . . .1 capImportFromTCADLogfile . . . 206 9. . . . . . . . . . . . . . . . . . . . . . . . . . . 198 9. . . . . 209 9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7. . . . . . . . . . .6 getDeviceNames . . . . . . . . . . . . . . . . . . . . . .8. . . . . . . . . . . . . . . . . . . .14 writeCSVFile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5 getDevices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6 Directory Object Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 9. . .2 addFunction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 9. . . . . 194 9. . . . . . . . . . . . . . . . . . . . . . . 191 9. . . .8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 9. . . . . .8. . . . . . . . . . . . . . . . . . .8 getMeasData .8. . . . . . . . . . . . . .5. . . . . . . .6. . . . . . . . . . . . . .1 addAttribute . . . . . . . .13 simulate . . . . . . . . . .7. . . . . . . . . . . . . . . . .8. . . . . . .6 saveDataSets . . 205 9. . . . . . . . . . . . . . . . . . . . . . .9 getSimData . . . . . . . . . . .7. .6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7. . . . .20 getSearch . . . . . . . . . . . . . . . . . . . . . . . . . .8. . . . . . . . . . . . . .12 setKeys . . . . .2 dcImportFromTCADLogfile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15 getModelLibrary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23 getTemperatures .8. . . . . . . . . . . . . . . . . . . . . . . . . . . .4 saveProject . . . . . . . . . 203 9. . . . . . . . . . 197 9. 199 9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197 9. . . . . . . . . . . . . . . . . .8.8. . . . . . . . . . . . . . 192 9. . . . . . . . . . . . . . . . . . . . . . . . . . . . .8 Project Object Commands . . . . . . . . . . . . . . .1 getConnection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8.7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 saveDataSets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 9. . . . . . . . . . . . . . 195 9.6. . . . . 201 9. . . . . . . . . . . . .7. . . . . . 195 9. . . . . . . .3 addPlot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7. . . . . . . .7 getKeyVal . .8. . . . . . . . . . . . . . . . . . 205 9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .22 getSimulationCol . . . . . . .7. . . 198 9. . . . . . . . . . . . . . . . . . . 209 9. . . . . . . . . . .10 getSweepLen . . . .8 getDeviceSubsetNames . . . . . . . . . . . . . . . . . . . .6. . . . . 194 9. . . . . . . . . . . . . . . .3 getPath . . . . . . . . . . . . . . . .7. . .7. . . . .13 getMeasSetup . . . . . . . .8. 204 9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200 9. . . . . . . . . . . . . . . . .21 getSearchNames . . . . . 202 9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7. . . . 205 9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5 readProject . . . . . . . . . . . . . .8 sparImportFromTCADLogfile . . . . . . . . . . . . . . . . . .Table of Contents 9. . . . . . . . . . . . . . . . . . 208 9. . . . . . . . . . . . 203 9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196 9. . . . . . . . . . . . . .5. . . . . . . 207 9. . . . . . . . . . . . . .8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7 getDeviceSubset . . . . . . . . . . . . . . . . . . . . .7 DataSet Object Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 getDataSubsetNames . . . . . . . . . . . . . . . . . . . . . . . . .4 exportToTCADLogfile .8. . . . . . . . . . . . 202 9. . . . . . . . . . . . 197 9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 9. . . . . . . . . . . . . . . . . . . . . . .10 getExtractions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18 getOptimSetup . . . . . . .6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6. . . . . . .8. . . . . . . . . . . . . . . . . . 209 8 Utmost IV User’s Manual . . . . . . . 194 9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19 getOptimSetupNames . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 9.4 getDevice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5 extract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200 9. . . . . .7 saveProject . . .8. .8. . . . . . . . . . . . . . . . . . . . . . . . . . . .7. . . . . . . . . . . . . 201 9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8. . . . . . . . . . . . . . . . .12 getHardware . .4 readDataSets . . . . . . . . . . . . . . . . . . . .8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 9. . . . . . . . . . . . . . . . .6. . . . . . . . . . . . . . . . . . . 193 9. . . . . . . . . . . . . . . . . . . . . . . . . .8. . . . . .14 getMeasSetupNames .9 getExtraction . . . . . . . . .16 getNetlist . . . . . . . . 204 9. . 208 9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 9. . . . . 208 9. . . .11 getExtractionNames . . . . . . . . . . . . . . . . . . . . . . 193 9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17 getNetlistOfDevice . . . . . . . . .11 remove . . . . . . . . . .6 getAttrVal . . . . . . . . . . . . . . . . . . . . .2 getDataSubset . . . . . . . . . . . . . . . . . . . . . . . . . . . .7. 206 9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8. . . . . . . . . . . . . . . . .9 proberMove . . . . . . . . . . . . . . . . . . . . . . 210 9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213 9. . . . . . . . . . . . . . 211 9. . . . 219 9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 9. . . . . . . . . 218 9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11. . . . . . . . . . . . . . . . . . . . . . . .9 Search Object Commands . . . . . . . . . . . . . . . . . . .8. . . . . . . . . . . . . . . . . . .10 Netlist Object Commands . . . 219 9. . . . .11. . . . . . . . . . . . . . . .16. . . . . .11. . . .8 getCardNames . . . . . . . . 232 9 Utmost IV User’s Manual . 224 9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220 9. . . . . .7 proberHome . . . . . . . . . . . .30 setVariables . . . . . . . . . . . . . . . . . . . . . . . . . .11. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212 9. . . . . . . . . . . . . . . . . . . . 231 9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224 9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15 importModelParams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231 9. .14 DataSubset Object Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . .16. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Table of Contents 9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1 getName . . . . . . . . . . . . . . . . . .5 exportModelCard . . . . . . . . . . . . . . .11. . . . . . 214 9. . . . . . . . .11. . . . . . . . . . .12 Extraction Object Commands . . .11 getValue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 9. . . . . . . . . . 223 9. . . . . . . . . . . . . . . . . . . .24 getType . . . . . . . . . . . . . . .3 measureWithShort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222 9. . . . . . . . .4 measureWithOpenAndShort . . . . . . . . . . . . . . . . . .11. . . 215 9. . . . . . . 210 9. . . . . . . 218 9. .11. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 9. . . . . . . . . . . . . . . . . . . . . 215 9. . . . . . . . . . . . . . . 231 9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11 scannerClear . . . . . . . . . . . . . . . 232 9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 9. .8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16. . . . . . . . . . . .4 deleteParameter . . . . . . . . . . . . . .16 renameCard . . . 226 9. . . . . 213 9. . . . . . . . . . . . . . . . . . .15 OptimSetup Object Commands. . .9. . . . . . . 212 9. . . 222 9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8. . .11. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27 getVariableNames . . . . . . . . . . . . .28 getWaferMap . . . . . . . .1 getSearch . . . . . . . . . . . . . . . . . . . . . . . . .11 ModelLibrary Object Commands. . . . .13 Variable Object Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1 measure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10. . . . . . . . . . . . . .12 hasCard . . . . . .5 proberContact . . 216 9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11. . . . . .11. . . . . . . . . . . . . . . . . . . . . . . . . 232 9. . . . .1 getOptimizerType . . . . . . . . . . . . . . . . 220 9. .2 measureWithOpen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2 addParameter . . . . . . . . . . . . . . .8 proberLoad . . . . . . . .6 proberInit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225 9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .26 getVariables . . . . . .16. . . . . . . . . .11. . . 214 9. . . . . . . . . . .1 addCard . . . . . . . . . . 229 9. . . . . . . . . . . . . . . 217 9. . . . 224 9. . . . . . . . . . . . . . . . . . .9 getCardType . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16 Hardware Object Commands. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8. . . . . . . . . . . . . . . . . .13. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10 getParamNames . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17 setValue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6 exportModelCardToSSF . . . . . . . . . . 228 9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210 9. . . . . . . . . . . . .11. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7 generateBinnedModel . . . . . . . . . . . . . . . . . . . . 225 9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .29 setModelLibrary . . . . .13 hasParameter . . . . .13. . . . . . . . . . . . . . . . . . . . . . . .16. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16. . . . . . . . . . . . . . . . 220 9. . . . . . . .16. . . . . . . . . . .11. . . .16. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214 9. . . . . . . . . . . . . . . . . . . .14. 221 9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2 getName () . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11. . . . . . . . . . . 210 9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 9. . . . . . . . . . . . . . .1 appendSearch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16. . . . . . . . . . . . . . . . . . . . . . . . .3 deleteCard . . . . . .14 importModelCards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 9. . . . . . . . . .10 proberNoContact . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .25 getVariable . . . . . 231 9. . . . . . . . . . . . .1 getExpr () . . . . . . . . . . . 230 9. . . . . . . . . . . .1 apply . . . . . . . . . . 223 9. . . . . . . . . . . . . . 235 9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260 A. . . . . . . . . . . . . . . . . . . . . . . .6 Converting ICCAP data with 3 Sweeps into Multiple 2 Sweep Datasets. . . . . . . . . . . . . . . . . . . . . . 258 A. . . . . . . . . . . . . . . . . . 237 9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235 9. . . . . . . . . .12 scannerConnect . . . .4 Creating an Extraction Plot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4 Parallel Tempering Optimization Algorithm (PT) . . . . . 266 B. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19 Device Object Commands .7 Correcting Polarity in BSIMPro Data . . . . . . . . . . . .3 Simulated Annealing Optimization Algorithm (SA). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7 Hybrid Optimization Algorithm (HY). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16. . . . . . . . . . . . . . 238 9. . . . . . . .2 getValue . . . . . . . . . . . . . . . . . . . . . . . . . . . 249 A. . . . . .1 Least Squares Levenberg-Marquardt Optimization Algorithm (LM) . . . . .16. . . . . . . . . 233 9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14 verify . . . . . . . . . . . . . . . . . . . . 235 9. . . . . . . . . . . . . . . . . . . . . . . . . . . .8 Automating the Conversion of Multiple Files . . . . . . . . . . . . . . . . . . . . . . .17. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21. . . . . . . . . . . . . . . . . . and Atlas . . . . . . . . . . . . . . . . . . . . . . 239 9. . . . . . . . . . 239 9. .16. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248 Appendix A  Optimization Algorithms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2 getPins . . . . .21. . . . . . . . . . . . . . BSIMPro. . . . . . . . . . . . . . . . . . . . . . . . .1 getBatchName . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 getWaferNames . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236 9. 262 Appendix B  Converting Data from ICCAP. . . 233 9. . . . . . . . . . . . . . . . . . . . 266 B. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5 Genetic Optimization Algorithm (GA). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17 WaferMap Object Commands . . . . . . . . . . . . . . . . .2 Hooke-Jeeves Optimization Algorithm (HJ) . . . . . . . 239 Chapter 10  Model Check Module . 236 9. .19. . . . . . . . . . . . . . . . . . . 267 B. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265 B.19. . .2 getName . . . . . . . . . . . .18 DeviceSubset Object Commands . . . . . . . . 268 10 Utmost IV User’s Manual . 243 10. . . . . . . . . . . . .1 apply . . . . . . . . . . . . . . . . . . . . . . . . .6 Exploring Your Device Model . . .2 The Utmost IV Data File Header . . . . . . . . . . . . . .1 getName . . . . . . . . 242 10. . . .Table of Contents 9. . . . . . 252 A. . . . . . . . . . 265 B. . . . . . . . . .17. . . . . . . . . . . . . . . . . . . 254 A. . . . . . .5 Adding a Plot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265 B. . . . . . . . . . . . . . . . . .2 The Model Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4 Adding a Function . . . . . . . . . . . . . . 266 B. . 238 9. . . . . . . . . .20 DeviceNode Object Commands. . . . . . . . . . . . . . . . . . . . . . . . . . . .1 getGroupName . . . . . . . . . . . . .20. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5 Running the Model Check Sequence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256 A. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263 B. . . . . . .1 Setting Up a Simulation . 240 10. . . . . . . . . . . . . . . . . . . . . . . .17. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235 9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6 Differential Evolution Optimization Algorithm (DE) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 Adding an Attribute . . . . . . . . . . . .2 getDieNames . . 245 10. . . . . . . . ProPlus. . . . . . . . . . . .18. . . .3 Creating a Characteristic Plot . . . . 243 10. . . . . . . . . . . . .1 Adding Missing Key Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21 Attribute Object Commands . . . . . . . . . . . . . . . . . . . . . . 237 9. . . . . . . . . . . . . . . .1 getName . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20. . . . . . . . . 238 9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13 thermalSet . . . . . . . . . . . . . . . . . . . . . . . 247 10. . 237 9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251 A. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Chapter 1 Introduction . Unlimited multi-target optimization and rubberband optimization. Figure 1-1 Utmost IV Architecture 13 Utmost IV User’s Manual . Direct parameter extraction can be included within the sequence.Introduction Utmost IV provides an easy to use. Easy to import measured data from other sources. Optimization sequence for automated model extraction. • • • • • • • • • • • • • • • Support for all technologies and types of device. Open instrument drivers written in JavaScript scripting language can be modified or copied by customers who want to write their own. Fully flexible measurement setup conditions. Fully automated measurement sequence. Support for other simulators (HSPICE. SPECTRE. A relational database to help organize your work. High speed interface to SmartSpice simulator for fast and accurate results. Family of advanced optimization algorithms for both local and global optimization. Fully integrated macro-model sub-circuit support of any complexity. mixed-signal. Utmost IV consists of four modules as shown in the figure below. and ELDO). Script module JavaScript language provides easy automation and customization. Important features of Utmost IV include the following. Parallel SmartSpice gives even faster simulation for multi-CPU computers. database-driven environment for the measurement of semiconductor devices and the generation of accurate high quality SPICE models and macromodels for analog. and RF applications. 14 Utmost IV User’s Manual . using various types of electrical test equipment. and verilog models can be generated for all device types. such as threshold voltage versus device length. macro (subcircuit). The datasets stored in the database are used as targets for the model extraction.Introduction Acquistion Module This module is used to measure physical devices directly. extract. Optimization Module This module is used to extract and optimize SPICE model parameters to obtain an accurate fit between simulated and measured device characteristics. optimize. These measured results (referred to as "datasets") are stored directly in the database. Each of these modules is described in this manual. It is also possible to generate datasets from TCAD simulations or from other SPICE simulations. A simple GUI interface allows you to display characteristic curves or plot extracted characteristics. and store the results. which allows you to write your own custom JavaScript based scripts to measure. This is particularly useful when comparing two SPICE models. This module can be used without the need to create and interface to the database. or when converting from one SPICE model type to another. Compact. making it ideal for quickly checking your legacy models. Script Module This module provides a scripting interface. Model Check Module This module provides a simple tool to explore and test your existing MOSFET device models. Chapter 2 Getting Started . Before getting started and actually using Utmost IV. a database server must be started and a new database created as described below. you should also select and install the firebird database server at the same time as shown below. When you install the software. 2. the Firebird database server can be configured and the server can be started.Installing the Firebird Database Server Getting Started Utmost IV uses a relational database to organize and store your work. log into the server machine as the root user and type the following command: 'firebird -install' Windows Run the installation executable and follow the on screen instructions. To do this. please refer to the SRDB User's Manual. For full details of the SRDB database management application.1 Installing the Firebird Database Server Linux Once the software package is installed into the local installation directory. Figure 2-1 Installing the Firebird Database Server on Windows 16 Utmost IV User’s Manual . 17 Utmost IV User’s Manual .Configuring Firewall for Firebird Database Server Getting Started 2. First connect to the newly created database and then add as many users as required. Use the following command to create a database. This will reduce network traffic and speed up database access. you will need to set the superuser password as follows. Now. connect to the database server using the following command: 'login <servername>' This will prompt you for the database server password. You are now ready to use the Utmost IV software.3 Creating a Database To create a database you must use the SRDB utility. and a database and user are created.2 Configuring Firewall for Firebird Database Server If you are having problems connecting to your firebird database server from another machine on your network. 'connect <my_database_name>' 'create user <user_name> <password>' In order to use the database manager tool described in Chapter 5 Managing the Database. 'create <my_database_name> ut4 <my_database_location>' Note: Silvaco recommends that the database location exists locally on the database server machine. you can run this utility by typing 'srdb' in the terminal window. you can double-click on the SRDB shortcut to run the utility. 2. 'password superuser <superuser_password>' When you are finished. a database server is running. On Linux. Firebird uses port 3050 to communicate and this port must not be blocked by your firewall. you should consult your system administrator. simply enter the command 'quit' to exit the SRDB application. You will now need to create some Utmost IV users as follows. Now the software is installed. your firewall may be blocking communications. which is initially set to 'simucad'. If you are having difficulties connecting to the database server. On Windows. On Windows. you are ready to upgrade your database to a later version using the following command. 'backup <my_database_name> <backup_file_name>' Once you have backed up your database. we strongly recommend that you backup your database using the following command.Upgrading your Utmost IV Database Version Getting Started 2. 'upgrade <my_database_name> <new_version_number>' ut4 <old_version_number> Note: Once you have upgraded the database to a higher version number. you can double-click on the SRDB shortcut to run the utility. it will sometimes be necessary to upgrade the version of your Utmost IV database. simply enter the command 'quit' to exit the SRDB application. On Linux. Now.4 Upgrading your Utmost IV Database Version When upgrading to a more recent version of Utmost IV. Before you upgrade your database. you will not be able to connect to it using older versions of Utmost IV. When you are finished. connect to the database server using the following command: 'login <servername>' This will prompt you for the database server password. This is done using the SRDB utility. which is initially set to 'simucad'. 18 Utmost IV User’s Manual . you can run this utility by typing 'srdb' in the terminal window. simply double click the Utmost IV shortcut in the Shortcuts folder. Figure 2-3 Open Database Dialog Once you select the database you are interested in. When Utmost IV is run for the first time. To toolbar icon to open the database. you will have to login to this database using a valid database user and password.Connecting to a Database from Utmost IV Getting Started 2. 19 Utmost IV User’s Manual . a dialog will appear and you should select the database server and the database you wish to open.5 Connecting to a Database from Utmost IV To run Utmost IV on Linux. To run Utmost IV on Windows. select FileOpen Database or click on the Once you do this. do this. an empty Utmost IV main window will open as shown below. type 'utmost4' into the command terminal. Figure 2-2 Utmost IV Main Window when Run for the First Time The first thing we would like to do is to gain access to the database that was created earlier. Figure 2-5 Utmost IV Main Window after Logging into New Database If you are not the first user of the database. Figure 2-6 Utmost IV Main Window after Logging into Database with Existing Projects 20 Utmost IV User’s Manual . you will see the new database available in the Utmost IV main window as shown below. there may already be projects in the database and the main window will appear similar to the figure shown below.Connecting to a Database from Utmost IV Getting Started Figure 2-4 Database Login Dialog Once you have successfully logged into the database. For further details.6 Setting Up the SmartView Viewer for Utmost IV If you have not used SmartView before and display data from Utmost IV. the plot will be similar to the one shown below. 21 Utmost IV User’s Manual . In the Preferences dialog. select EditPreferences from the SmartView menu.Setting Up the SmartView Viewer for Utmost IV Getting Started Note: If you are having problems connecting to your firebird database server from another machine on your network. 2. please refer to the SmartView User’s Manual. Note: You should exit SmartView and restart for all of the new settings to be active.2 Configuring Firewall for Firebird Database Server. see Section 2. To do this. go to the Manage Preferences section and change your preferences to Utmost IV default preferences. Figure 2-7 A Plot Displayed Using the Default SmartView Preferences It is recommended that you set the SmartView preferences to those suitable for Utmost IV. Chapter 3 Databases and Projects . copy projects from one database to another. You can log into many databases at the same time. In order to interact with one of these databases. the main window will open and will remember and display all of the databases on which you have previously been working. or even delete projects. you can then create new projects. Once you are logged into a database. This chapter will describe how you can perform all of these actions and more from the main window. you must log in with a valid user name and password.Databases and Projects The main window is used to connect to and to organize the many databases and projects that are available to the Utmost IV user. Figure 3-1 The Utmost IV Main Window 23 Utmost IV User’s Manual . When Utmost IV is started. a dialog will appear and you should select the database server and the database you wish to open.Opening a Database Databases and Projects 3. however. you then have to login to the database using a valid database user name and password. For convenience.1 Opening a Database To interact with a database. Figure 3-3 Database Login Dialog 3. it will not be shown in your work area when you restart Utmost IV. Once you do this. Utmost IV will automatically prompt you to login to the database after you have opened it into the work area.2 Closing a Database To close a database and remove it from the main Utmost IV work area. you need to open the database into the Utmost IV work area by selecting FileOpen Database or clicking on the toolbar icon . select FileClose Database. The database will still exist on the database server. Note: You will be prompted to save any modified projects to prevent loss of data. Note: Databases that you recently closed will still be available in the FileRecent Databases menu. Figure 3-2 Open Database Dialog Once you open the database you are interested in. 24 Utmost IV User’s Manual . you can change your password. 25 Utmost IV User’s Manual . Note: You will be prompted to save any modified projects to prevent loss of data. Figure 3-4 Database Login Dialog When you finish the work. To do this. Once you have logged into a database. you will be able to work with the projects inside. you can log out of the database by selecting the database in the work area and selecting FileLogout.4 Changing the User Password for a Database Once you have logged into the database. This will open up the dialog shown below. it is now possible to log into this database using a valid database user name and password by selecting the database of interest and selecting FileLogin or by simply double clicking on the database name. Figure 3-5 Change Password Dialog Note: You must close all projects in the database before you are able to change the password. 3. select the database and select FileChange Password. Note: Logging out of a database does not remove the database from the work area.Logging Into and Out of a Database Databases and Projects 3.3 Logging Into and Out of a Database Once a database is shown in the work area. This is where you enter the name for your new project and select which type of project you wish to create from the available list. You should also select who will be allowed to read and to modify your project once it is created. This will open the new project dialog. To create a new project. select FileNew Project or click on the toolbar icon in the main Utmost IV window. 26 Utmost IV User’s Manual . Figure 3-6 New Acquistion Project Dialog Note: You cannot remove the read or modify permissions for either the project owner or the superuser.5 Creating a New Project Projects are used to store and organize your work.Creating a New Project Databases and Projects 3. Note: Even if another user has opened and locked a project. Note: You cannot change the permissions of a project you have already opened. you will only be able to view the permissions. you will not have an exclusive lock on the project but will be working on a copy of the project from the database. Figure 3-7 Project Permissions Dialog Note: If you are not the project owner. 27 Utmost IV User’s Manual . but have read permission. You will not be allowed to save the Read-Only project. you can still open the project in a Read-Only mode by selecting FileOpen Read Only or clicking on .Opening a Project Databases and Projects 3. You may make modifications to the project and select FileSave As to save to a new project name. If you do not have permission to modify the project. 3. This will allow you to edit a copy of the project. To do this. you can still open the project in a Read-Only mode. In this mode.6 Opening a Project If you have permission to modify an existing project. This will open up the selecting FileOpen Project or clicking on the toolbar icon project window for editing and will lock the project so that no other user may make changes to it. select the project and select EditPermissions or click on the toolbar icon .7 Modifying the Project Permissions Only the owner may change the project permissions. you can open and lock this project by .. you must first select the file containing the project you wish to import.Importing a Project Databases and Projects 3. To import a project from an existing project file. then click on the Next button.9 Exporting a Project. select the database and then select FileImportProject from the menu. Figure 3-8 Selecting the Project File for Import Note: The software will check the external file to make sure it contains a valid Utmost IV project once you press the Next button.8 Importing a Project Projects can be stored by exporting them to an external file as described in Section 3. In the import wizard. 28 Utmost IV User’s Manual . then you need to input the new name for this project and to select who will be able to read and to modify it. which already exists in the database. If you select a project name. Figure 3-9 Selecting the New Project Name and Permissions Note: You cannot change the type of an already existing project.Importing a Project Databases and Projects Once the project file has been verified. then the following error message will be displayed and you must select a different name for your project. Figure 3-10 Duplicate Project Names are not Allowed 29 Utmost IV User’s Manual . Figure 3-11 Project Export Dialog 30 Utmost IV User’s Manual .9 Exporting a Project To export a project. select the project and then select FileExportProject from the menu.Exporting a Project Databases and Projects 3. This will open up a dialog in which you can select a location and a name for the project file you wish to create. This will open the dialog below that allows you to select the parts of the project that you can import and then reuse.10 Reading Project Parts from Existing Projects Rather than creating each project every time. it is sometimes convenient to reuse parts of another project that has already been created. Figure 3-13 Selecting Project Parts from the Project to Import 31 Utmost IV User’s Manual .Reading Project Parts from Existing Projects Databases and Projects 3. This can be done from an open project window by selecting FileRead From Project that will open the dialog below. Figure 3-12 Selecting a Project from the Database From this dialog. you should select the project from which you want to read. Chapter 4 Datasets . those fields are as follows. the dataset also contains all of the information about how that measurement was performed. 4.Dataset Keys Datasets A dataset contains a single device measurement. 33 Utmost IV User’s Manual .1 Dataset Keys A dataset is uniquely defined by six key fields. • • • • • • Device Name Temperature Batch Name Wafer Name Die Name Measurement Setup Name You cannot have two datasets with the same unique identifying keys in the same database. Any attempt to save or import a dataset whose keys match an already existing dataset will cause the existing dataset to be overwritten. As well as containing the measured data itself. 34 Utmost IV User’s Manual .2 Editing a Dataset To view and modify a single dataset. Figure 4-1 The General Tab of the Dataset Editor From the General tab. Note: If you do not have permissions to modify the dataset. you can modify many of the information fields for the dataset and you can modify the list of device attributes and their values. a read only copy of the dataset will be displayed. select the dataset from the dataset selector area of the project and then select DatasetEdit from the menu.Editing a Dataset Datasets 4. 35 Utmost IV User’s Manual . the calculated data from any functions defined in the dataset can be viewed. you can view the measurement conditions and can view and edit the measured data directly. In addition.Editing a Dataset Datasets Figure 4-2 The Data Tab of the Dataset Editor From the Data tab. You can also change the list of plots which are defined.Editing a Dataset Datasets Figure 4-3 The Analysis Tab of the Dataset Editor From the Analysis tab. the list of functions which is defined for the dataset may be modified directly. 36 Utmost IV User’s Manual .13 Defining a Function.10. For a more detailed description of dataset functions. see Section 6. 37 Utmost IV User’s Manual . gamma parameter data and any AC data calculated from functions in your dataset. From the AC Data tab. z. you can view the measured s parameter data for AC dataset types. h. you can display the complex AC data as rectangular (real/imaginary) or as polar (magnitude/phase) format. g.Editing a Dataset Datasets Figure 4-4 The AC Data Tab of the Dataset Editor Note: There will only be an AC Data tab for datasets with measurement type AC or AC_TABLE. You can also view the y. For convenience. Note: There will only be a Noise Data tab for datasets with measurement type NOISE and NOISE_TABLE. 38 Utmost IV User’s Manual .Editing a Dataset Datasets Figure 4-5 The Noise Data Tab of the Dataset Editor From the Noise Data tab. you can view and edit the measured noise data for NOISE dataset types. then select DatasetPermissions from the menu. Figure 4-6 Changing the Dataset Permissions Note: You cannot remove the read or modify permissions for the dataset owner or for the superuser.3 Modifying the Dataset Permissions Only the dataset owner can change the dataset permissions. To change the dataset permissions. 39 Utmost IV User’s Manual . select the dataset.Modifying the Dataset Permissions Datasets 4. then select DatasetDelete from the menu. 40 Utmost IV User’s Manual .4 Deleting Datasets From the dataset selector area. it cannot be recovered except from your database backup.Deleting Datasets Datasets 4. Figure 4-7 Delete Dataset Dialog Note: You can only delete datasets for which you have modify permission. select all of the datasets you want to delete. Note: Once a dataset is deleted. and Atlas) and then imported directly into Utmost IV. ProPlus. To import a dataset. In the import wizard. select the database in the main Utmost IV window and then select FileImportDatasets from the menu.5 Importing Datasets Utmost IV can directly import two different data file formats. Data from other formats can easily be converted (as described in Appendix B Converting Data from ICCAP.log and for the Utmost IV data files is . these are the legacy format from Utmost III and the new more flexible Utmost IV data file format. Note: The default file name extension for Utmost III logfiles is . BSIMPro.uds. Figure 4-8: Selecting the Data File for Import Note: The software will check the external file to make sure it contains either a valid Utmost III logfile or a valid Utmost IV data file once you press the Next button. 41 Utmost IV User’s Manual . then click on the Next button.Importing Datasets Datasets 4. you must first select the file containing the datasets you wish to import. an additional page in the wizard will be displayed.Importing Datasets Datasets When importing Utmost III logfiles. 42 Utmost IV User’s Manual . Figure 4-9: Modifying Dataset Information from Utmost III logfiles Note: This additional page will not be displayed when importing Utmost IV data files. This page allows you to modify certain fields for all the datasets that will be imported into the database. except from your database backups. Figure 4-10: Selecting the Datasets to Import 43 Utmost IV User’s Manual . you must then select which datasets you wish to import into the database. Note: If a dataset already exists in the database. the Import button will change name to become an Overwrite button. then click on the New Only button to select only datasets from the file which do not already exist in the database.Importing Datasets Datasets Once the external file has been verified. there is no way to recover the older datasets. If you chose to permanently overwrite the datasets already in the database. you will be unable to select this dataset and a short explanation will be given. Note: If you do not wish to overwrite any data. If a dataset cannot be imported into the database. Once the import is complete. you can then click on Start if you wish to import another file or click on the Finish button.Importing Datasets Datasets Once you select to import or overwrite datasets a progress bar will be displayed. Figure 4-11: Showing the Progress of Dataset Import 44 Utmost IV User’s Manual . its contents will be overwritten during the export.6 Exporting Datasets To export datasets. then select DatasetExport Datasets from the project menu.Exporting Datasets Datasets 4. Figure 4-12 Selecting the File Name for Dataset Export Note: If the file already exists. select the datasets you want to export in the dataset selector area. 45 Utmost IV User’s Manual . then select DatasetWrite CSV File from the menu.Writing a Dataset out to CSV Format Datasets 4. select the dataset you want to write out to CSV format.7 Writing a Dataset out to CSV Format From the Dataset Selector area. You can also choose to write out the simulated data as well as the measured data for this dataset. Figure 4-13 Writing Dataset to CSV Format 46 Utmost IV User’s Manual . Chapter 5 Managing the Database . select FileDatabase Manager and you will then be prompted to enter the superuser password. Figure 5-2 The Database Manager Window Showing the Projects View If you edit the search criteria. Figure 5-1 Database Manager Login Dialog Note: You cannot open the database manager if you have already logged into the database. You can select whether you want to view projects or datasets. The search editor dialog is shown below. The database manager dialog allows the superuser to view and select all of the projects and datasets in the database.Managing the Database The database manager allows a special superuser database user to manage projects and datasets that exist in the database. 48 Utmost IV User’s Manual . you will be able to easily find the objects you are interested in. To open the database manager. change the owner of the objects. 5. 49 Utmost IV User’s Manual . these objects cannot be recovered. You can delete objects.Deleting Projects and Datasets Managing the Database Figure 5-3 Searching for Projects in the Database Manager Once you have found and selected the objects you wish to manage.1 Deleting Projects and Datasets The database manager dialog allows the superuser to select many projects or datasets at the same time and delete all of them permanently from the database.2 Changing the Owner of Projects and Datasets The database manager allows the superuser to select many projects or datasets at the same time and change the owner of these objects. The owner is the only user other than the superuser who is allowed to change the permissions of an object. Note: Once deleted from the database. change the objects permissions. except from your database backups. and unlock the objects. 5. then you can perform a number of actions. Note: All selected objects must be owned by the same user in order to change permissions.Changing the Permissions of Projects and Datasets Managing the Database 5. Figure 5-4 Changing Permissions on Multiple Objects 50 Utmost IV User’s Manual . the current permissions for that object are shown when the change permission dialog is opened.3 Changing the Permissions of Projects and Datasets The database manager allows the superuser to select many projects or datasets at the same time and change the permissions of these objects. Note: If more than one object is selected. Note: If a single object is selected. then the default permissions will be shown when the change permissions dialog is opened. 4 Unlocking Projects and Datasets If the selected projects or datasets are locked by a database user. 51 Utmost IV User’s Manual . select the locked projects or datasets. objects should never be unlocked manually using the database manager dialog. Note: Under normal circumstances.Unlocking Projects and Datasets Managing the Database 5. and click on the unlock button in the database manager dialog. the unlock button will be enabled. Be careful when unlocking objects as these may currently be in use by the database users. To unlock the objects. Chapter 6 Acquisition Module . Measurement Sequence Used to build an automated sequence for measurement. Window Area Description Sequence Objects Holds the objects that are used to build the sequence. Sequence Objects Measurement Sequence Dataset Selector Status Log Figure 6-1 The Empty Acquistion Project Window Note: All changes to the project are made in memory and are not saved to the database until you perform a Save or Save As operation.Acquisition Module The Acquistion Project window will appear when a new project is created or an old project is opened. Dataset Selector Used to display the datasets you have measured. and status messages. The Acquistion Project window is divided into four areas. error. Status Log Displays warning. 53 Utmost IV User’s Manual . . 54 Utmost IV User’s Manual .Defining Temperatures Acquisition Module 6. select Setup Temperature from the project menu or click on the toolbar icon to define and enable multiple temperature values. This dialog allows you Figure 6-2 Defining Measurement Temperatures Note: All temperatures are in Celsius.1 Defining Temperatures To define the temperatures at which the measurements will be made. and one or more wafers that are to be measured. Batch and Wafer Information The General section allows you to describe some background information. select SetupWafer Map or click on the toolbar icon. To open the Wafer Map Dialog.Defining the Wafer Map Acquisition Module 6. the name of the batch that is being measured.2 Defining the Wafer Map The wafer map is where you define the physical location of the devices for which you intend to acquire datasets.2. The wafer map dialog is split into three sections: • • • The General section The Die Selection section The Group Selection section 6. Figure 6-3 General Section of Wafer Map Dialog 55 Utmost IV User’s Manual .1 Defining the Header. Wafer List You can enter the names and enable one or more wafers to be measured. you simply click on its drawn location. you specify the following parameters in the die layout table. Note: All dimensions in the wafer map are in meters. Defining the Die Selection using the Die Map The Die Map is used when defining the die locations using the xy grid and when you want to select and view the die locations graphically. Batch Name This is the batch name of the data being acquired. Product. These two are ways to view the same information. You can also enter the wafer cassette slot number where the wafer is located. To enable or disable a die. Process. User Date. The locations of these die can be defined in a xy grid pattern or in a completely arbitrary way. which will be stored in each of the datasets that will be acquired. select this die and then press the Set Home Die button. and Dubious Flag).Defining the Wafer Map Acquisition Module Field Description Header Information This table contains several fields (Customer. Fabrication Date. To define arbitrary locations for the die.2. To select a die as the home die. 56 Utmost IV User’s Manual . Field Description Wafer Diameter The diameter of the wafer. Layout This represents how the grid is aligned to the center of the wafer. 6. changes to the Die List apply to the Die Map. Note: The home die defines the die location where you will set the wafer to before starting the measurement sequence.2 Defining the Die Selection Defining a die allows you to step around a wafer and perform the entire sequence of measurements on each die. Station. To define the layout of the die using the xy grid. and vice versa. you should use the Drop In type. Comment. the die can be viewed and selected using either the Die Map or the Die List. Note: Even if you are acquiring data by simulation. Die Size X The size of the die in the X direction. Die Size Y The size of the die in the Y direction. Operator. the same information will be used by the measurement sequence and will be stored in the acquired datasets. When defining the die locations using the xy grid. The Die Selection section allows you to define and select one or more die which will be measured. Select Flat.Defining the Wafer Map Acquisition Module Figure 6-4 Selecting the Die using the Die Map In addition. or None. Alignment Value The size of the alignment mark. Orientation The location of the alignment mark. you can specify whether the wafer has an alignment mark using the following parameters. Notch. Field Description Alignment The alignment mark. 57 Utmost IV User’s Manual . 58 Utmost IV User’s Manual .Defining the Wafer Map Acquisition Module Figure 6-5 A Die Map with Wafer Flat Alignment Defined Note: Changes made to the Die Map view also apply to the Die List view. selection of the correct die becomes difficult using the Die Map graphical representation. To select a die as the home die. Figure 6-6 Selecting the Die using the Die List It is particularly useful to switch to the Die List view when there are a very large number of die on the wafer. When this happens. You can enable or disable the die from the Enabled column in the table. The specification of the layout of the die using the xy grid is described in the previous section.Defining the Wafer Map Acquisition Module Defining the Die Selection using the Die List The Die List is used when defining the die locations using the xy grid and when you want to select and view the die locations as a list. 59 Utmost IV User’s Manual . select this die and then press the Set Home Die button. 60 Utmost IV User’s Manual .Defining the Wafer Map Acquisition Module Figure 6-7 A Die Map Showing a Very Large Number of Die Note: Changes made to the Die List view also apply to the Die Map view. Figure 6-8 Selecting the Die using the Drop In List 61 Utmost IV User’s Manual . or you simply want to directly define the die.Defining the Wafer Map Acquisition Module Defining the Die Selection using the Drop In type The previous two methods can be used when the die to be measured are repeated regularly across the wafer. If the die are not regularly spaced. you can do this by using the Drop In method. die names and locations. 3 Defining the Group Selection Defining a group allows you to step around within the die to connect to the various devices which belong to this group. you do not have to specify any groups. To enable or disable a group. you should use the Custom type. select this group and then press the Set Home Group button. the locations of these groups can be defined in an xy grid pattern or in a completely arbitrary way. Group Count Y The number of groups in the Y direction. When defining the group locations using the xy grid. To select a group as the home group. Field Description Group Count X The number of groups in the X direction. Defining the Group Selection using the Group Grid The Group Grid is used when defining the group locations using the xy grid and when you want to select and view the group locations graphically. Note: The home group defines the group location where you will set the wafer to before starting the measurement sequence. These two are ways to view the same information. The group defines an intra-die movement on the wafer. If you are not performing any intra-die movement. the group can be viewed and selected using either the Group Grid or the Group List. To define the layout of the groups using the xy grid. Group Size Y The size of the group in the Y direction. changes to the Group List apply to the Group Grid and vice versa. 62 Utmost IV User’s Manual . you simply click on its drawn location. you specify the following parameters in the group layout table. Similar to the dies. To define arbitrary locations for the group.2.Defining the Wafer Map Acquisition Module 6. Group Size X The size of the group in the X direction. 63 Utmost IV User’s Manual .Defining the Wafer Map Acquisition Module Figure 6-9 Selecting the Groups using the Group Grid Note: Changes made to the Group Grid view also apply to the Group List view. Figure 6-10 Selecting the Groups using the Group List Note: Changes made to the Group List view also apply to the Group Grid view.Defining the Wafer Map Acquisition Module Defining the Group Selection using the Group List The Group List is used when defining the group locations using the xy grid and when you want to select and view the group locations as a list. To select a group as the home group. select this group and then press the Set Home Group button. 64 Utmost IV User’s Manual . The specification of the layout of the groups using the xy grid is described in the previous section. You can enable or disable the groups from the Enabled column in the table. Defining the Wafer Map Acquisition Module Defining the Group Selection using the Custom Method The previous two methods can be used when the groups are repeated regularly across the die. or you simply want to directly define the groups. group names and locations. you can do this by using the Custom method. Figure 6-11 Selecting the Groups using the Custom Method 65 Utmost IV User’s Manual . If the groups are not regularly spaced. 3 Defining Devices Utmost IV allows you to define and measure many different types of devices within a single measurement sequence. nodes. Additionally. toolbar icon. 66 Utmost IV User’s Manual . if the datasets are to be acquired using simulation. Figure 6-13 The Device Type Editor Dialog A device to be measured is described by its name. The Device Type Manager dialog is opened by selecting SetupDevices from the project menu or by clicking on the allows you to create. and attributes. or delete a device type. This dialog Figure 6-12 The Device Type Manager Dialog Creating or adding a device type will open up the device type editor dialog shown below. This dialog allows you to enter any number of devices within this device type. edit.Defining Devices Acquisition Module 6. a simulation netlist can be defined for this device type. and for these devices you must specify the values of all of the device attributes. Figure 6-14 Viewing the Device Attributes When you view the device attributes you can add. Batch and Wafer Information. and the Netlist Text. Note: The device name must be unique and cannot be used within any other device type.2.Defining Devices Acquisition Module There are three views that can be selected in the device editor dialog. Figure 6-15 Viewing the Device Nodes 67 Utmost IV User’s Manual . the Device Nodes. or delete the attributes for this device.1 Defining the Header. rename. This is an optional location for intra-die stepping as described in Section 6. The group name for this device can also be added. You can also add any number of devices to the device type. These are the Device Attributes. the pin number can be used only once. rename. Figure 6-16 Viewing the Simulation Netlist 68 Utmost IV User’s Manual . Finally.Defining Devices Acquisition Module When you view the device nodes. You can also add any number of devices to the device type and for these devices you must specify the scanner pins to which the nodes are connected. you can specify a simulation netlist for the device type. These pin numbers will only be used if you use a scanner instrument during the measurement. or delete the nodes for this device. if the data is to be acquired by simulation. you can add.5 Defining the Netlist for Simulation. A full description of the netlist definition is given in Section 7. Note: Within a device. select SetupVariables from the project menu or click on the toolbar icon . To edit the variables. This means that the result of one extraction may be used in a subsequent extraction or in a following measurement setup.15 The Extraction Setup. Details on how to define an extraction are given in Section 7.4 Defining Extractions An extraction can be used along with an extraction setup to perform a parameter extraction within a measurement sequence. Figure 6-17 Defining Variables You can also write the result of an extraction into the variable table as defined in Section 7. 6. A variable has a name and a value and this value can be an expression that includes other variables. 69 Utmost IV User’s Manual .7 Defining Extractions.5 Defining Variables A variable is used to define a value that can be used in a measurement setup or in an extraction.Defining Extractions Acquisition Module 6. you can easily manage the equipment that you want to use to perform the measurement.6 Defining Hardware To perform a measurement you will need to define the hardware. Figure 6-18 Editing the Hardware From the Hardware dialog. To edit the hardware.Defining Hardware Acquisition Module 6. select SetupHardware from the project menu or click on the toolbar icon . You can edit any item in the list of hardware and you can also verify that the hardware is correctly connected. 70 Utmost IV User’s Manual . The connections for this cable are as shown below. This controller is connected to the computer with a 9pin rs232 cable. The following controller settings should be used. The latest version (NI GPIB-RS232) can only be configured using software supplied by National Instruments. National instruments only supports the NI488 controller interface on Windows.Defining Hardware Acquisition Module 6. Field Description Baud Rate 38400. The RS232 Controller Utmost IV supports the National Instruments RS232 to GPIB controller. The NI488 Controller can be used with any of the National Instruments GPIB controllers.6. there have been several versions of this controller. 71 Utmost IV User’s Manual . Figure 6-19 RS232 Cable Connections Over the years.1 Editing the Controller The controller is used to talk to the instruments. The older NI GPIB-232CT-A is configured via physical switches on the side of the box. 19200. or 9600 Data Bits 8 Polarity None Stop Bits 1 Flow Control None Note: The box must be set to controller or S mode in order to be used with the Utmost IV software to control the instruments. including the USB to GPIB controller and the Ethernet to GPIB controller. There are two types of controller supported: the RS232 controller and the NI488 controller. The controller setup is shown below. It can only be used as a converter and cannot be used to control instruments by Utmost IV. Note: For the RS232 to GPIB controller on Windows. Figure 6-20 NI GPIB-232CT-A switch settings Note: The older NI GPIB-232CV-A is not a controller. the port name is typically defined as the device driver file "/dev/ttyS0". Figure 6-21 Editing the RS232 controller Note: For the RS232 to GPIB controller on Linux. the port name is typically defined as the port "COM1". 72 Utmost IV User’s Manual .Defining Hardware Acquisition Module The figure below shows the position of the switches on the NI GPIB-232CT-A for the 38400 baud rate and the controller settings listed above. typically "/dev/ttyUSB0" on linux. like COM2 or COM3.Defining Hardware Acquisition Module The RS232 Controller Using a USB to RS232 Converter On many modern computers. On Windows. such as the ATEN UC-232A USB-to-Serial Converter. If an RS232 port cannot be added to the computer an alternative solution is possible by using a USB to RS232 converter. This converter is plugged into a USB port on the computer and then connected to the RS232 cable which in turn connects to the RS232 to GPIB controller. Figure 6-22 Controller Setup Using a USB to RS232 Converter The NI488 Controller Utmost IV supports any of the National Instruments GPIB controllers that work with the NI488 interface. the NI488 interface is only supported by National Instruments for Windows. there is no RS232 port through which to communicate with the RS232 controller. 73 Utmost IV User’s Manual . Specifically. it will appear as another COM port. the USB to GPIB controller (NI USB-GPIB-HS) and the ethernet to GPIB controller (NI GPIB-ENET). These controllers must be configured through software supplied by National Instruments. Figure 6-23 Editing the NI488 controller Note: For the NI488 controller. the port name is typically "GPIB0". The driver port name is then set to that of the USB port. Currently. Defining Hardware Acquisition Module 6. You can use the built in instrument drivers supplied with your software. If you select a non built-in driver. or you can modify or write your own instrument drivers.6. If you select the built in driver type. you can enable or disable the instrument and you can also select the GPIB bus address that the equipment is using. then you should input the location of the device driver file. 74 Utmost IV User’s Manual . For each instrument. Note: Each instrument should have its own GPIB bus address. then you can select from an extensive list of supported instrument drivers. You can modify these options in the lower section of this dialog.2 Editing an Instrument An instrument is the equipment which will be used to perform the measurement. Figure 6-24 Editing an Instrument Each instrument has its own specific instrument options. 6.6. Figure 6-25 Editing the Scanner Instrument 75 Utmost IV User’s Manual . It is defined in exactly the same way as any of the other instuments as described in Section 6. you need to define which measurement instruments are connected to the input ports of the scanner. In addition.Defining Hardware Acquisition Module 6.2 Editing an Instrument.3 Editing the Scanner Instrument The scanner is a special type of instrument that is used to connect other instruments to the device being measured. 6.6. In addition.4 Editing the Noise Instrument The noise instrument is an instrument that is used to measure the noise spectral density of a device.Defining Hardware Acquisition Module 6. Figure 6-26 Editing the Noise Instrument 76 Utmost IV User’s Manual . you need to define the connections to and maximum bias conditions for the Silvaco S3245A Noise Amplifier that must be used in order to perform the noise measurement.2 Editing an Instrument. It is defined in exactly the same way as any of the other instuments as described in Section 6. 7 Defining Connections In order to perform the measurement properly. select SetupConnections from the project menu or click on the toolbar icon . Figure 6-27 Editing the Connections For each device type and measurement setup currently in the measurement sequence. a connection is defined.Defining Connections Acquisition Module 6. You can edit the connection to change the measurement units that you want to connect to the device nodes or terminals. To edit the connections. you need to define how the measurement instruments are to be connected to the device being measured. 77 Utmost IV User’s Manual . In addition.6 The Model Library. When you specify this measurement unit. there can be no DC target current associated with this measurement unit. the LO of the LCR is on the G node and the HI of the LCR is on the node subset D. The LCR instrument LO provides its own virtual ground.7. 6. for measurements which involve only the LCR meter and a two node subset structure. In this measurement. so you do not need to connect an additional DC measurement unit for this measurement. Note: All measurement setups with nodes connected using the manual ground measurement unit must be of Voltage type and must have a zero value. as shown above.The Model Library Acquisition Module 6.8 The Model Library The model libary is used when acquiring models from simulation. Full details on the model libary window are given in Section 7. Figure 6-28 Using the Manual Ground Measurement Unit This is particularly useful. S. 78 Utmost IV User’s Manual . and B. the program will not attempt to set up a ground potential as you have decided to do this manually.1 Manual Ground Connections This is a special measurement unit that allows you to manually connect the device nodes to a ground potential. 79 Utmost IV User’s Manual . Figure 6-30 The Sequence Objects Area Showing Device Subsets Note: To make a duplicate copy of a device subset.1 Creating and Managing Searches for a detailed description of how to define a search. then press the Populate button.The Device Subset Acquisition Module 6. The devices that match the conditions of the search are displayed on the left hand side of the dialog and are updated with every change that you make to the search. To modify an existing device subset. double-click on it or or click on the toolbar icon select it and then select EditProperties from the menu. This will fill in the search condition editor with the details of the item that you selected. See Section 7. To create a new device subset. Each device subset must have a unique name and all are contained in the Sequence Objects Area of the Acquistion project window. you use a search to select only the devices that you are interested in. If you select an item from the devices view on the left. you must copy from and paste to the Sequence Objects Area. select CreateNew Device Subset . Figure 6-29 Editing a Device Subset In the device subset.9 The Device Subset The device subset allows any number of devices that have been defined in the project to be selected for measurement. 80 Utmost IV User’s Manual . double-click on it or select it and then select EditProperties from the menu. Analysis Defines functions and plots for post process and analysis on the second tab in the dialog. Setup Definition of the setup items that describe the measurement being performed. To create a new measurement setup. select Create Measurement Setup from the menu or click on the toolbar icon . Field Description Name A unique measurement setup name. Measurement Type The type of measurement being performed. To modify an existing measurement setup. Figure 6-31 An Empty Measurement Setup A measurement setup consists of the following.10 The Measurement Setup The measurement setup is used to define exactly how the measurement will be performed on each of the devices in the device subset.The Measurement Setup Acquisition Module 6. AC S parameter measurement over a frequency range. you must select New Item from the setup. it will be displayed in the item editor on the right hand side of the dialog. then all of the DC sources must be defined as list sweeps and all must have the same length. you can Insert this new item into the setup. When you select an existing item from the setup. DC_TABLE Same as DC type but source inputs defined as one-dimensional lists. The following measurement types are supported. NOISE Noise spectral density measurement over a frequency range. There are many different types of setup items that describe the measurement being performed and these are described below. NOISE_TABLE Same as NOISE type but operating points defined as one-dimensional lists. If you want to add a new item to the setup. AC_TABLE Same as AC type but operating points defined as one-dimensional lists. Figure 6-32 The Sequence Objects Area Showing the Measurement Setups Note: To make a duplicate copy of a measurement setup. 81 Utmost IV User’s Manual . taken at multiple DC operating point conditions. When you have finished entering the item information. for example capacitance. taken at multiple DC operating point conditions.The Measurement Setup Acquisition Module Each measurement setup must have a unique name and all are contained in the Sequence Objects Area of the Acquistion project window. you must copy from and paste to the Sequence Objects Area. Type Description DC A measurement with one or more swept DC source inputs and measured DC target outputs. LCR An impedance measurement. You can modify the item directly in this editor or simply Delete the item if it is not required. Note: When using one of the ‘TABLE’ types above. taken at multiple DC operating point conditions. This will allow you to enter a completely new item in the item editor. LCR_TABLE Same as LCR type but operating points defined as one-dimensional lists. 1 Defining the Node Names The node names are used to define the external terminals of the device being measured. Figure 6-33 Editing the Node Names for the Measurement Setup Note: You must specify at least two nodes. or modify. simply select the Node Names item from the setup and use the editor table on the right of the dialog to add.The Measurement Setup Acquisition Module 6.10. To modify the node names. 82 Utmost IV User’s Manual . delete. 2 Defining a Sweep A Sweep is a measurement setup item that describes a source that is varied during the measurement. Step The step for the linear sweep. the stop value. A Sweep is defined with the following information.The Measurement Setup Acquisition Module 6. Current. Field Description Start The start value of the linear sweep. 83 Utmost IV User’s Manual . You can select which value you will calculate. You only need to define three of these four values with the forth value being calculated from the other three. Field Description Number Every defined sweep must have a unique sweep number starting at sweep 1. Calculated Field This selects which of the four fields will be calculated. and the total number of points. Type Describes the type of the sweep. this is defined in terms of the start value. Method The sweep can be Linear. Nodes If the sweep type is Voltage or Current. you must also define the nodes to which this will be applied. or a simple List of values. Stop The stop value of the linear sweep. or LCR Current. You can select Voltage.10. Frequency. Logarithmic. LCR Voltage. Number of Points The number of points in the linear sweep. the step. During the measurement sweep 1 will vary the fastest. There must be at least one sweep defined in the measurement setup. Figure 6-34 An Example of a Logarithmic Frequency and a Linear Voltage Sweep For a linear sweep. Again.5 Defining Variables. You can select which value you will calculate. Stop The stop value of the logarithmic sweep. Note: List sweeps which are defined in DC. Number of Points The number of points in the logarithmic sweep. LCR. will be used. the number of points per decade and the total number of points. or to sort in ascending or descending order. you can type in the list sweep values directly. the stop value of a linear sweep can be set to the variable name ‘Vmax’. duplicate values will be removed from the list. Points per Decade The points per decade for the logarithmic sweep. the stop value. the above values can be defined using a variable name. You can also use the linear and logarithmic sweep generator at the bottom of the dialog to quickly enter and build up the list of sweep values. Field Description Start The start value of the logarithmic sweep. Calculated Field This selects which of the four fields will be calculated. When you sort the list values. 84 Utmost IV User’s Manual . For example.The Measurement Setup Acquisition Module For a logarithmic sweep. When the measurement is performed. which is defined as shown in Section 6. Note: For either a linear or a logarithmic sweep. and AC dataset types must be sorted. Figure 6-35 Editing the List Sweep Values Note: You can select to have an arbitrary ordering to the list of values. In the list editor. this is defined in terms of the start value. you only need to define three of these four values with the forth value being calculated from the other three. the value of the variable Vmax. A list sweep is defined using a simple list of values that can be edited by clicking on the Edit button for the List Values. Value The constant value Compliance The compliance Power Compliance The power compliance Figure 6-36 An Example of a Voltage Constant Note: The value. If the sweep type is Current. this is the current compliance in Amps.5 Defining Variables. Note: You can also specify the above compliance values as variables. and power compliance can be specified as a variable. this is the voltage compliance in Volts. you can also define the compliances for the sweep. Field Description Compliance If the sweep type is Voltage. which will be read from the variables table defined as shown in Section 6. which are defined as shown in Section 6. 6.5 Defining Variables. You can select Voltage or Current Nodes Defines the nodes to which this will be applied.The Measurement Setup Acquisition Module If the sweep type is Voltage or Current. A Constant is defined with the following information. A zero value means that the power compliance is switched off. Field Description Type Describes the type of the constant.3 Defining a Constant A Constant is a measurement setup item that describes a source that does not change during the measurement.10. Power Compliance This is the power compliance in Watts. 85 Utmost IV User’s Manual . compliance. and likewise for a Current sweep. Mirror Value = Primary DC Value * Ratio + Offset Note: If the primary DC sweep is a Voltage sweep.10. the value of the mirror is calculated by the following formula.5 Defining Variables. the Mirror must also be a Voltage sweep. The Mirror is defined with the following information. Note: The ratio and offset values.4 Defining the Mirror The Mirror is a measurement setup item that describes a source that is varied at the same time as the primary or first DC sweep. 86 Utmost IV User’s Manual . compliance. You can select Voltage or Current.The Measurement Setup Acquisition Module 6. which are defined as shown in Section 6. Field Description Type Describes the type the mirror. and power compliance can be specified as a variable. Ratio The mirror ratio value Offset The mirror offset value Compliance The compliance Power Compliance The power compliance Figure 6-37 Editing the Mirror As the measurement is performed and the primary DC sweep is changed. Nodes Defines the nodes to which this will be applied. Field Description Type Describes the type the iterator. You can select Voltage or Current. then an iteratee sweep must also be defined. Maximum The maximum value that will be applied to the iterator source.The Measurement Setup Acquisition Module 6. Error The acceptable error percentage between the desired iteratee value and the achieved iteratee value. 87 Utmost IV User’s Manual .5 Defining the Iterator The Iterator is a measurement setup item that describes a source that will be iterated upon to match the iteratee sweep values. Nodes Defines the nodes to which this will be applied.10. The Iterator is defined with the following information. Start The value at which the iterator search will begin. Minimum The minimum value that will be applied to the iterator source. Compliance The compliance Power Compliance The power compliance Figure 6-38 Editing the Iterator Note: If the iterator is defined. 10.6 Defining the Iteratee Sweep The Iteratee sweep is a measurement setup item that describes the desired target values for the iterator source search.The Measurement Setup Acquisition Module 6. except that it does not have compliance or power compliance settings.2 Defining a Sweep. The iteratee sweep is defined in exactly the same way as the Sweep item described in Section 6. 88 Utmost IV User’s Manual . Note: The iteratee sweep must be the primary DC sweep. Note: There must be a DC source of opposite type to the iteratee sweep connected to the same nodes. Figure 6-39 Editing the Iteratee Sweep Note: If the iteratee sweep is defined. then an iterator must also be defined.10. Field Description Type Describes the type of the pulse. 89 Utmost IV User’s Manual .The Measurement Setup Acquisition Module 6. Nodes Defines the nodes to which this will be applied. You can select Voltage or Current.7 Defining a Pulse The Pulse is a measurement setup item that describes a pulsed DC source. Width Defines the pulse width. Period Defines the pulse period. Hold Defines the pulse hold time.10. Delay Defines the pulse delay time. Base Defines the pulse base. The Pulse is defined using the following information. Figure 6-40 Editing a Pulse Note: There must be a DC source of the same type connected to the same nodes. An LCR Source is defined with the following information. Type Describes the type of the oscillation.10. Nodes Defines the nodes on which the measurement will be taken. For example. Figure 6-42 Defining the LCR Source 90 Utmost IV User’s Manual . Field Description High Nodes Defines the nodes to which the high terminal is attached. Frequency The frequency of the measurement. A target is defined with the following information. You can select Voltage or Current. there must also be a voltage source applied to node ‘D’ in the measurement setup. Oscillation Value The value of the oscillation.10.The Measurement Setup Acquisition Module 6. 6.9 Defining the LCR Source The LCR Source is a measurement setup item that describes the source conditions for the LCR measurement. if you define a current target on node ‘D’. You can select Voltage or Current. Figure 6-41 Defining a DC Measurement Target Note: A Current target requires a Voltage source applied to the same Nodes and vice versa.8 Defining a Target A Target is a measurement setup item that describes a DC measurement that will be performed. Low Nodes Defines the nodes to which the low terminal is attached. Field Description Type Describes the type of the measurement. 6.10. Note: LCR Source and LCR Target are only allowed in LCR and LCR_Table measurement setups. Field Description Target The type of LCR measurement.10 Defining the LCR Target The LCR Target is a measurement setup item that defines the LCR measurement that will be performed. 91 Utmost IV User’s Manual .11 Defining a Port A Port is a measurement setup item that defines an AC port. Ground Nodes The nodes to which the ground will be connected. Signal Nodes The nodes to which the signal will be connected. Field Description Number Every defined port must have a unique sweep number starting at port 1. An LCR Target is defined with the following information.The Measurement Setup Acquisition Module 6.10. Power The port power Attenuation The port attenuation Extension The port extension Figure 6-43 Defining a Port Note: Ports are only allowed in AC and AC_TABLE measurement setups. A Port is defined with the following information. the function will be used to automatically calculate additional characteristics for analysis and display.10. These functions take a single input. 0) 92 Utmost IV User’s Manual . Figure 6-44 Defining the Noise Target 6. -. *. Expression A mathematical description of the function. abs( ) arg( ) cos( ) exp( ) mag( ) pow( ) sin( ) tan( ) acos( ) asin( ) atan( ) ceil( ) conj( ) cosh( ) imag( ) loge( ) norm( ) real( ) sinh( ) sqrt( ) tanh( ) floor( ) log10( ) phase( ) A dataset attribute or the temperature of the dataset may be used within the dataset function by using the following syntax. ft(freq.13 Defining a Function When the dataset is measured. 3.The Measurement Setup Acquisition Module 6. /) and the following built-in functions. 0. the x array and the y array. The expression can be defined using the mathematical operators (+. h21m. A Noise Target is defined with the following information. Nodes Defines the nodes on which the noise spectral density is to be measured. derivative(xarray. 0. -20. Field Description Type Defines the type of the noise target.10. yarray) The ft function is a special function for AC datasets. Field Description Name The name of the calculated characteristic. A function is defined by the following information. This function takes seven inputs and will extract the unity gain bandwidth for each frequency trace. attr(W) key(temperature) The derivative function takes two inputs.12 Defining the Noise Target The Noise Target is a measurement setup item that describes noise measurement that will be performed. 3 The start frequency for the extraction. ft The rb function is a special function for AC datasets. 4 The stop frequency for the extraction. 3 The start frequency for the extraction. 2 The h21 magnitude array. 5 The delta in h21 magnitude in dB. rb (freq. Figure 6-45 Extraction of Unity Gain Bandwidth. This function takes four inputs and will extract the base resistance using the input impedance circle method for each frequency trace.The Measurement Setup Acquisition Module Input Description 1 The frequency array. 93 Utmost IV User’s Manual . 1e12) Input Description 1 The frequency array. 4 The minimum value of h21 magnitude for the extraction in dB. 6 The target slope for the best fit line in dB/decade. 7 The allowed variation in the slope. 2 The complex h11 array. h11. 0. 14 Defining a Plot A plot defines how the measured and calculated data will be presented in the viewer.10. A plot is defined by the following information. For example. the expression ‘1 + log10(abs (ID))’. this defines the data which will be displayed on the second Y axis. this defines the viewer scale. ‘vs’ This defines the Cartesian plot X axis data.The Measurement Setup Acquisition Module Note: You can combine functions and operators to generate more complicated expressions. 94 Utmost IV User’s Manual . For non-Cartesian plots. Figure 6-46 Defining the Analysis 6. Field Description Name The plot name Type The type of plot Data This defines the data to be displayed. Note: The names of the data to be displayed can contain Function names. Y2 Axis Data If you are displaying a XYY Cartesian plot. Figure 6-48 Correct Common Node Measurement Setup 95 Utmost IV User’s Manual . You cannot say that two nodes are joined together and then separate them elsewhere in the same measurement setup.15 Common Device Nodes In any measurement setup. you can have common device nodes. For example. they must always be joined together. the measurement of a mosfet transistor may have the source and body nodes joined together. When nodes have been joined together in the measurement setup. then all other parts of the measurement setup must also have these nodes joined together. Figure 6-47 Incorrect Common Node Measurement Setup Once the nodes are joined together in one part of the measurement setup.The Measurement Setup Acquisition Module 6.10. 96 Utmost IV User’s Manual . Figure 6-49 Measurement Sequence You may add the device subsets. and the Extraction Setups. wafer. Note: Each measurement will be performed on each device at all of the defined temperatures. wafers. The extraction setup defines the extraction which will be performed on the immediately preceding measurement. An individual sequence object may appear multiple times in the measurement sequence.2 Defining the Wafer Map. The temperatures for the measurement are defined in the Temperatures dialog as described in Section 6. Full details on this are given in Section 7. and die in the project. 6. and the measurement setups to the sequence by using copy/paste and by using drag/drop. the extraction setups.1 Defining Temperatures. the device subset defines the devices that will be measured and the measurement setup defines the measurement that will be performed. the same object will simply be used multiple times within the sequence.The Extraction Setup Acquisition Module 6. The remainder of the sequence is built using three sequence objects: the Device Subsets.12 Acquiring Data using the Measurement Sequence You can use Utmost IV to construct a highly automated sequence of measurements that will be repeated for every temperature and for every wafer and die selected in the project. and die information are defined in the Wafer Map dialog as described in Section 6. the Measurement Setups. In the sequence.11 The Extraction Setup An extraction setup is used to select an extraction to be performed and to define where to write the result.15 The Extraction Setup. The object is not copied. The batch. Acquiring Data using the Measurement Sequence Acquisition Module 6. The extraction setup defines which extraction is to be performed and where the result is to be written. When you select Measurement mode.12.3 Combining the Device Subset and the Extraction Setup In the measurement sequence. When you select Simulation mode. The model library is described fully in Section 7. You also need to define the connections for the measurement as described in Section 6. You can place multiple extraction setups after a measurement setup and each extraction will be performed on the same generated dataset.1 Selecting Measurement Mode or Simulation Mode Data can be acquired using either direct measurement with physical instruments or it can be generated from simulation.3 Defining Devices will be used.6 Defining Hardware. the model library becomes enabled and the netlist defined for each device type as described in Section 6.12. When generating datasets by measurement. the data will be generated from simulation. The mode is selected from the menu using either MeasureMeasurement or MeasureSimulation. 6.7 Defining Connections. The measurement will be performed for each of the devices defined by the device subset in turn. 6. each extraction setup is associated with a single device subset. The node names defined for the devices must match exactly to the node names defined for the measurement setup. When the sequence is run.2 Combining the Device Subset and the Measurement Setup In the measurement sequence. you need to define the hardware that will be used for the measurements as described in Section 6. Figure 6-50 Figure A Correct and an Incorrect Measurement Sequence 97 Utmost IV User’s Manual . each measurement setup is associated with a single device subset.6 The Model Library. This means that you cannot place an extraction setup at the top of a device subset as you must have a measurement setup above the extraction setup.12. The measurement setup above the extraction setup in the sequence will be used to generate the dataset upon which the extraction will be performed. the project hardware and connections become enabled and when you run the measurement sequence the data will be generated from direct measurement of your devices. This is especially useful if you want to compare models or convert from one model type to another. If the measurement is not to your liking. then neither the measurement nor the extraction will be performed. Note: All measured datasets are stored immediately into the database. 6. you may choose to re-measure the device by selecting MeasureRemeasure from the menu or clicking on the toolbar icon. the sequence will pause after each measurement or extraction.4 Running the Measurement Sequence To run the measurement sequence. Figure 6-51 Selecting Devices to Measure Note: If you do not select a measurement that is associated with an extraction. the following dialog will be opened. When you are in single stop mode. The sequence can be run in a continuous mode by selecting MeasureContinuous from the menu or one measurement at a time by selecting MeasureSingle Step. select MeasureRun or click on the toolbar icon . Once the sequence is running. you may stop it by selecting MeasureStop or by clicking on the toolbar icon at any time. When you run the sequence from idle.Acquiring Data using the Measurement Sequence Acquisition Module Note: If the measurement immediately above the extraction setup is not performed. the extraction will not be performed. This allows you to select exactly which datasets you wish to measure and clearly shows if any datasets in the database will be overwritten.12. 98 Utmost IV User’s Manual . probes. select the Open Short calibration type and then click on the Calibrate button. De-embedding is a process where you measure the test setup without the device and subtract this measurement from the subsequent measurement of the device. Calibration is a process where the measurement instrument itself is zeroed to remove the effect of the instrument. for capacitance measurements only the Open calibration is necessary.5 Capacitance Calibration and De-embedding When measuring any capacitance. You can perform Open or Short calibrations on the instrument or combine both. 99 Utmost IV User’s Manual . The upper section of the dialog deals with the instrument calibration and the lower section deals with the measurement de-embedding as shown below. Once this calibration has been completed successfully. it is important to account for the capacitance of the test system and only to measure the capacitance of the device under test. cables. etc. but both methods can be used separately or even together. Typically.Acquiring Data using the Measurement Sequence Acquisition Module 6. Figure 6-52 LCR Calibration and De-embedding Dialog Calibration To perform the instrument calibration. This will open the LCR Open Short Calibration dialog. Connect the dedicated open test structure to the LCR instrument and then click on the Open button to perform the calibration. a check will appear on the dialog as shown below.12. select the capacitance measurement setup in the measurement sequence and then select MeasureCalibrate from the project menu. The recommended technique is to connect a dedicated open test structure and perform an open calibration using this structure before performing each capacitance measurement on your device. Calibration is preferred where possible. To calibrate the LCR instrument. you click on the Measure button. you should click on the OK button to exit the dialog. Figure 6-54 Open De-embedding Enabled The open de-embedding measurement has not yet been performed. you should re-calibrate the instrument before each measurement. To perform this measurement. you must set the de-embedding type to Open as shown below. 100 Utmost IV User’s Manual .Acquiring Data using the Measurement Sequence Acquisition Module Figure 6-53 Successful LCR Open Calibration Once you have completed the calibration. If you want to perform de-embedding. than to use de-embedding to subtract two measurement results. De-embedding You should always calibrate your LCR instrument if possible. Note: Note: If you have multiple dedicated open test structures for different devices. this will be indicated in the dialog as shown below. Some older test equipment does not have built in calibration. When this has been successfully completed. It is more accurate to calibrate. This leaves you no choice but to perform de-embedding to remove the effect of the test system. 6 Generating a Script Version of the Measurement Sequence The Utmost IV Script Module is described in Chapter 9 Script Module.The Measured Datasets Acquisition Module Figure 6-55 Open De-embedding Measurement Completed When the open de-embedding measurement is completed. otherwise the de-embedding setting and open de-embedding data will be lost. If you have different dedicated open test structures for different devices. 6. click on OK or Apply before closing the dialog. In this module. Datasets that match those currently defined in the measurement sequence and that already exist in the database will always be shown in the Datasets Area. Dataset management is described fully in Chapter 4 Datasets.3 Sorting Datasets and also displayed in the viewer as described in Section 7. The measured open de-embedding data is stored in memory. this open data will be automatically subtracted from the device measurement.4 Displaying Dataset Plots in the Viewer. and stored in the database. you can run a script to perform the same operation as running the measurement sequence through the Acquistion module and much more. For rapid script development. delete.12. Note: There is only one open de-embedding data. 101 Utmost IV User’s Manual . either using instruments or by simulation. You can change their permissions. you should re-measure the open de-embedding data before measuring each device. The datasets may be sorted as described in Section 7.13 The Measured Datasets Once you run the measurement sequence. or export these datasets by selecting from the Dataset menu. when your device is measured from the measurement sequence. you can create a script version of the project and the measurement sequence by selecting MeasurementExport Script from the menu. the datasets will be generated. 6. edit. Later. Chapter 7 Optimization Module . Optimization Sequence Used to build an automated sequence for model parameter optimization. error. Sequence Objects Holds the objects that are used to build the sequence. and optimization. simulation. and status messages. Window Area Description Dataset Selector Used to search and retrieve datasets from the database and select these datasets for display. Status Log Displays warning. Dataset Selector Optimization Sequence Sequence Objects Status Log Figure 7-1 The Empty Optimization Project Window Note: All changes to the project are made to a copy in memory and are not saved to the database until you perform a Save or a Save As operation.Optimization Module The Optimization Project window will appear when a new project is created or an old project is opened. 103 Utmost IV User’s Manual . The Optimization Project window is divided into four areas. Creating and Managing Searches Optimization Module 7.1 Creating and Managing Searches To perform a simulation or an optimization in the Optimization project, you need to select some datasets. To do this, you search in the database for the datasets you are interested in. The search manager allows you to create, edit and maintain one or more searches and can be opened by selecting DatasetSearch Manager. Figure 7-2 Managing Searches When you press the New button, an empty search editor will open up as shown below. Figure 7-3 An Empty Search 104 Utmost IV User’s Manual Creating and Managing Searches Optimization Module You must enter a name for the search, and it must be different to the other search names in the project. You must also enter one or more search conditions. A search condition consists of a search parameter, a comparison, and a value. Select the search parameter from the available list, for example, 'temperature'. For the selected parameter, select the comparison type, for example, '='. Finally, enter a value, for example, '27'. Once the search condition is complete, you can Insert this into your search. Figure 7-4 Inserting a Search Condition into a Search Depending on the search parameter selected, the types of comparison available and the value type will change. For example, when entering a name, the comparison types available are '=' and '!=' and the value type is a string. For example, you can select the search parameter batch name, the condition '=', and the value 'b*'. This would have the effect of returning all batches that begin with the character 'b'. Search Parameter Type Comparisons Available Value Type Database =, != user, group Date =, !=, <, <=, >, >= date Flag =, != true/false Name =, != string Number =, !=, <, <=, >, >= number Special =, != type Special Attribute =, !=, <, <=, >, >= name and number When specifying a name, wildcards are supported. The character '*' will match zero or more characters, the character '?' will match exactly one character. 105 Utmost IV User’s Manual Creating and Managing Searches Optimization Module When two or more search conditions are inserted into the search, then they are combined with either an AND or an OR. Figure 7-5 Inserting Multiple Search Conditions into a Search Device attributes, such as W and L, are a very important part of the search. These are defined as shown below by the use of both a name and a value. Figure 7-6 Adding an Attribute Search Condition to a Search 106 Utmost IV User’s Manual Creating and Managing Searches Optimization Module Very complex searches can be built up using many combinations of search conditions and through the use of matched parentheses to group the search conditions. Figure 7-7 A More Complex Search 107 Utmost IV User’s Manual Searching for Datasets in the Database Optimization Module 7.2 Searching for Datasets in the Database To retrieve datasets from the database, you must select a previously defined search in the Dataset Selector Area of the Optimization Project window. Figure 7-8 Datasets Retrieved from the Database Using a Search When the search is performed, some additional search conditions are added to the selected search. These additional search conditions come from the netlist described in Section 7.5 Defining the Netlist for Simulation. Figure 7-9 Netlist Definition Showing the Device Nodes and Attributes of Interest 108 Utmost IV User’s Manual All attributes in the netlist must exist in the dataset.Searching for Datasets in the Database Optimization Module The additional search conditions. check your netlist. This helps to ensure that all datasets retrieved can be subsequently simulated and optimized in the Optimization Project window. Note: If you are having problems finding your datasets. • • Node names of all datasets must exactly match the netlist node names. 109 Utmost IV User’s Manual . which are added to the search when performing the dataset retrieval from the database. are as follows. remove. In the dialog you can add. you can change the components of the sort and the sort order. they will be sorted and displayed in the Dataset Selector Area. if you prefer to see all of the plots sorted per device name. if you are not interested in the Measurement Setup Names. Similarly. and change the order of the sort components. simply move the Plot sort component below the Device sort component. 110 Utmost IV User’s Manual . To do this.3 Sorting Datasets Once datasets are retrieved from the database. simply remove it in this dialog.Sorting Datasets Optimization Module 7. select DatasetSort. For example. To assist the visualization of the datasets. Figure 7-10 Changing the Sort Components and Order Removing a sort component will remove this item from the Dataset Selector Area. 111 Utmost IV User’s Manual . If you display this same data graphically as a plot. Each dataset contains one or more of these plots that will show in the Dataset Selector Area. the existing plots in the viewer will always be overwritten. then select DatasetAppend Plot from the menu. then you can display the data involved with an optimization by selecting an optimization setup in the sequence and then selecting OptimizationShow Plots from the menu. Once you have created an optimization sequence as described in Section 7. and add these new ones to them. any existing plots in the viewer will always be overwritten. Note: There is no limit to the number or type of these plots that can be displayed in the viewer. When you plot data this way.Displaying Dataset Plots in the Viewer Optimization Module 7.16 Automation Using the Optimization Sequence. When you show data from the optimization sequence this way. If you want to keep the existing plots in the viewer. then it will become easier to understand and to analyze the device behavior. Figure 7-11 Dataset Selector Area Containing Multiple Selected Plots To display a plot in the viewer.4 Displaying Dataset Plots in the Viewer A dataset can contain a large amount of data and is difficult to see patterns when looking at a simple table of the data values. select one or more plots from the Dataset Selector Area and select DatasetPlot from the menu or click on the toolbar icon . Figure 7-12 Dataset with Multiple Sweeps Display as Several Traces If there are a large number of these traces or if the traces are too close together.4. A measurement may involve moving more than one stimulus.Displaying Dataset Plots in the Viewer Optimization Module 7. We describe this change in the stimulus on the device as a sweep. 112 Utmost IV User’s Manual .1 Displaying Plots from Datasets with Multiple Sweeps A device measurement will typically involve changing the stimulus on the device in some way and measuring the device response. then it becomes very difficult to understand and analyze the device behavior. In practice. For example. the number of points in the second sweep should be kept to a low number. the data will consist of multiple traces. For example. When the dataset has more than one sweep. this would suggest that for two sweep measurements. you change the voltage on the gate terminal of a MOSFET and measure the change in current at the drain terminal. a dataset can have a sweep on the gate voltage and also a second sweep on the body voltage. then it becomes even more difficult to identify where an individual trace resides in the multi-dimensional sweep space. Figure 7-13 Datasets with Multiple Sweeps Can Be Difficult to Analyze If your dataset has too many traces or if the traces are too close together. Figure 7-14 Splitting Multiple Traces into Separate Graphs Makes Analysis Easier 113 Utmost IV User’s Manual . you can ask Utmost IV to display each trace separately on a different graph as described below.Displaying Dataset Plots in the Viewer Optimization Module If the number of sweeps is greater than two. This will make it much easier to analyze the device behavior. Splits on same Chart Each trace from each plot is drawn separately but on a single chart. The following shows an example plot of the same data for each method.Displaying Dataset Plots in the Viewer Optimization Module For datasets with more than one sweep. Splits on different Chart Each trace from each plot is drawn separately on a separate chart. This allows fine control over how to visualize the data. Then in this dialog. select ToolsWaveform Viewer. the traces will be plotted according to your preference. 114 Utmost IV User’s Manual . select EditPreferences to open the User Preference dialog. Figure 7-15 User Preferences for the Viewer The three available methods are as follows. From the Utmost IV main window. You can select which method for viewing from the Split multi-trace plots pull down list. Method Description No Splits All traces are drawn together on a single chart as a single object. Displaying Dataset Plots in the Viewer Optimization Module Figure 7-16 Single Plot Displayed in the Viewer with No Splits Selected Figure 7-17 Single Plot Displayed in the Viewer with Splits on Same Chart Selected 115 Utmost IV User’s Manual . Displaying Dataset Plots in the Viewer Optimization Module Figure 7-18 Single Plot Displayed in the Viewer with Splits on Different Charts Selected 116 Utmost IV User’s Manual . Keys Displays dataset keys on plot.2 Displaying Additional Information about the Dataset in the Viewer When you display your measured data in the viewer. The default settings for the viewer are shown below. Conditions Displays measurement conditions on plot. Then in this dialog. Figure 7-19 Default Settings for Viewer The Chart Labeling section allows you to select the information you want to be shown on your plots. With the default settings. Information Description Temperature Displays temperature on plot. select EditPreferences to open the Preferences dialog. select ToolsViewer. you can also include additional information that describes the data that is being displayed. a typical plot will appear as shown below. From the Utmost IV main window. Label Position Changes the position of the label added to the plot. 117 Utmost IV User’s Manual .Displaying Dataset Plots in the Viewer Optimization Module 7.4. Attributes Displays device attributes on plot. The following additional information can be added to the plots. You can choose the following to show the temperature on the plot. Figure 7-21 Plot with Temperature shown on Label Note: When you select to show the temperature on the label. If you select On Label. it will not be displayed on the title as well. the temperature will be displayed as shown below. On Title Shows the temperature on the plot title. Setting Description None Doesn’t show temperature on the plot. the temperature information for each dataset will be displayed in the title of the plot as shown above. (Default) On Label Shows the temperature on a label added to the plot. 118 Utmost IV User’s Manual .Displaying Dataset Plots in the Viewer Optimization Module Figure 7-20 Plot using Default Settings Adding Temperature Information By default. PD. 119 Utmost IV User’s Manual . Figure 7-22 Plot with Keys shown on Label Adding Dataset Attribute Information A dataset can have any number of attributes. NRS. On Title Shows the attributes on the plot title. (Default) On Label Shows the keys on a label added to the plot. Setting Description None Doesn’t show keys on the plot.1 Dataset Keys. For example.Displaying Dataset Plots in the Viewer Optimization Module Adding Dataset Key Information Every dataset has a number of keys as described in Section 4. L. such as W and L for a MOSFET transistor. a MOSFET with the attributes W. AD. Setting Description None Doesn’t show attributes on the plot. By default. these keys are not shown on the plot but you can change the setting of this preference. If you select On Label. NRD as shown below. PS. If your dataset has a large number of attributes then the title can become very long. You can change the setting of this preference. the attribute information for each dataset will be displayed on the title of the plot. (Default) On Label Shows the attributes on a label added to the plot. the dataset keys will be displayed as shown below. By default. AS. especially if you display multiple plots at the same time. If you select On Label.Displaying Dataset Plots in the Viewer Optimization Module Figure 7-23 Plot with Title Including Many Attributes It is possible for a title to get so long that it is hidden by the viewer. the attributes are removed from the title and shown on a label added to the plot as shown below. Figure 7-24 Plot with Attributes shown on Label 120 Utmost IV User’s Manual . the VG sweep is already shown on the X axis and does not need to be included in the label as well. (Default) On Label Shows the conditions on a label added to the plot.Displaying Dataset Plots in the Viewer Optimization Module Adding Measurement Condition Information By default. Setting Description None Doesn’t show conditions on the plot. If you select On Label. You can change this setting. In the above plot. Figure 7-25 Plot with Measurement Conditions shown on Label Note: If the measurement condition information is already shown on the plot. the measurement conditions for each dataset will not be displayed on the plot. it will not be added to the label. the measurement conditions will be displayed as shown below. 121 Utmost IV User’s Manual . Displaying Dataset Plots in the Viewer Optimization Module Selecting the Label Position By default. Figure 7-26 Plot with Label Displayed on Bottom Right 122 Utmost IV User’s Manual . You can change this setting. the label will be displayed as shown below. the label that will be added to the chart will be on the top left of the plot. Bottom Right Shows the added label on bottom right of of the plot. Setting Description Top Left Shows the added label on top left of of the plot. Bottom Left Shows the added label on bottom left of of the plot. If you select Bottom Right. (Default) Top Right Shows the added label on top right of of the plot. This netlist defines the node names and attribute names of every dataset that will be used in the project (see Section 7. the netlist defines the SPICE netlist text that will be used during the simulation of all datasets. the datasets are automatically given the node names detailed below. To retrieve such datasets from the database. attributes. There is no limit to the number of nodes.Defining the Netlist for Simulation Optimization Module 7. or the complexity of the SPICE netlist text.5 Defining the Netlist for Simulation There is only one netlist defined in each Optimization project. Additionally. their names. select SetupNetlist or click on the toolbar icon . the node names in the netlist must also match.2 Searching for Datasets in the Database). To view and edit the netlist. Module Node Names Diode: AC Bipolar: CBES JFET: D G S BG MOS: DGSB SOI 4 terminal: D G S BG SOI 5 terminal: D G S BG B TFT: DGS 123 Utmost IV User’s Manual . Figure 7-27 A Compact Model MOS Netlist When reading from Utmost III logfiles. Some other SPICE netlist text compact model examples are given below. In the example above. you only need to define a single element in the netlist. This SPICE netlist text also shows how device attribute values can be passed into the simulation using the expression syntax as follows. D1 A C ndio 'W * L' M1 D G S B PMOS W = 'wid * 1e-6' L = 'len * 1e-6' AD= 'wid * 1.1 Compact Model SPICE Netlist The SPICE netlist text must be written in valid SPICE syntax and should list all of the model elements that will be used to simulate the device you are interested in. G.5. S. M1 D G S B NMOS W='W' L='L' In SPICE syntax. For example.Defining the Netlist for Simulation Optimization Module 7. this defines a MOSFET element called M1 that uses a MOSFET SPICE model called NMOS and connects the four device nodes D. <parameter> = '<expression>' When the simulation is performed on the above netlist. to simulate a compact MOS model. The parameters of this model card can also be passed into the simulation using the expression syntax. 124 Utmost IV User’s Manual .3e-6' Q1 C B E S NPN M1 D G S B Mymodel W=10e-6 L=1e-6 Attributes are not the only parameters that will be passed into the simulation using the expression syntax. All of the device nodes must be connected and none must be floating. and B to the terminals of the element. the value of the attributes W and L for each different dataset will be passed to SPICE and used in the model element. R1 A B 'rvalue' C2 A C 'cvalue * 1e-12' Note: The names of parameters in the special PARAMS model card must not be the same as the name of an attribute. the expression is simply a single attribute name W and L. The model library of the project contains a special model card called the PARAMS model card. 5. Figure 7-28 A Macro Model MOS Netlist This netlist is suitable for modeling the parasitic PNP on a vertical NPN transistor. All of the netlist node names must be connected and none must be floating.Defining the Netlist for Simulation Optimization Module 7. Figure 7-29 A Macro Model Bipolar Netlist 125 Utmost IV User’s Manual .2 Macro Model Netlist There is no limit to the complexity of the SPICE netlist that can be defined. any internal nodes in the netlist must not be floating. Similarly. This netlist is suitable for high voltage MOS modeling. Some examples are shown below. Figure 7-30 A Macro Model Inductor Netlist 7.5. Figure 7-31 Reading from an External Library File 126 Utmost IV User’s Manual .Defining the Netlist for Simulation Optimization Module This netlist is suitable for modeling an inductor macro model.3 Reading from an External Model Library This netlist can be used to read a model from an external library file. press the Export button.Defining the Netlist for Simulation Optimization Module 7. This includes any models or parameters defined within the subcircuit. the entire subcircuit will be replaced.4 Exporting the Netlist The netlist can be exported as a subcircuit and be embedded into a hierarchical SPICE library file. select the file where the netilst is to be written and the following will be shown. On the netlist dialog. Figure 7-32 Exporting the Netlist Here. 127 Utmost IV User’s Manual . you can select the name and location of the subcircuit. The order in which the node names will appear and the default values for any passed parameters. Note: If you select to overwrite an existing subcircuit.5. for example NMOS. This special model card allows you to pass parameters directly into the netlist (see Section 7. and the User Initial value. All model cards will be used during SPICE simulation of the datasets. the Optimized column will always be used. including the special PARAMS model card. the Fit Initial value.5 Defining the Netlist for Simulation) and into the expression definition of other model parameters. When setting the parameter value. As well as the parameter name. The minimum and maximum range limits are used during parameter optimization. except the special PARAMS model card that has no type. The column or SPICE model to be used during simulation is selected from the Simulation menu. Note: During optimization. which will open the model library window.6 The Model Library The model library contains a collection of model cards. by selecting its name from the pull down list of model names. Each model card can contain many parameters and the names of these parameters must be unique within the given model card. Figure 7-33 Viewing and Editing the Model Library A model library contains one or more model cards. 128 Utmost IV User’s Manual . These three columns may be thought of as three separate SPICE models. To view and edit the model library. Each model card has a type. you can give the parameter a value and a minimum and maximum range limit. one at a time. there are three columns in the model library that you can choose: the Optimized value.The Model Library Optimization Module 7. select SetupModel Library or click on the toolbar icon . You can view each model. 16 Marking and Unmarking Model Parameters). The template will read a predefined model and will create this in the model library. and a template. 129 Utmost IV User’s Manual . select ModelNew to add a new model card.1 Creating a New Model Card In model library window.The Model Library Optimization Module Having immediate access to multiple SPICE models is very useful when comparing the difference in model parameters between two or more SPICE models. Figure 7-34 Creating a New Model Card Note: The name of the model card must not be the same as other model cards in the model library. an empty model card is created. 7. This will open a dialog where you can select the model name. It is also very useful to be able to simulate the characteristics of one model and then overlay the simulation from a second model. the model type.6.6. Marking a parameter means that this parameter will be used during optimization and rubberbanding (see Section 7. If no template is selected. select ModelChange and enter the new name and type into the dialog. when renaming a model card. For convenience.2 Copying a Model Column Each model card consists of several columns. 7. and User Initial columns may be thought of as individual SPICE models. Fit Initial. To copy the model parameter values from one column to another.14 The Optimization Setup) can also be renamed automatically at the same time. To change either. Figure 7-36 Changing the Model Card Name and Type 130 Utmost IV User’s Manual .3 Changing a Model Card A model card has both a name and a type. select ModelCopy. In the dialog. You can use the Simulation menu to change which of the three SPICE models will be used when simulating a dataset. Figure 7-35 Copying a Model Column Note: The copy operates only on the currently displayed model.6.6. any references to this model card within the optimization setups (see Section 7. and each of the Optimized. you can select one source column and many destination columns.The Model Library Optimization Module 7. Note: There is no way to restore a model card once it is deleted. Figure 7-37 Duplicating a Model Card Note: The model duplication operates on the currently displayed model. except from backup.6.6.6.The Model Library Optimization Module 7. Note: There is no way to restore a model card or a model parameter once it is deleted.6 Clearing the Model Library You can delete all model cards and all parameters from the special PARAMS model card by selecting ModelClear Model Library from the menu.5 Deleting a Model Card You can delete the currently displayed model card by selecting ModelDelete. Note: The new name must be different to the existing model card names in the model library. 7.6. select ModelDuplicate Model and enter the name for the copy in the dialog. except from backup. To make a duplicate of the entire model card. 7. Note: It is impossible to delete the special PARAMS model card. 131 Utmost IV User’s Manual .4 Duplicating a Model Card Section 7.2 Copying a Model Column described how to copy a single column within a model card. you select the external file containing the model cards and press the Next button. Figure 7-38 Selecting the External Library File for Model Card Import 132 Utmost IV User’s Manual . select ModelImportModel Cards to import model cards from an external file into the project.7 Importing Model Cards In the model library window.The Model Library Optimization Module 7. In the first page of the import wizard. The external file must be in standard SPICE format and may be hierarchical.6. you select the models that you want to import into the model library and the destination columns. Figure 7-39 Selecting the Model Cards for Import Note: Model cards that are overwritten cannot be recovered. If a model name already exists in the library. 133 Utmost IV User’s Manual . it will be overwritten during the import. except from backup.The Model Library Optimization Module In the second page of the import wizard. 8 Importing Model Params The model params are simply the parameters of the special PARAMS model cards. In the model library external file.5 Defining the Netlist for Simulation for more information. The external file must be in SPICE format and may be hierarchical. you select the external file containing the model params and press the Next button.The Model Library Optimization Module 7. See Section 7. select ModelImportParams. These may be used to pass values into the expression definition of other model parameters and directly into the netlist.6. these model params are defined using the following syntax.PARAM <paramName> = <paramValue> To import model params from an external file into the project. Figure 7-40 Selecting the External File for Model Params Import 134 Utmost IV User’s Manual . . In the first page of the import wizard. 135 Utmost IV User’s Manual . you select the model params that you want to import into the model library and the destination columns. except from backup. it will be overwritten during the import. Figure 7-41 Selecting the Model Params for Import Note: Model params that are overwritten cannot be recovered. If a model param name already exists in the library.The Model Library Optimization Module In the second page of the import wizard. 6. In the first page of the export wizard. you select the external file into which you will write the model cards and press the Next button.9 Exporting Model Cards To export the model cards into an external SPICE format model file. select ModelExportModel Cards. Figure 7-42 Selecting the External File for Model Cards Export 136 Utmost IV User’s Manual .The Model Library Optimization Module 7. The Model Library Optimization Module In the second page of the wizard. 137 Utmost IV User’s Manual . you can select the model cards and the column you wish to export. Figure 7-43 Selecting the Model Cards for Export Note: Model cards that are overwritten in the external library file cannot be recovered. You can also select the name of the library and the name of the subcircuit into which the model will be exported in the hierarchical SPICE format model library file. See Section 7.The Model Library Optimization Module 7. you select the external file into which you will export the model params and press the Next button. . select ModelExportParams. these model params are defined using the following syntax.5 Defining the Netlist for Simulation for more information.10 Exporting Model Params The model params are simply the parameters of the special PARAMS model cards. These may be used to pass values into the expression definition of other model parameters and directly into the netlist. In the model library external file. In the first page of the import wizard.PARAM <paramName> = <paramValue> To export model params to an external file.6. Figure 7-44 Selecting the External File for Model Params Export 138 Utmost IV User’s Manual . PARAM statement and continuation lines where necessary.The Model Library Optimization Module In the second page of the wizard. Selecting Single will export each parameter on a separate line. Figure 7-45 Selecting the Model Params for Export 139 Utmost IV User’s Manual . selecting Grouped will export the parameters together with a single . you can select the model params and the column you wish to export. You can also choose the format for the exported parameters. You can also select the name of the library and the name of the subcircuit into which the model will be exported in the hierarchical SPICE format model library file. you select an existing Spayn file or create a new file to export the parameters into and press the Next button. To do this.6. In the first page of the import wizard. This section will deal with exporting both model cards and params into comma separated variable Spayn format files. select ModelExportTo Spayn.The Model Library Optimization Module 7. Figure 7-46 Selecting the External File for Export To Spayn 140 Utmost IV User’s Manual .11 Exporting Model Library to Spayn The previous sections dealt with export of model cards and params into SPICE format files. 3 141 Utmost IV User’s Manual .2 When exporting to an existing Spayn file. a new row will be created. model1/param1. model2/param2.. two model cards were selected.. 2. If the new row does not contain all the columns of the existing file. model1/param1. so that all rows will have equal numbers of columns. a blank entry will be created in the new row for that column. Row.1.2.The Model Library Optimization Module In the second page of the wizard. model1 and model2.1. Each model had only a single parameter. model3/param3 1.1.1. 1. 2.2.3. You also select the column from which you want to export the models. Figure 7-47 Selecting Model Card Names for Export To Spayn In the example below. model2/param2 1. If the new row contains additional columns. model1 had a parameter called param1 with a value of 1. then blank entries will be created in all of the existing rows for those columns. model2 had a parameter called param2 with a value of 2. you select all of the model names that you want to export.2. Row. minimum. To stop inserting parameters. select all of the parameters you wish to delete. 7. This means that the optimized.12 Inserting Model Parameters To add an additional parameter in current model card. In the dialog.14 Editing Model Parameters You can directly edit the value of any model parameter in the model library window. select the parameter and then select ParameterRename from the menu. except from backup.6.6. user initial. except from backup.15 Deleting Model Parameters To delete model parameters from the model card. and maximum values may be modified or even removed. Figure 7-49 Renaming a Model Parameter Note: The new parameter name must not be the same as any other parameter in this model card. 7. press the Close button. 7. and then select ParameterDelete. select ParameterInsert. expression. Note: All changes cannot be recovered. enter the new model parameter name and press the Apply button to insert above or below the current line in the model library.6. they cannot be recovered. fit initial. Note: Once parameters are deleted.13 Renaming a Model Parameter To rename. 142 Utmost IV User’s Manual .6. Figure 7-48 Entering a New Model Parameter Name Note: The new model parameter name must be different to those already in this model card.The Model Library Optimization Module 7. 16 Marking and Unmarking Model Parameters A parameter that is marked in the model library is marked for optimization. When an optimization is run directly from the viewer. Note: Parameters with blank values in their optimized. Note: Parameters defined by expressions cannot be marked. You can mark or unmark a single parameter. select those parameters and select ParameterMark or ParameterUnmark.The Model Library Optimization Module 7. 143 Utmost IV User’s Manual . or maximum columns cannot be marked. To unmark all parameters in the model card. the marked parameters are the ones that are initially selected when the rubberband dialog is shown. When a rubberband optimization is selected. one at a time. using the checkbox in the Mark column of the model library window. Note: Parameters with their optimized value less than their minimum or greater than their maximum cannot be marked. To mark and unmark multiple parameters.6. select ParameterUnmark All. minimum. the marked parameters are the ones that are optimized. The Model Library Optimization Module 7. The parameter expression must be defined using a valid SPICE syntax. select the parameters of interest and select either ParameterValues or ParameterExpression. To change between the two modes. VTH0 = 0.17 Using an Expression to Define a Model Parameter As described in Section 7. Any variables that are not device attributes must be defined as parameters in the special PARAMS model card. VTH0 = 0.1 * L A model parameter is either defined in terms of values or in terms of an expression. which is a function of other variables. Figure 7-50 Model Parameter Defined Using Expression 144 Utmost IV User’s Manual .7 + 0. a model parameter is usually defined in terms of a parameter name and a parameter value.7 + d_vth0 The other variables may be parameters from the special PARAMS model card (e.g.7 It is also possible to define a parameter in terms of an expression.6.6 The Model Library.. d_vth0) or may be attributes of the device being simulated (e. VTH0 = 0.. L).g. The Model Library Optimization Module When a parameter is defined in terms of an expression. a minimum range. The special PARAMS model parameters may be optimized separately or at the same time as any other value defined model parameter. Since the device attributes are fixed. For each of these special parameters. and a maximum range limit to be able to include these in an optimization. this means that you must optimize the parameters from the special PARAMS model card that are used in the expression. you must optimize the variables that are used in the expression. rather than optimizing the expression. you will need an initial optimized value. In this case. Figure 7-52 Optimize Model Parameters and Expression Parameters at the Same Time 145 Utmost IV User’s Manual . Figure 7-51 Setting up Special Parameters for Expression Optimization Note: An expression may be defined in terms of another expression. it cannot be part of an optimization and the minimum and maximum range limits have no meaning. Figure 7-53 Editing the Extractions An extraction is defined by the following information. It is also possible to include variables from the project into the extractions using the var() syntax.7 Defining Extractions An extraction is a way to take a dataset and to extract from this a single performance metric number. abs( ) arg( ) cos( ) exp( ) mag( ) pow( ) sin( ) tan( ) acos( ) asin( ) atan( ) ceil( ) conj( ) cosh( ) imag( ) loge( ) norm( ) real( ) sinh( ) sqrt( ) tanh( ) floor( ) log10( ) phase( ) You can include device attributes. you can take a dataset that contains a drain current versus gate voltage sweep for a mosfet and from this extract the threshold voltage value. *. /) and the following built-in functions. such as width and length into an extraction using the attr() syntax. -. select SetupExtractions from the project menu or click on the icon on the toolbar. To edit the extractions. The functions below take one input. Field Description Name The name of the calculated characteristic. For example. Expression A mathematical description of the function. You can include the temperature using the key(temperature) syntax. The expression can be defined using the mathematical operators (+.Defining Extractions Optimization Module 7. attr(L) key(temperature) var(myvar) 146 Utmost IV User’s Manual . The following linear fit functions return a single value. min() max() mean() The derivative function returns an array. trace_number) The following functions return a single value. end index) The following function is a special function for use with AC and Noise datasets. If the method is set to maxslope. 3 The value of y to search for. you can use the trace function to return a particular sweep trace. then the tangential line from the point of maximum slope is fitted. If a dataset has multiple sweeps and is not of the table type. yvalue. begin index. slope (xarray. 5 Search forwards or backwards through the array. yarray) The find_x_given_y extraction takes five inputs and will return the value of x given the corresponding value of y. you can use the bias_trace function to return a particular DC bias sweep trace. method) The remaining functions are special functions built in for commonly used device extractions. method) xintercept (xarray. yarray. method) yintercept (xarray. yarray. then a least square fit is made to the entire curve.Defining Extractions Optimization Module You can manipulate arrays of data using the following functions. 4 Interpolation performed as lin or log. yarray. If the method is set to lsq. bias_trace (array. derivative(xarray. 2 The y array. yarray. 147 Utmost IV User’s Manual . If a dataset has multiple DC bias sweeps and is not of the table type. element(array. The element function returns the value of the array at the given index. forwards) Input Description 1 The x array. trace number) slice(array. lin. find_x_given_y (xarray.index) length(array) trace(array. A full description is given in Section 6. log. vd. slope (trace(vg. find_x_given_y (trace(vg. xintercept (trace(vg. 148 Utmost IV User’s Manual . maxslope) Threshold Voltage at Current vt_at_current(vg. id.Defining Variables Optimization Module Linear Threshold Voltage vt_lin(vg. xintercept (trace(vg.5 Defining Variables. sqrt(trace(id.  maxslope) . trace number).8 Defining Variables A variable can be used in an extraction and can also be written to as the result from an extraction. trace(id. trace number)). id. trace(id.mean(trace(vd. maxslope) Note: An extraction must return a single value and not an array of values. trace number))/2 Saturated Threshold Voltage vt_sat(vg. trace number). trace number). trace number) This is the equivalent of the following extraction. trace number) This is the equivalent of the following extraction. backwards) Linear Transconductance gm_lin(vg. trace(id. id. id. trace number) This is the equivalent of the following extraction. current. trace number). trace number). current. trace number). 7.trace number). trace number) This is the equivalent of the following extraction. 9 Comparing Measured and Simulated Data A dataset contains measured data together with a description of how that measurement is performed. simply select UtmostSimulation from the viewer menu or click on the viewer toolbar icon. We are now interested in comparing the measured data to simulated data from the SPICE simulator. and overlay the simulated data on the same plots as the measured data automatically with a single mouse click. When you display dataset plots in the viewer. If the simulation is unsuccessful. details of the problem will be displayed in the Status Log Area of the Optimization Project window. When the simulation is complete. perform all calculations. the netlist definition must be correct and all models referenced in the netlist must be present in the model library or referenced in external files. the simulated data will be automatically overlaid on the same plots as the measured data. A percentage error may also be displayed on each plot describing the “goodness of fit” of the current simulation. Utmost IV will simulate all the necessary datasets.4 Displaying Dataset Plots in the Viewer. you are displaying the measured data as described in Section 7.Comparing Measured and Simulated Data Optimization Module 7. After displaying the measured data in the viewer. Figure 7-54 Simulated Data is Automatically Overlaid after Simulation Completed 149 Utmost IV User’s Manual . Note: For a successful simulation. Utmost IV uses a sophisticated method for calculating this error metric that can be controlled from the User Preference dialog.10 Error Calculation Fundamental to the comparison of measured versus simulated data and to SPICE model optimization is the calculation of an error metric that accurately describes how close the simulated data approaches the measured data. select EditPreferences from the main Utmost IV window and select PreferencesError Calculation.Error Calculation Optimization Module 7. To open this dialog. Figure 7-55 User Preferences for the Error Calculation 150 Utmost IV User’s Manual . Error Calculation Optimization Module 7. Linear Error = (sim . Linear Data Data that is displayed on a linear axis will use one of the two following error calculation methods. Figure 7-56 Linear and Logarithmic Displayed Data Calculate Errors Differently 151 Utmost IV User’s Manual .meas)/(sim + meas) Logarithmic Data Data that is displayed on a logarithmic axis will always use the following error calculation method. depending on the Linear Error Method preference you set. the individual data point errors will be calculated in the following ways.meas)/meas Linear Difference Error = 2 * (sim . the errors will be calculated correctly. Logarithmic Error = [log(abs(sim)) .log(abs(meas))]/log(abs(meas)) Note: It does not matter whether the data is displayed on the X. Y.1 Linear and Logarithmic Data Depending on the axis on which the data is displayed and the user preference.10. or Y2 axes of a cartesian plot. Note: If a single box is drawn on a plot and no measured data is contained within it. This is useful if you wish to view data that will be excluded in the calculation of the error metric (for example. simply set the value of the data floor to zero in your preference. The weight given to that data point will be 10.10.2 Data Floor Measured data values that are between -floor and +floor will be excluded in the calculation of errors. Multiple boxes can be defined on each plot. and 10. which can be used to increase the importance of any given data when estimating the error metric. The value of the data floor defaults to a value of 1e-18. 7. 5. then no error will be calculated for that plot. For example. the maximum weight of the three boxes. Figure 7-57 A Plot showing Multiple Defined Boxes 152 Utmost IV User’s Manual .Error Calculation Optimization Module 7. its weight will be the maximum value of weight of all those boxes. select ObjectAdd Rectangle from the viewer menu or click on the viewer toolbar icon. If a data point exists inside more than one box. To switch off the exclusion of data using the data floor. during an optimization). a data point exists in three boxes of weight: 1.3 Effect of Boxes on Error Calculation Boxes are used to limit the regions of measured data that will be used to calculate the error metric.10. Boxes can also be given different weights. To add a box to a plot. You can change the box weight by selecting the box and editing the preferences. 5% error. 100 of which are 1% and the last error value is 1000%. an error value will be calculated giving a population of error values. By selecting the number of Outlier Deviations. these will distort the error metric and disrupt the operation of the optimization algorithms. you can control how far away an individual error must be from the average error before it will be excluded from the population. If outlier error values exist within this population. For example. This is clearly not a very good representation of the population of errors.Error Calculation Optimization Module 7.4 Outlier Removal For each data point. If this error metric were being used in an optimization. the optimizer will spend a lot of time trying to reduce this single error and sacrifice the already good fit for the rest of the data.5 Displaying the Error on the Viewer The root mean square (RMS) error will be displayed on each plot in the viewer according to your Display in Viewer preference. 153 Utmost IV User’s Manual . if there are 101 error values. 7.10. Utmost IV automatically removes outlier error values from the population to further improve the speed and accuracy of the optimization algorithms.10. the root mean square (RMS) error will be calculated as 99. You can directly modify the model parameter values in the model library and re-simulate. From the viewer menu. The rubberband feature provides a user friendly. However.1 Selecting a Parameter to Rubberband To select a new model parameter to explore. this will be very inefficient if you need to repeat many times.Using Rubberband to Explore and Modify Model Parameters Optimization Module 7. select the parameter name that will add this parameter into the list of Optimized Parameters on the right. fast.11. you can see how well the current model parameters predict the performance of the measured device. By doing this. Then. 7.9 “Comparing Measured and Simulated Data” describe how to display the measured data and how to perform a simulation and overlay the measured and simulated data in the viewer. Note: If you are unable to select a parameter from the list. and intuitive way to explore how various model parameters affect the simulated characteristics. This will display all the available parameters defined in the model library for that model. 154 Utmost IV User’s Manual .4 “Displaying Dataset Plots in the Viewer” and 7.11 Using Rubberband to Explore and Modify Model Parameters Sections 7. this is because that parameter cannot be marked because of missing or incorrect value and minimum or maximum range. select the model name from the available list. any parameter marked in the model library will be automatically selected and displayed. You must correct this in the model library before opening the Rubberband dialog. select UtmostRubberband or click on the viewer toolbar icon to start rubberbanding. Figure 7-58 Using Rubberband to Modify the Model Parameter Values Note: When the Rubberband dialog is opened. By moving the slider to adjust parameter values and simultaneously watching how the simulated characteristics are modified in real time.4 De-selecting a Parameter You can de-select a currently selected parameter by clicking on that parameter from the Model Parameter list on the left or by double-clicking on the parameter in the Optimized Parameters Area.11. 7. This will also save any modifications to the parameter ranges and will mark only those parameters currently selected in the Rubberband dialog. The rubberband feature in Utmost IV is an invaluable teaching tool when learning a new model or when exploring the interactions between more complex macro-models in real time. you can change a parameter value by moving the slider or by typing in a new value. you can use the Apply or the OK button.11. 7.5 Reverting to the Last Saved Model Parameters You can discard all changes made since your last save by clicking on the Revert button. If you decide to unmark the parameter. and update and overlay the simulated data on the viewer.11.Using Rubberband to Explore and Modify Model Parameters Optimization Module 7. perform the error metric calculations.2 Modifying Parameter Values Once selected.11.3 Saving the Parameter Modifications To save the new model parameter values to the model library. Utmost IV will then automatically perform all the necessary simulations. then you will see the following warning message. then any modifications you made to the model parameters since your last save will be lost. Figure 7-59 Warning when Attempting to De-select Modified Parameter 7. If you attempt to de-select a parameter and it has been modified since you last saved to the model library. 155 Utmost IV User’s Manual . You can also adjust the model parameter range directly. you can quickly learn what effect a parameter will have on the device simulation. If you click the Cancel button. the value will revert to the value that was last saved to the model library. This UtmostOptimize from the viewer menu or clicking on the will perform an optimization on the currently displayed data in the viewer using the currently marked model parameters in the model library. During the optimization. 7. The optimization algorithms available in Utmost IV are described in Appendix A “Optimization Algorithms”. You can change the optimizer that will be used within the Rubberband dialog.6 Optimizing Model Parameters from Rubberband A very convenient feature is the ability to optimize the selected parameters directly from the Rubberband dialog. Note: When the Rubberband dialog is opened from the optimization sequence. you will notice that the button text will change to Stop that will allow you to terminate the optimization early. To change the default algorithm. You can then choose the optimizer you wish to use and modify any of the configuration parameters.11. you can run an optimization by selecting viewer toolbar icon. select one or more parameters and click on the Optimize button. the optimizer defined for that optimization setup will be selected. The optimization algorithms that are available in Utmost IV are described in Appendix A “Optimization Algorithms”. This allows you to monitor the progress of the optimization and to quickly decide if a parameter range is incorrect. select EditPreferences from the main Utmost IV window and select the ToolsOptimizer section. the project optimizer type will be selected. Note: If there are no parameters marked for optimization in the model library. This will perform an optimization on the currently displayed data in the viewer using the currently selected model parameters from the Rubberband dialog. 156 Utmost IV User’s Manual . Otherwise. While the optimization is in progress.12 Optimizing the Model Parameters from the Viewer After displaying the measured data in the viewer.Optimizing the Model Parameters from the Viewer Optimization Module 7. the parameter values will be updated in the Rubberband dialog. then no optimization will be run. To do this. To modify an existing dataset subset.1 Creating and Managing Searches for a detailed description of how to define a search. double-click on it or select it and then select EditProperties from the menu. See Section 7. Figure 7-60 Editing a Dataset Subset In the dataset subset. you must copy from and paste to the Sequence Objects Area.13 The Dataset Subset A dataset subset is used to select a subset of the datasets that are currently displayed in the Data Selector Area of the Optimization Project window. select CreateNew Data Subset or click on the icon. you use a search to select only the datasets that you are interested in. toolbar To create a new dataset subset. 157 Utmost IV User’s Manual . The datasets that match the conditions of the search are displayed on the left hand side of the dialog and are updated with every change you make to the search.The Dataset Subset Optimization Module 7. Each dataset subset must have a unique name and all are contained in the Sequence Objects Area of the Optimization Project window. This will fill in the search condition editor with the details of the item that you selected. Figure 7-61 The Sequence Objects Area Showing the Dataset Subsets Note: To make a duplicate copy of a dataset subset. then press the Populate button. If you select an item from the dataset view on the left. 1 Choosing an Optimizer You can select the optimization algorithm to use from the available list or simply choose to use your default optimizer. To change the default algorithm. You can then choose the default optimizer you wish to use and modify any of the configuration parameters.14 The Optimization Setup The optimization setup is used to describe exactly which data from the subset of datasets you are interested in using for this optimization. 158 Utmost IV User’s Manual .The Optimization Setup Optimization Module 7.14. select EditPreferences from the main Utmost IV window and select the ToolsOptimizer section. To create a new optimization setup. The optimization algorithms available in Utmost IV are described in Appendix A “Optimization Algorithms”. select CreateNew Optimization Setup or click on the toolbar icon. double-click on it or select it and then select EditProperties from the menu. Figure 7-62 Editing an Optimization Setup 7. To modify an existing optimization setup. It also defines which model and which optimization algorithm will be used for this optimization step. 14. Trace Min/Max Optional restriction on which traces to include in optimization. For example. you use the syntax attr(<attribute name>) and as the temperature is a dataset key.16. You can also plot extracted values versus a device attribute or versus temperature.2 Defining the Optimization Target Data The Target table is used to define the data to be used during the optimization. Then. To plot a device attribute. Each target is defined as follows. To do this. then no boxes will appear on the plot.2 Combining the Dataset Subset and Optimization Setup. Target The name of the Y axis data. prim(VG) only matches datasets whose primary sweep is called 'VG'. For example. These plots of extracted parameters are optimized in the same way as regular device characteristics and you can optimize both simultaneously. Field Description Enabled A disabled target will not be used during the optimization. Box limits can be defined as absolute numbers or as percentage values of the data maximum. Box Weight The weight applied to the box. you can extract threshold voltage and plot versus device length or versus temperature. 'vs' The name of the X axis data.The Optimization Setup Optimization Module 7. Target Min/Max Optional box limits for the Y axis. you define an extraction as described in Section 7. Some examples are given below.7 Defining Extractions. 159 Utmost IV User’s Manual . If you do not specify any the box limits. you write extr(<extraction name>) into either the Target or 'vs' field. if one is defined. Note: The Target and 'vs' fields can both use the 'prim' keyword to indicate that these are only to be included if the name matches the primary sweep name of the dataset. 'vs' Min/Max Optional box limits for the X axis. you use the syntax key(temperature). Figure 7-63 Optimization Targets including Extracted Values Note: You must plot an extracted value versus a device attribute or temperature or another extracted value. See Section 7. Scale The axis scale for both the X and Y axes. 3 Choosing the Model Parameters to Optimize The Parameters table is used to define all of the model parameters that will be used for this optimization. or if the parameter cannot be marked.The Optimization Setup Optimization Module 7. You can set the range of each parameter. Figure 7-64 The Sequence Objects Area Showing the Optimization Setups Note: To make a duplicate copy of an optimization setup. 160 Utmost IV User’s Manual . Each optimization setup must have a unique name and all are contained in the Sequence Objects Area of the Optimization project window.14. then it will be excluded in the optimization. Note: If there is no model parameter in the model library. you must copy from and paste to the Sequence Objects Area. You can also disable a parameter to remove it from the optimization. Note: In the optimization sequence. Figure 7-65 An Extraction Setup Writing the Result to a Model Parameter The model parameter must already exist in the model library. select CreateNew Extraction Setup or click on the toolbar icon. 161 Utmost IV User’s Manual .The Extraction Setup Optimization Module 7. double-click on it or select it and then select EditProperties from the menu.15 The Extraction Setup An extraction setup is used to select an extraction to be performed within the sequence and also to define where to write the result. Figure 7-66 An Extraction Setup Writing the Result to a Variable The variable name must already exist in the variables table. To modify an existing extraction setup. the dataset subset that is associated with the extraction setup must contain exactly one dataset. To create a new extraction setup. The dataset subset defines the single dataset upon which the extraction is to be performed.16.16. For example. then the dataset must contain both 'ID' and 'VG' data arrays. each extraction setup is paired to a single dataset subset. the extraction setups and the optimization setups to the sequence by using copy/paste and by using drag/drop. each optimization setup is associated with a single dataset subset. You can then use this sequence to repeat the same model extraction strategy over many different sets of data. To be included as part of the optimization. The extraction setup defines which extraction is to be performed and where the result is to be written.16 Automation Using the Optimization Sequence Previous sections of this chapter describe how Utmost IV can be used as an interactive engineering tool to explore and extract SPICE models. if the name is 'ID' and the 'vs' name is 'VG' and are included in the optimization. the same object will simply be used multiple times within the sequence. 7. the dataset subset should contain only a single dataset upon which the extraction will be performed.2 Combining the Dataset Subset and Optimization Setup In the optimization sequence. The object is not copied.Automation Using the Optimization Sequence Optimization Module 7. Likewise. The optimization setup alone defines the optimization algorithm and the model parameters for this optimization step. each optimization setup is paired to a single dataset subset and together they determine the optimization that will be performed for that step. it is the interaction of the dataset subset and the targets of the optimization setup that define which data will be included. In the sequence. You can also use Utmost IV to construct a highly automated sequence of extractions and optimizations to generate a complete SPICE model from a given set of data. each dataset returned by the dataset subset must contain data arrays that match both the Target and the 'vs' name from the optimization setup. each extraction setup is associated with a single dataset subset.1 Combining the Dataset Subset and Extraction Setup In the optimization sequence. the Extraction Setups and the Optimization Setups. 162 Utmost IV User’s Manual . However. 7. The optimization sequence is built using three sequence objects: the Dataset Subsets. Figure 7-67 An Optimization Sequence You may add the dataset subsets. An individual sequence object may appear multiple times in the optimization sequence. In this case. Automation Using the Optimization Sequence Optimization Module Multiple targets can be added to include more data into the optimization. Figure 7-69 Plots Generated by Multiple Targets 163 Utmost IV User’s Manual . then the following plots would be produced. Figure 7-68 Optimization Setup with Multiple Targets If this optimization setup is combined with a dataset subset containing a single 'ID' vs 'VG' and a single 'ID' vs 'VD' dataset. The optimization setup shown below includes two targets that will display both 'ID' vs 'VG' and 'ID' vs 'VD' data plots. then you must use the 'prim' keyword to explicitly select only the primary sweep. Figure 7-70 Optimization Setup with Target Containing 'prim' Keyword When this optimization is combined with the dataset subset of the previous example only datasets containing 'ID' and where 'VG' is the primary sweep will be included in the optimization and the following plots would be produced. the 'vs' field in the Target is changed to 'prim(VG)' as shown below. to select only the 'ID' vs 'VG' plot from the datasets with primary sweep VG. In the previous example. This additional plot comes from the 'ID' vs 'VD' dataset and was generated because in this dataset the second sweep is VG. 164 Utmost IV User’s Manual . an additional 'ID' vs 'VG' plot has been generated. If you only wish to generate plots and include data in the optimization from the primary sweep data.Automation Using the Optimization Sequence Optimization Module Instead of producing two plots. together with any defined boxes. Figure 7-72 A Paused Optimization Sequence 165 Utmost IV User’s Manual .16.3 Displaying the Data for the Optimization Step To verify which data will be included in the optimization. select the optimization setup in the sequence and select OptimizeShow Plots from the menu. This will display all of the data for the optimization in the viewer.Automation Using the Optimization Sequence Optimization Module Figure 7-71 Plots Generated by Multiple Targets using the 'prim' Keyword 7. The operation of this dialog is described in Section 7. In this case.16. The data for the optimization is the data that is currently shown in the viewer. Note: The parameters will be saved to the model library when you select OK or Apply from the Rubberband dialog. the data plots will be displayed and the Rubberband dialog opened automatically.16. the sequence will pause at the first available optimization setup following the pause. you may stop it by selecting or click on the OptimizeStop or by clicking on the toolbar icon. If you set the run mode to 'single step'. Once the sequence is running. To change the current position. 7. select the extraction setup or the optimization setup in the sequence from where you wish to begin and select OptimizeSet Position from the menu. If you set the Project Sequence Run mode to 'continuous'.6 Inserting a Pause in the Sequence To insert a pause above an item in the sequence. 166 Utmost IV User’s Manual . If the sequence is not running. select OptimizeRun toolbar icon. Note: If you encounter a pause while running the sequence. select that item and select OptimizeInsert Pause from the menu.16. 7. 7. When you run rubberband from the optimization sequence. When you run from the viewer. then only the current step will run and then the sequence will pause at the following step.7 Using Rubberband from the Optimization Sequence You can run rubberband from the viewer as described in Section 7. You can also run rubberband directly from the optimization sequence by selecting an optimization setup and then selecting OptimizeRubber Band from the menu.16. Note: Only those parameters that can be marked in the model library and are selected in the optimization setup will be initially set in the Rubberband dialog.Automation Using the Optimization Sequence Optimization Module 7. the initial rubberband parameters are the parameters in the model library that are currently marked.11 Using Rubberband to Explore and Modify Model Parameters.4 Running the Optimization Sequence To begin running the optimization sequence from the current position. it is from this position that the optimization will start when requested. both the data and the parameters to be optimized are set by the optimization sequence. then each step will run in sequence.11 Using Rubberband to Explore and Modify Model Parameters.5 Changing the Current Position in the Sequence The current position is indicated by an status icon in the Status column of the Optimization Sequence Area. 167 Utmost IV User’s Manual .16.Automation Using the Optimization Sequence Optimization Module 7.8 Generating a Script Version of the Optimization Sequence The Utmost IV Script Module is described in Chapter 9 Script Module. In this module. For rapid script development. you can run a script to perform the same operation as running the optimization sequence through the Optimization module and much more. you can create a script version of the project and the optimization sequence by selecting OptimizeExport Script from the menu. Reporting Optimization Module 7. In the optimization setup. Figure 7-73 Generating a Report Document Field Description Directory The directory where the document and related files will be stored. select OptimizeGenerate ReportDocument from the project menu that will open the dialog shown below.1 Automated Report Document Generation using the Sequence This feature allows you to generate a report document automatically. which allows you to define the data and the plots you wish to include using already familiar Utmost IV objects. Header Document You can include your own document at the top of the generated report. and the model library as required.17. To generate a report document. 7. File Name The name of the generated report document. This document can be customized to include a header document. error tables. Document Format The format of the generated file.17 Reporting Report generation works together with the optimization sequence. Plot Name Prefix An optional prefix to the plot names that are generated as part of the report. device plots. 168 Utmost IV User’s Manual . The data and plots that will be generated are defined in the optimization sequence. the optimization parameters are not used for reporting. 169 Utmost IV User’s Manual .17. you can generate a plot file by selecting FileExportToFile from the viewer menu. Figure 7-74 Automatically Generating Plot Files Field Description Directory The directory where you wish to store the generated plot files. Format The graphics file format.Reporting Optimization Module Plot File Format The embedded plot file format Simulate You can generate plots of only measured data or measured and simulated data. select OptimizeGenerate ReportPlot Files from the project menu and this will open the dialog shown below. Error Table If simulation is being performed.2 Automatic Plot File Generation using the Sequence This feature is used when a report document is not required. Layout You can choose how many plots will be grouped together. 7. but many plots of the device characteristics are needed. Overwrite Allows you to overwrite existing files in the directory. But this can be very time consuming if you have many plots to generate. Sort You can decide the order in which the plots will appear in the report. This will save a plot file to your file system. either a full or a summary error table can be included in the report. Prefix An optional prefix to the generated file. Simulate Generate plots with measured and simulated data. When data is displayed in the viewer. Overwrite Allow existing files in the directory to be overwritten. To use this feature. When generating the plot files.16. the data plots for each optimization step can be displayed using OptimizeShow Plots. <prefix>_<dataSubsetName>_<OptimizationSetupName>. The filename will be automatically generated as follows.<fileTypeSuffix> For example. if you choose 'Portable Network Graphics' format and a prefix of 'myPrefix' for the first item in the sequence shown above.png 170 Utmost IV User’s Manual .Reporting Optimization Module Figure 7-75 An Optimization Sequence As described in Section 7. the same data will be shown in the viewer and an image of these will be stored to the file system. then the file name will be as follows. myPrefix_data_subset1_optim_setup1.3 Displaying the Data for the Optimization Step. Chapter 8 Developing your own SPICE Model using Verilog-A . Utmost IV is a very powerful and easy to use tool for the development of Verilog-A models.1 Writing the Verilog-A Module Code The module code is written into an external file in ASCII format. Utmost IV also allows for easy co-development of any new model and the extraction sequence for extracting this model. and immediately explore the new model to see how well it works. add in any new parameters. but it is beyond the scope of this manual to describe the full extent of this language. For further details. 8. You can also take existing Verilog-A models and modify these to add new features. you can quickly modify a Verilog-A model. Using Utmost IV. please refer to the SmartSpice Verilog-A Language Reference Manual.va extension. 172 Utmost IV User’s Manual . This chapter will introduce you to writing a Verilog-A model. Figure 8-1 A Typical Verilog-A Module Code File Note: The file containing the module code must have a . A simple diode model is shown below and the various module sections will be described here .Writing the Verilog-A Module Code Developing your own SPICE Model using Verilog-A The Verilog-A language provides a very simple way for anyone to develop their own device models. . parameter will_be_real = 1.1. module mydiode(anode. parameter real W = 10e-6.7. 173 Utmost IV User’s Manual . cathode). cathode. endmodule 8.3 The Parameters A parameter is a field that can be passed down into the module code from the SPICE netlist instance or from the model card. electrical anode.0. Parameters can be limited in many ways and this is generally recommended to avoid computation problems such as divide by zero.1. a parameter could be the width of the device or it could be the MOSFET threshold voltage. if you assign the value 1 to a parameter.1 The Module Definition The top line of the module defines the name of the module and the order of the electrical connections for the netlist. int. parameter real vth0 = 0.2 The Electrical Connections Here. but it cannot be less.Writing the Verilog-A Module Code Developing your own SPICE Model using Verilog-A 8. parameter integer mobmod = 1 from [1:3]. For example. Some examples of parameter limiting are shown below. parameter real isat= 1p from [0:inf]. parameter real val2 = [val1:inf]. If you do not define the parameter type.0. A parameter should be defined as being either real or integer. The entire module code is contained between this line and the 'endmodule' line. Multiple modules can be defined within the same file. . the value assigned to the parameter will be used to determine its type.1. it will be a real type. parameter will_be_integer = 1.. Note that if you have internal nodes. it will be an integer type and if you assign the value 1. you define the input and output nodes and the electrical terminals. 8. parameter real val1 = [-1:5] exclude 0. inout anode. canode. then the number of electrical terminals will be greater than the number of input and output nodes. In other words. 1). 174 Utmost IV User’s Manual . you can add these using separate <+ statements. These variables can then be used in calculations within the model itself. These statements define how the node voltages and currents are calculated.Writing the Verilog-A Module Code Developing your own SPICE Model using Verilog-A 8. int)/ (n*$vt)) . If you have more than one current or voltage contribution. real myReal = 27.5 The Analog Code Section Here. 8. will_be_real = 1. int)>(-1*bv)) I(anode. you simply omit the name Parameter. integer i = 0.4 Variables for internal Use These are very similar to parameters except these are not passed down to the module code from the netlist instance or from the model card. To define an internal variable that is not a parameter. Note that $vt is a built in function which returns the thermal voltage (kT/q). if (V(anode.0. int) <+ -1 * isat * (exp(-1 * (bv + V(anode. This section of the code can be as complicated as is required and can include 'if' blocks to change the behavior of the model in different operating regions. else I(anode. int))/ (nr*$vt))). The statements are grouped together in a begin/end block. int) <+ isat * (exp(V(anode. a different expression is used for current when the diode is in breakdown versus when it is in regular operation. In this example. will_be_integer = 1. Some examples are shown below. the real work of the Verilog-A Model is performed. The <+ syntax is used to add to the device currents and voltages.1.1. you must add parameters into the model card. cj0*3). cathode)/vj). cathode)). From this menu. the depletion capacitance expression and depletion capacitance parameters are then added to define the capacitance value. cathode) <+ ddt (charge)). I(anode. then typically the capacitance is defined as follows. real cap. analog begin cap = cj0 * pow((1 – V(anode. cathode) <+ ddt(cap * V(anode. I (anode. select ModelNew to open the new model dialog as shown below.1. Since current can be expressed as the charge per second. add the parameter.6 Adding Capacitance into a Verilog-A Model In Verilog-A.Adding a Verilog-A Model Card into the Model Library Developing your own SPICE Model using Verilog-A 8. which is a derivative with respect to time. Figure 8-2 Adding a Verilog-A Model Card Once the VLG model is added. end 8. parameter real vj=0.2 Adding a Verilog-A Model Card into the Model Library From the model library window. parameter real mj=0. capacitance is added to a device by using the ddt function.5. parameter real cj0=5e-12. Now for a capacitor the charge is the capacitance multiplied by the voltage. then change this parameter to be an expression. cap = min (cap. select the VLG model type and enter the name of your new model.5. To do this.-1*mj). The first model parameter must be called 'module' and must contain the name of the module that you defined in the code from the previous section. I(anode. cathode)). Note that the capacitance value is limited in forward bias to avoid convergence issues with the model that would otherwise occur. cathode) <+ ddt (cap * V(anode. then type in the module name as shown below. 175 Utmost IV User’s Manual . For a diode. this gives the following expression. Adding a Verilog-A Model Card into the Model Library Developing your own SPICE Model using Verilog-A Figure 8-3 Adding the Module Name to the Verilog-A Model Card Then. exported. Figure 8-4 Adding other Parameters into the Verilog-A Model Card Note: The module parameter must be the first parameter specified in the Verilog-A model card and the name of the module must match the name defined in the Verilog-A module code. Once you have added in the model card. you can add the other model parameters just as you would for any standard SPICE model card. and copied into other projects in just the same way as any other SPICE model. this can be imported. 176 Utmost IV User’s Manual . The first step is to load the Verilog-A module code.verilog "<your . using the YVLG element prefix. . For example. This is done by the following command. the following command inserts a Verilog-A element which uses the Verilog-A model card 'verilog_diode' and connects to two electrical terminals a and c.va file name>" The second step is to define the Verilog-A element. YVLG1 a c verilog_diode Both of these commands are placed inside the netlist in your project as shown below. Figure 8-5 Netlist containing Verilog-A Element and Module Code 177 Utmost IV User’s Manual .Adding a Verilog-A Element into the Netlist Developing your own SPICE Model using Verilog-A 8.3 Adding a Verilog-A Element into the Netlist There are two steps to adding your Verilog-A element into the netlist. you can simulate using this Verilog-A model in exactly the same way as you would for a standard SPICE model.Adding a Verilog-A Element into the Netlist Developing your own SPICE Model using Verilog-A Once the module code is defined. the Verilog-A model added into the model library and the netlist updated as shown above. Figure 8-6 Simulation of Diode Characteristics using Verilog-A Model 178 Utmost IV User’s Manual . During Verilog-A model development. and also rubberband your Verilog-A model parameters.Rubberbanding your Verilog-A Model with SmartSpice Developing your own SPICE Model using Verilog-A 8. This means that you can simulate.4 Rubberbanding your Verilog-A Model with SmartSpice Verilog-A models are fully supported by Utmost IV in just the same way as any of the standard SPICE models. optimize. this is very important for exploring the behaviour of the new model. Figure 8-7 Rubberband Verilog-A Model 179 Utmost IV User’s Manual . as in the example shown below. Figure 8-8 Macro-Model Development with Verilog-A and SPICE Models 180 Utmost IV User’s Manual . Just as Utmost IV can be used to develop a Macro Model using standard SPICE models.Combining Verilog-A Models and other SPICE Models Developing your own SPICE Model using Verilog-A 8. then add the appropriate model cards into the model library. it can also be used to develop macro-models containing any number of Verilog-A models together with any number of standard SPICE models. You simply have to define the macro-model connections in your netlist. a Verilog-A model can be thought of in exactly the same way as any other SPICE model.5 Combining Verilog-A Models and other SPICE Models Once defined. Figure 8-9 Optimize Verilog-A and SPICE models Together 181 Utmost IV User’s Manual .Combining Verilog-A Models and other SPICE Models Developing your own SPICE Model using Verilog-A Once you have done this you can optimize the parameters of any of the SPICE and Verilog-A models at the same time or separately. depending on your requirements. Chapter 9 Script Module . These same commands are also available when running Utmost IV from DeckBuild. the symbol [] will refer to an array of JavaScript objects. utmost4 -cli Once in this mode. script end Tells Utmost IV to stop reading the input into the script. an object is defined and this object can have multiple methods or commands associated with it. For example.Running a Script Directly Script Module Utmost IV can be controlled and run automatically using a JavaScript based scripting language. or can be further modified and customized. Command Description load script "/tmp/myscript.6 Generating a Script Version of the Measurement Sequence for the Acquistion Module.js 9. 183 Utmost IV User’s Manual . the following commands are available. In JavaScript.8 Generating a Script Version of the Optimization Sequence for the Optimization Module and in Section 6.2 Running a Script using the Command Line Interface Utmost IV can be run in a command line interface mode from the command line as shown below. 9.16.1 Running a Script Directly A script may be run directly from the command line as follows. Note: In this chapter. quit Exits Utmost IV. Many books and on-line resources are available to learn more about this language. script begin Deletes the existing script and tells Utmost IV to start reading the input into the script. These automatically generated scripts can be run exactly as they are. utmost4 -s myscript. 9. run script Run the script.12.3 Automatically Creating a Script from a Project A convenient method to automatically generate a script version of a project sequence has been described in Section 7.js" Deletes the existing script and loads a new script from the named file. an array of DataSets will be shown as DataSets[]. The complete list of Utmost IV JavaScript objects and their commands is given in this chapter. "fitVal". Throws a JavaScript Error object if any of the arguments are invalid.  variable []. simCol) Description Performs a simulation to generate measured data in the resulting dataSet based on the following arguments.  myMeasSetup. batchName. "lot1".1 getDataFromSimulation2 Syntax dataSet getDataFromSimulation2 (temperature. netlist.Utmost4 Object Commands Script Module 9. or "usrVal". device. dieName. Must be one of "optVal". batchName A string containing the name of the batch. "1". dieName A string containing the name of the die. Example myDataSet = Silvaco. which omits the WaferMap argument.Utmost4 object is the main JavaScript object in the Utmost IV Script Module.  myNetlist.getDataFromSimulation2 (27. vars.  myWaferMap. waferName A string containing the name of the wafer.4. modelLibrary. temperature A number containing the temperature value.  "optVal"). "1". waferName.4 Silvaco. 9. Note: The function 'getDataFromSimulation'. myDevice.Utmost4 . device A Device object measSetup A MeasSetup object variable [] An array of Variable objects waferMap A WaferMap object netlist A Netlist Object modelLibrary A ModelLibrary Object simCol A string containing the name of the column in the model library to be used.Utmost4 Object Commands The Silvaco. It does not have to be created as it is created automatically when the script is run. 184 Utmost IV User’s Manual .Silvaco. has been deprecated. measSetup. waferMap.  myModelLibrary. Utmost4.4.3 makeDevice Syntax Device makeDevice (name. groupName.  myDeviceNodes. 185 Utmost IV User’s Manual . attrs) Description Constructs a Device object based on the following arguments. name A string containing the name of the attribute.Utmost4 Object Commands Script Module 9.  myAttributes). groupName A string containing the group name of the device.makeDevice ("n10x10". name A string containing the name of the device.makeAttribute ("W". "nmos".Utmost4.Silvaco. deviceTypeName.4. value) Description Constructs an attribute object based on the following arguments. Example myDevice = Silvaco. deviceTypeName A string containing the device type name of the device. Example myAttribute = Silvaco. value A number containing the attribute value. "". Throws a JavaScript Error object if the inputs are unacceptable. 10e-6). nodes An array of DeviceNode objects. 9. nodes. attrs An array of Attribute objects. Throws a JavaScript Error object if the inputs are unacceptable.2 makeAttribute Syntax Attribute makeAttribute (name. pins An array of integer numbers.5 makeExtraction Syntax Extraction makeExtraction (name. "vt_lin(vg.4 makeDeviceNode Syntax DeviceNode makeDeviceNode (name.makeDeviceNode ("D". 9. Throws a JavaScript Error object if the inputs are unacceptable. pins) Description Constructs a DeviceNode object based on the following arguments.6 makeModelLibrary Syntax ModelLibrary makeModelLibrary () Description Constructs an empty ModelLibrary object. 1)").makeExtraction  ("vth".4. Example myExtraction = Silvaco.makeModelLibrary () 186 Utmost IV User’s Manual . Example myDeviceNode = Silvaco. [1]).4.Utmost4.Utmost4.Utmost4 Object Commands Script Module 9.Utmost4.4. expr A string containing the extraction expression. Example myModelLibrary = Silvaco. expr) Description Constructs an extraction object based on the following arguments. 9. Throws a JavaScript Error object if the inputs are unacceptable. id. name A string containing the name of the device node. name A string containing the name of the extraction.Silvaco. vd. Utmost4.openCurrentWorkingDirectory ()."G". 187 Utmost IV User’s Manual .9 openCurrentWorkingDirectory Syntax Directory openCurrentWorkingDirectory () Description Returns a Directory object for the current working directory. 9. name A string containing the name of the variable.8 makeVariable Syntax Variable makeVariable (name."L"]. Example myDir = Silvaco. "1")."B"].Utmost4. Example myNetlist = Silvaco. attrNames.["W".Utmost4.7 makeNetlist Syntax Netlist makeNetlist (nodeNames. nodeNames An array of strings containing the node names. netlistText) Description Constructs a netlist object based on the following arguments. attrNames An array of strings containing the attribute names.Silvaco.makeVariable ("vd_max".makeNetlist (["D".Utmost4 Object Commands Script Module 9. 9.  "M1 D G S B NMOS W='W' L='L'").4. Example myVariable = Silvaco. expr) Description Constructs a variable object based on the following arguments. Throws a JavaScript Error object if the inputs are unacceptable. Throws a JavaScript Error object if the inputs are unacceptable.4. expr A string containing the variable expression. netlistText A string containing the netlist text.4."S". Silvaco.Utmost4 Object Commands Script Module 9.4.10 openDatabase Syntax Database openDatabase (serverName, databaseName, userName, password) Description Returns a Database object when given the following arguments. serverName A string containing the name of the database server. databaseName A string containing the name of the database. userName A string containing the name of the user. password A string containing the users password. Throws a JavaScript Error object if the Database object cannot be created. Example myDatabase = Silvaco.Utmost4.openDatabase ("dbserver", "dbname", "user1", "pass1"); 9.4.11 openDirectory Syntax Directory openDirectory (absoluteDirectoryPath) Description Returns a Directory object when given the following argument. absoluteDirectoryPath A string containing the path to the directory. Throws a JavaScript Error object if the directory does not exist. Example myDir = Silvaco.Utmost4.openDirectory ("/tmp/mydirectory/"); 9.4.12 optimize3 Syntax number optimize3 (DataSet[], OptimSetup, Variable[], Netlist, ModelLibrary, optimizer) Extraction[], Description Performs an optimization based on the following arguments and returns the optimized error metric. When the optimization is finished, the ModelLibrary object will contain the optimized parameters. DataSet[] An array of DataSet objects OptimSetup An OptimSetup object Extraction[] An array of Extraction objects 188 Utmost IV User’s Manual Silvaco.Utmost4 Object Commands Script Module Variable [] An array of Variable objects Netlist A Netlist object ModelLibrary A ModelLibrary object optimizer A string containing the optimization algorithm to use. Must be one of "LM", "HJ", "SA", "PT", "GA", "DE", or "HY". Throws a JavaScript Error object if any of the arguments are invalid. Example bestError = Silvaco.Utmost4.optimize3 (myDatasets, myOptSetup, myExtractions, myVariables, myNetlist, myModelLib,  "LM"); Note: The function 'optimize2', which omits the Variable[] argument, has been deprecated. Note: The function 'optimize', which omits the Extraction[] and the Variable[] arguments, has been deprecated. 9.4.13 releaseLicenses Syntax undefined releaseLicenses () Description Releases any additional licenses taken during the script execution. Example Silvaco.Utmost4.releaseLicenses (); 9.4.14 system Syntax undefined system (command) Description Executes the command as defined in the argument. command A string containing the command to be executed. Throws a JavaScript Error object if the input is unacceptable. Example Silvaco.Utmost4.system ("cat myfile"); 189 Utmost IV User’s Manual Silvaco.Utmost4 Object Commands Script Module 9.4.15 writeToFile Syntax undefined writeToFile (Directory, filename, text,  overwriteOrAppend) Description Writes the specified text to a file based on the following arguments. Directory A Directory object containing the directory to store the file. filename A string containing the name of the file. text A string containing the text to write to the file. overwriteOrAppend A string containing either "overwrite" or "append". Throws a JavaScript Error object if the inputs are unacceptable. Example Silvaco.Utmost4.writeToFile (myDir, "output.txt", "Hello World!",  "overwrite"); 190 Utmost IV User’s Manual Database Object Commands Script Module 9.5 Database Object Commands The Database object provides commands to read from and write to the database. 9.5.1 readDataSets Syntax DataSet[] readDataSets (Search) Description Returns an array of DataSet objects from the database based on the following argument. Search A Search object detailing the database search for the datasets. Throws a JavaScript Error object if the Search is invalid or if dataset read fails. Example myDataSets = myDatabase.readDataSets (mySearch); 9.5.2 readProject Syntax Project readProject (projectName) Description Returns a Project object from the database based on the following argument. projectName A string containing the name of the project Throws a JavaScript Error object if projectName is invalid or the project cannot be read by you or does not exist in the database. Example myProj = myDatabase.readProject ("myProject"); 9.5.3 saveDataSets Syntax undefined saveDataSets (DataSet[]) Description Saves the DataSet objects to the database based on the following argument. Any data sets that already exist in the database will be overwritten. DataSet[] An array of DataSet objects to be saved. Throws a JavaScript Error object if you do not have permission to save these datasets or if writing of the datasets fails. Example myDatabase.saveDataSets (myDataSets); 191 Utmost IV User’s Manual Database Object Commands Script Module 9.5.4 saveProject Syntax undefined saveProject (projectName, Project) Description Saves the Project object to the database based on the following arguments. If the project already exists in the database, it will be overwritten. Otherwise, it will be created. projectName A string containing the new project name in the database. Project The Project object to be saved. Throws a JavaScript Error object if the arguments are invalid or if you do not have permission to save the project. Example myDatabase.saveProject ("new_project", myProj); 192 Utmost IV User’s Manual "Gate". Will also throw an error if the file does not contain the correct data. Throws a JavaScript Error object if you cannot read the file. 193 Utmost IV User’s Manual . or if the reading of the datasets fails.6 Directory Object Commands The Directory object provides commands to read from and write to the file system. Example myDataSet = myDir. hiNode.6. Throws a JavaScript Error object if you cannot read the file. loNode) Description Reads a Silvaco TCAD format logfile containing a capacitance simulation and translates this into a LCR Utmost IV DataSet object from the following argument. loNode A string containing the name of the lo node for capacitance measurement.6. Will also throw an error if the file does not contain the correct data. "Drain"). fileName A string containing the name of the file.dcImportFromTCADLogfile ("atlas. fileName A string containing the name of the file. hiNode A string containing the name of the hi node for capacitance measurement. 9. the file does not exist or if the reading of the datasets fails.2 dcImportFromTCADLogfile Syntax DataSet dcImportFromTCADLogfile (filename) Description Reads a Silvaco TCAD format logfile containing a DC measurement and translates this into a DC Utmost IV DataSet object from the following argument.log"). the file does not exist. Example myDataSet = myDir.capImportFromTCADLogfile ("atlas. 9.log".Directory Object Commands Script Module 9.1 capImportFromTCADLogfile Syntax DataSet capImportFromTCADLogfile (filename. readProject ("project1.6.uds"). Throws a JavaScript Error object if you cannot read the file.prj"). fileName A string containing the name of the project file.readDataSets ("my_datasets.5 readProject Syntax Project readProject (fileName) Description Returns a Project object from the file system based on the following argument. Example myDataSets = myDir. Example myPath = myDir.6. 9. or if reading of the datasets fails. Example myProj = myDir. Throws a JavaScript Error object if the file does not exist or if you do not have permission to read it. fileName A string containing the name of the file to read. the file does not exist.4 readDataSets Syntax DataSet[] readDataSets (fileName) Description Returns an array of DataSet objects from the following argument.3 getPath Syntax string getPath () Description Returns the path from the Directory object.getPath ().6. 194 Utmost IV User’s Manual . 9.Directory Object Commands Script Module 9. DataSet[]) Description Saves the DataSet objects to the file system based on the following arguments. If a file with this name already exists in the directory. Project) Description Saves the Project object in the file system based on the following arguments. 9. myDataSets). fileName A string containing the file name Project The Project object to be saved Throws a JavaScript Error object if you do not have permission to save this file.6.6 saveDataSets Syntax undefined saveDataSets (fileName.saveProject ("myfile. myProj).Directory Object Commands Script Module 9. Otherwise.uds".6.7 saveProject Syntax undefined saveProject (fileName. Otherwise. Example myDir.prj". Example myDir. it will be created. it will be created. fileName A string containing the name of the file. it will be overwritten. DataSet[] An array of DataSet objects to be saved. If a file with this name already exists in the directory. it will be overwritten. 195 Utmost IV User’s Manual . Throws a JavaScript Error object if you do not have permission to save the file.saveDataSets ("saved_datasets. Throws a JavaScript Error object if you cannot read the file.Directory Object Commands Script Module 9. "Gate". Will also throw an error if the file does not contain the correct data.8 sparImportFromTCADLogfile Syntax DataSet sparImportFromTCADLogfile (filename.sparImportFromTCADLogfile ("atlas. or if the reading of the datasets fails. port2SignalNode. Example myDataSet = myDir. "Drain". 196 Utmost IV User’s Manual . "Source"). the file does not exist. port2SignalNode A string containing the name port2 signal node.  port2GroundNode) Description Reads a Silvaco TCAD format logfile containing s parameter simulations and translates this into an AC Utmost IV DataSet object from the following argument. fileName A string containing the name of the file. port1SignalNode. "Source".log". port1GroundNode A string containing the name port1 ground node.6. port2GroundNode A string containing the name port2 ground node. port1SignalNode A string containing the name port1 signal node. port1GroundNode. Throws a JavaScript Error object if the name is unacceptable or already exists or if the inputs are invalid.DataSet Object Commands Script Module 9. 197 Utmost IV User’s Manual . Example myDataSet.7. name A string containing the name of the new function expr A string containing the arithmetical expression Throws a JavaScript Error object if the name is unacceptable or already exists or if the expression is invalid.1 addAttribute Syntax undefined addAttribute (name. its values will be computed automatically and will be accessible using getMeasData () and getSimData (). 1e-6).2 addFunction Syntax undefined addFunction (name. Note: Once a function is added. ID)"). name A string containing the name of the new attribute. Example myDataSet. value A number containing the value.7. 9. "derivative (VG.addFunction ("gm".addAttribute ("W". expr) Description Adds a function to the DataSet object based on the following arguments. expression) Description Adds an attribute to the DataSet object based on the following arguments.7 DataSet Object Commands The DataSet object provides commands to read from and write to a dataset. 9. 4 exportToTCADLogfile Syntax undefined exportToTCADLogfile (Directory. measOrSim) Description Export the dataset to TCAD logfile format according to the following arguments.exportToTCADLogfile (myDir.7. y2Names) Description Adds a plot to the DataSet object based on the following arguments. "ib ic". ""). Example myDataSet. "vg".addPlot ("gummel". measOrSim A string containing the name of the data to be exported. "XY (LIN LOG)". Directory A Directory object fileName A string containing the name of the file to write into. "vg". "sim"). 198 Utmost IV User’s Manual . "id"). xName A string containing the name of the x axis data. xName. Throws a JavaScript Error object if the inputs are unacceptable or if the name already exists. "id". "XYY (LIN LIN LOG)". type A string containing a valid plot type.3 addPlot Syntax undefined addPlot (name. type. "data_sim.addPlot ("idvg". for example "XY (LIN LIN)" or "XYY (LIN LOG LIN)".DataSet Object Commands Script Module 9.addPlot ("id_lin_log". name A string containing the name of the new plot. 9. ""). "vb".log". "XY (LIN LIN)". fileName. Example myDataSet. myDataSet.7. Must be either 'meas' or 'sim'. Throws a JavaScript Error object if any of the arguments are invalid. yNames. myDataSet. y2Names A string containing the names of the y2 axis data. "id". yNames A string containing the names of the y axis data. DataSet Object Commands Script Module 9.7.5 extract Syntax number extract(Extraction, Variables [], measOrSim) Description Performs the extraction on the dataset and returns the resulting number based on the following argument. Extraction An Extraction object containing the extraction to perform. Variables [] An array of Variable objects. measOrSim A string to select whether the extraction is performed on the measured or the simulated data. Must be either "meas" or "sim". Throws a JavaScript error if any of the inputs are unacceptable. Example myVth = "meas"); myDataset.extract (myVthExtraction, myVariables, 9.7.6 getAttrVal Syntax number getAttrVal (attrName) Description Returns the value of a dataset attribute based on the following argument. attrName A string containing the name of the attribute. Throws a JavaScript Error object if the attribute name does not exist. Example myAttrValue = myDataSet.getAttrVal ("W"); 199 Utmost IV User’s Manual DataSet Object Commands Script Module 9.7.7 getKeyVal Syntax value getKeyVal (keyName) Description Returns the value of a dataset key based on the following argument. keyName A string containing the name of the key. Must be one of "temperature", "batchName", "waferName", "dieName", "deviceName", or "measSetupName". Throws a JavaScript Error object if the key name does not exist. Example myKeyValue = myDataSet.getKeyVal ("temperature"); 9.7.8 getMeasData Syntax number[] getMeasData (name, part) Description Returns an array of numbers containing the values of the measured data based on the following arguments. name A string containing the name of the data array. part A string containing the type of data to return. Must be one of "real", "imag", "mag", or "phase". Throws a JavaScript Error object if the inputs are invalid. Examples myIDdata = myDataSet.getMeasData ("ID", "real"); my_s11mag = myACDataSet.getMeasData ("s11", "mag"); 200 Utmost IV User’s Manual DataSet Object Commands Script Module 9.7.9 getSimData Syntax number[] getSimData (name, part) Description Returns an array of numbers containing the values of the simulated data based on the following arguments. You must simulate the dataset before running this command. name A string containing the name of the data. part A string containing the type of data to return. Must be one of "real", "imag", "mag", or "phase" and defaults to "real". Throws a JavaScript Error object if the inputs are invalid. Examples myIDdata = myDataSet.getSimData ("ID"); my_s11mag = myACDataSet.getSimData ("s11", "mag"); 9.7.10 getSweepLen Syntax number getSweepLen (sweepId) Description Returns the number of points in the sweep based on the following argument. sweepId A number containing the sweep ID Throws a JavaScript Error object if the sweep ID does not exist. Example sweepLen1 = myDataSet.getSweepLen (1); Note: Sweep IDs start at one and not zero. 201 Utmost IV User’s Manual DataSet Object Commands Script Module 9.7.11 remove Syntax undefined remove (type, name) Description Removes a sub-object of the DataSet object based on the following arguments. type A string containing the type of the sub-object. Must be one of "attr", "func", or "plot". name A string containing the name of the sub-object to be removed. Throws an exception if the arguments are unacceptable, the sub-object does not exist, or if removing the sub-object would invalidate the DataSet. Example myDataSet.remove ("attr", "L"); myDataSet.remove ("func", "gm"); myDataSet.remove ("plot", "plot1"); 9.7.12 setKeys Syntax undefined setKeys (temperature, batchName, waferName, dieName,  deviceName, measSetupName) Description Sets the database keys for the dataset using the following arguments. temperature A number containing the measurement temperature. batchName A string containing the name of the batch. waferName A string containing the name of the wafer. dieName A string containing the name of the die. deviceName A string containing the name of the device. measSetupName A string containing the name of the measurement setup. Example myDataSet.setKeys (27, "lot1","1","center","n10x10","idvglin"); 202 Utmost IV User’s Manual DataSet Object Commands Script Module 9.7.13 simulate Syntax undefined simulate (Netlist, ModelLibrary, simCol) Description Simulates the dataset based on the following arguments. Netlist A Netlist object to be used for the simulation. ModelLibrary A ModelLibrary object to be used for the simulation. simCol A string containing the name of the column in the model library to be used. Must be one of "optVal", "fitVal", or "usrVal". Throws a JavaScript Error object if any of the arguments are invalid. Example myDataSet.simulate (myNetlist, myModelLib, "optVal"); 9.7.14 writeCSVFile Syntax undefined writeCSVFile (Directory, fileName, measured_simulated) Description Writes out the dataset to a file in CSV format according to the following arguments. Directory A Directory object containing the directory to store the file. fileName A string containing the name of the file to write to. measured_simulated A string that defines the contents of the output file. Must be either "measured" or "measured_and_simulated". Throws a Javascript error if any of the inputs are unacceptable. Example myDataset.writeCSVFile (myDir, "output.csv", "measured"); 203 Utmost IV User’s Manual 3 getDataSubsetNames Syntax string[] getDataSubsetNames () Description Returns an array of strings containing the names of all of the data subsets in this project.8. measSetupName A string containing the name of the measurement setup.Project Object Commands Script Module 9.1 getConnection Syntax Connection getConnection (deviceName. measSetupName) Description Returns a Connection object based on the following arguments. 9.getDataSubsetNames (). 9. Example myDataSubset = myProj.8. dataSubsetName Throws a JavaScript Error object if the data subset does not exist in the project.8 Project Object Commands The Project object provides commands to read from and write to the project.getConnection ("nmos1". 9.getDataSubset ("subset1").2 getDataSubset Syntax DataSubset getDataSubset (dataSubsetName) Description Returns a DataSubset object based on the following argument.8. Example myConnection = myProj. deviceName A string containing the name of the device. Example myDataSubsetNames = myProj. "idvg"). 204 Utmost IV User’s Manual . A string containing the name of the data subset. getDevice ("nmos1"). Throws a JavaScript Error object if the device subset does not exist in the project.8.6 getDeviceNames Syntax string[] getDeviceNames () Description Returns an array of strings containing the names of all of the devices in this project. 9. Example myDeviceSubset = myProj.getDeviceSubset ("subset1"). Example myDevices = myProj. 9.Project Object Commands Script Module 9. 9.4 getDevice Syntax Device getDevice (deviceName) Description Returns a Device object based on the following argument. A string containing the name of the device. Example myDevice = myProj.getDeviceNames ().8. deviceSubsetName A string containing the name of the device subset.5 getDevices Syntax Device [] getDevices () Description Returns all of the devices from the project as an array of Device objects. deviceName Throws a JavaScript Error object if the device does not exist in the project.8.7 getDeviceSubset Syntax DeviceSubset getDeviceSubset (deviceSubsetName) Description Returns a DeviceSubset object based on the following argument.8. 205 Utmost IV User’s Manual . Example myDeviceNames = myProj.getDevices (). getExtractionNames ().getExtraction ("vth"). Example myExtractionNames = myProj. 9. extractionName A string containing the name of the extraction.10 getExtractions Syntax Extraction[] getExtractions () Description Returns all of the extractions from the project as an array of Extraction objects.Project Object Commands Script Module 9.9 getExtraction Syntax Extraction getExtraction (extractionName) Description Returns a Extraction object based on the following argument. 9.8. 206 Utmost IV User’s Manual .8.8.8.getDeviceSubsetNames (). Example myDeviceSubsetNames = myProj. Throws a JavaScript Error object if the extraction does not exist in the project. Example myExtraction = myProj.8 getDeviceSubsetNames Syntax string[] getDeviceSubsetNames () Description Returns an array of strings containing the names of all of the device subsets in this project. 9.getExtractions (). Example myExtractions = myProj.11 getExtractionNames Syntax string[] getExtractionNames () Description Returns an array of strings containing the names of all of the extractions in this project. 8.14 getMeasSetupNames Syntax string[] getMeasSetupNames () Description Returns an array of strings containing the names of all of the measurement setups in this project.15 getModelLibrary Syntax ModelLibrary getModelLibrary () Description Returns the ModelLibrary object for this project. Example myMeasSetupNames = myProj. Example myHardware = myProj.8. 9.8. 9.13 getMeasSetup Syntax MeasSetup getMeasSetup (measSetupName) Description Returns a MeasSetup object based on the following argument.getMeasSetup ("meas_setup1").8. Example myModelLib = myProj.Project Object Commands Script Module 9.12 getHardware Syntax Hardware getHardware () Description Returns the Hardware object from this project.getModelLibrary (). Example myMeasSetup = myProj. A string containing the name of the measurement setup. 9.getMeasSetupNames ().getHardware (). 207 Utmost IV User’s Manual . measSetupName Throws a JavaScript Error object if the measurement setup does not exist in the project. Project Object Commands Script Module 9.8.16 getNetlist Syntax Netlist getNetlist () Returns the netlist for a Optimization Project. Example myNetlist = myProj.getNetlist (); 9.8.17 getNetlistOfDevice Syntax Netlist getNetlistOfDevice (device) Description Returns the Netlist Object for the device specified in the argument below. A Device object device Throws a JavaScript Error object if the input in invalid or if the device does not exist in the project. Example myNetlist = myProj.getNetlistOfDevice (myDevice); 9.8.18 getOptimSetup Syntax OptimSetup getOptimSetup (optimSetupName) Description Returns an OptimSetup object based on the following argument. optimSetupName A string containing the name of the optimization setup. Throws a JavaScript Error object if the optimization setup does not exist in the project. Example myOptimSetup = myProj.getOptimSetup ("optim_setup1"); 9.8.19 getOptimSetupNames Syntax string[] getOptimSetupNames () Description Returns an array of strings containing the names of all of the optimization setups in this project. Example myOptimSetupNames = myProj.getOptimSetupNames (); 208 Utmost IV User’s Manual Project Object Commands Script Module 9.8.20 getSearch Syntax Search getSearch (searchName) Description Returns a Search object based on the following argument. A string containing the name of the search. searchName Throws a JavaScript Error object if the search does not exist in the project. Example mySearch = myProj.getSearch ("search1"); 9.8.21 getSearchNames Syntax string[] getSearchNames () Description Returns an array of strings containing the names of all of the searches in this project. Example mySearchNames = myProj.getSearchNames (); 9.8.22 getSimulationCol Syntax string getSimulationCol () Description Returns a string containing the name of the column in the model library to be used for simulation. Example mySimCol = myProject.getSimulationCol () 9.8.23 getTemperatures Syntax number[] getTemperatures () Description Returns an array of numbers containing the enabled temperatures of the project. Example temps = myProj.getTemperatures (); 209 Utmost IV User’s Manual Project Object Commands Script Module 9.8.24 getType Syntax string getType () Description Returns a string containing the type of project. Example myProjType = myProj.getType (); 9.8.25 getVariable Syntax Variable getVariable (variableName) Description Returns a Variable object based on the following argument. variableName A string containing the name of the variable. Throws a JavaScript Error object if the variable does not exist in the project. Example myVariable = myProj.getVariable ("vd_max"); 9.8.26 getVariables Syntax Variable[] getVariables () Description Returns an array of Variable objects containing the variables from the project. Example vars = myProj.getVariables (); 9.8.27 getVariableNames Syntax string[] getVariableNames () Description Returns an array of strings containing the names of all of the variables in this project. Example myVariableNames = myProj.getVariableNames (); 210 Utmost IV User’s Manual Project Object Commands Script Module 9.8.28 getWaferMap Syntax WaferMap getWaferMap () Description Returns a Wafer Map object from the project. Example myWaferMap = myProj.getWaferMap (); 9.8.29 setModelLibrary Syntax undefined setModelLibrary (ModelLibrary) Description Writes the ModelLibrary object back into the project based on the following argument. ModelLibrary A ModelLibrary object that is to be stored. Throws a JavaScript Error object if the input in invalid. Example myProj.setModelLibrary (myModelLib); Note: The model library will not be saved to the database until the saveProject command is issued. 9.8.30 setVariables undefined setVariables (Variables []) Description Writes the array of Variables objects back into the project based on the following argument. Variables [] An array of Variable objects that is to be stored. Throws a JavaScript Error object if the input in invalid. Example myProj.setVariables (myVariables); 211 Utmost IV User’s Manual Search Object Commands Script Module 9.9 Search Object Commands 9.9.1 appendSearch Syntax undefined appendSearch (Search, operator) Description Adds a new Search object onto the end of the existing Search object based on the following arguments. Search The Search object to append. operator A string containing the description of how to join the searches. Must be "AND" or "OR". Throws a JavaScript Error object if any of the arguments are invalid. Example myExistingSearch.appendSearch (myNewSearch, "AND"); 212 Utmost IV User’s Manual Description Returns a Search object built from the nodes and attributes of the Netlist object.getSearch (). 213 Utmost IV User’s Manual .10 Netlist Object Commands 9.1 getSearch Syntax Search getSearch (). Example mySearch = myNetlist.10.Netlist Object Commands Script Module 9. type A string containing the type of the new model.addParameter ("nch". "NJF". "IND". "PTFT". "R2_CMC". type. "NTFT". Example myModelLib. "R3_CMC". template) Description Adds a new model card to the model library based on the following arguments.11 ModelLibrary Object Commands The ModelLibrary object provides commands to read from and write to the model library. modelName A string containing the new model card name. "D".11. paramName A string containing the new parameter name. Example myModelLib. "R".11. "NMF". "NMOS".ModelLibrary Object Commands Script Module 9. "TOX"). 9. "BSIM4"). "NMOS". Throws a JavaScript Error object if the model card name or parameter names are invalid or if the combination already exists in the model library.2 addParameter Syntax undefined addParameter (modelName. modelName A string containing the model card name. Must be one of "C". "PJF". "PMF". Throws a JavaScript Error object if the model name already exists or if any of the arguments are invalid. 9. template A string containing the template name to use for the new model card.addCard ("nch". 214 Utmost IV User’s Manual . "PNP". paramName) Description Adds a parameter to an already existing model card in the model library based on the following arguments.1 addCard Syntax undefined addCard (modelName. or "VLG". "PMOS". "NPN". 9. 215 Utmost IV User’s Manual . Example myModelLib. "vth0"). paramName) Description Deletes a model parameter from the model library based on the following arguments. paramName A string containing the name of the parameter.4 deleteParameter Syntax undefined deleteParameter (cardName.deleteCard ("nmos"). Throws a Javascript Error object if the argument is unacceptable or if the model card does not exist.11. Throws a Javascript Error object if the arguments are unacceptable or if the model card/ parameter does not exist. Example myModelLib.11.ModelLibrary Object Commands Script Module 9. cardName A string containing the name of the model card. cardName A string containing the name of the model card.3 deleteCard Syntax undefined deleteCard (cardName) Description Deletes a model card from the model library based on the following argument.deleteParameter ("nmos". lib". libraryName A string containing the library name in which to store the model. Must be one of "optVal". Note: Parameters that are set to be expressions will always export the expression. If it does exist. it will be created. "test. 216 Utmost IV User’s Manual . "TT".5 exportModelCard Syntax undefined exportModelCard (modelName. "optVal". column. subCircuitName) Description Exports a model card from the model library into a file based on the following arguments. If a model with the given name does not exist. Directory A Directory object containing the directory to store the file. If the modelName is PARAMS.PARAM statements with the same parameter names will be overwritten. Example myModelLib. fileName A string containing the name of the file. Throws a JavaScript Error object if any of the arguments are invalid or if the directory does not exist or if you cannot create or modify the file. "x1").PARAM statements.  fileName.ModelLibrary Object Commands Script Module 9. If the combination of libraryName and subCircuitName does not exist in the file. myDir. Any existing . or "usrVal". column A string containing the name of the column to export. its parameters will be written as . libraryName. it will be created.11. Directory. the entire model card is replaced. modelName A string containing the name of the model to export. exportModelCard ("nch". "fitVal". subCircuitName A string containing the subcircuit name in which to store the model. ModelLibrary Object Commands Script Module 9. Ldrawn. infoArray A JavaScript array containing the Wdrawn.6 exportModelCardToSSF Syntax undefined exportModelCardToSSF (modelName. column A string containing the name of the column to be used. "optVal". or "usrVal". "fitVal".ssf").11. fileName) Definition Exports the model card to a TCAD ssf format file according to the following arguments. Description This function generates a single binned model card based on the following arguments and writes this binned model card into the output model library. newCardName. outputModelLibary A ModelLibrary object into which the new binned model card will be written. and model card name information. Example myModelLib. 9. newCardName A string containing the name for the new binned model card. Directory A Directory object. Directory. overwriteOrAppend A string containing either "overwrite" or "append". overwriteOrAppend) column. This array must contain four elements and should be constructed as shown in the example below. "fitVal". Throws a JavaScript Error object if any of the inputs are incorrect or inconsistent.7 generateBinnedModel Syntax Undefined generateBinnedModel (infoArray.11. fileName A string containing the name of the filename for export. outputModelLibrary. Must be one of "optVal". ("nmos". Must be one of "optVal". or "usrVal". modelName A string containing the name of the model. myDir. column A string containing the name of the column to export.exportModelCardToSSF "model. Throws a JavaScript Error object if any of the arguments are invalid. 217 Utmost IV User’s Manual . column. generateBinnedModel (infoArray.8 getCardNames Syntax string[] getCardNames () Description Returns an array of strings containing all of the model names in the model library. CardName : "n10x10"}).11. "bin. Ldrawn : 1e-6.getCardNames ().push ({Wdrawn : 10e-6. Example myCardType = myModelLib. infoArray. myPointModelLibrary. infoArray.push ({Wdrawn : 1e-6.11.getCardType ("nch"). CardName : "n10x1" }). "optVal".9 getCardType Syntax string getCardType (modelName) Description Returns a string containing the type of the model card based on the following argument. modelName A string containing the name of the model. Note: The infoArray must contain the names of four model cards that exist within the point model library.1". CardName : "n1x10" }).push ({Wdrawn : 1e-6. infoArray. 9. myBinnedModelLibrary. "overwrite"). Ldrawn : 10e-6.push ({Wdrawn : 10e-6. CardName : "n1x1" }). Throws a JavaScript Error object if the model name does not exist. Ldrawn : 10e-6. 218 Utmost IV User’s Manual . 9. infoArray. The Wdrawn/Ldrawn values in the infoArray must form a grid.ModelLibrary Object Commands Script Module Example var infoArray = []. Example myCardNames = myModelLib. Ldrawn : 1e-6. attribute) Description Returns the value of the model parameter based on the following arguments. "minVal".getValue ("PARAMS". Throws a JavaScript Error object if any of the inputs are invalid. or "expr".getParamNames ("nch"). the return type will be a number or the string "blank". "optVal"). attribute A string indicating which value to return.getValue ("NMOS". "TOX". paramName A string containing the name of parameter.10 getParamNames Syntax string[] getParamNames (modelName) Description Returns an array of strings containing all of the parameter names in the model card based on the following argument. 9.ModelLibrary Object Commands Script Module 9. myExpression = myModelLib. Examples myTOX_optVal = myModelLib. "maxVal". modelName A string containing the name of the model card. Must be one of "isVal". Example myParamNames = myModelLib.11. "usrVal". The return value will be a string if the attribute is "expr".11 getValue Syntax value getValue (modelName. "expr").11. Otherwise. "optVal". paramName. "param1". "fitVal". modelName A string containing the name of the model Throws a JavaScript Error object if the model name does not exist. The return value will be boolean if the attribute is "isVal". 219 Utmost IV User’s Manual . modelName. libName A string containing the name of the library.ModelLibrary Object Commands Script Module 9. Throws a Javascript Error object if the argument is unacceptable.hasCard ("nmos").12 hasCard Syntax boolean hasCard (cardName) Description Tests for presence of a model card from the model library based on the following argument. libName. paramName A string containing the name of the parameter. column A string containing the name of the column for import. Throws a Javascript Error object if the arguments are unacceptable. subcktName A string containing the name of the subcircuit.11. paramName) Description Tests for presence of a model parameter from the model library based on the following arguments. cardName A string containing the name of the model card.11. cardName A string containing the name of the model card. 9.hasParameter ("nmos". fileName. directory A directory object. 9. fileName A string containing the name of the file. "vth0"). 220 Utmost IV User’s Manual .13 hasParameter Syntax boolean hasParameter (cardName.11.14 importModelCards Syntax undefined importModelCards subcktName. Example var paramPresent = myModelLib. column) (directory. modelName A string containing the name of the model. Example var cardPresent = myModelLib. Description Imports model cards from an external file based on the following arguments. (myDir. "usrVal").lib".lib".ModelLibrary Object Commands Script Module This must be either "optVal". "model. 221 Utmost IV User’s Manual .*".15 importModelParams Syntax undefined importModelParams subcktName. Note: The specification of the parameter name supports wildcards. Description Imports parameters from an external file based on the following arguments. "nmos". "optVal"). This must be either "optVal".lib". directory A directory object. "". "model. "fitVal". libName. "*". libName A string containing the name of the library.importModelParams "d_vth0_n". "MOS". "fitVal"). "model. Example myModelLib. "". "TT".importModelParams (myDir. "". fileName A string containing the name of the file. Throws a Javascript Error object if any of the arguments are unacceptable. Throws a Javascript Error object if any of the arguments are unacceptable. myModelLib. 9. or "usrVal". subcktName A string containing the name of the subcircuit. Note: The specification of the model name supports wildcards. "model. (myDir. myModelLib. or "usrVal". "".lib".importModelCards (myDir. paramName. paramName A string containing the name of the parameter. column) (directory. "optVal"). "fitVal". "SS". "MOS". fileName. column A string containing the name of the column for import.importModelCards "nmos.11. Example myModelLib. Otherwise. oldName A string containing the current model card name. "nch"). Example myModelLib. attribute A string indicating which value to return. value) Description Sets the model parameter value based on the following arguments. the value must be a string. 222 Utmost IV User’s Manual . Must be one of "isVal". the value must be a number or the string "blank". "VTH0".ModelLibrary Object Commands Script Module 9.11. modelName A string containing the name of the model card. "minVal". Example myModelLib. Throws a JavaScript Error object if the current model card name is invalid or if the new model name already exists in the model library. Note: The model parameters will not be saved to the database until saveProject is called. newName) Description Renames an already existing model card in the model library based on the following arguments. "fitVal". paramName. paramName A string containing the name of parameters. "optVal". 9.16 renameCard Syntax undefined renameCard (oldName. "maxVal".17 setValue Syntax undefined setValue (modelName. value The parameter value If the attribute is "IsVal".renameCard ("nmos". "usrVal".setValue ("nch". the value must be boolean. Throws a JavaScript Error object if any of the inputs are invalid. or "expr". attribute.11.75). 0. If the attribute is "expr". newName A string containing the new model card name. "optVal". 223 Utmost IV User’s Manual .12.1 getName Syntax string getName () Description Returns a string containing the name of the Extraction.12 Extraction Object Commands 9.Extraction Object Commands Script Module 9.getName (). Example myExtractionName = myExtraction. 13.Variable Object Commands Script Module 9.13. 9. 224 Utmost IV User’s Manual . Example myName = myVariable.13 Variable Object Commands 9.1 getExpr () Syntax string getExpr () Description Returns a string containing the expression of the Variable. Example myExpression = myVariable.2 getName () Syntax string getName () Description Returns a string containing the name of the Variable.getExpr ().getName (). 14. Example mySmallDataSets = myDataSubset.apply (myLargeDataSets). Throws a JavaScript Error object if the input argument is invalid. Description Applies the search described in the DataSubset object to an array of DataSets and returns an array of all DataSets that match based on the following arguments.14 DataSubset Object Commands 9. 225 Utmost IV User’s Manual .DataSubset Object Commands Script Module 9.1 apply Syntax DataSet[] apply (DataSet[]). DataSet[] An array of DataSet objects used as input to the search. OptimSetup Object Commands Script Module 9. 226 Utmost IV User’s Manual .15 OptimSetup Object Commands 9.15.1 getOptimizerType Syntax string getOptimizerType (). Example myOptimizer = myOptimSetup. Description Returns a string containing the name of the optimization algorithm from the optimization setup.getOptimizerType (). 16. batchName A string containing the name of the batch. device. myWaferMap.Hardware Object Commands Script Module 9. "1". Description Performs a measurement to generate measured data in the resulting dataSet based on the following arguments. Throws a JavaScript Error object if any of the arguments are invalid. connection A Connection object. measSetup A MeasSetup object. waferName. 227 Utmost IV User’s Manual . device A Device object. myDevice. vars. myMeasSetup. waferName A string containing the name of the wafer. variable [] An array of Variable objects. waferMap.measure (27.16 Hardware Object Commands 9. batchName. Example myDataSet = myHardware. measSetup. variable []. waferMap A WaferMap object. temperature A number containing the temperature value. "1". myConnection). dieName A string containing the name of the die. connection) dieName. "lot1".1 measure Syntax dataSet measure (temperature. myConnection. temperature A number containing the temperature value. "1". waferName. myDevice. Example myDataSet = myHardware. measSetup. Note: measureWithOpen cannot be used with DC or DC_TABLE measurements. waferMap. openDataSet A DataSet object containing the open de-embedding data. variable [] An array of Variable objects. "lot1". dieName A string containing the name of the die. "1". batchName A string containing the name of the batch. myMeasSetup.measureWithOpen (27. myWaferMap. connection.Hardware Object Commands Script Module 9. device A Device object. myOpenDataSet). device. batchName. Throws a JavaScript Error object if any of the arguments are invalid. openDataSet) Description Performs a measurement to generate measured data in the resulting dataSet based on the following arguments.16.2 measureWithOpen Syntax dataSet measureWithOpen (temperature. measSetup A MeasSetup object. waferMap A WaferMap object. vars. 228 Utmost IV User’s Manual . connection A Connection object. variable []. waferName A string containing the name of the wafer. dieName. "lot1". waferName. dieName A string containing the name of the die. dieName. waferMap. "1". myConnection. myMeasSetup. Throws a JavaScript Error object if any of the arguments are invalid. myWaferMap.Hardware Object Commands Script Module 9. myDevice.16. variable [] An array of Variable objects. batchName A string containing the name of the batch. measSetup A MeasSetup object. batchName. temperature A number containing the temperature value. Note: measureWithShort can only be used with AC or AC_TABLE measurements. myShortDataSet). shortDataSet A DataSet object containing the short de-embedding data. variable []. waferName A string containing the name of the wafer.3 measureWithShort Syntax dataSet measureWithShort (temperature. device. connection A Connection object. Example myDataSet = myHardware. shortDataSet) Description Performs a measurement to generate measured data in the resulting dataSet based on the following arguments. vars. 229 Utmost IV User’s Manual . connection. device A Device object. measSetup. "1". waferMap A WaferMap object.measureWithShort (27. dieName A string containing the name of the die. device A Device object. dieName. waferName A string containing the name of the wafer. "1". device. variable [] An array of Variable objects. waferMap. myDevice.Hardware Object Commands Script Module 9. waferName. Throws a JavaScript Error object if any of the arguments are invalid. connection. measSetup A MeasSetup object. vars. temperature A number containing the temperature value. "1". myShortDataSet). batchName A string containing the name of the batch. Example myDataSet = myHardware. myOpenDataSet. myWaferMap. shortDataSet) Description Performs a measurement to generate measured data in the resulting dataSet based on the following arguments. waferMap A WaferMap object. openDataSet.4 measureWithOpenAndShort Syntax dataSet measureWithOpen (temperature. myConnection. "lot1".measureWithOpenAndShort (27. openDataSet A DataSet object containing the open de-embedding data. batchName. 230 Utmost IV User’s Manual .16. connection A Connection object. shortDataSet A DataSet object containing the short de-embedding data. measSetup. myMeasSetup. variable []. Note: measureWithOpenAndShort can only be used with AC or AC_TABLE measurements. Example myHardware.16.proberHome (). waferMap A WaferMap object.proberInit (). waferName) Description This command will load the wafer as defined by the following arguments. 9. Example myHardware.proberContact ().8 proberLoad Syntax Undefined proberLoad (waferMap.16.6 proberInit Syntax Undefined proberInit () Description This command will initialize the prober.proberLoad (myWaferMap. "wafer1"). 9. waferName A string containing the name of the wafer to load. Example myHardware.16. Example myHardware.16. 9. Throws a JavaScript Error object if any of the arguments are invalid. 231 Utmost IV User’s Manual .Hardware Object Commands Script Module 9.7 proberHome Syntax Undefined proberHome () Description This command will move the prober back to the initial home location.5 proberContact Syntax Undefined proberContact () Description This command will move the prober into the contact position. Hardware Object Commands Script Module 9.proberMove (myWaferMap. 232 Utmost IV User’s Manual . waferMap A WaferMap object. Example myHardware. groupName A string containing the group name to move to.10 proberNoContact Syntax Undefined proberNoContact () Description This command will move the prober into the no contact position.11 scannerClear Syntax Undefined scannerClear () Description This command will clear the scanner connections. Example myHardware. dieName.9 proberMove Syntax Undefined proberMove (waferMap. Example myHardware.16. "group1"). Note: The group name may be empty if intra die stepping is not being used.proberNoContact (). groupName) Description This command will move the wafer as defined by the following arguments.16. 9. dieName A string containing the die name to move to. "x0y0".scannerClear ().16. Throws a JavaScript Error object if any of the arguments are invalid. 9. 233 Utmost IV User’s Manual . measSetup.16. device A Device object. measSetup A MeasSetup object. connection A Connection object. temperature A number containing the temperature to be set. Throws a JavaScript Error object if the argument is invalid. vars. Description This command will make the scanner connections according to the following arguments. (myDevice. variable [] An array of Variable objects.thermalSet (27). Example myHardware.12 scannerConnect Syntax Undefined scannerConnect connection) (device.scannerConnect myConnection). myMeasSetup.Hardware Object Commands Script Module 9.13 thermalSet Syntax Undefined thermalSet (temperature) Description This command will set the temperature according to the following argument. Throws a JavaScript Error object if any of the arguments are invalid. 9. variable [].16. Example myHardware. Must be one of "controller". "lcr". name A string containing the name of the measurement hardware to verify. "ac". "prober". Example success = myHardware.14 verify Syntax Boolean verify (name) Description This command will verify the hardware based on the following arguments. "dc". Throws a JavaScript Error object if the argument is invalid.verify ("dc"). "scanner". 234 Utmost IV User’s Manual .Hardware Object Commands Script Module 9. or "noise".16. "thermal". 9.getDieNames ().17 WaferMap Object Commands 9.WaferMap Object Commands Script Module 9.17. 235 Utmost IV User’s Manual .getBatchName (). 9. Example myDieNames = myWaferMap. Example myWaferNames = myWaferMap.2 getDieNames Syntax string[] getDieNames () Description Returns an array of strings containing the names of the enabled die from the wafer map object.1 getBatchName Syntax string getBatchName () Description Returns a string containing the name of the batch from the wafer map object. Example myBatchName = myWaferMap.getWaferNames ().17.3 getWaferNames Syntax string[] getWaferNames () Description Returns an array of strings containing the names of the enabled wafers from the wafer map object.17. Description Applies the search described in the DeviceSubset object to an array of Devices and returns an array of all Devices which match the search criteria. Example mySmallDevices = myDeviceSubset.apply (myLargeDevices).18 DeviceSubset Object Commands 9. Throws a JavaScript Error object if the input argument is invalid.18. Device[] An array of Device objects used as input to the search.1 apply Syntax Device[] apply (Device[]).DeviceSubset Object Commands Script Module 9. 236 Utmost IV User’s Manual . 9. 237 Utmost IV User’s Manual .getGroupName (). Example myDeviceName = myDevice.19. Example myGroupName = myDevice.2 getName Syntax string getName () Description Returns a string containing the name of the Device.Device Object Commands Script Module 9.getName ().19.1 getGroupName Syntax string getGroupName () Description Returns a string containing the group name of the Device.19 Device Object Commands 9. 238 Utmost IV User’s Manual .getPins (). Example myPins = myDeviceNode.DeviceNode Object Commands Script Module 9.20.20.2 getPins Syntax [number] getPins () Description Returns an array of numbers containing the pins of the DeviceNode.20 DeviceNode Object Commands 9. Example myName = myDeviceNode. 9.1 getName Syntax string getName () Description Returns a string containing the name of the DeviceNode.getName (). 21.21.1 getName Syntax string getName () Description Returns a string containing the name of the Attribute. Example myName = myAttribute.21 Attribute Object Commands 9.getValue (). 9. Example myValue = myAttribute. 239 Utmost IV User’s Manual .2 getValue Syntax number getValue () Description Returns a number containing the value of the Attribute.Attribute Object Commands Script Module 9.getName (). Chapter 10 Model Check Module . To run the model check module. to verify. utmost4 -mc When this command line option is used.Model Check Module The model check module allows you to test out. Figure 10-1 The Model Check Project Window 241 Utmost IV User’s Manual . This is a very useful tool for model developers and for designers who need to know how their devices perform. The tool does not make use of the firebird database. and to explore your existing SPICE models. rather it uses files to store and load the project. you must use the '-mc' command line option. the Model Check project window will open as shown below. You can choose from the Optimized. Library The location of the model. External Library Here. or User columns of the internal model library.1 Setting Up a Simulation To select the model you will test and the simulator you want to us. you enter the SPICE commands to load the external library file. Model Name The name of the model you wish to test. Figure 10-2 Setting up a Simulation Field Description Name The name of this simulation.Setting Up a Simulation Model Check Module 10. Or. you can read the model directly from an external model library file. This is done through the Simulation dialog that you can open by selecting SetupSimulations from the menu bar or by clicking on the toolbar icon. 242 Utmost IV User’s Manual . you will need to set up the Simulation. Simulator You can select the simulator you wish to use. Fit Initial. To open the characteristic plot dialog. Geometries and Temperatures The device sizes and temperatures to display. Characteristics One or more characteristics can be selected for model checking.2 The Model Library The model library can be used to import and store model cards and parameters. 10. Note: Once you create a plot. For a full description of how the Model Library Window works. it will immediately be placed into the model check sequence. Voltage Ranges The maximum voltages on the device terminals. You can select which plots to show. please refer to Section 7.The Model Library Model Check Module 10.6 The Model Library. select CreateCharacteristic Plot or click on the toolbar icon. You can then use the model check module to test these models. 243 Utmost IV User’s Manual . the maximum voltages to apply to the device. and any number of device geometries and temperatures. Figure 10-3 Defining a Characteristic Plot Field Description Name The name of the characteristic plot.3 Creating a Characteristic Plot A characteristic plot is used to display some common device performance characteristics. Figure 10-4 Example Characteristic Plot 244 Utmost IV User’s Manual .Creating a Characteristic Plot Model Check Module An example characteristic plot is shown below. it will immediately be placed into the model check sequence. Figure 10-5 Defining an Extraction Plot Field Description Name The name of the extraction plot. Points The number of points in the sweep. Start The start value for the sweep. Sweep You select the attribute you wish to sweep. the maximum voltages to apply to the device.Creating an Extraction Plot Model Check Module 10. Geometries and Temperatures You can select various values of the other geometry attributes or temperature to plot. 245 Utmost IV User’s Manual .4 Creating an Extraction Plot An extraction plot is used to display some common extracted device parameters against geometry or temperature. and the geometries and temperatures you wish to sweep over. Step The step value for the sweep. Note: Once you create a plot. select CreateExtraction Plot or click on the toolbar icon. Voltage Ranges The maximum voltage on the device terminals. You can select the parameter you wish to display. To open the extraction plot dialog. Extraction You select the name of the parameter you wish to display. Figure 10-6 Example Threshold Voltage vs. Length Extraction Plot 246 Utmost IV User’s Manual .Creating an Extraction Plot Model Check Module An example extraction plot that would be generated is shown below. it will be inserted into the model check sequence.5 Running the Model Check Sequence As each characteristic and extraction plot is created. Select CheckRun/Continue or click on the toolbar icon in the viewer.Running the Model Check Sequence Model Check Module 10. To change the current position. Figure 10-7 Sequence Containing Two Plots 247 Utmost IV User’s Manual . The current position in the Status column. The sequence will run one step at a time to allow you time to review each plot that is generated. You must run the sequence in order to view the plots that will be generated. select is indicated by a status icon the item in the sequence and select CheckSet Position. you can interactively change the geometry attributes. 248 Utmost IV User’s Manual .Exploring Your Device Model Model Check Module 10. toolbar icon.6 Exploring Your Device Model This is a very useful feature when learning about the capabilities of your device. Using sliders. the Figure 10-8 Setting up a Model Explore Field Description Explorer The selected characteristics will be explored by moving a parameter’s slider or entering a new value to change the parameter’s value. Characteristics The selected characteristics in this area will be displayed in the viewer. and the maximum device terminal voltages. Once you select CheckExplore from the menu bar or click on the Explore dialog will open. the temperature. These effects of these changes will be immediately shown in the characteristic plots that you select from the dialog. Appendix A Optimization Algorithms . The purpose of the optimization is to find the values of the parameters that fit best the available physical measurements. which describe the behavior of the system. The lower the error metric. The first type has to do with the fact that the models are not perfect and are limited in what they are able to predict about the measured system. There are two types of errors that the optimization needs to take into account.g. The hybrid optimization algorithm combines the best features of both types. The second comes from inevitable errors in physical measurements. Local Optimization Algorithms • • Levenberg-Marquardt Hooke-Jeeves Global Optimization Algorithms • • • • Simulated Annealing Parallel Tempering Genetic Algorithm Differential Evolution Hybrid Optimization Algorithm • Hybrid Local optimization algorithms are fast.Optimization Algorithms Assume that we are given a set of physical measurements of various quantities (e. In principle. current or voltage) and there are physically based models. the better are the values of the model parameters.. but usually will only work if the initial parameters are close to the final optimized values. the optimizers could try all possible values of parameters and find those that yield the lowest error. The error metric is based on the differences between the predicted values of the physical quantities and the actual measurements of the same quantities. which minimize the error metric. Utmost IV supports the following optimization algorithms. The optimizers seek values of parameters. Global optimization algorithms use more iterations while attempting to find the optimum parameter values but do not require any preconditioning of the parameter values. Each of these algorithms is described below. this would take an impossibly long time to do and the optimizers must use faster strategies to achieve the best parameter values. The optimizers work by assigning an error metric to given values of model parameters. However. 250 Utmost IV User’s Manual . 1% of this value. and so there is a danger that it will find a local minimum instead of the global minimum. Figure A-1 Levenberg-Marquardt Configuration The following configuration parameters can be used for the LM optimizer. 251 Utmost IV User’s Manual . It only accepts changes in the parameters which improve the error metric.Least Squares Levenberg-Marquardt Optimization Algorithm (LM) Optimization Algorithms A. Acceptable error (%) The optimizer will continue if the incremental error reduction is greater than 0. It is a local minimum solver which performs a numerical differentiation at each iteration. and works very well in practice if a reasonably good initial set of parameter values is available.1 Least Squares Levenberg-Marquardt Optimization Algorithm (LM) Levenberg-Marquardt is a standard nonlinear least-squares optimizer. Maximum number of simulations The optimizer will stop if it reaches this number of simulations. The amount by which each parameter is moved during an exploration is called its stepsize. In such cases. These are the pattern moves. HJ is similar to the global optimizers. Stepsize factor Multiplies the stepsize of every parameter at the end of each cycle. Each HJ cycle consists of exploration moves followed by pattern moves. such as HJ. In this respect. it is necessary to use a direct search optimizer. LM calculates numerical derivatives but HJ belongs to the class of direct search algorithms which does not use derivatives. While the LM optimizer described above is also a local optimizer.Hooke-Jeeves Optimization Algorithm (HJ) Optimization Algorithms A.2 Hooke-Jeeves Optimization Algorithm (HJ) The HJ optimizer is a local optimizer. Maximum number of per cycle pattern moves The cycle will end if it reaches this number of pattern moves. As some physical models are discontinuous in the optimization parameters. A successful exploration is exploited by repeatedly moving the parameters in the same direction. calculation of numerical derivatives is often impractical or inaccurate. and because the measured or calculated variables may introduce numerical noise. Figure A-2 Hooke-Jeeves Configuration The following configuration parameters can be used for the HJ optimizer. An exploration attempts to find an advantageous direction in which to move the parameters. there are some important differences between the two. At the end of each cycle every stepsize is reduced by the stepsize factor. 252 Utmost IV User’s Manual . Hooke-Jeeves Optimization Algorithm (HJ) Optimization Algorithms Maximum number of cycles The optimizer will stop if it reaches this number of cycles. Maximum number of simulations The optimizer will stop if it reaches this number of simulations. Acceptable error (%) The optimizer will stop if the error metric is less than this value. 253 Utmost IV User’s Manual . always accepting steps which cause the value of the error metric to fall. the error metric is analogous to the energy and “cooling” is achieved by gradually decreasing a “temperature”. As the temperature is lowered. At each temperature. then likely an amorphous solid at a higher energy than the crystal will be formed. If the temperature is lowered too quickly. Figure A-3 Simulated Annealing Configuration 254 Utmost IV User’s Manual . In SA. Injected randomness helps prevent premature convergence to a local minimum. If the cooling process is slow enough. and sometimes accepting those which cause it to rise. there is always a chance of getting out of a local minimum and afterwards finding the global minimum. At high temperatures. and its energy is high. The “annealing” is designed to enhance the likelihood of avoiding local minima while searching for the global minimum. SA models the physical cooling process by choosing new states at random. These states are chosen according to an internal algorithm. a number of sweeps is performed. The SA method mimics the formation of an actual physical solid from a liquid as the liquid cools. its components are free to move. A sweep consists of testing a (typically large) number of states.3 Simulated Annealing Optimization Algorithm (SA) SA is a global optimizer. which is an optimization control parameter. The critical point of the SA algorithm is not to lower the temperature parameter too quickly. Hence. an ordered solid (such as a crystal) of the lowest possible energy will form.Simulated Annealing Optimization Algorithm (SA) Optimization Algorithms A. so the energy of the system falls. the liquid is highly disordered. Number of sweeps per temperature The temperature will be reduced when this number of sweeps is reached. Minimum temperature The optimizer will stop if the temperature reaches this value. 255 Utmost IV User’s Manual . Maximum number of simulations The optimizer will stop if it reaches this number of simulations. Cooling factor Multiplies the temperature after all its sweeps have been completed.Simulated Annealing Optimization Algorithm (SA) Optimization Algorithms The following configuration parameters can be set for the SA optimizer. none of them has reduced the error metric by the specified amount. Stop condition The optimization will stop if. Initial temperature factor Multiplies the initial value of the error metric to set the initial temperature. during the specified previous number of temperatures. Acceptable error (%) The optimizer will stop if the error metric is less than this value. Provided the temperatures are not too dissimilar. Each cycle of the PT algorithm begins with a number of sweeps of the SA type. It is related to SA. Systems at higher temperatures can sample larger areas of parameter space. albeit more coarsely.4 Parallel Tempering Optimization Algorithm (PT) Parallel Tempering (PT) is a global optimization method. but instead of mimicing the gradual cooling process of a single physical system.Parallel Tempering Optimization Algorithm (PT) Optimization Algorithms A. Figure A-4 Parallel Tempering Configuration 256 Utmost IV User’s Manual . rather than one. The central idea of PT is that the exchange of replicas enables systems at higher temperatures to generate new local optimizers at lower temperatures. it consists of an ensemble of systems (called replicas) at different and fixed temperatures. requires on the order of times more computational effort. facilitating good sampling of the whole phase space. Those at lower temperatures can sample smaller areas more finely but may become trapped in local minima and require a restart in an ordinary SA optimization. The disadvantage of PT is of course that simulation of replicas. this probability will be reasonably high and a kind of tunneling can take place between the systems. Each replica carries its own copy of the optimization parameters which will in general diverge from the other replicas as the optimization proceeds. These are followed by exchange iterations in which replicas at adjacent temperatures exchange their configurations with a certain probability. Maximum number of simulations The optimizer will stop if it reaches this number of simulations. Maximum number of cycles The optimizer will stop if it reaches this number of cycles. during the specified previous number of cycles. Minimum temperature factor Multiplies the initial value of the error metric to set the lowest temperature of any replica. Number of exchange iterations After performing its sweeps. Number of replicas Number of copies of the optimization parameters to be used. none of them has reduced the error metric by the specified amount. each cycle per cycle concludes with this many exchange iterations. Acceptable error (%) The optimizer will stop if the error metric is less than this value. Number of sweeps per cycle Each cycle begins with this many sweeps. Stop condition The optimization will stop if. Maximum temperature factor Multiplies the initial value of the error metric to set the highest temperature of any replica.Parallel Tempering Optimization Algorithm (PT) Optimization Algorithms The following configuration parameters can be set for the PT optimizer. 257 Utmost IV User’s Manual . each at a different temperature. then performs exchange iterations. This value should be relatively high. GA works with a population of candidate solutions to the optimization problem.5 Genetic Optimization Algorithm (GA) Genetic algorithm (GA) is a global optimizer and an evolutionary algorithm. The idea is that the error metric plays the role of the evolutionary pressures found in nature and causes the evolution of an improved population. it uses techniques inspired by evolutionary biology. Selection Choose tournament or stochastic methods to select the next generation. analogously to biological reproduction. that is. Tournament means that pairs are compared at random and the one with the better error metric is chosen. Crossover probability The probability that two parents will generate two children by exchanging their parameter values. At each step it generates a new population from the old. Individuals are chosen to contribute to the next generation by one of two means. Population size The number of copies of the parameters used in each generation. The mutation operator randomly changes parts of a single child. The crossover operator produces two children from two parents by mixing parts of both parents. 258 Utmost IV User’s Manual .Genetic Optimization Algorithm (GA) Optimization Algorithms A. Universal stochastic sampling chooses contributors based on their fitness relative to the whole population Figure A-5 Genetic Algorithm Configuration The following configuration parameters can be used for the GA optimizer. GA uses crossover and mutation operators. 259 Utmost IV User’s Manual .Genetic Optimization Algorithm (GA) Optimization Algorithms Mutation probability The probability that parameter values will change spontaneously in a single child. Stop condition The optimization will stop if. This value should be relatively low. Maximum number of generations The optimizer will stop if it reaches this number of generations. the fittest member of the current generation will always be passed to the next. Maximum number of simulations The optimizer will stop if it reaches this number of simulations. during the specified previous number of generations. Acceptable error (%) The optimizer will stop if the error metric is less than this value. none of them has reduced the error metric by the specified amount. Use elitism If true. Several strategies exist to combine members of the current generation. Only those which improve over their counterparts are accepted. EXP chooses parameters from intermediates in a block. 260 Utmost IV User’s Manual .6 Differential Evolution Optimization Algorithm (DE) Like GA. It constructs a population of these candidates matching the current population. The numbers 2 and 4 indicate how many members contribute.Differential Evolution Optimization Algorithm (DE) Optimization Algorithms A. Unlike GA. The amplification factor multiplies difference between existing individuals to make an intermediate. Figure A-6 Differential Evolution Configuration The following configuration parameters can be used for the DE optimizer. differential evolution (DE) is a global optimizer and an evolutionary algorithm. BIN on a per-individual basis. Population size The number of copies of the parameters used in each generation. Amplification factor Multiplies differences in members contributing to an intermediate. that is. DE also uses differences between members as it creates candidate solutions. it uses techniques inspired by evolutionary biology. which always operates directly on the population members. The crossover probability is used to decide which parts of an intermediate contribute to to a candidate for the next generation. BEST means that the member with the best error metric always contributes. Crossover probability The probability that parts of an intermediate will contribution to a candidate. so all the members of the next generation are always at least as good as the current one. Maximum number of simulations The optimizer will stop if it reaches this number of simulations.Differential Evolution Optimization Algorithm (DE) Optimization Algorithms Strategy The means by which candidate members of the next generation are constructed. during the specified previous number of generations. none of them has reduced the error metric by the specified amount. Maximum number of generations The optimizer will stop if it reaches this number of generations. Stop condition The optimization will stop if. Acceptable error (%) The optimizer will stop if the error metric is less than this value. 261 Utmost IV User’s Manual . the first optimization is performed using a global optimizer. Typically. Second optimizer The optimization algorithm to be run second. Figure A-7 Hybrid Configuration The following configuration parameters can be set for the HY optimizer.7 Hybrid Optimization Algorithm (HY) The hybrid optimizer allows a single selection of two sequential optimizations to take best advantage of the strengths of both global and local optimization algorithms. First optimizer The optimization algorithm to be run first.Hybrid Optimization Algorithm (HY) Optimization Algorithms A. Transition error (%) The first optimization will stop and the second will begin if this error metric is reached. 262 Utmost IV User’s Manual . This optimization provides a good initial starting point for the much faster local optimizer. Appendix B Converting Data from ICCAP. and Atlas . ProPlus. BSIMPro. awk iccap_to_ut4_dc BSIMPro .log atlas_to_ut4_dc. Note: The '>' operator in the command line above will cause the out. Data stored in other formats will first have to be converted into the Utmost IV data file format. If you wish to append to the file.mdm > out.awk in. and gawk. You can edit the file manually to enter this information. the following sections will explain how to add this information through the command line. nawk. ProPlus.awk suffix will convert a single file. The script with the . this will fail due to key information. To convert a single ICCAP file called in . 264 Utmost IV User’s Manual .awk bsimpro_to_ut4_dc Atlas . the other script is used to automate the conversion of multiple files.awk bsimpro_old_to_ut4_dc ProPlus . you would issue the following command. however. Data Format File Extension Script Names ICCAP . There are many versions of awk available including awk. These scripts are located in the <install directory>/lib/utmost4/ <version>/scripts directory.dat bsimpro_to_ut4_dc.awk atlas_to_ut4_dc The scripts are written using the 'awk' programming language and can be run on most UNIX operating systems.iv bsimpro_old_to_ut4_dc. which is missing from the ICCAP file.uds file to be overwritten. BSIMPro.mdm into an Utmost IV file called out. A number of scripts are provided to perform this conversion.uds. then you should use the '>>' operator.Converting Data from ICCAP.mdm iccap_to_ut4_dc.uds If you try to import this file into Utmost IV. awk -f iccap_to_ut4_dc. and Atlas Data stored in Utmost III format logfiles and Utmost IV format data files can be directly imported into the Utmost IV database. you should use this option to avoid writing out another header into the file. such as width and length. Information Command line option example Batch Name batchname=”mybatch” Wafer Name wafername=”wafer1” Die Name diename=”center” Device Name devicename=”n10x10” Dataset Name datasetname=”idvglin” Temperature temperature=27 For example.Adding Missing Key Information Converting Data from ICCAP. there is a short header identifying the file. B. Typically. this missing key information will have to be added.mdm batchname=”B1” wafername=”16” > out. To stop the header from being written to the output file. you should add the following command line option. and Atlas B.2 The Utmost IV Data File Header At the top of every Utmost IV '. the temperature information may be incorrect or missing. you would enter the following command. nawk -f iccap_to_ut4_dc.awk in.uds' data file. 265 Utmost IV User’s Manual . you use the following command line option. noheader=1 Note: The header must appear at the top of the file and must appear only once.3 Adding an Attribute The device attribute information. BSIMPro. the filename or the directory name or hierarchy is used to tell you what data is stored in the file. ProPlus.1 Adding Missing Key Information The information stored in these other formats is incomplete.uds Note: Do not leave additional whitespace characters around the '=' symbol in any of the command line options. B. When appending a new converted dataset to an existing Utmost IV data file. The header will be written by default by the awk program. are often missing from these other data formats. attr_W=10e-6 This example would add an attribute named 'W' with a value of 10e-6. To add an attribute to the converted dataset. to add a batch name and wafer name when converting the example ICCAP file. In some formats. When performing the conversion to Utmost IV format files. you may want to calculated the transconductance. The data shown below has 3 sweeps and shows how a plot would look with all data combined. Figure B-1 Plotting a Dataset with 3 Sweeps 266 Utmost IV User’s Manual . ID)” func_2=”beta::IC/IB” B.6 Converting ICCAP data with 3 Sweeps into Multiple 2 Sweep Datasets When displaying data with more than 2 sweeps on 2 dimensional plots. ProPlus. the data is often confusing. func_1=”gm::derivative (VG. plot_3="id_and_gm::XYY(LIN LIN LIN)::VG::ID::gm" B.Adding a Function Converting Data from ICCAP. you would use the following command line option. BSIMPro.5 Adding a Plot To add a plot to the converted dataset.4 Adding a Function You may also want to add an additional function into the converted dataset. This function can be added to the converted dataset using the following command line option. gm. you would use the following command line option. For example. It is difficult to visualize what is happening with the data from this plot. when importing some MOSFET drain current versus gate voltage data. and Atlas B. plot_1="gm::XY(LIN LIN)::VG::gm" plot_2=”gummel::XY(LIN LOG)::VB::IC IB” For a cartesian plot with both Y1 and Y2 axes. It is much easier to analyze the data when presented in this way. The conversion script will. pol_for_data=-1 Measured data is multiplied by this value. then you can use the following command line options to specify exactly how to convert your data. Figure B-2 Plotting Multiple Datasets with 2 Sweeps B. BSIMPro. However.Correcting Polarity in BSIMPro Data Converting Data from ICCAP.7 Correcting Polarity in BSIMPro Data With regard to pmos polarity. by default. make_2d_data=1 The figure below shows this same data split into multiple separate 2 sweep datasets and displayed by Utmost IV. ProPlus. In the most common variant. and Atlas To convert the ICCAP data with 3 sweeps into multiple 2 sweep datasets. several different variants of BSIMPro format data files have been seen in practice. if your data files are of the additional variants that do not follow the above pattern. you can use the following command line option. perform this conversion for you. both the voltage sweep information and the measured data are multiplied by -1. the polarity in the file. 267 Utmost IV User’s Manual . Command line option Description pol_for_volt=1 Voltage sweep information is multiplied by this value. wafername.diename.Automating the Conversion of Multiple Files Converting Data from ICCAP.datasetname.devicename.batch2.125 Note: There must not be any additional spaces around the '. filename.mdm.diename.batchname.wafer1. To run the script simply enter the command 'iccap_to_ut4_dc' and all of the files listed in the iccap_to_ut4_dc. 268 Utmost IV User’s Manual .temperature This is followed by a single line for each data file.27 /mydir2/iccap2. which you should create to describe the conversions to be made. together with an additional input file. A second script is provided which.wafername.5 Importing Datasets. All of the other formats will typically only store a single measurement of a single device in each file. this leads to the generation of many thousands of these files.batch1. For example. an input file with the header line and two files to be converted would look like this. and Atlas B.mdm.p10x2.uds file to be overwritten. The automation script for ICCAP data is called iccap_to_ut4_dc and this will read its input from a file called iccap_to_ut4_dc. will fully automate the conversion of all of your data files.' separator in the input file.in file will be converted and written automatically to a file called iccap_to_awk_dc. Once the single Utmost IV data file containing all of the data from the multiple source files is created. ProPlus.temperature /mydir1/iccap1. With a single file for each piece of data.batchname.idvd.uds.devicename. BSIMPro.1. Note: Running the automation script will cause the output . The structure of this input file is a single header row giving the file name and the names of the command line options that you wish to add.idvg.n10x10. which is to be converted and which contains the information for each of the fields listed in the header line.wafer15.datasetname. this can then be imported into the Utmost IV database as described in Section 4.in. Converting each of these files one at a time would be very time consuming and error prone.8 Automating the Conversion of Multiple Files Utmost III and Utmost IV can store many datasets in a single file in an organized way. filename. ...................................................................................................................... 166 Controller ...............................................193..............................157 DataSubset Object ................ 147 Boxes ...117–122 Dataset Keys ........................................... 95 Compact Model ...........191–192 Dataset Additional Information .............................59 Die Map ......................................................................... 37 AC_TABLE .................................................................................. 236 Atlas ..................... 85 Continuous ............................................................................................................................................ 264 Database ..............................126 extr ............................................... 197 Adding Dataset Information Dataset Attribute .................................................................................................................... 81 AC Data ......................................................................................................................... 119 Measurement Condition ......................................................................................... 98.238 Devices .......260–261 deleteCard .............................................. 212 apply .................................193–196 Drop In ..136–137 Exporting Model Params .......................................................53.......................................................................................... 56 bias_trace ............. 65 D Data Floor ......................................................................................................................237 Device Subset .................................................. 214 addFunction ..................................217 exportToTCADLogfile ..................................... 214 addPlot ...248 Exporting a Project ...........................................................225 DC .................................260–261 Directory Object ..............................................................................................................................................39 Dataset Selector .....................................................................................215 deleteParameter ..........................199 269 Utmost IV User’s Manual .............................................................................. 118 addParameter .............48 Database Object ...............................................................56–58 Die Selection ......................................45 Exporting Model Cards ...144–145 External Model Library ............. 225........92................... 159 Attribute Object ..................................81 DC_TABLE ....................................................................................................... 122 Temperature ............................................ 17 Connections .............................236 Die List .............127 exportModelCard .................................159 extract .......................................66–68 DeviceSubset Object ................................... 204 DE .............................................................................................................................. 193.............216 exportModelCardToSSF ......................................................................... 52–101 addAttribute ...............................................................150–153 Explore ...........................56–61 Differential Evolution ....................................... 77–78 Constant ..................... 119–120 Dataset Key ...........................................................................................................................................................................................33...................................61 C capImportFromTCADLogfile .................. 111 appendSearch ...............................................................................................................................................................197–203 Dataset Permissions ....................................................................................................................................................... 204 Characteristic Plot ............ 198 Append Plot ......................................215 derivative .............................................. 71–73 Converting Data ......................... 152 E ENET ............................................................138–139 Exporting Netlists .....17 Database Manager .......................................................... 81 Acquisition Module ..........................................................................................................................................................................................................................................................................................................................................................................................................79 DeviceNode Object .................................................................................... 146........................................................................... 264 attr ..30 Exporting Datasets ......................................................................... 197 addCard ............................................................................................................................................................................ 239 B Batch Name .......................................... 263–268 CSV Format ................................................ 119 DataSet Object .. 243–244 Common Device Nodes ........................................................................ 46 Custom Method ...............................198 Expression ............................................... 103 Dataset Subset ........................................................................................................................................................................................73 Error Calculation .................................................................................................... 152 BSIMPro ..........................................81 dcImportFromTCADLogfile .............Index A AC ................ 124 Configuring Firewalls ........................................................................................ 147 Device Object .... 14................................................................................ 121 Selecting Label Positions ................................................................................ .............................................................................................................................................................................................. 205 getDeviceSubsetNames ......................................................... 226 getOptimSetup .....................................148 Group Grid .......................................................................................................................... 208 getOptimSetupNames ..................................................................... 96........ 238 getSearch ........................................ 235 getCardNames ........ 204 getDataSubsetNames .....................................................................201 getSimulationCol .......Index Extraction Object .............................74 Iteratee Sweep .......262 Hybrid Optimization .... 207 getKeyVal .......64 Group Selection .............................................................................................................. 217–218 Genetic Algorithm ................................ 206 getExtractionNames ........ 218 getCardType ................209............................................................................................................................................................ 146–148 F find_x_given_y .. 218 getConnection .......................................................................................................................... 224 getExtraction ..........210 getVariables .... 92–94 G GA ............................................................................................... 148 Firebird Database Server ........................................................ 224 getNetlist .......................................................................................................................................... 258–259 getAttrVal ......................... 147..................134–135 importModelCards .......................................209 getSimData .................................................................. 16 Fit Initial ......................................................................................................................................88 Iterator .................................................................................87 J JavaScript ............................................................................81 270 Utmost IV User’s Manual ............201 getTemperatures .................................................................................... 161 Extractions ...................................................................................... 223.......................................................................................................................................................210 getVariableNames ....................................................................................................................... 208 getNetlistOfDevice .................................................................................250 I ICCAP ........ 238. 258–259 generateBinnedModel ...............................................................................................................210 getWaferMap ....................................................................................................252–253 Hooke-Jeeves .............................................................................................................................................................................................................................................................................................................................70 Hardware Object .... 205 getDeviceNames .......................... 199 getBatchName .209 getType ................................... 194 getPins .........................................................................................................................................................132–133 Importing Model Params ...........................250 gm_lin ......... 235 getExpr () ...................................... 245–246 Extraction Setup ...........................................................................183 K key .........................................................................................................................................................211 getWaferNames .................................... 206 getGroupName ......................................... 207 getMeasSetupNames ............................. 206 getDieNames ............................................................................................................................................................................. 206 getExtractions .................... 200 getMeasSetup .220 hasParameter ........................................................................................................................... 92 Function .............................. 200 getMeasData ..........................................................252–253 HY ..........................................................................................................................................209 getSweepLen .............................................................................56 HJ ...................................................................................................................................... 184 getDataSubset ..........62–63 Group List ........................................................ 69.................................................. 239 getVariable ............................235 Global Optimization ..41–44 Importing Model Cards ...................................................................... 159 L LCR .....................................................................210 getValue ..............................................................146.........................28–29 Importing Datasets ..... 237.264 Importing a Project .........................262 Hybrid ............227–234 hasCard ............................................... 204 getDevice ....................................................................................................................................................................................220–221 Instrument ..................................... 213 getSearchNames ........................................ 207 getModelLibrary ............................................... 239 getName () ...................................................................................219.............. 208 getParamNames ..................... 208 getOptimizerType ................................................................................... 207 getName ......................................................... 205 getDeviceSubset .............................62–65 H Hardware ......................................................................... 128 ft .......................................................................................220 Header Information .......................................... 223 Extraction Plot ........................................... 205 getDevices ........................... 237 getHardware ............................. 219 getPath ............................................................................................ 204 getDataFromSimulation2 ..... .................................................................................158 OptimSetup Object ............................ 186 makeNetlist ......................................................................................................... 25 Optimize ...................................191...................156 optimize3 ........................................................................................168–170 Revert ..................................................................................................... 102–170 Optimization Sequence ..........................................................................................................................................................................159.............................................. 250 Login .... 14...................... 185 makeExtraction .. 193..........................222 Report Document Generation ................ 195 Reading Project Parts ...................................................................................................................................... 251 List Sweep .................................................................................................................................................................................................................................................................................................168–169 Reporting ...............................................................189 remove ...............232 proberNoContact ......................................................... 81 Noise Amplifier ..................................................................................................256–257 PARAMS ..................... 188 Optimization Module ...............................................231 proberMove .........................................................................26 Project Object ..............................91 prim ......264 PT ...... 73 Rubberband ............................... 125–126.............................................................................................................................................. 73 Node Names .............................................................................................................................. 111 Plot File Generation ................................... 78.............................................................................................................50 Plot .......... 213 NI488 ... 164 proberContact ..................................... 243 Model Parameters .......... 142 ModelLibrary Object ....... 162–167 Optimization Setup ...............................................................................................................231 proberLoad ............................................................. 187 Manual Ground .204–210 Project Permissions ................ 96–101 Measurement Setup ..........................................................27 ProPlus ...... 195 saveProject ...... 240–248 Model Check Sequence ......................................................................... 158–160 SA ......................................... 53...........................................94.................192................................................................. 195 Scanner .......154–156........ 128–145. 82 NOISE ........................................................................................................................................254–255 saveDataSets ........................................................................................................................... 251 Local Optimization ................................................................................................... 86 Model Card .............................. 92 NOISE_TABLE .............128 Optimizer .....................256–257 Pulse ........................... 194............... 80–81 measureWithOpen ...................................... 78 Marking ........................................................... 227 Measurement Mode ............................................................................89 R Netlist .........Index LCR Source ............................................................. 166 O S openCurrentWorkingDirectory ............................................................188–189 Optimized .......................166 Permissions ...................................................................................................232 Project ....... 103....................................................... 81 readDataSets ..... 186 makeModelLibrary ........................................................... 76 Noise Target ...............................169–170 Port ................................................... 180 makeAttribute .........................................................................................................128 Password ........................................................................................... 143 measure ...231 proberInit ............................ 187 openDatabase ...226 Outlier ........................................ 14........................................................ 214–222 Parallel Tempering ................ 188 openDirectory ... 228 measureWithOpenAndShort ...................................................153 Owner ............................................................191..................................................................................... 194 releaseLicenses ...... 84 LM ..........................................191................................................................25 Pause ................ 247 Model Library ............................................................................ 185 makeDevice ................49 P M Macro Model ...........................................................................................................................................................................................................................................................................155 RS232 ......................................................................................231 proberHome ..................................................................................................................................................................................................................................................................................232 scannerConnect ........................................... 230 measureWithShort .................................202 renameCard .......................................................................................................................................................................................................................................................................... 81 Levenberg-Marquardt ............................. 90 LCR Target ......... 193.......................... 229 Mirror ............................................. 97 Measurement Sequence ........................... 187 makeVariable ........................ 129 Model Check Module ..........................................................................................31 readProject ............................71..................... 123 Netlist Object ...........................................................................................................75 scannerClear ............................... 91 LCR_TABLE ...........................233 N 271 Utmost IV User’s Manual ................................................ ....................... 101..................... 103 setKeys ................................................................................................................................................. 128 Utmost4 Object ........................... 146 Variable Object ........................................... 175............................................Index Script .... 148 vt_sat .................................. 222 setVariables . 167........................ 182–235 Search Object ........................................................................... 111.. 90 Temperatures .................................................................................................................................. 54 thermalSet ....................................................................................................................... 212 Searches ........................................................................................................................................................................................... 148 Y yintercept ............. 110 sparImportFromTCADLogfile ........................................................................... 17......................................................................................... 53................................................................................................................................. 149.....................190 X xintercept ................................................... 184 V var .................. 254........................................................152 writeCSVFile ............................................................................................................................... 148 verify .............................................................. 242 Simulation Mode ............................................................................................................................................... 196................................................................... 143 Upgrading Database Version ....................................................... 177 vt_at_current ................... 165 simulate .................................................. 69..56 Wafer Map ......................... 103 superuser ....................... 147................. 203 Simulated Annealing ............. 83–85 system ... 166 slope ............... 202 setModelLibrary .... 148 SmartView .....................................................55–65 WaferMap Object ................... 97 Single Step . 148 272 Utmost IV User’s Manual ............................................... 140 SRDB ................................... 233 trace ............... 234 Verilog-A ...............................................147 T Target ......................................................................................................... 211 Show Plots ............................................................................... 183 Script Module ................................................................ 98..................................... 73 user . 189 W Wafer List ........ 148 vt_lin .................................... 254–255 Simulation ...... 172.... 17 User Initial .............................................................................. 18 USB ....................................................................................203 writeToFile ..................................................................... 21 Sorting Datasets ....... 211 setValue ........ 147......................235 Weight ................................................................................. 224 Variables .................................................... 159 U Unlocking .... 51 Unmarking .......................................................................................................... 204 Spayn ....................................................................................................................................................................................................................................................................... 14..................................................... 16 Status Log .................. 104–107 Sequence Objects ........................................... 48 Sweep .................................................................................................................................................................147............... 53................
Copyright © 2024 DOKUMEN.SITE Inc.