Beruflich Dokumente
Kultur Dokumente
Users Manual
Silvaco, Inc.
4701 Patrick Henry Drive, Bldg. 2
Santa Clara, CA 95054
Phone:
(408) 567-1000
Web:
www.silvaco.com
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.
Style Conventions
Font Style/Convention
Description
Example
1.
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.
FileOpen
Courier
HAPPY BIRTHDAY
File
New Century
Italics
x+y=1
2.
3.
Note:
Schoolbook
Bullet A
Bullet B
Bullet C
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
Table of Contents
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
Table of Contents
Table of Contents
Chapter 8
Developing your own SPICE Model using Verilog-A. . . . . . . . . . . . . . . . . . . . . . . . . . 171
8.1 Writing the Verilog-A Module Code. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
8.1.1 The Module Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
8.1.2 The Electrical Connections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
8.1.3 The Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
8.1.4 Variables for internal Use . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
8.1.5 The Analog Code Section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
8.1.6 Adding Capacitance into a Verilog-A Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
8.2 Adding a Verilog-A Model Card into the Model Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
8.3 Adding a Verilog-A Element into the Netlist. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
8.4 Rubberbanding your Verilog-A Model with SmartSpice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
8.5 Combining Verilog-A Models and other SPICE Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
Chapter 9
Script Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
9.1 Running a Script Directly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
9.2 Running a Script using the Command Line Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
9.3 Automatically Creating a Script from a Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
9.4 Silvaco.Utmost4 Object Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
9.4.1 getDataFromSimulation2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
9.4.2 makeAttribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
9.4.3 makeDevice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
9.4.4 makeDeviceNode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
9.4.5 makeExtraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
9.4.6 makeModelLibrary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
9.4.7 makeNetlist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
9.4.8 makeVariable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
9.4.9 openCurrentWorkingDirectory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
9.4.10 openDatabase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
9.4.11 openDirectory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
9.4.12 optimize3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
9.4.13 releaseLicenses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
9.4.14 system . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
9.4.15 writeToFile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
9.5 Database Object Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
9.5.1 readDataSets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
9.5.2 readProject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
Table of Contents
Table of Contents
Table of Contents
Chapter 10
Model Check Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
10.1 Setting Up a Simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242
10.2 The Model Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
10.3 Creating a Characteristic Plot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
10.4 Creating an Extraction Plot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
10.5 Running the Model Check Sequence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
10.6 Exploring Your Device Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248
Appendix A
Optimization Algorithms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
A.1 Least Squares Levenberg-Marquardt Optimization Algorithm (LM) . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
A.2 Hooke-Jeeves Optimization Algorithm (HJ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252
A.3 Simulated Annealing Optimization Algorithm (SA). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
A.4 Parallel Tempering Optimization Algorithm (PT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256
A.5 Genetic Optimization Algorithm (GA). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
A.6 Differential Evolution Optimization Algorithm (DE) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260
A.7 Hybrid Optimization Algorithm (HY). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262
Appendix B
Converting Data from ICCAP, BSIMPro, ProPlus, and Atlas . . . . . . . . . . . . . . . . . . . 263
B.1 Adding Missing Key Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
B.2 The Utmost IV Data File Header . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
B.3 Adding an Attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
B.4 Adding a Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
B.5 Adding a Plot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
B.6 Converting ICCAP data with 3 Sweeps into Multiple 2 Sweep Datasets. . . . . . . . . . . . . . . . . . . . . . . . 266
B.7 Correcting Polarity in BSIMPro Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
B.8 Automating the Conversion of Multiple Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
10
Chapter 1
Introduction
Introduction
13
Introduction
Acquistion Module
This module is used to measure physical devices directly, using various types of electrical test
equipment. These measured results (referred to as "datasets") are stored directly in the
database. It is also possible to generate datasets from TCAD simulations or from other SPICE
simulations. This is particularly useful when comparing two SPICE models, or when
converting from one SPICE model type to another.
Optimization Module
This module is used to extract and optimize SPICE model parameters to obtain an accurate fit
between simulated and measured device characteristics. The datasets stored in the database
are used as targets for the model extraction. Compact, macro (subcircuit), and verilog models
can be generated for all device types.
Script Module
This module provides a scripting interface, which allows you to write your own custom
JavaScript based scripts to measure, extract, optimize, and store the results.
14
Chapter 2
Getting Started
Getting Started
Utmost IV uses a relational database to organize and store your work. Before getting started
and actually using Utmost IV, a database server must be started and a new database created as
described below. For full details of the SRDB database management application, please refer
to the SRDB User's Manual.
Windows
Run the installation executable and follow the on screen instructions. When you install the
software, you should also select and install the firebird database server at the same time as
shown below.
16
Getting Started
This will prompt you for the database server password, which is initially set to 'simucad'.
Use the following command to create a database.
'create <my_database_name> ut4 <my_database_location>'
Note: Silvaco recommends that the database location exists locally on the database server machine. This will
reduce network traffic and speed up database access.
You will now need to create some Utmost IV users as follows. First connect to the newly
created database and then add as many users as required.
'connect <my_database_name>'
'create user <user_name> <password>'
In order to use the database manager tool described in Chapter 5 Managing the Database, you
will need to set the superuser password as follows.
'password superuser <superuser_password>'
When you are finished, simply enter the command 'quit' to exit the SRDB application.
Now the software is installed, a database server is running, and a database and user are
created. You are now ready to use the Utmost IV software.
17
Getting Started
This will prompt you for the database server password, which is initially set to 'simucad'.
Before you upgrade your database, we strongly recommend that you backup your database
using the following command.
'backup <my_database_name> <backup_file_name>'
Once you have backed up your database, you are ready to upgrade your database to a later
version using the following command.
'upgrade
<my_database_name>
<new_version_number>'
ut4
<old_version_number>
Note: Once you have upgraded the database to a higher version number, you will not be able to connect to it using
older versions of Utmost IV.
When you are finished, simply enter the command 'quit' to exit the SRDB application.
18
Getting Started
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. To
toolbar icon to open the database.
do this, select FileOpen Database or click on the
Once you do this, a dialog will appear and you should select the database server and the
database you wish to open.
19
Getting Started
Figure 2-5 Utmost IV Main Window after Logging into New Database
If you are not the first user of the database, there may already be projects in the database and
the main window will appear similar to the figure shown below.
Figure 2-6 Utmost IV Main Window after Logging into Database with Existing Projects
20
Getting Started
Note: If you are having problems connecting to your firebird database server from another machine on your
network, see Section 2.2 Configuring Firewall for Firebird Database Server.
21
Chapter 3
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.
When Utmost IV is started, the main window will open and will remember and display all of
the databases on which you have previously been working. In order to interact with one of
these databases, you must log in with a valid user name and password. You can log into many
databases at the same time. Once you are logged into a database, you can then create new
projects, copy projects from one database to another, or even delete projects.
This chapter will describe how you can perform all of these actions and more from the main
window.
23
Opening a Database
24
25
26
Opening a Project
..
27
Importing a Project
28
Importing a Project
Once the project file has been verified, then you need to input the new name for this project
and to select who will be able to read and to modify it.
If you select a project name, which already exists in the database, then the following error
message will be displayed and you must select a different name for your project.
29
Exporting a Project
30
31
Chapter 4
Datasets
Dataset Keys
Datasets
A dataset contains a single device measurement. As well as containing the measured data
itself, the dataset also contains all of the information about how that measurement was
performed.
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.
33
Editing a Dataset
Datasets
34
Editing a Dataset
Datasets
35
Editing a Dataset
Datasets
36
Editing a Dataset
Datasets
From the AC Data tab, you can view the measured s parameter data for AC dataset types.
You can also view the y, z, h, g, gamma parameter data and any AC data calculated from
functions in your dataset. For convenience, you can display the complex AC data as
rectangular (real/imaginary) or as polar (magnitude/phase) format.
37
Editing a Dataset
Datasets
38
Datasets
39
Deleting Datasets
Datasets
40
Importing Datasets
Datasets
To import a dataset, select the database in the main Utmost IV window and then select
FileImportDatasets from the menu.
In the import wizard, you must first select the file containing the datasets you wish to import,
then click on the Next button.
41
Importing Datasets
Datasets
When importing Utmost III logfiles, an additional page in the wizard will be displayed. This
page allows you to modify certain fields for all the datasets that will be imported into the
database.
42
Importing Datasets
Datasets
Once the external file has been verified, you must then select which datasets you wish to
import into the database. If a dataset cannot be imported into the database, you will be unable
to select this dataset and a short explanation will be given.
Note: If a dataset already exists in the database, the Import button will change name to become an Overwrite
button. If you chose to permanently overwrite the datasets already in the database, there is no way to
recover the older datasets, except from your database backups.
Note: If you do not wish to overwrite any data, then click on the New Only button to select only datasets from the
file which do not already exist in the database.
43
Importing Datasets
Datasets
Once you select to import or overwrite datasets a progress bar will be displayed. Once the
import is complete, you can then click on Start if you wish to import another file or click on
the Finish button.
44
Exporting Datasets
Datasets
45
Datasets
46
Chapter 5
Managing the Database
The database manager allows a special superuser database user to manage projects and
datasets that exist in the database. To open the database manager, select FileDatabase
Manager and you will then be prompted to enter the superuser password.
The database manager dialog allows the superuser to view and select all of the projects and
datasets in the database. You can select whether you want to view projects or datasets.
Figure 5-2 The Database Manager Window Showing the Projects View
If you edit the search criteria, you will be able to easily find the objects you are interested in.
The search editor dialog is shown below.
48
49
50
51
Chapter 6
Acquisition Module
Acquisition Module
The Acquistion Project window will appear when a new project is created or an old project is
opened. The Acquistion Project window is divided into four areas.
Window Area
Description
Sequence Objects
Measurement Sequence
Dataset Selector
Status Log
Sequence Objects
Measurement Sequence
Dataset Selector
Status Log
53
Defining Temperatures
Acquisition Module
54
Acquisition Module
55
Acquisition Module
Field
Description
Header Information
Batch Name
Wafer List
You can enter the names and enable one or more wafers to be measured.
You can also enter the wafer cassette slot number where the wafer is
located.
Note: Even if you are acquiring data by simulation, the same information will be used by the measurement
sequence and will be stored in the acquired datasets.
Note: All dimensions in the wafer map are in meters.
Description
Wafer Diameter
Die Size X
Die Size Y
Layout
This represents how the grid is aligned to the center of the wafer.
56
Acquisition Module
Description
Alignment
Alignment Value
Orientation
57
Acquisition Module
58
Acquisition Module
59
Acquisition Module
60
Acquisition Module
61
Acquisition Module
Field
Description
Group Count X
Group Count Y
Group Size X
Group Size Y
62
Acquisition Module
63
Acquisition Module
64
Acquisition Module
65
Defining Devices
Acquisition Module
66
Defining Devices
Acquisition Module
There are three views that can be selected in the device editor dialog. These are the Device
Attributes, the Device Nodes, and the Netlist Text.
67
Defining Devices
Acquisition Module
When you view the device nodes, you can add, rename, or delete the nodes for this device.
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. These pin numbers will only be
used if you use a scanner instrument during the measurement.
Note: Within a device, the pin number can be used only once.
Finally, if the data is to be acquired by simulation, you can specify a simulation netlist for the
device type. A full description of the netlist definition is given in Section 7.5 Defining the
Netlist for Simulation.
68
Defining Extractions
Acquisition Module
69
Defining Hardware
Acquisition Module
70
Defining Hardware
Acquisition Module
Description
Baud Rate
Data Bits
Polarity
None
Stop Bits
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.
71
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.
72
Defining Hardware
Acquisition Module
73
Defining Hardware
Acquisition Module
74
Defining Hardware
Acquisition Module
75
Defining Hardware
Acquisition Module
76
Defining Connections
Acquisition Module
77
Acquisition Module
78
Acquisition Module
79
Acquisition Module
Description
Name
Measurement Type
Setup
Analysis
Defines functions and plots for post process and analysis on the
second tab in the dialog.
80
Acquisition Module
Each measurement setup must have a unique name and all are contained in the Sequence
Objects Area of the Acquistion project window.
Figure 6-32 The Sequence Objects Area Showing the Measurement Setups
Note: To make a duplicate copy of a measurement setup, you must copy from and paste to the Sequence Objects
Area.
Description
DC
LCR
AC
NOISE
DC_TABLE
LCR_TABLE
AC_TABLE
NOISE_TABLE
Note: When using one of the TABLE types above, then all of the DC sources must be defined as list sweeps and
all must have the same length.
When you select an existing item from the setup, it will be displayed in the item editor on the
right hand side of the dialog. You can modify the item directly in this editor or simply Delete
the item if it is not required.
If you want to add a new item to the setup, you must select New Item from the setup. This
will allow you to enter a completely new item in the item editor. When you have finished
entering the item information, you can Insert this new item into the setup.
There are many different types of setup items that describe the measurement being performed
and these are described below.
81
Acquisition Module
Figure 6-33 Editing the Node Names for the Measurement Setup
Note: You must specify at least two nodes.
82
Acquisition Module
Description
Number
Type
Describes the type of the sweep. You can select Voltage, Current,
Frequency, LCR Voltage, or LCR Current.
Nodes
If the sweep type is Voltage or Current, you must also define the
nodes to which this will be applied.
Method
Description
Start
Stop
Step
Number of Points
Calculated Field
83
Acquisition Module
For a logarithmic sweep, this is defined in terms of the start value, the stop value, the number
of points per decade and the total number of points. Again, you only need to define three of
these four values with the forth value being calculated from the other three. You can select
which value you will calculate.
Field
Description
Start
Stop
Number of Points
Calculated Field
Note: For either a linear or a logarithmic sweep, the above values can be defined using a variable name. For
example, the stop value of a linear sweep can be set to the variable name Vmax. When the measurement
is performed, the value of the variable Vmax, which is defined as shown in Section 6.5 Defining Variables,
will be used.
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. In the list editor, you can type in the list sweep values directly.
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.
84
Acquisition Module
If the sweep type is Voltage or Current, you can also define the compliances for the sweep.
Field
Description
Compliance
Power Compliance
This is the power compliance in Watts. A zero value means that the
power compliance is switched off.
Note: You can also specify the above compliance values as variables, which will be read from the variables table
defined as shown in Section 6.5 Defining Variables.
Description
Type
Nodes
Value
Compliance
The compliance
Power Compliance
85
Acquisition Module
Description
Type
Describes the type the mirror. You can select Voltage or Current.
Nodes
Ratio
Offset
Compliance
The compliance
Power Compliance
86
Acquisition Module
Description
Type
Describes the type the iterator. You can select Voltage or Current.
Nodes
Minimum
Start
Maximum
Error
The acceptable error percentage between the desired iteratee value and the
achieved iteratee value.
Compliance
The compliance
Power Compliance
87
Acquisition Module
88
Acquisition Module
Description
Type
Describes the type of the pulse. You can select Voltage or Current.
Nodes
Width
Period
Base
Hold
Delay
89
Acquisition Module
Description
Type
Nodes
Description
High Nodes
Low Nodes
Type
Oscillation Value
Frequency
90
Acquisition Module
Description
Target
Note: LCR Source and LCR Target are only allowed in LCR and LCR_Table measurement setups.
Description
Number
Signal Nodes
Ground Nodes
Power
Attenuation
Extension
91
Acquisition Module
Description
Type
Nodes
Description
Name
Expression
The expression can be defined using the mathematical operators (+, -, *, /) and the following
built-in functions. These functions take a single input.
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.
attr(W)
key(temperature)
The derivative function takes two inputs, the x array and the y array.
derivative(xarray, yarray)
The ft function is a special function for AC datasets. This function takes seven inputs and
will extract the unity gain bandwidth for each frequency trace.
ft(freq, h21m, 0, 0, 3, -20, 0)
92
Acquisition Module
Input
Description
Input
Description
93
Acquisition Module
Note: You can combine functions and operators to generate more complicated expressions. For example, the
expression 1 + log10(abs (ID)).
Description
Name
Type
Data
vs
Y2 Axis Data
If you are displaying a XYY Cartesian plot, this defines the data
which will be displayed on the second Y axis.
Note: The names of the data to be displayed can contain Function names.
94
Acquisition Module
95
Acquisition Module
96
Acquisition Module
97
Acquisition Module
Note: If the measurement immediately above the extraction setup is not performed, the extraction will not be
performed.
Once the sequence is running, you may stop it by selecting MeasureStop or by clicking on
the
The sequence can be run in a continuous mode by selecting MeasureContinuous from the
menu or one measurement at a time by selecting MeasureSingle Step. When you are in
single stop mode, the sequence will pause after each measurement or extraction. If the
measurement is not to your liking, you may choose to re-measure the device by selecting
MeasureRemeasure from the menu or clicking on the
toolbar icon.
Note: All measured datasets are stored immediately into the database.
98
Acquisition Module
To perform the instrument calibration, select the Open Short calibration type and then click
on the Calibrate button. This will open the LCR Open Short Calibration dialog. You can
perform Open or Short calibrations on the instrument or combine both. Typically, for
capacitance measurements only the Open calibration is necessary.
Connect the dedicated open test structure to the LCR instrument and then click on the Open
button to perform the calibration. Once this calibration has been completed successfully, a
check will appear on the dialog as shown below.
99
Acquisition Module
You should always calibrate your LCR instrument if possible. It is more accurate to calibrate,
than to use de-embedding to subtract two measurement results. Some older test equipment
does not have built in calibration. This leaves you no choice but to perform de-embedding to
remove the effect of the test system.
If you want to perform de-embedding, you must set the de-embedding type to Open as shown
below.
100
Acquisition Module
101
Chapter 7
Optimization Module
Optimization Module
The Optimization Project window will appear when a new project is created or an old project
is opened. The Optimization Project window is divided into four areas.
Window Area
Description
Dataset Selector
Used to search and retrieve datasets from the database and select these
datasets for display, simulation, and optimization.
Optimization Sequence
Sequence Objects
Status Log
Dataset Selector
Optimization Sequence
Sequence Objects
Status Log
103
Optimization Module
104
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.
Comparisons Available
Value Type
Database
=, !=
user, group
Date
date
Flag
=, !=
true/false
Name
=, !=
string
Number
number
Special
=, !=
type
Special Attribute
When specifying a name, wildcards are supported. The character '*' will match zero or more
characters, the character '?' will match exactly one character.
105
Optimization Module
When two or more search conditions are inserted into the search, then they are combined with
either an AND or an OR.
106
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.
107
Optimization Module
Figure 7-9 Netlist Definition Showing the Device Nodes and Attributes of Interest
108
Optimization Module
The additional search conditions, which are added to the search when performing the dataset
retrieval from the database, are as follows.
Node names of all datasets must exactly match the netlist node names.
All attributes in the netlist must exist in the dataset.
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, check your netlist.
109
Sorting Datasets
Optimization Module
110
Optimization Module
Once you have created an optimization sequence as described in Section 7.16 Automation
Using the Optimization Sequence, then you can display the data involved with an
optimization by selecting an optimization setup in the sequence and then selecting
OptimizationShow Plots from the menu. When you show data from the optimization
sequence this way, the existing plots in the viewer will always be overwritten.
111
Optimization Module
112
Optimization Module
If the number of sweeps is greater than two, then it becomes even more difficult to identify
where an individual trace resides in the multi-dimensional sweep space.
Figure 7-14 Splitting Multiple Traces into Separate Graphs Makes Analysis Easier
113
Optimization Module
For datasets with more than one sweep, the traces will be plotted according to your
preference. From the Utmost IV main window, select EditPreferences to open the User
Preference dialog. Then in this dialog, select ToolsWaveform Viewer. You can select
which method for viewing from the Split multi-trace plots pull down list.
Method
Description
No Splits
This allows fine control over how to visualize the data. The following shows an example plot
of the same data for each method.
114
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
Optimization Module
Figure 7-18 Single Plot Displayed in the Viewer with Splits on Different Charts Selected
116
Optimization Module
Description
Temperature
Keys
Attributes
Conditions
Label Position
From the Utmost IV main window, select EditPreferences to open the Preferences dialog.
Then in this dialog, select ToolsViewer. The default settings for the viewer are shown
below.
117
Optimization Module
Description
None
On Title
On Label
118
Optimization Module
Description
None
On Label
If you select On Label, the dataset keys will be displayed as shown below.
Description
None
On Title
On Label
If your dataset has a large number of attributes then the title can become very long. For
example, a MOSFET with the attributes W, L, PS, AS, NRS, PD, AD, NRD as shown below.
119
Optimization Module
120
Optimization Module
Description
None
On Label
If you select On Label, the measurement conditions will be displayed as shown below.
121
Optimization Module
Description
Top Left
Top Right
Bottom Left
Bottom Right
If you select Bottom Right, the label will be displayed as shown below.
122
Optimization Module
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
Optimization Module
In SPICE syntax, this defines a MOSFET element called M1 that uses a MOSFET SPICE
model called NMOS and connects the four device nodes D, G, S, and B to the terminals of the
element. All of the device nodes must be connected and none must be floating. This SPICE
netlist text also shows how device attribute values can be passed into the simulation using the
expression syntax as follows. In the example above, the expression is simply a single attribute
name W and L.
<parameter> = '<expression>'
When the simulation is performed on the above netlist, the value of the attributes W and L for
each different dataset will be passed to SPICE and used in the model element. Some other
SPICE netlist text compact model examples are given below.
D1 A C ndio 'W * L'
Q1 C B E S NPN
Attributes are not the only parameters that will be passed into the simulation using the
expression syntax. The model library of the project contains a special model card called the
PARAMS model card. The parameters of this model card can also be passed into the
simulation using the expression syntax.
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.
124
Optimization Module
125
Optimization Module
126
Optimization Module
127
Optimization Module
128
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. It is also very useful to
be able to simulate the characteristics of one model and then overlay the simulation from a
second model.
Marking a parameter means that this parameter will be used during optimization and
rubberbanding (see Section 7.6.16 Marking and Unmarking Model Parameters).
129
Optimization Module
130
Optimization Module
131
Optimization Module
Figure 7-38 Selecting the External Library File for Model Card Import
132
Optimization Module
In the second page of the import wizard, you select the models that you want to import into
the model library and the destination columns. If a model name already exists in the library, it
will be overwritten during the import.
133
Optimization Module
To import model params from an external file into the project, select
ModelImportParams. The external file must be in SPICE format and may be
hierarchical. In the first page of the import wizard, you select the external file containing the
model params and press the Next button.
Figure 7-40 Selecting the External File for Model Params Import
134
Optimization Module
In the second page of the import wizard, you select the model params that you want to import
into the model library and the destination columns. If a model param name already exists in
the library, it will be overwritten during the import.
135
Optimization Module
Figure 7-42 Selecting the External File for Model Cards Export
136
Optimization Module
In the second page of the wizard, you can select the model cards and the column you wish to
export. 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.
137
Optimization Module
To export model params to an external file, select ModelExportParams. In the first page
of the import wizard, you select the external file into which you will export the model params
and press the Next button.
Figure 7-44 Selecting the External File for Model Params Export
138
Optimization Module
In the second page of the wizard, you can select the model params and the column you wish
to export. 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
can also choose the format for the exported parameters. Selecting Single will export each
parameter on a separate line, selecting Grouped will export the parameters together with a
single .PARAM statement and continuation lines where necessary.
139
Optimization Module
140
Optimization Module
In the second page of the wizard, you select all of the model names that you want to export.
You also select the column from which you want to export the models.
When exporting to an existing Spayn file, a new row will be created. If the new row does not
contain all the columns of the existing file, a blank entry will be created in the new row for
that column. If the new row contains additional columns, then blank entries will be created in
all of the existing rows for those columns, so that all rows will have equal numbers of
columns.
Row, model1/param1, model2/param2, model3/param3
1,1.1,2.2,
2,,,3.3
141
Optimization Module
142
Optimization Module
143
Optimization Module
The other variables may be parameters from the special PARAMS model card (e.g., d_vth0)
or may be attributes of the device being simulated (e.g., L).
VTH0 = 0.7 + 0.1 * L
144
Optimization Module
The special PARAMS model parameters may be optimized separately or at the same time as
any other value defined model parameter.
Figure 7-52 Optimize Model Parameters and Expression Parameters at the Same Time
145
Defining Extractions
Optimization Module
Description
Name
Expression
The expression can be defined using the mathematical operators (+, -, *, /) and the following
built-in functions. The functions below take one input.
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, such as width and length into an extraction using the
attr() syntax. You can include the temperature using the key(temperature) syntax. It is
also possible to include variables from the project into the extractions using the var() syntax.
attr(L)
key(temperature)
var(myvar)
146
Defining Extractions
Optimization Module
You can manipulate arrays of data using the following functions. The element function
returns the value of the array at the given index. If a dataset has multiple sweeps and is not of
the table type, you can use the trace function to return a particular sweep trace.
element(array,index)
length(array)
trace(array, trace number)
slice(array, begin index, end index)
The following function is a special function for use with AC and Noise datasets. If a dataset
has multiple DC bias sweeps and is not of the table type, you can use the bias_trace
function to return a particular DC bias sweep trace.
bias_trace (array, trace_number)
The find_x_given_y extraction takes five inputs and will return the value of x given the
corresponding value of y.
find_x_given_y (xarray, yarray, yvalue, lin, forwards)
Input
Description
The x array.
The y array.
The following linear fit functions return a single value. If the method is set to maxslope, then
the tangential line from the point of maximum slope is fitted. If the method is set to lsq, then
a least square fit is made to the entire curve.
slope (xarray, yarray, method)
yintercept (xarray, yarray, method)
xintercept (xarray, yarray, method)
The remaining functions are special functions built in for commonly used device extractions.
147
Defining Variables
Optimization Module
Linear Transconductance
gm_lin(vg, id, trace number)
This is the equivalent of the following extraction.
slope (trace(vg, trace number), trace(id, trace number), maxslope)
Note: An extraction must return a single value and not an array of values.
148
Optimization Module
Note: For a successful simulation, 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.
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, 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.
149
Error Calculation
Optimization Module
150
Error Calculation
Optimization Module
Linear Data
Data that is displayed on a linear axis will use one of the two following error calculation
methods, depending on the Linear Error Method preference you set.
Linear Error = (sim - meas)/meas
Linear Difference Error = 2 * (sim - meas)/(sim + meas)
Logarithmic Data
Data that is displayed on a logarithmic axis will always use the following error calculation
method.
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, or Y2 axes of a cartesian plot, the errors will be
calculated correctly.
Figure 7-56 Linear and Logarithmic Displayed Data Calculate Errors Differently
151
Error Calculation
Optimization Module
152
Error Calculation
Optimization Module
153
Optimization Module
154
Optimization Module
155
Optimization Module
156
Optimization Module
Figure 7-61 The Sequence Objects Area Showing the Dataset Subsets
Note: To make a duplicate copy of a dataset subset, you must copy from and paste to the Sequence Objects Area.
157
Optimization Module
158
Optimization Module
Description
Enabled
Target
'vs'
Scale
Target Min/Max
'vs' Min/Max
Trace Min/Max
Box Weight
If you do not specify any the box limits, then no boxes will appear on the plot. Box limits can
be defined as absolute numbers or as percentage values of the data maximum.
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. See Section 7.16.2 Combining the Dataset
Subset and Optimization Setup. For example, prim(VG) only matches datasets whose primary sweep is
called 'VG'.
You can also plot extracted values versus a device attribute or versus temperature. For
example, you can extract threshold voltage and plot versus device length or versus
temperature. These plots of extracted parameters are optimized in the same way as regular
device characteristics and you can optimize both simultaneously.
To do this, you define an extraction as described in Section 7.7 Defining Extractions. Then,
you write extr(<extraction name>) into either the Target or 'vs' field. To plot a device
attribute, you use the syntax attr(<attribute name>) and as the temperature is a dataset
key, you use the syntax key(temperature). Some examples are given below.
159
Optimization Module
Each optimization setup must have a unique name and all are contained in the Sequence
Objects Area of the Optimization project window.
Figure 7-64 The Sequence Objects Area Showing the Optimization Setups
Note: To make a duplicate copy of an optimization setup, you must copy from and paste to the Sequence Objects
Area.
160
Optimization Module
161
Optimization Module
162
Optimization Module
Multiple targets can be added to include more data into the optimization. The optimization
setup shown below includes two targets that will display both 'ID' vs 'VG' and 'ID' vs 'VD'
data plots.
163
Optimization Module
Instead of producing two plots, an additional 'ID' vs 'VG' plot has been generated. This
additional plot comes from the 'ID' vs 'VD' dataset and was generated because in this dataset
the second sweep is VG. If you only wish to generate plots and include data in the
optimization from the primary sweep data, then you must use the 'prim' keyword to
explicitly select only the primary sweep. In the previous example, to select only the 'ID' vs
'VG' plot from the datasets with primary sweep VG, the 'vs' field in the Target is changed to
'prim(VG)' as shown below.
164
Optimization Module
Figure 7-71 Plots Generated by Multiple Targets using the 'prim' Keyword
165
Optimization Module
toolbar icon.
If you set the Project Sequence Run mode to 'continuous', then each step will run in
sequence. If you set the run mode to 'single step', then only the current step will run and then
the sequence will pause at the following step.
When you run rubberband from the optimization sequence, the data plots will be displayed
and the Rubberband dialog opened automatically. The operation of this dialog is described in
Section 7.11 Using Rubberband to Explore and Modify Model Parameters.
Note: The parameters will be saved to the model library when you select OK or Apply from the Rubberband
dialog.
166
Optimization Module
167
Reporting
Optimization Module
7.17 Reporting
Report generation works together with the optimization sequence, which allows you to define
the data and the plots you wish to include using already familiar Utmost IV objects. In the
optimization setup, the optimization parameters are not used for reporting.
Field
Description
Directory
The directory where the document and related files will be stored.
File Name
Document Format
Header Document
You can include your own document at the top of the generated
report.
168
Reporting
Optimization Module
Simulate
Error Table
Sort
You can decide the order in which the plots will appear in the
report.
Layout
Overwrite
Field
Description
Directory
The directory where you wish to store the generated plot files.
Prefix
Format
Overwrite
Simulate
169
Reporting
Optimization Module
For example, if you choose 'Portable Network Graphics' format and a prefix of
'myPrefix' for the first item in the sequence shown above, then the file name will be as
follows.
myPrefix_data_subset1_optim_setup1.png
170
Chapter 8
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. You can also take existing Verilog-A models and modify these to add new features.
Utmost IV is a very powerful and easy to use tool for the development of Verilog-A models.
Using Utmost IV, you can quickly modify a Verilog-A model, add in any new parameters, and
immediately explore the new model to see how well it works. Utmost IV also allows for easy
co-development of any new model and the extraction sequence for extracting this model.
This chapter will introduce you to writing a Verilog-A model, but it is beyond the scope of
this manual to describe the full extent of this language. For further details, please refer to the
SmartSpice Verilog-A Language Reference Manual.
172
A parameter should be defined as being either real or integer. If you do not define the
parameter type, the value assigned to the parameter will be used to determine its type. In other
words, if you assign the value 1 to a parameter, it will be an integer type and if you assign the
value 1.0, it will be a real type.
parameter will_be_integer = 1;
parameter will_be_real
= 1.0;
Parameters can be limited in many ways and this is generally recommended to avoid
computation problems such as divide by zero. Some examples of parameter limiting are
shown below.
parameter real isat= 1p from [0:inf];
parameter integer mobmod = 1 from [1:3];
parameter real val1 = [-1:5] exclude 0;
parameter real val2 = [val1:inf];
173
= 1.0;
will_be_integer
= 1;
real myReal
= 27;
integer i
= 0;
These variables can then be used in calculations within the model itself.
Note that $vt is a built in function which returns the thermal voltage (kT/q).
174
Now for a capacitor the charge is the capacitance multiplied by the voltage, this gives the
following expression.
I (anode, cathode) <+ ddt (cap * V(anode, cathode));
For a diode, the depletion capacitance expression and depletion capacitance parameters are
then added to define the capacitance value. Note that the capacitance value is limited in
forward bias to avoid convergence issues with the model that would otherwise occur.
parameter real cj0=5e-12;
parameter real mj=0.5;
parameter real vj=0.5;
real cap;
analog
begin
cap = cj0 * pow((1 V(anode, cathode)/vj),-1*mj);
cap = min (cap, cj0*3);
I(anode, cathode) <+ ddt(cap * V(anode, cathode));
end
175
Figure 8-3 Adding the Module Name to the Verilog-A Model Card
Then, you can add the other model parameters just as you would for any standard SPICE
model card. Once you have added in the model card, this can be imported, exported, and
copied into other projects in just the same way as any other SPICE model.
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.
176
The second step is to define the Verilog-A element, using the YVLG element prefix. For
example, 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.
YVLG1 a c verilog_diode
Both of these commands are placed inside the netlist in your project as shown below.
177
Once the module code is defined, the Verilog-A model added into the model library and the
netlist updated as shown above, you can simulate using this Verilog-A model in exactly the
same way as you would for a standard SPICE model.
178
179
180
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.
181
Chapter 9
Script Module
Script Module
Utmost IV can be controlled and run automatically using a JavaScript based scripting
language. Many books and on-line resources are available to learn more about this language.
In JavaScript, an object is defined and this object can have multiple methods or commands
associated with it. The complete list of Utmost IV JavaScript objects and their commands is
given in this chapter.
Description
Deletes the existing script and loads a new script from the
named file.
script begin
script end
run script
quit
183
Script Module
9.4.1 getDataFromSimulation2
Syntax
dataSet getDataFromSimulation2 (temperature, batchName, waferName,
dieName, device, measSetup,
variable [], waferMap, netlist,
modelLibrary, simCol)
Description
Performs a simulation to generate measured data in the resulting dataSet based on the
following arguments.
temperature
batchName
waferName
dieName
device
A Device object
measSetup
A MeasSetup object
variable []
waferMap
A WaferMap object
netlist
A Netlist Object
modelLibrary
A ModelLibrary Object
simCol
Example
myDataSet
Note: The function 'getDataFromSimulation', which omits the WaferMap argument, has been
deprecated.
184
Script Module
9.4.2 makeAttribute
Syntax
Attribute makeAttribute (name, value)
Description
Constructs an attribute object based on the following arguments.
name
value
Example
myAttribute = Silvaco.Utmost4.makeAttribute ("W", 10e-6);
9.4.3 makeDevice
Syntax
Device makeDevice (name, deviceTypeName, groupName, nodes, attrs)
Description
Constructs a Device object based on the following arguments.
name
deviceTypeName
groupName
nodes
attrs
Example
myDevice = Silvaco.Utmost4.makeDevice ("n10x10", "nmos", "",
myDeviceNodes,
myAttributes);
185
Script Module
9.4.4 makeDeviceNode
Syntax
DeviceNode makeDeviceNode (name, pins)
Description
Constructs a DeviceNode object based on the following arguments.
name
pins
Example
myDeviceNode = Silvaco.Utmost4.makeDeviceNode ("D", [1]);
9.4.5 makeExtraction
Syntax
Extraction makeExtraction (name, expr)
Description
Constructs an extraction object based on the following arguments.
name
expr
Example
myExtraction = Silvaco.Utmost4.makeExtraction
("vth", "vt_lin(vg, id, vd, 1)");
9.4.6 makeModelLibrary
Syntax
ModelLibrary makeModelLibrary ()
Description
Constructs an empty ModelLibrary object.
Example
myModelLibrary = Silvaco.Utmost4.makeModelLibrary ()
186
Script Module
9.4.7 makeNetlist
Syntax
Netlist makeNetlist (nodeNames, attrNames, netlistText)
Description
Constructs a netlist object based on the following arguments.
nodeNames
attrNames
netlistText
Example
myNetlist = Silvaco.Utmost4.makeNetlist
(["D","G","S","B"],["W","L"],
"M1 D G S B NMOS W='W' L='L'");
9.4.8 makeVariable
Syntax
Variable makeVariable (name, expr)
Description
Constructs a variable object based on the following arguments.
name
expr
Example
myVariable = Silvaco.Utmost4.makeVariable ("vd_max", "1");
9.4.9 openCurrentWorkingDirectory
Syntax
Directory openCurrentWorkingDirectory ()
Description
Returns a Directory object for the current working directory.
Example
myDir = Silvaco.Utmost4.openCurrentWorkingDirectory ();
187
Script Module
9.4.10 openDatabase
Syntax
Database openDatabase (serverName, databaseName, userName, password)
Description
Returns a Database object when given the following arguments.
serverName
databaseName
userName
password
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
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[]
OptimSetup
An OptimSetup object
Extraction[]
188
Script Module
Variable []
Netlist
A Netlist object
ModelLibrary
A ModelLibrary object
optimizer
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
Example
Silvaco.Utmost4.system ("cat myfile");
189
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
filename
text
overwriteOrAppend
Example
Silvaco.Utmost4.writeToFile (myDir, "output.txt", "Hello World!",
"overwrite");
190
Script Module
9.5.1 readDataSets
Syntax
DataSet[] readDataSets (Search)
Description
Returns an array of DataSet objects from the database based on the following argument.
Search
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
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[]
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
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
Project
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
Script Module
9.6.1 capImportFromTCADLogfile
Syntax
DataSet capImportFromTCADLogfile (filename, hiNode, 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.
fileName
hiNode
loNode
Throws a JavaScript Error object if you cannot read the file, the file does not exist, or if the
reading of the datasets fails. Will also throw an error if the file does not contain the correct
data.
Example
myDataSet = myDir.capImportFromTCADLogfile ("atlas.log", "Gate",
"Drain");
9.6.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.
fileName
Throws a JavaScript Error object if you cannot read the file, the file does not exist or if the
reading of the datasets fails. Will also throw an error if the file does not contain the correct
data.
Example
myDataSet = myDir.dcImportFromTCADLogfile ("atlas.log");
193
Script Module
9.6.3 getPath
Syntax
string getPath ()
Description
Returns the path from the Directory object.
Example
myPath = myDir.getPath ();
9.6.4 readDataSets
Syntax
DataSet[] readDataSets (fileName)
Description
Returns an array of DataSet objects from the following argument.
fileName
Throws a JavaScript Error object if you cannot read the file, the file does not exist, or if
reading of the datasets fails.
Example
myDataSets = myDir.readDataSets ("my_datasets.uds");
9.6.5 readProject
Syntax
Project readProject (fileName)
Description
Returns a Project object from the file system based on the following argument.
fileName
Throws a JavaScript Error object if the file does not exist or if you do not have permission to
read it.
Example
myProj = myDir.readProject ("project1.prj");
194
Script Module
9.6.6 saveDataSets
Syntax
undefined saveDataSets (fileName, 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, it will be overwritten. Otherwise, it will be created.
fileName
DataSet[]
Throws a JavaScript Error object if you do not have permission to save the file.
Example
myDir.saveDataSets ("saved_datasets.uds", myDataSets);
9.6.7 saveProject
Syntax
undefined saveProject (fileName, Project)
Description
Saves the Project object in the file system based on the following arguments. If a file with this
name already exists in the directory, it will be overwritten. Otherwise, it will be created.
fileName
Project
Throws a JavaScript Error object if you do not have permission to save this file.
Example
myDir.saveProject ("myfile.prj", myProj);
195
Script Module
9.6.8 sparImportFromTCADLogfile
Syntax
DataSet sparImportFromTCADLogfile (filename, port1SignalNode,
port1GroundNode, port2SignalNode,
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
port1SignalNode
port1GroundNode
port2SignalNode
port2GroundNode
Throws a JavaScript Error object if you cannot read the file, the file does not exist, or if the
reading of the datasets fails. Will also throw an error if the file does not contain the correct
data.
Example
myDataSet = myDir.sparImportFromTCADLogfile ("atlas.log", "Gate",
"Source", "Drain",
"Source");
196
Script Module
9.7.1 addAttribute
Syntax
undefined addAttribute (name, expression)
Description
Adds an attribute to the DataSet object based on the following arguments.
name
value
Throws a JavaScript Error object if the name is unacceptable or already exists or if the inputs
are invalid.
Example
myDataSet.addAttribute ("W", 1e-6);
9.7.2 addFunction
Syntax
undefined addFunction (name, expr)
Description
Adds a function to the DataSet object based on the following arguments.
name
expr
Throws a JavaScript Error object if the name is unacceptable or already exists or if the
expression is invalid.
Example
myDataSet.addFunction ("gm", "derivative (VG, ID)");
Note: Once a function is added, its values will be computed automatically and will be accessible using
getMeasData () and getSimData ().
197
Script Module
9.7.3 addPlot
Syntax
undefined addPlot (name, type, xName, yNames, y2Names)
Description
Adds a plot to the DataSet object based on the following arguments.
name
type
A string containing a valid plot type, for example "XY (LIN LIN)" or
"XYY (LIN LOG LIN)".
xName
yNames
y2Names
Throws a JavaScript Error object if the inputs are unacceptable or if the name already exists.
Example
myDataSet.addPlot ("idvg", "XY (LIN LIN)", "vg", "id", "");
myDataSet.addPlot ("gummel", "XY (LIN LOG)", "vb", "ib ic", "");
myDataSet.addPlot ("id_lin_log", "XYY (LIN LIN LOG)", "vg", "id".
"id");
9.7.4 exportToTCADLogfile
Syntax
undefined exportToTCADLogfile (Directory, fileName, measOrSim)
Description
Export the dataset to TCAD logfile format according to the following arguments.
Directory
A Directory object
fileName
measOrSim
Example
myDataSet.exportToTCADLogfile (myDir, "data_sim.log", "sim");
198
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
Variables []
measOrSim
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
Throws a JavaScript Error object if the attribute name does not exist.
Example
myAttrValue = myDataSet.getAttrVal ("W");
199
Script Module
9.7.7 getKeyVal
Syntax
value getKeyVal (keyName)
Description
Returns the value of a dataset key based on the following argument.
keyName
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
part
Examples
myIDdata = myDataSet.getMeasData ("ID", "real");
my_s11mag = myACDataSet.getMeasData ("s11", "mag");
200
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
part
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
Example
sweepLen1 = myDataSet.getSweepLen (1);
Note: Sweep IDs start at one and not zero.
201
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
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
batchName
waferName
dieName
deviceName
measSetupName
Example
myDataSet.setKeys (27, "lot1","1","center","n10x10","idvglin");
202
Script Module
9.7.13 simulate
Syntax
undefined simulate (Netlist, ModelLibrary, simCol)
Description
Simulates the dataset based on the following arguments.
Netlist
ModelLibrary
simCol
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
fileName
measured_simulated
A string that defines the contents of the output file. Must be either
"measured" or "measured_and_simulated".
Example
myDataset.writeCSVFile (myDir, "output.csv", "measured");
203
Script Module
9.8.1 getConnection
Syntax
Connection getConnection (deviceName, measSetupName)
Description
Returns a Connection object based on the following arguments.
deviceName
measSetupName
Example
myConnection = myProj.getConnection ("nmos1", "idvg");
9.8.2 getDataSubset
Syntax
DataSubset
getDataSubset
(dataSubsetName)
Description
Returns a DataSubset object based on the following argument.
A string containing the name of the data subset.
dataSubsetName
Throws a JavaScript Error object if the data subset does not exist in the project.
Example
myDataSubset = myProj.getDataSubset ("subset1");
9.8.3 getDataSubsetNames
Syntax
string[]
getDataSubsetNames ()
Description
Returns an array of strings containing the names of all of the data subsets in this project.
Example
myDataSubsetNames = myProj.getDataSubsetNames ();
204
Script Module
9.8.4 getDevice
Syntax
Device getDevice (deviceName)
Description
Returns a Device object based on the following argument.
A string containing the name of the device.
deviceName
Throws a JavaScript Error object if the device does not exist in the project.
Example
myDevice = myProj.getDevice ("nmos1");
9.8.5 getDevices
Syntax
Device [] getDevices ()
Description
Returns all of the devices from the project as an array of Device objects.
Example
myDevices = myProj.getDevices ();
9.8.6 getDeviceNames
Syntax
string[] getDeviceNames ()
Description
Returns an array of strings containing the names of all of the devices in this project.
Example
myDeviceNames = myProj.getDeviceNames ();
9.8.7 getDeviceSubset
Syntax
DeviceSubset
getDeviceSubset
(deviceSubsetName)
Description
Returns a DeviceSubset object based on the following argument.
deviceSubsetName
Throws a JavaScript Error object if the device subset does not exist in the project.
Example
myDeviceSubset = myProj.getDeviceSubset ("subset1");
205
Script Module
9.8.8 getDeviceSubsetNames
Syntax
string[]
getDeviceSubsetNames ()
Description
Returns an array of strings containing the names of all of the device subsets in this project.
Example
myDeviceSubsetNames = myProj.getDeviceSubsetNames ();
9.8.9 getExtraction
Syntax
Extraction getExtraction (extractionName)
Description
Returns a Extraction object based on the following argument.
extractionName
Throws a JavaScript Error object if the extraction does not exist in the project.
Example
myExtraction = myProj.getExtraction ("vth");
9.8.10 getExtractions
Syntax
Extraction[] getExtractions ()
Description
Returns all of the extractions from the project as an array of Extraction objects.
Example
myExtractions = myProj.getExtractions ();
9.8.11 getExtractionNames
Syntax
string[] getExtractionNames ()
Description
Returns an array of strings containing the names of all of the extractions in this project.
Example
myExtractionNames = myProj.getExtractionNames ();
206
Script Module
9.8.12 getHardware
Syntax
Hardware
getHardware ()
Description
Returns the Hardware object from this project.
Example
myHardware = myProj.getHardware ();
9.8.13 getMeasSetup
Syntax
MeasSetup
getMeasSetup (measSetupName)
Description
Returns a MeasSetup object based on the following argument.
A string containing the name of the measurement setup.
measSetupName
Throws a JavaScript Error object if the measurement setup does not exist in the project.
Example
myMeasSetup = myProj.getMeasSetup ("meas_setup1");
9.8.14 getMeasSetupNames
Syntax
string[]
getMeasSetupNames ()
Description
Returns an array of strings containing the names of all of the measurement setups in this
project.
Example
myMeasSetupNames = myProj.getMeasSetupNames ();
9.8.15 getModelLibrary
Syntax
ModelLibrary getModelLibrary
()
Description
Returns the ModelLibrary object for this project.
Example
myModelLib = myProj.getModelLibrary ();
207
Script Module
9.8.16 getNetlist
Syntax
Netlist getNetlist
()
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
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
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
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
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
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
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 []
Example
myProj.setVariables (myVariables);
211
Script Module
Description
Adds a new Search object onto the end of the existing Search object based on the following
arguments.
Search
operator
Example
myExistingSearch.appendSearch (myNewSearch, "AND");
212
Script Module
Description
Returns a Search object built from the nodes and attributes of the Netlist object.
Example
mySearch = myNetlist.getSearch ();
213
Script Module
9.11.1 addCard
Syntax
undefined addCard (modelName, type, template)
Description
Adds a new model card to the model library based on the following arguments.
modelName
type
A string containing the type of the new model. Must be one of "C",
"D", "IND", "NJF", "NMF", "NMOS", "NPN", "NTFT", "PJF",
"PMF", "PMOS", "PNP", "PTFT", "R", "R2_CMC", "R3_CMC", or
"VLG".
template
A string containing the template name to use for the new model
card.
Throws a JavaScript Error object if the model name already exists or if any of the arguments
are invalid.
Example
myModelLib.addCard ("nch", "NMOS", "BSIM4");
9.11.2 addParameter
Syntax
undefined addParameter (modelName, paramName)
Description
Adds a parameter to an already existing model card in the model library based on the
following arguments.
modelName
paramName
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.
Example
myModelLib.addParameter ("nch", "TOX");
214
Script Module
9.11.3 deleteCard
Syntax
undefined deleteCard (cardName)
Description
Deletes a model card from the model library based on the following argument.
cardName
Throws a Javascript Error object if the argument is unacceptable or if the model card does not
exist.
Example
myModelLib.deleteCard ("nmos");
9.11.4 deleteParameter
Syntax
undefined deleteParameter (cardName, paramName)
Description
Deletes a model parameter from the model library based on the following arguments.
cardName
paramName
Throws a Javascript Error object if the arguments are unacceptable or if the model card/
parameter does not exist.
Example
myModelLib.deleteParameter ("nmos", "vth0");
215
Script Module
9.11.5 exportModelCard
Syntax
undefined exportModelCard (modelName, column, Directory,
fileName, libraryName, subCircuitName)
Description
Exports a model card from the model library into a file based on the following arguments.
modelName
column
Directory
fileName
libraryName
subCircuitName
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.
If the combination of libraryName and subCircuitName does not exist in the file, it will be
created. If a model with the given name does not exist, it will be created. If it does exist, the
entire model card is replaced. If the modelName is PARAMS, its parameters will be written as
.PARAM statements. Any existing .PARAM statements with the same parameter names will be
overwritten.
Note: Parameters that are set to be expressions will always export the expression.
Example
myModelLib. exportModelCard ("nch", "optVal", myDir, "test.lib",
"TT", "x1");
216
Script Module
9.11.6 exportModelCardToSSF
Syntax
undefined exportModelCardToSSF (modelName, column, Directory, fileName)
Definition
Exports the model card to a TCAD ssf format file according to the following arguments.
modelName
column
Directory
A Directory object.
fileName
Example
myModelLib.exportModelCardToSSF
"model.ssf");
("nmos",
"optVal",
myDir,
9.11.7 generateBinnedModel
Syntax
Undefined generateBinnedModel (infoArray,
outputModelLibrary, overwriteOrAppend)
column,
newCardName,
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.
infoArray
A JavaScript array containing the Wdrawn, Ldrawn, and model card name
information. This array must contain four elements and should be constructed
as shown in the example below.
column
newCardName
A string containing the name for the new binned model card.
outputModelLibary
A ModelLibrary object into which the new binned model card will be written.
overwriteOrAppend
Throws a JavaScript Error object if any of the inputs are incorrect or inconsistent.
217
Script Module
Example
var infoArray = [];
Ldrawn : 1e-6,
CardName : "n1x1"
});
Note: The infoArray must contain the names of four model cards that exist within the point model library. The
Wdrawn/Ldrawn values in the infoArray must form a grid.
9.11.8 getCardNames
Syntax
string[] getCardNames ()
Description
Returns an array of strings containing all of the model names in the model library.
Example
myCardNames = myModelLib.getCardNames ();
9.11.9 getCardType
Syntax
string getCardType (modelName)
Description
Returns a string containing the type of the model card based on the following argument.
modelName
Throws a JavaScript Error object if the model name does not exist.
Example
myCardType = myModelLib.getCardType ("nch");
218
Script Module
9.11.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.
modelName
Throws a JavaScript Error object if the model name does not exist.
Example
myParamNames = myModelLib.getParamNames ("nch");
9.11.11 getValue
Syntax
value getValue (modelName, paramName, attribute)
Description
Returns the value of the model parameter based on the following arguments.
modelName
paramName
attribute
The return value will be boolean if the attribute is "isVal". The return value will be a string
if the attribute is "expr". Otherwise, the return type will be a number or the string "blank".
Throws a JavaScript Error object if any of the inputs are invalid.
Examples
myTOX_optVal = myModelLib.getValue ("NMOS", "TOX", "optVal");
219
Script Module
9.11.12 hasCard
Syntax
boolean hasCard (cardName)
Description
Tests for presence of a model card from the model library based on the following argument.
cardName
Example
var cardPresent = myModelLib.hasCard ("nmos");
9.11.13 hasParameter
Syntax
boolean hasParameter (cardName, paramName)
Description
Tests for presence of a model parameter from the model library based on the following
arguments.
cardName
paramName
Example
var paramPresent = myModelLib.hasParameter ("nmos", "vth0");
9.11.14 importModelCards
Syntax
undefined
importModelCards
subcktName, modelName, column)
(directory,
fileName,
libName,
Description
Imports model cards from an external file based on the following arguments.
directory
A directory object.
fileName
libName
subcktName
modelName
column
220
Script Module
This must be either "optVal", "fitVal", or "usrVal". Throws a Javascript Error object if
any of the arguments are unacceptable.
Note: The specification of the model name supports wildcards.
Example
myModelLib.importModelCards (myDir, "model.lib", "MOS", "", "nmos",
"optVal");
myModelLib.importModelCards
"nmos.*", "fitVal");
(myDir,
"model.lib",
"MOS",
"",
9.11.15 importModelParams
Syntax
undefined
importModelParams
subcktName, paramName, column)
(directory,
fileName,
libName,
Description
Imports parameters from an external file based on the following arguments.
directory
A directory object.
fileName
libName
subcktName
paramName
column
Example
myModelLib.importModelParams
"d_vth0_n", "optVal");
(myDir,
"model.lib",
"TT",
"",
221
Script Module
9.11.16 renameCard
Syntax
undefined renameCard (oldName, newName)
Description
Renames an already existing model card in the model library based on the following
arguments.
oldName
newName
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.
Example
myModelLib.renameCard ("nmos", "nch");
9.11.17 setValue
Syntax
undefined setValue (modelName, paramName, attribute, value)
Description
Sets the model parameter value based on the following arguments.
modelName
paramName
attribute
value
If the attribute is "IsVal", the value must be boolean. If the attribute is "expr", the value
must be a string. Otherwise, the value must be a number or the string "blank".
Throws a JavaScript Error object if any of the inputs are invalid.
Example
myModelLib.setValue ("nch", "VTH0", "optVal", 0.75);
Note: The model parameters will not be saved to the database until saveProject is called.
222
Script Module
Description
Returns a string containing the name of the Extraction.
Example
myExtractionName = myExtraction.getName ();
223
Script Module
Description
Returns a string containing the expression of the Variable.
Example
myExpression = myVariable.getExpr ();
9.13.2 getName ()
Syntax
string getName ()
Description
Returns a string containing the name of the Variable.
Example
myName = myVariable.getName ();
224
Script Module
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.
DataSet[]
Example
mySmallDataSets = myDataSubset.apply (myLargeDataSets);
225
Script Module
Description
Returns a string containing the name of the optimization algorithm from the optimization
setup.
Example
myOptimizer = myOptimSetup.getOptimizerType ();
226
Script Module
dieName,
Description
Performs a measurement to generate measured data in the resulting dataSet based on the
following arguments.
temperature
batchName
waferName
dieName
device
A Device object.
measSetup
A MeasSetup object.
variable []
waferMap
A WaferMap object.
connection
A Connection object.
Example
myDataSet = myHardware.measure (27, "lot1", "1", "1", myDevice,
myMeasSetup, vars, myWaferMap, myConnection);
227
Script Module
9.16.2 measureWithOpen
Syntax
dataSet
measureWithOpen
(temperature,
batchName,
waferName,
dieName, device, measSetup, variable [], waferMap, connection,
openDataSet)
Description
Performs a measurement to generate measured data in the resulting dataSet based on the
following arguments.
temperature
batchName
waferName
dieName
device
A Device object.
measSetup
A MeasSetup object.
variable []
waferMap
A WaferMap object.
connection
A Connection object.
openDataSet
Example
myDataSet = myHardware.measureWithOpen (27, "lot1", "1", "1",
myDevice,
myMeasSetup,
vars,
myWaferMap,
myConnection,
myOpenDataSet);
Note: measureWithOpen cannot be used with DC or DC_TABLE measurements.
228
Script Module
9.16.3 measureWithShort
Syntax
dataSet
measureWithShort
(temperature,
batchName,
waferName,
dieName, device, measSetup, variable [], waferMap, connection,
shortDataSet)
Description
Performs a measurement to generate measured data in the resulting dataSet based on the
following arguments.
temperature
batchName
waferName
dieName
device
A Device object.
measSetup
A MeasSetup object.
variable []
waferMap
A WaferMap object.
connection
A Connection object.
shortDataSet
Example
myDataSet = myHardware.measureWithShort (27, "lot1", "1", "1",
myDevice,
myMeasSetup,
vars,
myWaferMap,
myConnection,
myShortDataSet);
Note: measureWithShort can only be used with AC or AC_TABLE measurements.
229
Script Module
9.16.4 measureWithOpenAndShort
Syntax
dataSet
measureWithOpen
(temperature,
batchName,
waferName,
dieName, device, measSetup, variable [], waferMap, connection,
openDataSet, shortDataSet)
Description
Performs a measurement to generate measured data in the resulting dataSet based on the
following arguments.
temperature
batchName
waferName
dieName
device
A Device object.
measSetup
A MeasSetup object.
variable []
waferMap
A WaferMap object.
connection
A Connection object.
openDataSet
shortDataSet
Example
myDataSet = myHardware.measureWithOpenAndShort (27, "lot1", "1",
"1", myDevice, myMeasSetup, vars, myWaferMap, myConnection,
myOpenDataSet, myShortDataSet);
Note: measureWithOpenAndShort can only be used with AC or AC_TABLE measurements.
230
Script Module
9.16.5 proberContact
Syntax
Undefined proberContact ()
Description
This command will move the prober into the contact position.
Example
myHardware.proberContact ();
9.16.6 proberInit
Syntax
Undefined proberInit ()
Description
This command will initialize the prober.
Example
myHardware.proberInit ();
9.16.7 proberHome
Syntax
Undefined proberHome ()
Description
This command will move the prober back to the initial home location.
Example
myHardware.proberHome ();
9.16.8 proberLoad
Syntax
Undefined proberLoad (waferMap, waferName)
Description
This command will load the wafer as defined by the following arguments.
waferMap
A WaferMap object.
waferName
Example
myHardware.proberLoad (myWaferMap, "wafer1");
231
Script Module
9.16.9 proberMove
Syntax
Undefined proberMove (waferMap, dieName, groupName)
Description
This command will move the wafer as defined by the following arguments.
waferMap
A WaferMap object.
dieName
groupName
Example
myHardware.proberMove (myWaferMap, "x0y0", "group1");
Note: The group name may be empty if intra die stepping is not being used.
9.16.10 proberNoContact
Syntax
Undefined proberNoContact ()
Description
This command will move the prober into the no contact position.
Example
myHardware.proberNoContact ();
9.16.11 scannerClear
Syntax
Undefined scannerClear ()
Description
This command will clear the scanner connections.
Example
myHardware.scannerClear ();
232
Script Module
9.16.12 scannerConnect
Syntax
Undefined
scannerConnect
connection)
(device,
measSetup,
variable
[],
Description
This command will make the scanner connections according to the following arguments.
device
A Device object.
measSetup
A MeasSetup object.
variable []
connection
A Connection object.
Example
myHardware.scannerConnect
myConnection);
(myDevice,
myMeasSetup,
vars,
9.16.13 thermalSet
Syntax
Undefined thermalSet (temperature)
Description
This command will set the temperature according to the following argument.
temperature
Example
myHardware.thermalSet (27);
233
Script Module
9.16.14 verify
Syntax
Boolean verify (name)
Description
This command will verify the hardware based on the following arguments.
name
Example
success = myHardware.verify ("dc");
234
Script Module
Description
Returns a string containing the name of the batch from the wafer map object.
Example
myBatchName = myWaferMap.getBatchName ();
9.17.2 getDieNames
Syntax
string[] getDieNames ()
Description
Returns an array of strings containing the names of the enabled die from the wafer map
object.
Example
myDieNames = myWaferMap.getDieNames ();
9.17.3 getWaferNames
Syntax
string[] getWaferNames ()
Description
Returns an array of strings containing the names of the enabled wafers from the wafer map
object.
Example
myWaferNames = myWaferMap.getWaferNames ();
235
Script Module
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.
Device[]
Example
mySmallDevices = myDeviceSubset.apply (myLargeDevices);
236
Script Module
Description
Returns a string containing the group name of the Device.
Example
myGroupName = myDevice.getGroupName ();
9.19.2 getName
Syntax
string getName ()
Description
Returns a string containing the name of the Device.
Example
myDeviceName = myDevice.getName ();
237
Script Module
Description
Returns a string containing the name of the DeviceNode.
Example
myName = myDeviceNode.getName ();
9.20.2 getPins
Syntax
[number] getPins ()
Description
Returns an array of numbers containing the pins of the DeviceNode.
Example
myPins = myDeviceNode.getPins ();
238
Script Module
Description
Returns a string containing the name of the Attribute.
Example
myName = myAttribute.getName ();
9.21.2 getValue
Syntax
number getValue ()
Description
Returns a number containing the value of the Attribute.
Example
myValue = myAttribute.getValue ();
239
Chapter 10
Model Check Module
The model check module allows you to test out, to verify, and to explore your existing SPICE
models. 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, rather it uses
files to store and load the project. To run the model check module, you must use the '-mc'
command line option.
utmost4 -mc
When this command line option is used, the Model Check project window will open as shown
below.
241
Setting Up a Simulation
toolbar icon.
Field
Description
Name
Simulator
Model Name
Library
The location of the model. You can choose from the Optimized, Fit Initial,
or User columns of the internal model library. Or, you can read the model
directly from an external model library file.
External Library
Here, you enter the SPICE commands to load the external library file.
242
toolbar icon.
Description
Name
Characteristics
Voltage Ranges
Note: Once you create a plot, it will immediately be placed into the model check sequence.
243
244
Description
Name
Extraction
Sweep
Start
Step
Points
Voltage Ranges
Note: Once you create a plot, it will immediately be placed into the model check sequence.
245
246
247
Description
Explorer
Characteristics
248
Appendix A
Optimization Algorithms
Optimization Algorithms
Assume that we are given a set of physical measurements of various quantities (e.g., current
or voltage) and there are physically based models, which describe the behavior of the system.
The purpose of the optimization is to find the values of the parameters that fit best the
available physical measurements. There are two types of errors that the optimization needs to
take into account. 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. The second comes from
inevitable errors in physical measurements.
The optimizers work by assigning an error metric to given values of model parameters. The
error metric is based on the differences between the predicted values of the physical quantities
and the actual measurements of the same quantities. The lower the error metric, the better are
the values of the model parameters. The optimizers seek values of parameters, which
minimize the error metric.
In principle, the optimizers could try all possible values of parameters and find those that
yield the lowest error. However, this would take an impossibly long time to do and the
optimizers must use faster strategies to achieve the best parameter values. Utmost IV supports
the following optimization algorithms.
Local Optimization Algorithms
Levenberg-Marquardt
Hooke-Jeeves
Simulated Annealing
Parallel Tempering
Genetic Algorithm
Differential Evolution
Hybrid
Local optimization algorithms are fast, but usually will only work if the initial parameters are
close to the final optimized values. Global optimization algorithms use more iterations while
attempting to find the optimum parameter values but do not require any preconditioning of
the parameter values. The hybrid optimization algorithm combines the best features of both
types.
Each of these algorithms is described below.
250
Optimization Algorithms
251
Optimization Algorithms
252
Optimization Algorithms
253
Optimization Algorithms
254
Optimization Algorithms
Minimum temperature
Cooling factor
Stop condition
255
Optimization Algorithms
256
Optimization Algorithms
Stop condition
257
Optimization Algorithms
Selection
Crossover probability
258
Optimization Algorithms
Mutation probability
Use elitism
Stop condition
259
Optimization Algorithms
Amplification factor
Crossover probability
260
Optimization Algorithms
Strategy
Stop condition
261
Optimization Algorithms
Second optimizer
The first optimization will stop and the second will begin if this error
metric is reached.
262
Appendix B
Converting Data from ICCAP,
BSIMPro, ProPlus, and Atlas
Data stored in Utmost III format logfiles and Utmost IV format data files can be directly
imported into the Utmost IV database. Data stored in other formats will first have to be
converted into the Utmost IV data file format. A number of scripts are provided to perform
this conversion. These scripts are located in the <install directory>/lib/utmost4/
<version>/scripts directory. The script with the .awk suffix will convert a single file, the
other script is used to automate the conversion of multiple files.
Data Format
File Extension
Script Names
ICCAP
.mdm
iccap_to_ut4_dc.awk
iccap_to_ut4_dc
BSIMPro
.iv
bsimpro_old_to_ut4_dc.awk
bsimpro_old_to_ut4_dc
ProPlus
.dat
bsimpro_to_ut4_dc.awk
bsimpro_to_ut4_dc
Atlas
.log
atlas_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. There are many versions of awk available including awk, nawk, and gawk.
To convert a single ICCAP file called in .mdm into an Utmost IV file called out.uds, you
would issue the following command.
awk -f iccap_to_ut4_dc.awk in.mdm > out.uds
If you try to import this file into Utmost IV, this will fail due to key information, which is
missing from the ICCAP file. You can edit the file manually to enter this information,
however, the following sections will explain how to add this information through the
command line.
Note: The '>' operator in the command line above will cause the out.uds file to be overwritten. If you wish to
append to the file, then you should use the '>>' operator.
264
Information
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, to add a batch name and wafer name when converting the example ICCAP file,
you would enter the following command.
nawk -f iccap_to_ut4_dc.awk in.mdm batchname=B1 wafername=16 >
out.uds
Note: Do not leave additional whitespace characters around the '=' symbol in any of the command line options.
This example would add an attribute named 'W' with a value of 10e-6.
265
Adding a Function
For a cartesian plot with both Y1 and Y2 axes, you would use the following command line
option.
plot_3="id_and_gm::XYY(LIN LIN LIN)::VG::ID::gm"
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, the data is often
confusing. The data shown below has 3 sweeps and shows how a plot would look with all
data combined. It is difficult to visualize what is happening with the data from this plot.
266
To convert the ICCAP data with 3 sweeps into multiple 2 sweep datasets, you can use the
following command line option.
make_2d_data=1
The figure below shows this same data split into multiple separate 2 sweep datasets and
displayed by Utmost IV. It is much easier to analyze the data when presented in this way.
Description
pol_for_volt=1
pol_for_data=-1
267
This is followed by a single line for each data file, which is to be converted and which
contains the information for each of the fields listed in the header line. For example, an input
file with the header line and two files to be converted would look like this.
filename;batchname;wafername;diename;devicename;datasetname;temperature
/mydir1/iccap1.mdm;batch1;wafer1;1;n10x10;idvg;27
/mydir2/iccap2.mdm;batch2;wafer15;p10x2;idvd;125
Note: There must not be any additional spaces around the ';' separator in the input file.
To run the script simply enter the command 'iccap_to_ut4_dc' and all of the files listed in
the iccap_to_ut4_dc.in file will be converted and written automatically to a file called
iccap_to_awk_dc.uds.
Note: Running the automation script will cause the output .uds file to be overwritten.
Once the single Utmost IV data file containing all of the data from the multiple source files is
created, this can then be imported into the Utmost IV database as described in Section 4.5
Importing Datasets.
268
Index
A
AC .................................................................................... 81
AC Data ............................................................................. 37
AC_TABLE ......................................................................... 81
Acquisition Module ................................................. 14, 52101
addAttribute ...................................................................... 197
addCard .......................................................................... 214
addFunction ..................................................................... 197
Adding Dataset Information
Dataset Attribute .................................................... 119120
Dataset Key .................................................................. 119
Measurement Condition ................................................... 121
Selecting Label Positions ................................................. 122
Temperature ................................................................. 118
addParameter ................................................................... 214
addPlot ............................................................................ 198
Append Plot ...................................................................... 111
appendSearch .................................................................. 212
apply ....................................................................... 225, 236
Atlas ............................................................................... 264
attr ......................................................................... 146, 159
Attribute Object ................................................................. 239
B
Batch Name ....................................................................... 56
bias_trace ........................................................................ 147
Boxes ............................................................................. 152
BSIMPro .......................................................................... 264
Database ...........................................................................17
Database Manager ...............................................................48
Database Object ........................................................191192
Dataset
Additional Information ..............................................117122
Dataset Keys ..............................................................33, 119
DataSet Object ..........................................................197203
Dataset Permissions .............................................................39
Dataset Selector ..........................................................53, 103
Dataset Subset ..................................................................157
DataSubset Object .............................................................225
DC ....................................................................................81
DC_TABLE .........................................................................81
dcImportFromTCADLogfile ...........................................193, 204
DE ..........................................................................260261
deleteCard .......................................................................215
deleteParameter ................................................................215
derivative ...................................................................92, 147
Device Object ...................................................................237
Device Subset .....................................................................79
DeviceNode Object ............................................................238
Devices .......................................................................6668
DeviceSubset Object ..........................................................236
Die List ..............................................................................59
Die Map .......................................................................5658
Die Selection ................................................................5661
Differential Evolution ...................................................260261
Directory Object .........................................................193196
Drop In ..............................................................................61
C
capImportFromTCADLogfile ......................................... 193, 204
Characteristic Plot ...................................................... 243244
Common Device Nodes ......................................................... 95
Compact Model ................................................................. 124
Configuring Firewalls ............................................................ 17
Connections ................................................................. 7778
Constant ............................................................................ 85
Continuous ................................................................. 98, 166
Controller ..................................................................... 7173
Converting Data ........................................................ 263268
CSV Format ....................................................................... 46
Custom Method ................................................................... 65
D
Data Floor ........................................................................ 152
E
ENET ................................................................................73
Error Calculation ........................................................150153
Explore ............................................................................248
Exporting a Project ...............................................................30
Exporting Datasets ...............................................................45
Exporting Model Cards ................................................136137
Exporting Model Params ..............................................138139
Exporting Netlists ...............................................................127
exportModelCard ...............................................................216
exportModelCardToSSF ......................................................217
exportToTCADLogfile .........................................................198
Expression ...............................................................144145
External Model Library ........................................................126
extr .................................................................................159
extract .............................................................................199
269
Index
F
find_x_given_y .......................................................... 147, 148
Firebird Database Server ....................................................... 16
Fit Initial ........................................................................... 128
ft ...................................................................................... 92
Function ...................................................................... 9294
G
GA ......................................................................... 258259
generateBinnedModel ................................................. 217218
Genetic Algorithm ...................................................... 258259
getAttrVal ......................................................................... 199
getBatchName .................................................................. 235
getCardNames .................................................................. 218
getCardType ..................................................................... 218
getConnection ................................................................... 204
getDataFromSimulation2 ..................................................... 184
getDataSubset .................................................................. 204
getDataSubsetNames ......................................................... 204
getDevice ......................................................................... 205
getDeviceNames ............................................................... 205
getDevices ....................................................................... 205
getDeviceSubset ............................................................... 205
getDeviceSubsetNames ...................................................... 206
getDieNames .................................................................... 235
getExpr () ......................................................................... 224
getExtraction .................................................................... 206
getExtractionNames ........................................................... 206
getExtractions ................................................................... 206
getGroupName .................................................................. 237
getHardware ..................................................................... 207
getKeyVal ........................................................................ 200
getMeasData .................................................................... 200
getMeasSetup ................................................................... 207
getMeasSetupNames ......................................................... 207
getModelLibrary ................................................................. 207
getName .................................................. 223, 237, 238, 239
getName () ....................................................................... 224
getNetlist ......................................................................... 208
getNetlistOfDevice ............................................................. 208
getOptimizerType .............................................................. 226
getOptimSetup .................................................................. 208
getOptimSetupNames ......................................................... 208
getParamNames ................................................................ 219
getPath ............................................................................ 194
getPins ............................................................................ 238
H
Hardware ...........................................................................70
Hardware Object ........................................................227234
hasCard ...........................................................................220
hasParameter ...................................................................220
Header Information ...............................................................56
HJ ..........................................................................252253
Hooke-Jeeves ...........................................................252253
HY ..................................................................................262
Hybrid .............................................................................262
Hybrid Optimization ............................................................250
I
ICCAP .............................................................................264
Importing a Project .........................................................2829
Importing Datasets .........................................................4144
Importing Model Cards ................................................132133
Importing Model Params ..............................................134135
importModelCards ......................................................220221
Instrument ..........................................................................74
Iteratee Sweep ....................................................................88
Iterator ..............................................................................87
J
JavaScript ........................................................................183
K
key .........................................................................146, 159
L
LCR ..................................................................................81
270
Index
Optimize ..........................................................................156
optimize3 .................................................................188189
Optimized .........................................................................128
Optimizer .........................................................................158
OptimSetup Object .............................................................226
Outlier .............................................................................153
Owner ...............................................................................49
P
M
Macro Model ..................................................... 125126, 180
makeAttribute ................................................................... 185
makeDevice ..................................................................... 185
makeExtraction ................................................................. 186
makeModelLibrary ............................................................. 186
makeNetlist ...................................................................... 187
makeVariable .................................................................... 187
Manual Ground ................................................................... 78
Marking ........................................................................... 143
measure .......................................................................... 227
Measurement Mode ............................................................. 97
Measurement Sequence .......................................... 53, 96101
Measurement Setup ....................................................... 8081
measureWithOpen ............................................................. 228
measureWithOpenAndShort ................................................. 230
measureWithShort ............................................................. 229
Mirror ................................................................................ 86
Model Card ...................................................................... 129
Model Check Module ............................................ 14, 240248
Model Check Sequence ...................................................... 247
Model Library .............................................. 78, 128145, 243
Model Parameters .............................................................. 142
ModelLibrary Object ................................................... 214222
SA ..........................................................................254255
saveDataSets ...................................................191, 193, 195
saveProject ..............................................................192, 195
Scanner .............................................................................75
scannerClear ....................................................................232
scannerConnect ................................................................233
271
Index
W
Wafer List ...........................................................................56
Wafer Map ...................................................................5565
WaferMap Object ...............................................................235
Weight .............................................................................152
writeCSVFile .....................................................................203
writeToFile .......................................................................190
X
xintercept .................................................................147, 148
Y
yintercept .........................................................................147
T
Target ............................................................................... 90
Temperatures ..................................................................... 54
thermalSet ....................................................................... 233
trace ....................................................................... 147, 159
U
Unlocking ........................................................................... 51
Unmarking ....................................................................... 143
Upgrading Database Version .................................................. 18
USB .................................................................................. 73
user .................................................................................. 17
User Initial ........................................................................ 128
Utmost4 Object ................................................................. 184
V
var .................................................................................. 146
Variable Object .................................................................. 224
Variables ................................................................... 69, 148
verify ............................................................................... 234
Verilog-A .......................................................... 172, 175, 177
vt_at_current .................................................................... 148
vt_lin ............................................................................... 148
vt_sat .............................................................................. 148
272