Вы находитесь на странице: 1из 271

Utmost IV

Users Manual

Silvaco, Inc.
4701 Patrick Henry Drive, Bldg. 2
Santa Clara, CA 95054
Phone:
(408) 567-1000
Web:
www.silvaco.com

May 12, 2015

Notice
The information contained in this document is subject to change without notice.
Silvaco, Inc. MAKES NO WARRANTY OF ANY KIND WITH REGARD TO THIS
MATERIAL, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTY
OF FITNESS FOR A PARTICULAR PURPOSE.
Silvaco, Inc. shall not be held liable for errors contained herein or for incidental or
consequential damages in connection with the furnishing, performance, or use of this
material.
This document contains proprietary information, which is protected by copyright laws of the
United States. All rights are reserved. No part of this document may be photocopied,
reproduced, or translated into another language without the prior written consent of Silvaco,
Inc.
AccuCell, AccuCore, Athena, Athena 1D, Atlas, Blaze, C-Interpreter, Catalyst AD, Catalyst
DA, Clarity RLC, Clever, Clever Interconnect, Custom IC CAD, DeckBuild, DevEdit,
DevEdit 3D, Device 3D, DRC Assist, Elite, Exact, Expert, Expert C++, Expert 200,
ExpertViews, Ferro, Gateway, Gateway 200, Giga, Giga 3D, Guardian, Guardian DRC,
Guardian LVS, Guardian NET, Harmony, Hipex, Hipex C, Hipex NET, Hipex RC,
HyperFault, Interconnect Modeling, IWorkBench, Laser, LED, LED 3D, Lisa, Luminous,
Luminous 3D, Magnetic, Magnetic 3D, MaskViews, MC Etch & Depo, MC Device, MC
Implant, Mercury, MixedMode, MixedMode XL, MultiCore, Noise, OLED, Optolith,
Organic Display, Organic Solar, OTFT, Quantum, Quantum 3D, Quest, RealTime DRC, REM
2D, REM 3D, SEdit, SMovie, S-Pisces, SSuprem 3, SSuprem 4, SDDL, SFLM, SIPC, SiC,
Silvaco, Silvaco Management Console, SMAN, Silvaco Relational Database, Silos,
Simulation Standard, SmartSpice, SmartSpice 200, SmartSpice API, SmartSpice Debugger,
SmartSpice Embedded, SmartSpice Interpreter, SmartSpice Optimizer, SmartSpice RadHard,
SmartSpice Reliability, SmartSpice Rubberband, SmartSpice RF, SmartView, SolverLib,
Spayn, SpiceServer, Spider, Stellar, TCAD Driven CAD, TCAD Omni, TCAD Omni Utility,
TCAD & EDA Omni Utility, TFT, TFT 3D, Thermal 3D, TonyPlot, TonyPlot 3D, TurboLint,
Universal Token, Universal Utility Token, Utmost III, Utmost III Bipolar, Utmost III Diode,
Utmost III GaAs, Utmost III HBT, Utmost III JFET, Utmost III MOS, Utmost III MultiCore,
Utmost III SOI, Utmost III TFT, Utmost III VBIC, Utmost IV, Utmost IV Acquisition
Module, Utmost IV Model Check Module, Utmost IV Optimization Module, Utmost IV
Script Module, VCSEL, Verilog-A, Victory, Victory Cell, Victory Device, Victory Device
Single Event Effects, Victory Process, Victory Process Advanced Diffusion & Oxidation,
Victory Process Monte Carlo Implant, Victory Process Physical Etch & Deposit, Victory
Stress, Virtual Wafer Fab, VWF, VWF Automation Tools, VWF Interactive Tools, and Vyper
are trademarks of Silvaco, Inc.
All other trademarks mentioned in this manual are the property of their respective owners.
Copyright 1984 - 2015, Silvaco, Inc.

Utmost IV Users Manual

How to Read this Manual

Style Conventions
Font Style/Convention

Description

Example

This represents a list of items or


terms.

1.

This represents a set of directions


to perform an action.

To open a door:
1. Unlock the door by inserting
the key into keyhole.
2. Turn key counter-clockwise.
3. Pull out the key from the
keyhole.
4. Grab the doorknob and turn
clockwise and pull.

This represents a sequence of


menu options and GUI buttons to
perform an action.

FileOpen

Courier

This represents the commands,


parameters, and variables syntax.

HAPPY BIRTHDAY

Times Roman Bold

This represents the menu options


and buttons in the GUI.

File

New Century
Italics

This represents the variables of


equations.

x+y=1

2.
3.

Note:

Schoolbook

This represents the additional


important information.

Bullet A
Bullet B
Bullet C

Note: Make sure you save often when


working on a manual.

Utmost IV Users Manual

Table of Contents
Chapter 1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Chapter 2
Getting Started . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.1 Installing the Firebird Database Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.2 Configuring Firewall for Firebird Database Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.3 Creating a Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.4 Upgrading your Utmost IV Database Version . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.5 Connecting to a Database from Utmost IV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.6 Setting Up the SmartView Viewer for Utmost IV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

Chapter 3
Databases and Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.1 Opening a Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.2 Closing a Database. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.3 Logging Into and Out of a Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.4 Changing the User Password for a Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.5 Creating a New Project. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.6 Opening a Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.7 Modifying the Project Permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.8 Importing a Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.9 Exporting a Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.10 Reading Project Parts from Existing Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

Chapter 4
Datasets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
4.1 Dataset Keys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.2 Editing a Dataset. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4.3 Modifying the Dataset Permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
4.4 Deleting Datasets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.5 Importing Datasets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4.6 Exporting Datasets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.7 Writing a Dataset out to CSV Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

Chapter 5
Managing the Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
5.1 Deleting Projects and Datasets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
5.2 Changing the Owner of Projects and Datasets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
5.3 Changing the Permissions of Projects and Datasets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
5.4 Unlocking Projects and Datasets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

Chapter 6
Acquisition Module. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

Utmost IV Users Manual

Table of Contents

6.1 Defining Temperatures. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54


6.2 Defining the Wafer Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
6.2.1 Defining the Header, Batch and Wafer Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
6.2.2 Defining the Die Selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
6.2.3 Defining the Group Selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
6.3 Defining Devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
6.4 Defining Extractions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
6.5 Defining Variables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
6.6 Defining Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
6.6.1 Editing the Controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
6.6.2 Editing an Instrument . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
6.6.3 Editing the Scanner Instrument . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
6.6.4 Editing the Noise Instrument . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
6.7 Defining Connections. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
6.7.1 Manual Ground Connections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
6.8 The Model Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
6.9 The Device Subset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
6.10 The Measurement Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
6.10.1 Defining the Node Names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
6.10.2 Defining a Sweep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
6.10.3 Defining a Constant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
6.10.4 Defining the Mirror . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
6.10.5 Defining the Iterator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
6.10.6 Defining the Iteratee Sweep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
6.10.7 Defining a Pulse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
6.10.8 Defining a Target . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
6.10.9 Defining the LCR Source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
6.10.10 Defining the LCR Target . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
6.10.11 Defining a Port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
6.10.12 Defining the Noise Target . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
6.10.13 Defining a Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
6.10.14 Defining a Plot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
6.10.15 Common Device Nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
6.11 The Extraction Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
6.12 Acquiring Data using the Measurement Sequence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
6.12.1 Selecting Measurement Mode or Simulation Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
6.12.2 Combining the Device Subset and the Measurement Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
6.12.3 Combining the Device Subset and the Extraction Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
6.12.4 Running the Measurement Sequence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
6.12.5 Capacitance Calibration and De-embedding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
6.12.6 Generating a Script Version of the Measurement Sequence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
6.13 The Measured Datasets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101

Chapter 7
Optimization Module. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
7.1 Creating and Managing Searches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
7.2 Searching for Datasets in the Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
7.3 Sorting Datasets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
7.4 Displaying Dataset Plots in the Viewer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111

Utmost IV Users Manual

Table of Contents

7.4.1 Displaying Plots from Datasets with Multiple Sweeps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112


7.4.2 Displaying Additional Information about the Dataset in the Viewer . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
7.5 Defining the Netlist for Simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
7.5.1 Compact Model SPICE Netlist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
7.5.2 Macro Model Netlist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
7.5.3 Reading from an External Model Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
7.5.4 Exporting the Netlist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
7.6 The Model Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
7.6.1 Creating a New Model Card . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
7.6.2 Copying a Model Column . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
7.6.3 Changing a Model Card . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
7.6.4 Duplicating a Model Card . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
7.6.5 Deleting a Model Card . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
7.6.6 Clearing the Model Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
7.6.7 Importing Model Cards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
7.6.8 Importing Model Params . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
7.6.9 Exporting Model Cards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
7.6.10 Exporting Model Params . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
7.6.11 Exporting Model Library to Spayn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
7.6.12 Inserting Model Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
7.6.13 Renaming a Model Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
7.6.14 Editing Model Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
7.6.15 Deleting Model Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
7.6.16 Marking and Unmarking Model Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
7.6.17 Using an Expression to Define a Model Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
7.7 Defining Extractions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
7.8 Defining Variables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
7.9 Comparing Measured and Simulated Data. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
7.10 Error Calculation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
7.10.1 Linear and Logarithmic Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
7.10.2 Data Floor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
7.10.3 Effect of Boxes on Error Calculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
7.10.4 Outlier Removal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
7.10.5 Displaying the Error on the Viewer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
7.11 Using Rubberband to Explore and Modify Model Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
7.11.1 Selecting a Parameter to Rubberband . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
7.11.2 Modifying Parameter Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
7.11.3 Saving the Parameter Modifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
7.11.4 De-selecting a Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
7.11.5 Reverting to the Last Saved Model Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
7.11.6 Optimizing Model Parameters from Rubberband . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
7.12 Optimizing the Model Parameters from the Viewer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
7.13 The Dataset Subset. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
7.14 The Optimization Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
7.14.1 Choosing an Optimizer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
7.14.2 Defining the Optimization Target Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
7.14.3 Choosing the Model Parameters to Optimize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
7.15 The Extraction Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
7.16 Automation Using the Optimization Sequence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
7.16.1 Combining the Dataset Subset and Extraction Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162

Utmost IV Users Manual

Table of Contents

7.16.2 Combining the Dataset Subset and Optimization Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162


7.16.3 Displaying the Data for the Optimization Step . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
7.16.4 Running the Optimization Sequence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
7.16.5 Changing the Current Position in the Sequence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
7.16.6 Inserting a Pause in the Sequence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
7.16.7 Using Rubberband from the Optimization Sequence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
7.16.8 Generating a Script Version of the Optimization Sequence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
7.17 Reporting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
7.17.1 Automated Report Document Generation using the Sequence . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
7.17.2 Automatic Plot File Generation using the Sequence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169

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

Utmost IV Users Manual

Table of Contents

9.5.3 saveDataSets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191


9.5.4 saveProject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
9.6 Directory Object Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
9.6.1 capImportFromTCADLogfile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
9.6.2 dcImportFromTCADLogfile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
9.6.3 getPath . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
9.6.4 readDataSets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
9.6.5 readProject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
9.6.6 saveDataSets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
9.6.7 saveProject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
9.6.8 sparImportFromTCADLogfile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
9.7 DataSet Object Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
9.7.1 addAttribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
9.7.2 addFunction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
9.7.3 addPlot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
9.7.4 exportToTCADLogfile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
9.7.5 extract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
9.7.6 getAttrVal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
9.7.7 getKeyVal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
9.7.8 getMeasData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
9.7.9 getSimData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
9.7.10 getSweepLen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
9.7.11 remove . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
9.7.12 setKeys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
9.7.13 simulate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
9.7.14 writeCSVFile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
9.8 Project Object Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
9.8.1 getConnection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
9.8.2 getDataSubset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
9.8.3 getDataSubsetNames . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
9.8.4 getDevice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
9.8.5 getDevices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
9.8.6 getDeviceNames . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
9.8.7 getDeviceSubset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
9.8.8 getDeviceSubsetNames . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
9.8.9 getExtraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
9.8.10 getExtractions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
9.8.11 getExtractionNames . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
9.8.12 getHardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
9.8.13 getMeasSetup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
9.8.14 getMeasSetupNames . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
9.8.15 getModelLibrary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
9.8.16 getNetlist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
9.8.17 getNetlistOfDevice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
9.8.18 getOptimSetup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
9.8.19 getOptimSetupNames . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
9.8.20 getSearch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
9.8.21 getSearchNames . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
9.8.22 getSimulationCol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
9.8.23 getTemperatures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209

Utmost IV Users Manual

Table of Contents

9.8.24 getType . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210


9.8.25 getVariable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
9.8.26 getVariables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
9.8.27 getVariableNames . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
9.8.28 getWaferMap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
9.8.29 setModelLibrary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
9.8.30 setVariables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
9.9 Search Object Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
9.9.1 appendSearch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
9.10 Netlist Object Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
9.10.1 getSearch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
9.11 ModelLibrary Object Commands. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
9.11.1 addCard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
9.11.2 addParameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
9.11.3 deleteCard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
9.11.4 deleteParameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
9.11.5 exportModelCard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
9.11.6 exportModelCardToSSF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
9.11.7 generateBinnedModel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
9.11.8 getCardNames . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
9.11.9 getCardType . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
9.11.10 getParamNames . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
9.11.11 getValue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
9.11.12 hasCard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
9.11.13 hasParameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
9.11.14 importModelCards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
9.11.15 importModelParams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
9.11.16 renameCard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
9.11.17 setValue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
9.12 Extraction Object Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
9.12.1 getName . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
9.13 Variable Object Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
9.13.1 getExpr () . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
9.13.2 getName () . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
9.14 DataSubset Object Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
9.14.1 apply . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
9.15 OptimSetup Object Commands. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
9.15.1 getOptimizerType . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
9.16 Hardware Object Commands. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
9.16.1 measure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
9.16.2 measureWithOpen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
9.16.3 measureWithShort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
9.16.4 measureWithOpenAndShort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
9.16.5 proberContact . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
9.16.6 proberInit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
9.16.7 proberHome . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
9.16.8 proberLoad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
9.16.9 proberMove . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232
9.16.10 proberNoContact . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232
9.16.11 scannerClear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232

Utmost IV Users Manual

Table of Contents

9.16.12 scannerConnect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233


9.16.13 thermalSet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
9.16.14 verify . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
9.17 WaferMap Object Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
9.17.1 getBatchName . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
9.17.2 getDieNames . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
9.17.3 getWaferNames . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
9.18 DeviceSubset Object Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
9.18.1 apply . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
9.19 Device Object Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
9.19.1 getGroupName . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
9.19.2 getName . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
9.20 DeviceNode Object Commands. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
9.20.1 getName . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
9.20.2 getPins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
9.21 Attribute Object Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
9.21.1 getName . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
9.21.2 getValue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239

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

Utmost IV Users Manual

Chapter 1
Introduction

Introduction

Utmost IV provides an easy to use, database-driven environment for the measurement of


semiconductor devices and the generation of accurate high quality SPICE models and
macromodels for analog, mixed-signal, and RF applications. Important features of Utmost IV
include the following.

Support for all technologies and types of device.


Fully integrated macro-model sub-circuit support of any complexity.
Family of advanced optimization algorithms for both local and global optimization.
A relational database to help organize your work.
Fully flexible measurement setup conditions.
Fully automated measurement sequence.
Open instrument drivers written in JavaScript scripting language can be modified or
copied by customers who want to write their own.
Easy to import measured data from other sources.
High speed interface to SmartSpice simulator for fast and accurate results.
Parallel SmartSpice gives even faster simulation for multi-CPU computers.
Support for other simulators (HSPICE, SPECTRE, and ELDO).
Unlimited multi-target optimization and rubberband optimization.
Optimization sequence for automated model extraction.
Direct parameter extraction can be included within the sequence.
Script module JavaScript language provides easy automation and customization.

Utmost IV consists of four modules as shown in the figure below.

Figure 1-1 Utmost IV Architecture

13

Utmost IV Users Manual

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.

Model Check Module


This module provides a simple tool to explore and test your existing MOSFET device models.
A simple GUI interface allows you to display characteristic curves or plot extracted
characteristics, such as threshold voltage versus device length. This module can be used
without the need to create and interface to the database, making it ideal for quickly checking
your legacy models.
Each of these modules is described in this manual.

14

Utmost IV Users Manual

Chapter 2
Getting Started

Installing the Firebird Database Server

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.

2.1 Installing the Firebird Database Server


Linux
Once the software package is installed into the local installation directory, the Firebird
database server can be configured and the server can be started. To do this, log into the server
machine as the root user and type the following command:
'firebird -install'

Windows
Run the installation executable and follow the on screen instructions. When you install the
software, you should also select and install the firebird database server at the same time as
shown below.

Figure 2-1 Installing the Firebird Database Server on Windows

16

Utmost IV Users Manual

Configuring Firewall for Firebird Database Server

Getting Started

2.2 Configuring Firewall for Firebird Database Server


If you are having problems connecting to your firebird database server from another machine
on your network, your firewall may be blocking communications. Firebird uses port 3050 to
communicate and this port must not be blocked by your firewall. If you are having difficulties
connecting to the database server, you should consult your system administrator.

2.3 Creating a Database


To create a database you must use the SRDB utility. On Linux, you can run this utility by
typing 'srdb' in the terminal window. On Windows, you can double-click on the SRDB
shortcut to run the utility.
Now, connect to the database server using the following command:
'login <servername>'

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

Utmost IV Users Manual

Upgrading your Utmost IV Database Version

Getting Started

2.4 Upgrading your Utmost IV Database Version


When upgrading to a more recent version of Utmost IV, it will sometimes be necessary to
upgrade the version of your Utmost IV database. This is done using the SRDB utility. On
Linux, you can run this utility by typing 'srdb' in the terminal window. On Windows, you
can double-click on the SRDB shortcut to run the utility.
Now, connect to the database server using the following command:
'login <servername>'

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

Utmost IV Users Manual

Connecting to a Database from Utmost IV

Getting Started

2.5 Connecting to a Database from Utmost IV


To run Utmost IV on Linux, type 'utmost4' into the command terminal. To run Utmost IV
on Windows, simply double click the Utmost IV shortcut in the Shortcuts folder. When
Utmost IV is run for the first time, an empty Utmost IV main window will open as shown
below.

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.

Figure 2-3 Open Database Dialog


Once you select the database you are interested in, you will have to login to this database
using a valid database user and password.

19

Utmost IV Users Manual

Connecting to a Database from Utmost IV

Getting Started

Figure 2-4 Database Login Dialog


Once you have successfully logged into the database, you will see the new database available
in the Utmost IV main window as shown below.

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

Utmost IV Users Manual

Setting Up the SmartView Viewer for Utmost IV

Getting Started

Note: If you are having problems connecting to your firebird database server from another machine on your
network, see Section 2.2 Configuring Firewall for Firebird Database Server.

2.6 Setting Up the SmartView Viewer for Utmost IV


If you have not used SmartView before and display data from Utmost IV, the plot will be
similar to the one shown below.

Figure 2-7 A Plot Displayed Using the Default SmartView Preferences


It is recommended that you set the SmartView preferences to those suitable for Utmost IV. To
do this, select EditPreferences from the SmartView menu. In the Preferences dialog, go to
the Manage Preferences section and change your preferences to Utmost IV default
preferences. For further details, please refer to the SmartView Users Manual.
Note: You should exit SmartView and restart for all of the new settings to be active.

21

Utmost IV Users Manual

Chapter 3
Databases and Projects

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.

Figure 3-1 The Utmost IV Main Window

23

Utmost IV Users Manual

Opening a Database

Databases and Projects

3.1 Opening a Database


To interact with a database, you need to open the database into the Utmost IV work area by
selecting FileOpen Database or clicking on the toolbar icon
. Once you do this, a
dialog will appear and you should select the database server and the database you wish to
open.

Figure 3-2 Open Database Dialog


Once you open the database you are interested in, you then have to login to the database using
a valid database user name and password. For convenience, Utmost IV will automatically
prompt you to login to the database after you have opened it into the work area.

Figure 3-3 Database Login Dialog

3.2 Closing a Database


To close a database and remove it from the main Utmost IV work area, select FileClose
Database. The database will still exist on the database server, however, it will not be shown
in your work area when you restart Utmost IV.
Note: Databases that you recently closed will still be available in the FileRecent Databases menu.
Note: You will be prompted to save any modified projects to prevent loss of data.

24

Utmost IV Users Manual

Logging Into and Out of a Database

Databases and Projects

3.3 Logging Into and Out of a Database


Once a database is shown in the work area, it is now possible to log into this database using a
valid database user name and password by selecting the database of interest and selecting
FileLogin or by simply double clicking on the database name. Once you have logged into a
database, you will be able to work with the projects inside.

Figure 3-4 Database Login Dialog


When you finish the work, you can log out of the database by selecting the database in the
work area and selecting FileLogout.
Note: Logging out of a database does not remove the database from the work area.
Note: You will be prompted to save any modified projects to prevent loss of data.

3.4 Changing the User Password for a Database


Once you have logged into the database, you can change your password. To do this, select the
database and select FileChange Password. This will open up the dialog shown below.

Figure 3-5 Change Password Dialog


Note: You must close all projects in the database before you are able to change the password.

25

Utmost IV Users Manual

Creating a New Project

Databases and Projects

3.5 Creating a New Project


Projects are used to store and organize your work. To create a new project, select FileNew
Project or click on the toolbar icon
in the main Utmost IV window. This will open the
new project dialog. This is where you enter the name for your new project and select which
type of project you wish to create from the available list. You should also select who will be
allowed to read and to modify your project once it is created.

Figure 3-6 New Acquistion Project Dialog


Note: You cannot remove the read or modify permissions for either the project owner or the superuser.

26

Utmost IV Users Manual

Opening a Project

Databases and Projects

3.6 Opening a Project


If you have permission to modify an existing project, you can open and lock this project by
. This will open up the
selecting FileOpen Project or clicking on the toolbar icon
project window for editing and will lock the project so that no other user may make changes
to it.
If you do not have permission to modify the project, but have read permission, you can still
open the project in a Read-Only mode by selecting FileOpen Read Only or clicking on
. In this mode, you will not have an exclusive lock on the project but will be working on a
copy of the project from the database. You will not be allowed to save the Read-Only project.
You may make modifications to the project and select FileSave As to save to a new project
name.
Note: Even if another user has opened and locked a project, you can still open the project in a Read-Only mode.
This will allow you to edit a copy of the project.

3.7 Modifying the Project Permissions


Only the owner may change the project permissions. To do this, select the project and select
EditPermissions or click on the toolbar icon

..

Figure 3-7 Project Permissions Dialog


Note: If you are not the project owner, you will only be able to view the permissions.
Note: You cannot change the permissions of a project you have already opened.

27

Utmost IV Users Manual

Importing a Project

Databases and Projects

3.8 Importing a Project


Projects can be stored by exporting them to an external file as described in
Section 3.9 Exporting a Project. To import a project from an existing project file, select the
database and then select FileImportProject from the menu.
In the import wizard, you must first select the file containing the project you wish to import,
then click on the Next button.

Figure 3-8 Selecting the Project File for Import


Note: The software will check the external file to make sure it contains a valid Utmost IV project once you press the
Next button.

28

Utmost IV Users Manual

Importing a Project

Databases and Projects

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.

Figure 3-9 Selecting the New Project Name and Permissions


Note: You cannot change the type of an already existing project.

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.

Figure 3-10 Duplicate Project Names are not Allowed

29

Utmost IV Users Manual

Exporting a Project

Databases and Projects

3.9 Exporting a Project


To export a project, select the project and then select FileExportProject from the menu.
This will open up a dialog in which you can select a location and a name for the project file
you wish to create.

Figure 3-11 Project Export Dialog

30

Utmost IV Users Manual

Reading Project Parts from Existing Projects

Databases and Projects

3.10 Reading Project Parts from Existing Projects


Rather than creating each project every time, it is sometimes convenient to reuse parts of
another project that has already been created. This can be done from an open project window
by selecting FileRead From Project that will open the dialog below.

Figure 3-12 Selecting a Project from the Database


From this dialog, you should select the project from which you want to read. This will open
the dialog below that allows you to select the parts of the project that you can import and then
reuse.

Figure 3-13 Selecting Project Parts from the Project to Import

31

Utmost IV Users Manual

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.

4.1 Dataset Keys


A dataset is uniquely defined by six key fields, those fields are as follows.

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

Utmost IV Users Manual

Editing a Dataset

Datasets

4.2 Editing a Dataset


To view and modify a single dataset, select the dataset from the dataset selector area of the
project and then select DatasetEdit from the menu.

Figure 4-1 The General Tab of the Dataset Editor


From the General tab, you can modify many of the information fields for the dataset and you
can modify the list of device attributes and their values.
Note: If you do not have permissions to modify the dataset, a read only copy of the dataset will be displayed.

34

Utmost IV Users Manual

Editing a Dataset

Datasets

Figure 4-2 The Data Tab of the Dataset Editor


From the Data tab, you can view the measurement conditions and can view and edit the
measured data directly. In addition, the calculated data from any functions defined in the
dataset can be viewed.

35

Utmost IV Users Manual

Editing a Dataset

Datasets

Figure 4-3 The Analysis Tab of the Dataset Editor


From the Analysis tab, the list of functions which is defined for the dataset may be modified
directly. You can also change the list of plots which are defined.
For a more detailed description of dataset functions, see Section 6.10.13 Defining a Function.

36

Utmost IV Users Manual

Editing a Dataset

Datasets

Figure 4-4 The AC Data Tab of the Dataset Editor


Note: There will only be an AC Data tab for datasets with measurement type AC or AC_TABLE.

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

Utmost IV Users Manual

Editing a Dataset

Datasets

Figure 4-5 The Noise Data Tab of the Dataset Editor


From the Noise Data tab, you can view and edit the measured noise data for NOISE dataset
types.
Note: There will only be a Noise Data tab for datasets with measurement type NOISE and NOISE_TABLE.

38

Utmost IV Users Manual

Modifying the Dataset Permissions

Datasets

4.3 Modifying the Dataset Permissions


Only the dataset owner can change the dataset permissions. To change the dataset
permissions, select the dataset, then select DatasetPermissions from the menu.

Figure 4-6 Changing the Dataset Permissions


Note: You cannot remove the read or modify permissions for the dataset owner or for the superuser.

39

Utmost IV Users Manual

Deleting Datasets

Datasets

4.4 Deleting Datasets


From the dataset selector area, select all of the datasets you want to delete, then select
DatasetDelete from the menu.

Figure 4-7 Delete Dataset Dialog


Note: You can only delete datasets for which you have modify permission.
Note: Once a dataset is deleted, it cannot be recovered except from your database backup.

40

Utmost IV Users Manual

Importing Datasets

Datasets

4.5 Importing Datasets


Utmost IV can directly import two different data file formats, these are the legacy format
from Utmost III and the new more flexible Utmost IV data file format. Data from other
formats can easily be converted (as described in Appendix B Converting Data from ICCAP,
BSIMPro, ProPlus, and Atlas) and then imported directly into Utmost IV.
Note: The default file name extension for Utmost III logfiles is .log and for the Utmost IV data files is .uds.

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.

Figure 4-8: Selecting the Data File for Import


Note: The software will check the external file to make sure it contains either a valid Utmost III logfile or a valid
Utmost IV data file once you press the Next button.

41

Utmost IV Users Manual

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.

Figure 4-9: Modifying Dataset Information from Utmost III logfiles


Note: This additional page will not be displayed when importing Utmost IV data files.

42

Utmost IV Users Manual

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.

Figure 4-10: Selecting the Datasets to Import

43

Utmost IV Users Manual

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.

Figure 4-11: Showing the Progress of Dataset Import

44

Utmost IV Users Manual

Exporting Datasets

Datasets

4.6 Exporting Datasets


To export datasets, select the datasets you want to export in the dataset selector area, then
select DatasetExport Datasets from the project menu.

Figure 4-12 Selecting the File Name for Dataset Export


Note: If the file already exists, its contents will be overwritten during the export.

45

Utmost IV Users Manual

Writing a Dataset out to CSV Format

Datasets

4.7 Writing a Dataset out to CSV Format


From the Dataset Selector area, select the dataset you want to write out to CSV format, then
select DatasetWrite CSV File from the menu. You can also choose to write out the
simulated data as well as the measured data for this dataset.

Figure 4-13 Writing Dataset to CSV Format

46

Utmost IV Users Manual

Chapter 5
Managing the Database

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.

Figure 5-1 Database Manager Login Dialog


Note: You cannot open the database manager if you have already logged into the database.

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

Utmost IV Users Manual

Deleting Projects and Datasets

Managing the Database

Figure 5-3 Searching for Projects in the Database Manager


Once you have found and selected the objects you wish to manage, then you can perform a
number of actions. You can delete objects, change the owner of the objects, change the
objects permissions, and unlock the objects.

5.1 Deleting Projects and Datasets


The database manager dialog allows the superuser to select many projects or datasets at the
same time and delete all of them permanently from the database.
Note: Once deleted from the database, these objects cannot be recovered, except from your database backups.

5.2 Changing the Owner of Projects and Datasets


The database manager allows the superuser to select many projects or datasets at the same
time and change the owner of these objects. The owner is the only user other than the
superuser who is allowed to change the permissions of an object.

49

Utmost IV Users Manual

Changing the Permissions of Projects and Datasets

Managing the Database

5.3 Changing the Permissions of Projects and Datasets


The database manager allows the superuser to select many projects or datasets at the same
time and change the permissions of these objects.
Note: All selected objects must be owned by the same user in order to change permissions.
Note: If a single object is selected, the current permissions for that object are shown when the change permission
dialog is opened.
Note: If more than one object is selected, then the default permissions will be shown when the change
permissions dialog is opened.

Figure 5-4 Changing Permissions on Multiple Objects

50

Utmost IV Users Manual

Unlocking Projects and Datasets

Managing the Database

5.4 Unlocking Projects and Datasets


If the selected projects or datasets are locked by a database user, the unlock button will be
enabled. To unlock the objects, select the locked projects or datasets, and click on the unlock
button in the database manager dialog.
Note: Under normal circumstances, objects should never be unlocked manually using the database manager
dialog. Be careful when unlocking objects as these may currently be in use by the database users.

51

Utmost IV Users Manual

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

Holds the objects that are used to build the sequence.

Measurement Sequence

Used to build an automated sequence for measurement.

Dataset Selector

Used to display the datasets you have measured.

Status Log

Displays warning, error, and status messages.

Sequence Objects

Measurement Sequence

Dataset Selector

Status Log

Figure 6-1 The Empty Acquistion Project Window


Note: All changes to the project are made in memory and are not saved to the database until you perform a Save
or Save As operation.

53

Utmost IV Users Manual

Defining Temperatures

Acquisition Module

6.1 Defining Temperatures


To define the temperatures at which the measurements will be made, select Setup
Temperature from the project menu or click on the toolbar icon
to define and enable multiple temperature values.

. This dialog allows you

Figure 6-2 Defining Measurement Temperatures


Note: All temperatures are in Celsius.

54

Utmost IV Users Manual

Defining the Wafer Map

Acquisition Module

6.2 Defining the Wafer Map


The wafer map is where you define the physical location of the devices for which you intend
to acquire datasets. To open the Wafer Map Dialog, select SetupWafer Map or click on the
toolbar icon.
The wafer map dialog is split into three sections:

The General section


The Die Selection section
The Group Selection section

6.2.1 Defining the Header, Batch and Wafer Information


The General section allows you to describe some background information, the name of the
batch that is being measured, and one or more wafers that are to be measured.

Figure 6-3 General Section of Wafer Map Dialog

55

Utmost IV Users Manual

Defining the Wafer Map

Acquisition Module

Field

Description

Header Information

This table contains several fields (Customer, Product, Process,


Operator, Station, Comment, Fabrication Date, User Date, and
Dubious Flag), which will be stored in each of the datasets that will be
acquired.

Batch Name

This is the batch name of the data being acquired.

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.

6.2.2 Defining the Die Selection


Defining a die allows you to step around a wafer and perform the entire sequence of
measurements on each die. The Die Selection section allows you to define and select one or
more die which will be measured. The locations of these die can be defined in a xy grid
pattern or in a completely arbitrary way. When defining the die locations using the xy grid,
the die can be viewed and selected using either the Die Map or the Die List. These two are
ways to view the same information, changes to the Die List apply to the Die Map, and vice
versa. To define arbitrary locations for the die, you should use the Drop In type.
Note: The home die defines the die location where you will set the wafer to before starting the measurement
sequence.

Defining the Die Selection using the Die Map


The Die Map is used when defining the die locations using the xy grid and when you want to
select and view the die locations graphically. To enable or disable a die, you simply click on
its drawn location. To select a die as the home die, select this die and then press the Set Home
Die button.
To define the layout of the die using the xy grid, you specify the following parameters in the
die layout table.
Field

Description

Wafer Diameter

The diameter of the wafer.

Die Size X

The size of the die in the X direction.

Die Size Y

The size of the die in the Y direction.

Layout

This represents how the grid is aligned to the center of the wafer.

56

Utmost IV Users Manual

Defining the Wafer Map

Acquisition Module

Figure 6-4 Selecting the Die using the Die Map


In addition, you can specify whether the wafer has an alignment mark using the following
parameters.
Field

Description

Alignment

The alignment mark. Select Flat, Notch, or None.

Alignment Value

The size of the alignment mark.

Orientation

The location of the alignment mark.

57

Utmost IV Users Manual

Defining the Wafer Map

Acquisition Module

Figure 6-5 A Die Map with Wafer Flat Alignment Defined


Note: Changes made to the Die Map view also apply to the Die List view.

58

Utmost IV Users Manual

Defining the Wafer Map

Acquisition Module

Defining the Die Selection using the Die List


The Die List is used when defining the die locations using the xy grid and when you want to
select and view the die locations as a list. You can enable or disable the die from the Enabled
column in the table. To select a die as the home die, select this die and then press the Set
Home Die button.
The specification of the layout of the die using the xy grid is described in the previous section.

Figure 6-6 Selecting the Die using the Die List


It is particularly useful to switch to the Die List view when there are a very large number of
die on the wafer. When this happens, selection of the correct die becomes difficult using the
Die Map graphical representation.

59

Utmost IV Users Manual

Defining the Wafer Map

Acquisition Module

Figure 6-7 A Die Map Showing a Very Large Number of Die


Note: Changes made to the Die List view also apply to the Die Map view.

60

Utmost IV Users Manual

Defining the Wafer Map

Acquisition Module

Defining the Die Selection using the Drop In type


The previous two methods can be used when the die to be measured are repeated regularly
across the wafer. If the die are not regularly spaced, or you simply want to directly define the
die, die names and locations, you can do this by using the Drop In method.

Figure 6-8 Selecting the Die using the Drop In List

61

Utmost IV Users Manual

Defining the Wafer Map

Acquisition Module

6.2.3 Defining the Group Selection


Defining a group allows you to step around within the die to connect to the various devices
which belong to this group. The group defines an intra-die movement on the wafer. Similar to
the dies, the locations of these groups can be defined in an xy grid pattern or in a completely
arbitrary way. When defining the group locations using the xy grid, the group can be viewed
and selected using either the Group Grid or the Group List. These two are ways to view the
same information, changes to the Group List apply to the Group Grid and vice versa. To
define arbitrary locations for the group, you should use the Custom type.
If you are not performing any intra-die movement, you do not have to specify any groups.
Note: The home group defines the group location where you will set the wafer to before starting the measurement
sequence.

Defining the Group Selection using the Group Grid


The Group Grid is used when defining the group locations using the xy grid and when you
want to select and view the group locations graphically. To enable or disable a group, you
simply click on its drawn location. To select a group as the home group, select this group and
then press the Set Home Group button.
To define the layout of the groups using the xy grid, you specify the following parameters in
the group layout table.

Field

Description

Group Count X

The number of groups in the X direction.

Group Count Y

The number of groups in the Y direction.

Group Size X

The size of the group in the X direction.

Group Size Y

The size of the group in the Y direction.

62

Utmost IV Users Manual

Defining the Wafer Map

Acquisition Module

Figure 6-9 Selecting the Groups using the Group Grid


Note: Changes made to the Group Grid view also apply to the Group List view.

63

Utmost IV Users Manual

Defining the Wafer Map

Acquisition Module

Defining the Group Selection using the Group List


The Group List is used when defining the group locations using the xy grid and when you
want to select and view the group locations as a list. You can enable or disable the groups
from the Enabled column in the table. To select a group as the home group, select this group
and then press the Set Home Group button.
The specification of the layout of the groups using the xy grid is described in the previous
section.

Figure 6-10 Selecting the Groups using the Group List


Note: Changes made to the Group List view also apply to the Group Grid view.

64

Utmost IV Users Manual

Defining the Wafer Map

Acquisition Module

Defining the Group Selection using the Custom Method


The previous two methods can be used when the groups are repeated regularly across the die.
If the groups are not regularly spaced, or you simply want to directly define the groups, group
names and locations, you can do this by using the Custom method.

Figure 6-11 Selecting the Groups using the Custom Method

65

Utmost IV Users Manual

Defining Devices

Acquisition Module

6.3 Defining Devices


Utmost IV allows you to define and measure many different types of devices within a single
measurement sequence. The Device Type Manager dialog is opened by selecting
SetupDevices from the project menu or by clicking on the
allows you to create, edit, or delete a device type.

toolbar icon. This dialog

Figure 6-12 The Device Type Manager Dialog


Creating or adding a device type will open up the device type editor dialog shown below. This
dialog allows you to enter any number of devices within this device type.

Figure 6-13 The Device Type Editor Dialog


A device to be measured is described by its name, nodes, and attributes. Additionally, if the
datasets are to be acquired using simulation, a simulation netlist can be defined for this device
type.

66

Utmost IV Users Manual

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.

Figure 6-14 Viewing the Device Attributes


When you view the device attributes you can add, rename, or delete the attributes for this
device. You can also add any number of devices to the device type, and for these devices you
must specify the values of all of the device attributes. The group name for this device can also
be added. This is an optional location for intra-die stepping as described in Section 6.2.1
Defining the Header, Batch and Wafer Information.
Note: The device name must be unique and cannot be used within any other device type.

Figure 6-15 Viewing the Device Nodes

67

Utmost IV Users Manual

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.

Figure 6-16 Viewing the Simulation Netlist

68

Utmost IV Users Manual

Defining Extractions

Acquisition Module

6.4 Defining Extractions


An extraction can be used along with an extraction setup to perform a parameter extraction
within a measurement sequence. Details on how to define an extraction are given in Section
7.7 Defining Extractions.

6.5 Defining Variables


A variable is used to define a value that can be used in a measurement setup or in an
extraction. A variable has a name and a value and this value can be an expression that
includes other variables. To edit the variables, select SetupVariables from the project
menu or click on the toolbar icon

Figure 6-17 Defining Variables


You can also write the result of an extraction into the variable table as defined in Section 7.15
The Extraction Setup. This means that the result of one extraction may be used in a
subsequent extraction or in a following measurement setup.

69

Utmost IV Users Manual

Defining Hardware

Acquisition Module

6.6 Defining Hardware


To perform a measurement you will need to define the hardware. To edit the hardware, select
SetupHardware from the project menu or click on the toolbar icon

Figure 6-18 Editing the Hardware


From the Hardware dialog, you can easily manage the equipment that you want to use to
perform the measurement. You can edit any item in the list of hardware and you can also
verify that the hardware is correctly connected.

70

Utmost IV Users Manual

Defining Hardware

Acquisition Module

6.6.1 Editing the Controller


The controller is used to talk to the instruments. There are two types of controller supported:
the RS232 controller and the NI488 controller. The NI488 Controller can be used with any of
the National Instruments GPIB controllers, including the USB to GPIB controller and the
Ethernet to GPIB controller. National instruments only supports the NI488 controller
interface on Windows.

The RS232 Controller


Utmost IV supports the National Instruments RS232 to GPIB controller. This controller is
connected to the computer with a 9pin rs232 cable. The connections for this cable are as
shown below.

Figure 6-19 RS232 Cable Connections


Over the years, there have been several versions of this controller. The latest version (NI
GPIB-RS232) can only be configured using software supplied by National Instruments. The
older NI GPIB-232CT-A is configured via physical switches on the side of the box. The
following controller settings should be used.
Field

Description

Baud Rate

38400, 19200, or 9600

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

Utmost IV Users Manual

Defining Hardware

Acquisition Module

The figure below shows the position of the switches on the NI GPIB-232CT-A for the 38400
baud rate and the controller settings listed above.

Figure 6-20 NI GPIB-232CT-A switch settings


Note: The older NI GPIB-232CV-A is not a controller. It can only be used as a converter and cannot be used to
control instruments by Utmost IV.

The controller setup is shown below.

Figure 6-21 Editing the RS232 controller


Note: For the RS232 to GPIB controller on Linux, the port name is typically defined as the device driver file
"/dev/ttyS0".
Note: For the RS232 to GPIB controller on Windows, the port name is typically defined as the port "COM1".

72

Utmost IV Users Manual

Defining Hardware

Acquisition Module

The RS232 Controller Using a USB to RS232 Converter


On many modern computers, there is no RS232 port through which to communicate with the
RS232 controller. If an RS232 port cannot be added to the computer an alternative solution is
possible by using a USB to RS232 converter, such as the ATEN UC-232A USB-to-Serial
Converter. This converter is plugged into a USB port on the computer and then connected to
the RS232 cable which in turn connects to the RS232 to GPIB controller. The driver port
name is then set to that of the USB port, typically "/dev/ttyUSB0" on linux. On Windows,
it will appear as another COM port, like COM2 or COM3.

Figure 6-22 Controller Setup Using a USB to RS232 Converter

The NI488 Controller


Utmost IV supports any of the National Instruments GPIB controllers that work with the
NI488 interface. Specifically, the USB to GPIB controller (NI USB-GPIB-HS) and the
ethernet to GPIB controller (NI GPIB-ENET). These controllers must be configured through
software supplied by National Instruments. Currently, the NI488 interface is only supported
by National Instruments for Windows.

Figure 6-23 Editing the NI488 controller


Note: For the NI488 controller, the port name is typically "GPIB0".

73

Utmost IV Users Manual

Defining Hardware

Acquisition Module

6.6.2 Editing an Instrument


An instrument is the equipment which will be used to perform the measurement. For each
instrument, you can enable or disable the instrument and you can also select the GPIB bus
address that the equipment is using.
You can use the built in instrument drivers supplied with your software, or you can modify or
write your own instrument drivers. If you select the built in driver type, then you can select
from an extensive list of supported instrument drivers. If you select a non built-in driver, then
you should input the location of the device driver file.

Figure 6-24 Editing an Instrument


Each instrument has its own specific instrument options. You can modify these options in the
lower section of this dialog.
Note: Each instrument should have its own GPIB bus address.

74

Utmost IV Users Manual

Defining Hardware

Acquisition Module

6.6.3 Editing the Scanner Instrument


The scanner is a special type of instrument that is used to connect other instruments to the
device being measured. It is defined in exactly the same way as any of the other instuments as
described in Section 6.6.2 Editing an Instrument. In addition, you need to define which
measurement instruments are connected to the input ports of the scanner.

Figure 6-25 Editing the Scanner Instrument

75

Utmost IV Users Manual

Defining Hardware

Acquisition Module

6.6.4 Editing the Noise Instrument


The noise instrument is an instrument that is used to measure the noise spectral density of a
device. It is defined in exactly the same way as any of the other instuments as described in
Section 6.6.2 Editing an Instrument. In addition, you need to define the connections to and
maximum bias conditions for the Silvaco S3245A Noise Amplifier that must be used in order
to perform the noise measurement.

Figure 6-26 Editing the Noise Instrument

76

Utmost IV Users Manual

Defining Connections

Acquisition Module

6.7 Defining Connections


In order to perform the measurement properly, you need to define how the measurement
instruments are to be connected to the device being measured. To edit the connections, select
SetupConnections from the project menu or click on the toolbar icon

Figure 6-27 Editing the Connections


For each device type and measurement setup currently in the measurement sequence, a
connection is defined. You can edit the connection to change the measurement units that you
want to connect to the device nodes or terminals.

77

Utmost IV Users Manual

The Model Library

Acquisition Module

6.7.1 Manual Ground Connections


This is a special measurement unit that allows you to manually connect the device nodes to a
ground potential. When you specify this measurement unit, the program will not attempt to
set up a ground potential as you have decided to do this manually.

Figure 6-28 Using the Manual Ground Measurement Unit


This is particularly useful, as shown above, for measurements which involve only the LCR
meter and a two node subset structure. In this measurement, the LO of the LCR is on the G
node and the HI of the LCR is on the node subset D, S, and B. The LCR instrument LO
provides its own virtual ground, so you do not need to connect an additional DC measurement
unit for this measurement.
Note: All measurement setups with nodes connected using the manual ground measurement unit must be of
Voltage type and must have a zero value. In addition, there can be no DC target current associated with this
measurement unit.

6.8 The Model Library


The model libary is used when acquiring models from simulation. Full details on the model
libary window are given in Section 7.6 The Model Library.

78

Utmost IV Users Manual

The Device Subset

Acquisition Module

6.9 The Device Subset


The device subset allows any number of devices that have been defined in the project to be
selected for measurement. To create a new device subset, select CreateNew Device Subset
. To modify an existing device subset, double-click on it or
or click on the toolbar icon
select it and then select EditProperties from the menu.

Figure 6-29 Editing a Device Subset


In the device subset, you use a search to select only the devices that you are interested in. The
devices that match the conditions of the search are displayed on the left hand side of the
dialog and are updated with every change that you make to the search.
See Section 7.1 Creating and Managing Searches for a detailed description of how to define a
search.
If you select an item from the devices view on the left, then press the Populate button. This
will fill in the search condition editor with the details of the item that you selected.
Each device subset must have a unique name and all are contained in the Sequence Objects
Area of the Acquistion project window.

Figure 6-30 The Sequence Objects Area Showing Device Subsets


Note: To make a duplicate copy of a device subset, you must copy from and paste to the Sequence Objects Area.

79

Utmost IV Users Manual

The Measurement Setup

Acquisition Module

6.10 The Measurement Setup


The measurement setup is used to define exactly how the measurement will be performed on
each of the devices in the device subset. To create a new measurement setup, select Create
Measurement Setup from the menu or click on the toolbar icon
. To modify an existing
measurement setup, double-click on it or select it and then select EditProperties from the
menu.

Figure 6-31 An Empty Measurement Setup


A measurement setup consists of the following.
Field

Description

Name

A unique measurement setup name.

Measurement Type

The type of measurement being performed.

Setup

Definition of the setup items that describe the measurement being


performed.

Analysis

Defines functions and plots for post process and analysis on the
second tab in the dialog.

80

Utmost IV Users Manual

The Measurement Setup

Acquisition Module

Each measurement setup must have a unique name and all are contained in the Sequence
Objects Area of the Acquistion project window.

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.

The following measurement types are supported.


Type

Description

DC

A measurement with one or more swept DC source inputs and measured DC


target outputs.

LCR

An impedance measurement, for example capacitance, taken at multiple DC


operating point conditions.

AC

S parameter measurement over a frequency range, taken at multiple DC


operating point conditions.

NOISE

Noise spectral density measurement over a frequency range, taken at


multiple DC operating point conditions.

DC_TABLE

Same as DC type but source inputs defined as one-dimensional lists.

LCR_TABLE

Same as LCR type but operating points defined as one-dimensional lists.

AC_TABLE

Same as AC type but operating points defined as one-dimensional lists.

NOISE_TABLE

Same as NOISE type but operating points defined as one-dimensional lists.

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

Utmost IV Users Manual

The Measurement Setup

Acquisition Module

6.10.1 Defining the Node Names


The node names are used to define the external terminals of the device being measured. To
modify the node names, simply select the Node Names item from the setup and use the editor
table on the right of the dialog to add, delete, or modify.

Figure 6-33 Editing the Node Names for the Measurement Setup
Note: You must specify at least two nodes.

82

Utmost IV Users Manual

The Measurement Setup

Acquisition Module

6.10.2 Defining a Sweep


A Sweep is a measurement setup item that describes a source that is varied during the
measurement. There must be at least one sweep defined in the measurement setup. A Sweep
is defined with the following information.
Field

Description

Number

Every defined sweep must have a unique sweep number starting at


sweep 1. During the measurement sweep 1 will vary the fastest.

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

The sweep can be Linear, Logarithmic, or a simple List of values.

Figure 6-34 An Example of a Logarithmic Frequency and a Linear Voltage Sweep


For a linear sweep, this is defined in terms of the start value, the stop value, the step, and the
total number of points. 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

The start value of the linear sweep.

Stop

The stop value of the linear sweep.

Step

The step for the linear sweep.

Number of Points

The number of points in the linear sweep.

Calculated Field

This selects which of the four fields will be calculated.

83

Utmost IV Users Manual

The Measurement Setup

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

The start value of the logarithmic sweep.

Stop

The stop value of the logarithmic sweep.

Points per Decade

The points per decade for the logarithmic sweep.

Number of Points

The number of points in the logarithmic sweep.

Calculated Field

This selects which of the four fields will be calculated.

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.

Figure 6-35 Editing the List Sweep Values


Note: You can select to have an arbitrary ordering to the list of values, or to sort in ascending or descending order.
When you sort the list values, duplicate values will be removed from the list.
Note: List sweeps which are defined in DC, LCR, and AC dataset types must be sorted.

84

Utmost IV Users Manual

The Measurement Setup

Acquisition Module

If the sweep type is Voltage or Current, you can also define the compliances for the sweep.
Field

Description

Compliance

If the sweep type is Voltage, this is the current compliance in Amps. If


the sweep type is Current, this is the voltage compliance in Volts.

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.

6.10.3 Defining a Constant


A Constant is a measurement setup item that describes a source that does not change during
the measurement. A Constant is defined with the following information.
Field

Description

Type

Describes the type of the constant. You can select Voltage or


Current

Nodes

Defines the nodes to which this will be applied.

Value

The constant value

Compliance

The compliance

Power Compliance

The power compliance

Figure 6-36 An Example of a Voltage Constant


Note: The value, compliance, and power compliance can be specified as a variable, which are defined as shown in
Section 6.5 Defining Variables.

85

Utmost IV Users Manual

The Measurement Setup

Acquisition Module

6.10.4 Defining the Mirror


The Mirror is a measurement setup item that describes a source that is varied at the same
time as the primary or first DC sweep. The Mirror is defined with the following information.
Field

Description

Type

Describes the type the mirror. You can select Voltage or Current.

Nodes

Defines the nodes to which this will be applied.

Ratio

The mirror ratio value

Offset

The mirror offset value

Compliance

The compliance

Power Compliance

The power compliance

Figure 6-37 Editing the Mirror


As the measurement is performed and the primary DC sweep is changed, the value of the
mirror is calculated by the following formula.
Mirror Value = Primary DC Value * Ratio + Offset
Note: If the primary DC sweep is a Voltage sweep, the Mirror must also be a Voltage sweep, and likewise for a
Current sweep.
Note: The ratio and offset values, compliance, and power compliance can be specified as a variable, which are
defined as shown in Section 6.5 Defining Variables.

86

Utmost IV Users Manual

The Measurement Setup

Acquisition Module

6.10.5 Defining the Iterator


The Iterator is a measurement setup item that describes a source that will be iterated upon to
match the iteratee sweep values. The Iterator is defined with the following information.
Field

Description

Type

Describes the type the iterator. You can select Voltage or Current.

Nodes

Defines the nodes to which this will be applied.

Minimum

The minimum value that will be applied to the iterator source.

Start

The value at which the iterator search will begin.

Maximum

The maximum value that will be applied to the iterator source.

Error

The acceptable error percentage between the desired iteratee value and the
achieved iteratee value.

Compliance

The compliance

Power Compliance

The power compliance

Figure 6-38 Editing the Iterator


Note: If the iterator is defined, then an iteratee sweep must also be defined.

87

Utmost IV Users Manual

The Measurement Setup

Acquisition Module

6.10.6 Defining the Iteratee Sweep


The Iteratee sweep is a measurement setup item that describes the desired target values for
the iterator source search. The iteratee sweep is defined in exactly the same way as the Sweep
item described in Section 6.10.2 Defining a Sweep, except that it does not have compliance or
power compliance settings.

Figure 6-39 Editing the Iteratee Sweep


Note: If the iteratee sweep is defined, then an iterator must also be defined.
Note: The iteratee sweep must be the primary DC sweep.
Note: There must be a DC source of opposite type to the iteratee sweep connected to the same nodes.

88

Utmost IV Users Manual

The Measurement Setup

Acquisition Module

6.10.7 Defining a Pulse


The Pulse is a measurement setup item that describes a pulsed DC source. The Pulse is
defined using the following information.
Field

Description

Type

Describes the type of the pulse. You can select Voltage or Current.

Nodes

Defines the nodes to which this will be applied.

Width

Defines the pulse width.

Period

Defines the pulse period.

Base

Defines the pulse base.

Hold

Defines the pulse hold time.

Delay

Defines the pulse delay time.

Figure 6-40 Editing a Pulse


Note: There must be a DC source of the same type connected to the same nodes.

89

Utmost IV Users Manual

The Measurement Setup

Acquisition Module

6.10.8 Defining a Target


A Target is a measurement setup item that describes a DC measurement that will be
performed. A target is defined with the following information.
Field

Description

Type

Describes the type of the measurement. You can select Voltage or


Current.

Nodes

Defines the nodes on which the measurement will be taken.

Figure 6-41 Defining a DC Measurement Target


Note: A Current target requires a Voltage source applied to the same Nodes and vice versa. For example, if you
define a current target on node D, there must also be a voltage source applied to node D in the
measurement setup.

6.10.9 Defining the LCR Source


The LCR Source is a measurement setup item that describes the source conditions for the
LCR measurement. An LCR Source is defined with the following information.
Field

Description

High Nodes

Defines the nodes to which the high terminal is attached.

Low Nodes

Defines the nodes to which the low terminal is attached.

Type

Describes the type of the oscillation. You can select Voltage or


Current.

Oscillation Value

The value of the oscillation.

Frequency

The frequency of the measurement.

Figure 6-42 Defining the LCR Source

90

Utmost IV Users Manual

The Measurement Setup

Acquisition Module

6.10.10 Defining the LCR Target


The LCR Target is a measurement setup item that defines the LCR measurement that will be
performed. An LCR Target is defined with the following information.
Field

Description

Target

The type of LCR measurement.

Note: LCR Source and LCR Target are only allowed in LCR and LCR_Table measurement setups.

6.10.11 Defining a Port


A Port is a measurement setup item that defines an AC port. A Port is defined with the
following information.
Field

Description

Number

Every defined port must have a unique sweep number starting at


port 1.

Signal Nodes

The nodes to which the signal will be connected.

Ground Nodes

The nodes to which the ground will be connected.

Power

The port power

Attenuation

The port attenuation

Extension

The port extension

Figure 6-43 Defining a Port


Note: Ports are only allowed in AC and AC_TABLE measurement setups.

91

Utmost IV Users Manual

The Measurement Setup

Acquisition Module

6.10.12 Defining the Noise Target


The Noise Target is a measurement setup item that describes noise measurement that will be
performed. A Noise Target is defined with the following information.
Field

Description

Type

Defines the type of the noise target.

Nodes

Defines the nodes on which the noise spectral density is to be


measured.

Figure 6-44 Defining the Noise Target

6.10.13 Defining a Function


When the dataset is measured, the function will be used to automatically calculate additional
characteristics for analysis and display. A function is defined by the following information.
Field

Description

Name

The name of the calculated characteristic.

Expression

A mathematical description of the function.

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

Utmost IV Users Manual

The Measurement Setup

Acquisition Module

Input

Description

The frequency array.

The h21 magnitude array.

The start frequency for the extraction.

The minimum value of h21 magnitude for the extraction in dB.

The delta in h21 magnitude in dB.

The target slope for the best fit line in dB/decade.

The allowed variation in the slope.

Figure 6-45 Extraction of Unity Gain Bandwidth, ft


The rb function is a special function for AC datasets. This function takes four inputs and will
extract the base resistance using the input impedance circle method for each frequency trace.
rb (freq, h11, 0, 1e12)

Input

Description

The frequency array.

The complex h11 array.

The start frequency for the extraction.

The stop frequency for the extraction.

93

Utmost IV Users Manual

The Measurement Setup

Acquisition Module

Note: You can combine functions and operators to generate more complicated expressions. For example, the
expression 1 + log10(abs (ID)).

Figure 6-46 Defining the Analysis

6.10.14 Defining a Plot


A plot defines how the measured and calculated data will be presented in the viewer. A plot is
defined by the following information.
Field

Description

Name

The plot name

Type

The type of plot

Data

This defines the data to be displayed.

vs

This defines the Cartesian plot X axis data. For non-Cartesian


plots, this defines the viewer scale.

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

Utmost IV Users Manual

The Measurement Setup

Acquisition Module

6.10.15 Common Device Nodes


In any measurement setup, you can have common device nodes. For example, the
measurement of a mosfet transistor may have the source and body nodes joined together.
When nodes have been joined together in the measurement setup, they must always be joined
together. You cannot say that two nodes are joined together and then separate them elsewhere
in the same measurement setup.

Figure 6-47 Incorrect Common Node Measurement Setup


Once the nodes are joined together in one part of the measurement setup, then all other parts
of the measurement setup must also have these nodes joined together.

Figure 6-48 Correct Common Node Measurement Setup

95

Utmost IV Users Manual

The Extraction Setup

Acquisition Module

6.11 The Extraction Setup


An extraction setup is used to select an extraction to be performed and to define where to
write the result. Full details on this are given in Section 7.15 The Extraction Setup.

6.12 Acquiring Data using the Measurement Sequence


You can use Utmost IV to construct a highly automated sequence of measurements that will
be repeated for every temperature and for every wafer and die selected in the project.
The temperatures for the measurement are defined in the Temperatures dialog as described in
Section 6.1 Defining Temperatures. The batch, wafer, and die information are defined in the
Wafer Map dialog as described in Section 6.2 Defining the Wafer Map. The remainder of the
sequence is built using three sequence objects: the Device Subsets, the Measurement Setups,
and the Extraction Setups. In the sequence, the device subset defines the devices that will be
measured and the measurement setup defines the measurement that will be performed. The
extraction setup defines the extraction which will be performed on the immediately preceding
measurement.

Figure 6-49 Measurement Sequence


You may add the device subsets, the extraction setups, and the measurement setups to the
sequence by using copy/paste and by using drag/drop. An individual sequence object may
appear multiple times in the measurement sequence. The object is not copied, the same object
will simply be used multiple times within the sequence.
Note: Each measurement will be performed on each device at all of the defined temperatures, wafers, and die in
the project.

96

Utmost IV Users Manual

Acquiring Data using the Measurement Sequence

Acquisition Module

6.12.1 Selecting Measurement Mode or Simulation Mode


Data can be acquired using either direct measurement with physical instruments or it can be
generated from simulation. The mode is selected from the menu using either
MeasureMeasurement or MeasureSimulation.
When you select Measurement mode, the project hardware and connections become enabled
and when you run the measurement sequence the data will be generated from direct
measurement of your devices. When generating datasets by measurement, you need to define
the hardware that will be used for the measurements as described in Section 6.6 Defining
Hardware. You also need to define the connections for the measurement as described in
Section 6.7 Defining Connections.
When you select Simulation mode, the model library becomes enabled and the netlist defined
for each device type as described in Section 6.3 Defining Devices will be used. When the
sequence is run, the data will be generated from simulation. The model library is described
fully in Section 7.6 The Model Library. This is especially useful if you want to compare
models or convert from one model type to another.

6.12.2 Combining the Device Subset and the Measurement Setup


In the measurement sequence, each measurement setup is associated with a single device
subset. The node names defined for the devices must match exactly to the node names defined
for the measurement setup. The measurement will be performed for each of the devices
defined by the device subset in turn.

6.12.3 Combining the Device Subset and the Extraction Setup


In the measurement sequence, each extraction setup is associated with a single device subset.
The extraction setup defines which extraction is to be performed and where the result is to be
written. The measurement setup above the extraction setup in the sequence will be used to
generate the dataset upon which the extraction will be performed.
This means that you cannot place an extraction setup at the top of a device subset as you must
have a measurement setup above the extraction setup. You can place multiple extraction
setups after a measurement setup and each extraction will be performed on the same
generated dataset.

Figure 6-50 Figure A Correct and an Incorrect Measurement Sequence

97

Utmost IV Users Manual

Acquiring Data using the Measurement Sequence

Acquisition Module

Note: If the measurement immediately above the extraction setup is not performed, the extraction will not be
performed.

6.12.4 Running the Measurement Sequence


To run the measurement sequence, select MeasureRun or click on the
toolbar icon .
When you run the sequence from idle, the following dialog will be opened. This allows you to
select exactly which datasets you wish to measure and clearly shows if any datasets in the
database will be overwritten.

Figure 6-51 Selecting Devices to Measure


Note: If you do not select a measurement that is associated with an extraction, then neither the measurement nor
the extraction will be performed.

Once the sequence is running, you may stop it by selecting MeasureStop or by clicking on
the

toolbar icon at any time.

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

Utmost IV Users Manual

Acquiring Data using the Measurement Sequence

Acquisition Module

6.12.5 Capacitance Calibration and De-embedding


When measuring any capacitance, it is important to account for the capacitance of the test
system and only to measure the capacitance of the device under test.
Calibration is a process where the measurement instrument itself is zeroed to remove the
effect of the instrument, cables, probes, etc. De-embedding is a process where you measure
the test setup without the device and subtract this measurement from the subsequent
measurement of the device. Calibration is preferred where possible, but both methods can be
used separately or even together.
The recommended technique is to connect a dedicated open test structure and perform an
open calibration using this structure before performing each capacitance measurement on
your device.
To calibrate the LCR instrument, select the capacitance measurement setup in the
measurement sequence and then select MeasureCalibrate from the project menu. The
upper section of the dialog deals with the instrument calibration and the lower section deals
with the measurement de-embedding as shown below.

Figure 6-52 LCR Calibration and De-embedding Dialog


Calibration

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

Utmost IV Users Manual

Acquiring Data using the Measurement Sequence

Acquisition Module

Figure 6-53 Successful LCR Open Calibration


Once you have completed the calibration, you should click on the OK button to exit the
dialog.
Note: Note: If you have multiple dedicated open test structures for different devices, you should re-calibrate the
instrument before each measurement.
De-embedding

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.

Figure 6-54 Open De-embedding Enabled


The open de-embedding measurement has not yet been performed. To perform this
measurement, you click on the Measure button. When this has been successfully completed,
this will be indicated in the dialog as shown below.

100

Utmost IV Users Manual

The Measured Datasets

Acquisition Module

Figure 6-55 Open De-embedding Measurement Completed


When the open de-embedding measurement is completed, click on OK or Apply before
closing the dialog, otherwise the de-embedding setting and open de-embedding data will be
lost.
The measured open de-embedding data is stored in memory. Later, when your device is
measured from the measurement sequence, this open data will be automatically subtracted
from the device measurement.
Note: There is only one open de-embedding data. If you have different dedicated open test structures for different
devices, you should re-measure the open de-embedding data before measuring each device.

6.12.6 Generating a Script Version of the Measurement Sequence


The Utmost IV Script Module is described in Chapter 9 Script Module. In this module, you
can run a script to perform the same operation as running the measurement sequence through
the Acquistion module and much more.
For rapid script development, you can create a script version of the project and the
measurement sequence by selecting MeasurementExport Script from the menu.

6.13 The Measured Datasets


Once you run the measurement sequence, the datasets will be generated, either using
instruments or by simulation, and stored in the database. Datasets that match those currently
defined in the measurement sequence and that already exist in the database will always be
shown in the Datasets Area. You can change their permissions, edit, delete, or export these
datasets by selecting from the Dataset menu. Dataset management is described fully in
Chapter 4 Datasets.
The datasets may be sorted as described in Section 7.3 Sorting Datasets and also displayed in
the viewer as described in Section 7.4 Displaying Dataset Plots in the Viewer.

101

Utmost IV Users Manual

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

Used to build an automated sequence for model parameter


optimization.

Sequence Objects

Holds the objects that are used to build the sequence.

Status Log

Displays warning, error, and status messages.

Dataset Selector

Optimization Sequence

Sequence Objects

Status Log

Figure 7-1 The Empty Optimization Project Window


Note: All changes to the project are made to a copy in memory and are not saved to the database until you
perform a Save or a Save As operation.

103

Utmost IV Users Manual

Creating and Managing Searches

Optimization Module

7.1 Creating and Managing Searches


To perform a simulation or an optimization in the Optimization project, you need to select
some datasets. To do this, you search in the database for the datasets you are interested in. The
search manager allows you to create, edit and maintain one or more searches and can be
opened by selecting DatasetSearch Manager.

Figure 7-2 Managing Searches


When you press the New button, an empty search editor will open up as shown below.

Figure 7-3 An Empty Search

104

Utmost IV Users Manual

Creating and Managing Searches

Optimization Module

You must enter a name for the search, and it must be different to the other search names in the
project. You must also enter one or more search conditions. A search condition consists of a
search parameter, a comparison, and a value. Select the search parameter from the available
list, for example, 'temperature'. For the selected parameter, select the comparison type, for
example, '='. Finally, enter a value, for example, '27'. Once the search condition is complete,
you can Insert this into your search.

Figure 7-4 Inserting a Search Condition into a Search


Depending on the search parameter selected, the types of comparison available and the value
type will change. For example, when entering a name, the comparison types available are '='
and '!=' and the value type is a string. For example, you can select the search parameter batch
name, the condition '=', and the value 'b*'. This would have the effect of returning all batches
that begin with the character 'b'.

Search Parameter Type

Comparisons Available

Value Type

Database

=, !=

user, group

Date

=, !=, <, <=, >, >=

date

Flag

=, !=

true/false

Name

=, !=

string

Number

=, !=, <, <=, >, >=

number

Special

=, !=

type

Special Attribute

=, !=, <, <=, >, >=

name and number

When specifying a name, wildcards are supported. The character '*' will match zero or more
characters, the character '?' will match exactly one character.

105

Utmost IV Users Manual

Creating and Managing Searches

Optimization Module

When two or more search conditions are inserted into the search, then they are combined with
either an AND or an OR.

Figure 7-5 Inserting Multiple Search Conditions into a Search


Device attributes, such as W and L, are a very important part of the search. These are defined
as shown below by the use of both a name and a value.

Figure 7-6 Adding an Attribute Search Condition to a Search

106

Utmost IV Users Manual

Creating and Managing Searches

Optimization Module

Very complex searches can be built up using many combinations of search conditions and
through the use of matched parentheses to group the search conditions.

Figure 7-7 A More Complex Search

107

Utmost IV Users Manual

Searching for Datasets in the Database

Optimization Module

7.2 Searching for Datasets in the Database


To retrieve datasets from the database, you must select a previously defined search in the
Dataset Selector Area of the Optimization Project window.

Figure 7-8 Datasets Retrieved from the Database Using a Search


When the search is performed, some additional search conditions are added to the selected
search. These additional search conditions come from the netlist described in Section 7.5
Defining the Netlist for Simulation.

Figure 7-9 Netlist Definition Showing the Device Nodes and Attributes of Interest

108

Utmost IV Users Manual

Searching for Datasets in the Database

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

Utmost IV Users Manual

Sorting Datasets

Optimization Module

7.3 Sorting Datasets


Once datasets are retrieved from the database, they will be sorted and displayed in the Dataset
Selector Area. To assist the visualization of the datasets, you can change the components of
the sort and the sort order. To do this, select DatasetSort. In the dialog you can add,
remove, and change the order of the sort components.

Figure 7-10 Changing the Sort Components and Order


Removing a sort component will remove this item from the Dataset Selector Area. For
example, if you are not interested in the Measurement Setup Names, simply remove it in
this dialog. Similarly, if you prefer to see all of the plots sorted per device name, simply
move the Plot sort component below the Device sort component.

110

Utmost IV Users Manual

Displaying Dataset Plots in the Viewer

Optimization Module

7.4 Displaying Dataset Plots in the Viewer


A dataset can contain a large amount of data and is difficult to see patterns when looking at a
simple table of the data values. If you display this same data graphically as a plot, then it will
become easier to understand and to analyze the device behavior. Each dataset contains one or
more of these plots that will show in the Dataset Selector Area.

Figure 7-11 Dataset Selector Area Containing Multiple Selected Plots


To display a plot in the viewer, select one or more plots from the Dataset Selector Area and
select DatasetPlot from the menu or click on the toolbar icon
. When you plot data this
way, any existing plots in the viewer will always be overwritten. If you want to keep the
existing plots in the viewer, and add these new ones to them, then select DatasetAppend
Plot from the menu.
Note: There is no limit to the number or type of these plots that can be displayed in the viewer.

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

Utmost IV Users Manual

Displaying Dataset Plots in the Viewer

Optimization Module

7.4.1 Displaying Plots from Datasets with Multiple Sweeps


A device measurement will typically involve changing the stimulus on the device in some
way and measuring the device response. For example, you change the voltage on the gate
terminal of a MOSFET and measure the change in current at the drain terminal. We describe
this change in the stimulus on the device as a sweep.
A measurement may involve moving more than one stimulus. For example, a dataset can
have a sweep on the gate voltage and also a second sweep on the body voltage. When the
dataset has more than one sweep, the data will consist of multiple traces.

Figure 7-12 Dataset with Multiple Sweeps Display as Several Traces


If there are a large number of these traces or if the traces are too close together, then it
becomes very difficult to understand and analyze the device behavior. In practice, this would
suggest that for two sweep measurements, the number of points in the second sweep should
be kept to a low number.

112

Utmost IV Users Manual

Displaying Dataset Plots in the Viewer

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-13 Datasets with Multiple Sweeps Can Be Difficult to Analyze


If your dataset has too many traces or if the traces are too close together, you can ask Utmost
IV to display each trace separately on a different graph as described below. This will make it
much easier to analyze the device behavior.

Figure 7-14 Splitting Multiple Traces into Separate Graphs Makes Analysis Easier

113

Utmost IV Users Manual

Displaying Dataset Plots in the Viewer

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.

Figure 7-15 User Preferences for the Viewer


The three available methods are as follows.

Method

Description

No Splits

All traces are drawn together on a single chart as a single


object.

Splits on same Chart

Each trace from each plot is drawn separately but on a


single chart.

Splits on different Chart

Each trace from each plot is drawn separately on a


separate chart.

This allows fine control over how to visualize the data. The following shows an example plot
of the same data for each method.

114

Utmost IV Users Manual

Displaying Dataset Plots in the Viewer

Optimization Module

Figure 7-16 Single Plot Displayed in the Viewer with No Splits Selected

Figure 7-17 Single Plot Displayed in the Viewer with Splits on Same Chart Selected

115

Utmost IV Users Manual

Displaying Dataset Plots in the Viewer

Optimization Module

Figure 7-18 Single Plot Displayed in the Viewer with Splits on Different Charts Selected

116

Utmost IV Users Manual

Displaying Dataset Plots in the Viewer

Optimization Module

7.4.2 Displaying Additional Information about the Dataset in the Viewer


When you display your measured data in the viewer, you can also include additional
information that describes the data that is being displayed. The following additional
information can be added to the plots.
Information

Description

Temperature

Displays temperature on plot.

Keys

Displays dataset keys on plot.

Attributes

Displays device attributes on plot.

Conditions

Displays measurement conditions on plot.

Label Position

Changes the position of the label added to the plot.

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.

Figure 7-19 Default Settings for Viewer


The Chart Labeling section allows you to select the information you want to be shown on
your plots. With the default settings, a typical plot will appear as shown below.

117

Utmost IV Users Manual

Displaying Dataset Plots in the Viewer

Optimization Module

Figure 7-20 Plot using Default Settings

Adding Temperature Information


By default, the temperature information for each dataset will be displayed in the title of the
plot as shown above. You can choose the following to show the temperature on the plot.
Setting

Description

None

Doesnt show temperature on the plot.

On Title

Shows the temperature on the plot title. (Default)

On Label

Shows the temperature on a label added to the plot.

If you select On Label, the temperature will be displayed as shown below.

Figure 7-21 Plot with Temperature shown on Label


Note: When you select to show the temperature on the label, it will not be displayed on the title as well.

118

Utmost IV Users Manual

Displaying Dataset Plots in the Viewer

Optimization Module

Adding Dataset Key Information


Every dataset has a number of keys as described in Section 4.1 Dataset Keys. By default,
these keys are not shown on the plot but you can change the setting of this preference.
Setting

Description

None

Doesnt show keys on the plot. (Default)

On Label

Shows the keys on a label added to the plot.

If you select On Label, the dataset keys will be displayed as shown below.

Figure 7-22 Plot with Keys shown on Label

Adding Dataset Attribute Information


A dataset can have any number of attributes, such as W and L for a MOSFET transistor. By
default, the attribute information for each dataset will be displayed on the title of the plot. You
can change the setting of this preference.
Setting

Description

None

Doesnt show attributes on the plot.

On Title

Shows the attributes on the plot title. (Default)

On Label

Shows the attributes on a label added to the plot.

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

Utmost IV Users Manual

Displaying Dataset Plots in the Viewer

Optimization Module

Figure 7-23 Plot with Title Including Many Attributes


It is possible for a title to get so long that it is hidden by the viewer, especially if you display
multiple plots at the same time. If you select On Label, the attributes are removed from the
title and shown on a label added to the plot as shown below.

Figure 7-24 Plot with Attributes shown on Label

120

Utmost IV Users Manual

Displaying Dataset Plots in the Viewer

Optimization Module

Adding Measurement Condition Information


By default, the measurement conditions for each dataset will not be displayed on the plot. You
can change this setting.
Setting

Description

None

Doesnt show conditions on the plot. (Default)

On Label

Shows the conditions on a label added to the plot.

If you select On Label, the measurement conditions will be displayed as shown below.

Figure 7-25 Plot with Measurement Conditions shown on Label


Note: If the measurement condition information is already shown on the plot, it will not be added to the label. In the
above plot, the VG sweep is already shown on the X axis and does not need to be included in the label as
well.

121

Utmost IV Users Manual

Displaying Dataset Plots in the Viewer

Optimization Module

Selecting the Label Position


By default, the label that will be added to the chart will be on the top left of the plot. You can
change this setting.
Setting

Description

Top Left

Shows the added label on top left of of the plot. (Default)

Top Right

Shows the added label on top right of of the plot.

Bottom Left

Shows the added label on bottom left of of the plot.

Bottom Right

Shows the added label on bottom right of of the plot.

If you select Bottom Right, the label will be displayed as shown below.

Figure 7-26 Plot with Label Displayed on Bottom Right

122

Utmost IV Users Manual

Defining the Netlist for Simulation

Optimization Module

7.5 Defining the Netlist for Simulation


There is only one netlist defined in each Optimization project. This netlist defines the node
names and attribute names of every dataset that will be used in the project (see Section 7.2
Searching for Datasets in the Database). Additionally, the netlist defines the SPICE netlist
text that will be used during the simulation of all datasets. To view and edit the netlist, select
SetupNetlist or click on the toolbar icon
. There is no limit to the number of nodes,
attributes, their names, or the complexity of the SPICE netlist text.

Figure 7-27 A Compact Model MOS Netlist


When reading from Utmost III logfiles, the datasets are automatically given the node names
detailed below. To retrieve such datasets from the database, the node names in the netlist must
also match.

Module

Node Names

Diode:

AC

Bipolar:

CBES

JFET:

D G S BG

MOS:

DGSB

SOI 4 terminal:

D G S BG

SOI 5 terminal:

D G S BG B

TFT:

DGS

123

Utmost IV Users Manual

Defining the Netlist for Simulation

Optimization Module

7.5.1 Compact Model SPICE Netlist


The SPICE netlist text must be written in valid SPICE syntax and should list all of the model
elements that will be used to simulate the device you are interested in. For example, to
simulate a compact MOS model, you only need to define a single element in the netlist.
M1 D G S B NMOS W='W' L='L'

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'

M1 D G S B PMOS W = 'wid * 1e-6' L = 'len * 1e-6' AD= 'wid * 1.3e-6'

Q1 C B E S NPN

M1 D G S B Mymodel W=10e-6 L=1e-6

Attributes are not the only parameters that will be passed into the simulation using the
expression syntax. 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

Utmost IV Users Manual

Defining the Netlist for Simulation

Optimization Module

7.5.2 Macro Model Netlist


There is no limit to the complexity of the SPICE netlist that can be defined. All of the netlist
node names must be connected and none must be floating. Similarly, any internal nodes in the
netlist must not be floating. Some examples are shown below.
This netlist is suitable for high voltage MOS modeling.

Figure 7-28 A Macro Model MOS Netlist


This netlist is suitable for modeling the parasitic PNP on a vertical NPN transistor.

Figure 7-29 A Macro Model Bipolar Netlist

125

Utmost IV Users Manual

Defining the Netlist for Simulation

Optimization Module

This netlist is suitable for modeling an inductor macro model.

Figure 7-30 A Macro Model Inductor Netlist

7.5.3 Reading from an External Model Library


This netlist can be used to read a model from an external library file.

Figure 7-31 Reading from an External Library File

126

Utmost IV Users Manual

Defining the Netlist for Simulation

Optimization Module

7.5.4 Exporting the Netlist


The netlist can be exported as a subcircuit and be embedded into a hierarchical SPICE library
file. On the netlist dialog, press the Export button, select the file where the netilst is to be
written and the following will be shown.

Figure 7-32 Exporting the Netlist


Here, you can select the name and location of the subcircuit. The order in which the node
names will appear and the default values for any passed parameters.
Note: If you select to overwrite an existing subcircuit, the entire subcircuit will be replaced. This includes any
models or parameters defined within the subcircuit.

127

Utmost IV Users Manual

The Model Library

Optimization Module

7.6 The Model Library


The model library contains a collection of model cards, including the special PARAMS
model card. This special model card allows you to pass parameters directly into the netlist
(see Section 7.5 Defining the Netlist for Simulation) and into the expression definition of
other model parameters. All model cards will be used during SPICE simulation of the
datasets. To view and edit the model library, select SetupModel Library or click on the
toolbar icon

, which will open the model library window.

Figure 7-33 Viewing and Editing the Model Library


A model library contains one or more model cards. Each model card has a type, for example
NMOS, except the special PARAMS model card that has no type. You can view each model,
one at a time, by selecting its name from the pull down list of model names. Each model card
can contain many parameters and the names of these parameters must be unique within the
given model card.
As well as the parameter name, you can give the parameter a value and a minimum and
maximum range limit. The minimum and maximum range limits are used during parameter
optimization. When setting the parameter value, there are three columns in the model library
that you can choose: the Optimized value, the Fit Initial value, and the User Initial value.
These three columns may be thought of as three separate SPICE models. The column or
SPICE model to be used during simulation is selected from the Simulation menu.
Note: During optimization, the Optimized column will always be used.

128

Utmost IV Users Manual

The Model Library

Optimization Module

Having immediate access to multiple SPICE models is very useful when comparing the
difference in model parameters between two or more SPICE models. 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).

7.6.1 Creating a New Model Card


In model library window, select ModelNew to add a new model card. This will open a
dialog where you can select the model name, the model type, and a template. The template
will read a predefined model and will create this in the model library. If no template is
selected, an empty model card is created.

Figure 7-34 Creating a New Model Card


Note: The name of the model card must not be the same as other model cards in the model library.

129

Utmost IV Users Manual

The Model Library

Optimization Module

7.6.2 Copying a Model Column


Each model card consists of several columns, and each of the Optimized, Fit Initial, and
User Initial columns may be thought of as individual SPICE models. You can use the
Simulation menu to change which of the three SPICE models will be used when simulating a
dataset. To copy the model parameter values from one column to another, select
ModelCopy. In the dialog, you can select one source column and many destination
columns.

Figure 7-35 Copying a Model Column


Note: The copy operates only on the currently displayed model.

7.6.3 Changing a Model Card


A model card has both a name and a type. To change either, select ModelChange and enter
the new name and type into the dialog. For convenience, when renaming a model card, any
references to this model card within the optimization setups (see Section 7.14 The
Optimization Setup) can also be renamed automatically at the same time.

Figure 7-36 Changing the Model Card Name and Type

130

Utmost IV Users Manual

The Model Library

Optimization Module

7.6.4 Duplicating a Model Card


Section 7.6.2 Copying a Model Column described how to copy a single column within a
model card. To make a duplicate of the entire model card, select ModelDuplicate Model
and enter the name for the copy in the dialog.

Figure 7-37 Duplicating a Model Card


Note: The model duplication operates on the currently displayed model.
Note: The new name must be different to the existing model card names in the model library.

7.6.5 Deleting a Model Card


You can delete the currently displayed model card by selecting ModelDelete.
Note: There is no way to restore a model card once it is deleted, except from backup.
Note: It is impossible to delete the special PARAMS model card.

7.6.6 Clearing the Model Library


You can delete all model cards and all parameters from the special PARAMS model card by
selecting ModelClear Model Library from the menu.
Note: There is no way to restore a model card or a model parameter once it is deleted, except from backup.

131

Utmost IV Users Manual

The Model Library

Optimization Module

7.6.7 Importing Model Cards


In the model library window, select ModelImportModel Cards to import model cards
from an external file into the project. The external file must be in standard SPICE format and
may be hierarchical. In the first page of the import wizard, you select the external file
containing the model cards and press the Next button.

Figure 7-38 Selecting the External Library File for Model Card Import

132

Utmost IV Users Manual

The Model Library

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.

Figure 7-39 Selecting the Model Cards for Import


Note: Model cards that are overwritten cannot be recovered, except from backup.

133

Utmost IV Users Manual

The Model Library

Optimization Module

7.6.8 Importing Model Params


The model params are simply the parameters of the special PARAMS model cards. These
may be used to pass values into the expression definition of other model parameters and
directly into the netlist. See Section 7.5 Defining the Netlist for Simulation for more
information. In the model library external file, these model params are defined using the
following syntax.
.PARAM <paramName> = <paramValue>

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

Utmost IV Users Manual

The Model Library

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.

Figure 7-41 Selecting the Model Params for Import


Note: Model params that are overwritten cannot be recovered, except from backup.

135

Utmost IV Users Manual

The Model Library

Optimization Module

7.6.9 Exporting Model Cards


To export the model cards into an external SPICE format model file, select
ModelExportModel Cards. In the first page of the export wizard, you select the
external file into which you will write the model cards and press the Next button.

Figure 7-42 Selecting the External File for Model Cards Export

136

Utmost IV Users Manual

The Model Library

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.

Figure 7-43 Selecting the Model Cards for Export


Note: Model cards that are overwritten in the external library file cannot be recovered.

137

Utmost IV Users Manual

The Model Library

Optimization Module

7.6.10 Exporting Model Params


The model params are simply the parameters of the special PARAMS model cards. These
may be used to pass values into the expression definition of other model parameters and
directly into the netlist. See Section 7.5 Defining the Netlist for Simulation for more
information. In the model library external file, these model params are defined using the
following syntax.
.PARAM <paramName> = <paramValue>

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

Utmost IV Users Manual

The Model Library

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.

Figure 7-45 Selecting the Model Params for Export

139

Utmost IV Users Manual

The Model Library

Optimization Module

7.6.11 Exporting Model Library to Spayn


The previous sections dealt with export of model cards and params into SPICE format files.
This section will deal with exporting both model cards and params into comma separated
variable Spayn format files. To do this, select ModelExportTo Spayn. In the first page
of the import wizard, you select an existing Spayn file or create a new file to export the
parameters into and press the Next button.

Figure 7-46 Selecting the External File for Export To Spayn

140

Utmost IV Users Manual

The Model Library

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.

Figure 7-47 Selecting Model Card Names for Export To Spayn


In the example below, two model cards were selected, model1 and model2. Each model had
only a single parameter. model1 had a parameter called param1 with a value of 1.1. model2
had a parameter called param2 with a value of 2.2.
Row, model1/param1, model2/param2
1, 1.1, 2.2

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

Utmost IV Users Manual

The Model Library

Optimization Module

7.6.12 Inserting Model Parameters


To add an additional parameter in current model card, select ParameterInsert. In the
dialog, enter the new model parameter name and press the Apply button to insert above or
below the current line in the model library. To stop inserting parameters, press the Close
button.

Figure 7-48 Entering a New Model Parameter Name


Note: The new model parameter name must be different to those already in this model card.

7.6.13 Renaming a Model Parameter


To rename, select the parameter and then select ParameterRename from the menu.

Figure 7-49 Renaming a Model Parameter


Note: The new parameter name must not be the same as any other parameter in this model card.

7.6.14 Editing Model Parameters


You can directly edit the value of any model parameter in the model library window. This
means that the optimized, fit initial, user initial, expression, minimum, and maximum values
may be modified or even removed.
Note: All changes cannot be recovered, except from backup.

7.6.15 Deleting Model Parameters


To delete model parameters from the model card, select all of the parameters you wish to
delete, and then select ParameterDelete.
Note: Once parameters are deleted, they cannot be recovered, except from backup.

142

Utmost IV Users Manual

The Model Library

Optimization Module

7.6.16 Marking and Unmarking Model Parameters


A parameter that is marked in the model library is marked for optimization. When an
optimization is run directly from the viewer, the marked parameters are the ones that are
optimized. When a rubberband optimization is selected, the marked parameters are the ones
that are initially selected when the rubberband dialog is shown.
You can mark or unmark a single parameter, one at a time, using the checkbox in the Mark
column of the model library window. To mark and unmark multiple parameters, select those
parameters and select ParameterMark or ParameterUnmark. To unmark all
parameters in the model card, select ParameterUnmark All.
Note: Parameters with blank values in their optimized, minimum, or maximum columns cannot be marked.
Note: Parameters with their optimized value less than their minimum or greater than their maximum cannot be
marked.
Note: Parameters defined by expressions cannot be marked.

143

Utmost IV Users Manual

The Model Library

Optimization Module

7.6.17 Using an Expression to Define a Model Parameter


As described in Section 7.6 The Model Library, a model parameter is usually defined in terms
of a parameter name and a parameter value.
VTH0 = 0.7

It is also possible to define a parameter in terms of an expression, which is a function of other


variables.
VTH0 = 0.7 + d_vth0

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

A model parameter is either defined in terms of values or in terms of an expression. To


change between the two modes, select the parameters of interest and select either
ParameterValues or ParameterExpression. The parameter expression must be defined
using a valid SPICE syntax. Any variables that are not device attributes must be defined as
parameters in the special PARAMS model card.

Figure 7-50 Model Parameter Defined Using Expression

144

Utmost IV Users Manual

The Model Library

Optimization Module

When a parameter is defined in terms of an expression, it cannot be part of an optimization


and the minimum and maximum range limits have no meaning. In this case, rather than
optimizing the expression, you must optimize the variables that are used in the expression.
Since the device attributes are fixed, this means that you must optimize the parameters from
the special PARAMS model card that are used in the expression. For each of these special
parameters, you will need an initial optimized value, a minimum range, and a maximum
range limit to be able to include these in an optimization.

Figure 7-51 Setting up Special Parameters for Expression Optimization


Note: An expression may be defined in terms of another expression.

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

Utmost IV Users Manual

Defining Extractions

Optimization Module

7.7 Defining Extractions


An extraction is a way to take a dataset and to extract from this a single performance metric
number. For example, you can take a dataset that contains a drain current versus gate voltage
sweep for a mosfet and from this extract the threshold voltage value.
To edit the extractions, select SetupExtractions from the project menu or click on the
icon on the toolbar.

Figure 7-53 Editing the Extractions


An extraction is defined by the following information.
Field

Description

Name

The name of the calculated characteristic.

Expression

A mathematical description of the function.

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

Utmost IV Users Manual

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 following functions return a single value.


min()
max()
mean()

The derivative function returns an array.


derivative(xarray, yarray)

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 value of y to search for.

Interpolation performed as lin or log.

Search forwards or backwards through the 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

Utmost IV Users Manual

Defining Variables

Optimization Module

Linear Threshold Voltage


vt_lin(vg, id, vd, trace number)
This is the equivalent of the following extraction.
xintercept (trace(vg,trace number), trace(id, trace number),
maxslope) - mean(trace(vd, trace number))/2

Saturated Threshold Voltage


vt_sat(vg, id, trace number)
This is the equivalent of the following extraction.
xintercept (trace(vg, trace number), sqrt(trace(id, trace number)),
maxslope)

Threshold Voltage at Current


vt_at_current(vg, id, current, trace number)
This is the equivalent of the following extraction.
find_x_given_y (trace(vg, trace number), trace(id, trace number),
current, log, backwards)

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.

7.8 Defining Variables


A variable can be used in an extraction and can also be written to as the result from an
extraction. A full description is given in Section 6.5 Defining Variables.

148

Utmost IV Users Manual

Comparing Measured and Simulated Data

Optimization Module

7.9 Comparing Measured and Simulated Data


A dataset contains measured data together with a description of how that measurement is
performed. When you display dataset plots in the viewer, you are displaying the measured
data as described in Section 7.4 Displaying Dataset Plots in the Viewer. We are now
interested in comparing the measured data to simulated data from the SPICE simulator.
Utmost IV will simulate all the necessary datasets, perform all calculations, and overlay the
simulated data on the same plots as the measured data automatically with a single mouse
click. After displaying the measured data in the viewer, simply select UtmostSimulation
from the viewer menu or click on the

viewer toolbar icon.

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.

Figure 7-54 Simulated Data is Automatically Overlaid after Simulation Completed

149

Utmost IV Users Manual

Error Calculation

Optimization Module

7.10 Error Calculation


Fundamental to the comparison of measured versus simulated data and to SPICE model
optimization is the calculation of an error metric that accurately describes how close the
simulated data approaches the measured data.
Utmost IV uses a sophisticated method for calculating this error metric that can be controlled
from the User Preference dialog. To open this dialog, select EditPreferences from the main
Utmost IV window and select PreferencesError Calculation.

Figure 7-55 User Preferences for the Error Calculation

150

Utmost IV Users Manual

Error Calculation

Optimization Module

7.10.1 Linear and Logarithmic Data


Depending on the axis on which the data is displayed and the user preference, the individual
data point errors will be calculated in the following ways.

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

Utmost IV Users Manual

Error Calculation

Optimization Module

7.10.2 Data Floor


Measured data values that are between -floor and +floor will be excluded in the calculation of
errors. The value of the data floor defaults to a value of 1e-18. To switch off the exclusion of
data using the data floor, simply set the value of the data floor to zero in your preference.

7.10.3 Effect of Boxes on Error Calculation


Boxes are used to limit the regions of measured data that will be used to calculate the error
metric. Boxes can also be given different weights, which can be used to increase the
importance of any given data when estimating the error metric.
Multiple boxes can be defined on each plot. If a data point exists inside more than one box, its
weight will be the maximum value of weight of all those boxes. For example, a data point
exists in three boxes of weight: 1, 5, and 10. The weight given to that data point will be 10,
the maximum weight of the three boxes.
To add a box to a plot, select ObjectAdd Rectangle from the viewer menu or click on the
viewer toolbar icon. You can change the box weight by selecting the box and editing the
preferences.
Note: If a single box is drawn on a plot and no measured data is contained within it, then no error will be calculated
for that plot. This is useful if you wish to view data that will be excluded in the calculation of the error metric
(for example, during an optimization).

Figure 7-57 A Plot showing Multiple Defined Boxes

152

Utmost IV Users Manual

Error Calculation

Optimization Module

7.10.4 Outlier Removal


For each data point, an error value will be calculated giving a population of error values. If
outlier error values exist within this population, these will distort the error metric and disrupt
the operation of the optimization algorithms.
For example, if there are 101 error values, 100 of which are 1% and the last error value is
1000%, the root mean square (RMS) error will be calculated as 99.5% error. This is clearly
not a very good representation of the population of errors. If this error metric were being used
in an optimization, the optimizer will spend a lot of time trying to reduce this single error and
sacrifice the already good fit for the rest of the data.
Utmost IV automatically removes outlier error values from the population to further improve
the speed and accuracy of the optimization algorithms. By selecting the number of
Outlier Deviations, you can control how far away an individual error must be from the
average error before it will be excluded from the population.

7.10.5 Displaying the Error on the Viewer


The root mean square (RMS) error will be displayed on each plot in the viewer according to
your Display in Viewer preference.

153

Utmost IV Users Manual

Using Rubberband to Explore and Modify Model Parameters

Optimization Module

7.11 Using Rubberband to Explore and Modify Model Parameters


Sections 7.4 Displaying Dataset Plots in the Viewer and 7.9 Comparing Measured and
Simulated Data describe how to display the measured data and how to perform a simulation
and overlay the measured and simulated data in the viewer. By doing this, you can see how
well the current model parameters predict the performance of the measured device. You can
directly modify the model parameter values in the model library and re-simulate. However,
this will be very inefficient if you need to repeat many times.
The rubberband feature provides a user friendly, fast, and intuitive way to explore how
various model parameters affect the simulated characteristics. From the viewer menu, select
UtmostRubberband or click on the

viewer toolbar icon to start rubberbanding.

Figure 7-58 Using Rubberband to Modify the Model Parameter Values


Note: When the Rubberband dialog is opened, any parameter marked in the model library will be automatically
selected and displayed.

7.11.1 Selecting a Parameter to Rubberband


To select a new model parameter to explore, select the model name from the available list.
This will display all the available parameters defined in the model library for that model.
Then, select the parameter name that will add this parameter into the list of Optimized
Parameters on the right.
Note: If you are unable to select a parameter from the list, this is because that parameter cannot be marked
because of missing or incorrect value and minimum or maximum range. You must correct this in the model
library before opening the Rubberband dialog.

154

Utmost IV Users Manual

Using Rubberband to Explore and Modify Model Parameters

Optimization Module

7.11.2 Modifying Parameter Values


Once selected, you can change a parameter value by moving the slider or by typing in a new
value. Utmost IV will then automatically perform all the necessary simulations, perform the
error metric calculations, and update and overlay the simulated data on the viewer. You can
also adjust the model parameter range directly.
By moving the slider to adjust parameter values and simultaneously watching how the
simulated characteristics are modified in real time, you can quickly learn what effect a
parameter will have on the device simulation. The rubberband feature in Utmost IV is an
invaluable teaching tool when learning a new model or when exploring the interactions
between more complex macro-models in real time.

7.11.3 Saving the Parameter Modifications


To save the new model parameter values to the model library, you can use the Apply or the
OK button. This will also save any modifications to the parameter ranges and will mark only
those parameters currently selected in the Rubberband dialog. If you click the Cancel button,
then any modifications you made to the model parameters since your last save will be lost.

7.11.4 De-selecting a Parameter


You can de-select a currently selected parameter by clicking on that parameter from the
Model Parameter list on the left or by double-clicking on the parameter in the Optimized
Parameters Area.
If you attempt to de-select a parameter and it has been modified since you last saved to the
model library, then you will see the following warning message. If you decide to unmark the
parameter, the value will revert to the value that was last saved to the model library.

Figure 7-59 Warning when Attempting to De-select Modified Parameter

7.11.5 Reverting to the Last Saved Model Parameters


You can discard all changes made since your last save by clicking on the Revert button.

155

Utmost IV Users Manual

Optimizing the Model Parameters from the Viewer

Optimization Module

7.11.6 Optimizing Model Parameters from Rubberband


A very convenient feature is the ability to optimize the selected parameters directly from the
Rubberband dialog. To do this, select one or more parameters and click on the Optimize
button. This will perform an optimization on the currently displayed data in the viewer using
the currently selected model parameters from the Rubberband dialog. During the
optimization, the parameter values will be updated in the Rubberband dialog. This allows you
to monitor the progress of the optimization and to quickly decide if a parameter range is
incorrect.
You can change the optimizer that will be used within the Rubberband dialog. The
optimization algorithms that are available in Utmost IV are described in Appendix A
Optimization Algorithms.
While the optimization is in progress, you will notice that the button text will change to Stop
that will allow you to terminate the optimization early.
Note: When the Rubberband dialog is opened from the optimization sequence, the optimizer defined for that
optimization setup will be selected. Otherwise, the project optimizer type will be selected.

7.12 Optimizing the Model Parameters from the Viewer


After displaying the measured data in the viewer, you can run an optimization by selecting
viewer toolbar icon. This
UtmostOptimize from the viewer menu or clicking on the
will perform an optimization on the currently displayed data in the viewer using the currently
marked model parameters in the model library.
Note: If there are no parameters marked for optimization in the model library, then no optimization will be run.

The optimization algorithms available in Utmost IV are described in Appendix A


Optimization Algorithms. To change the default algorithm, select EditPreferences from
the main Utmost IV window and select the ToolsOptimizer section. You can then choose
the optimizer you wish to use and modify any of the configuration parameters.

156

Utmost IV Users Manual

The Dataset Subset

Optimization Module

7.13 The Dataset Subset


A dataset subset is used to select a subset of the datasets that are currently displayed in the
Data Selector Area of the Optimization Project window.
toolbar
To create a new dataset subset, select CreateNew Data Subset or click on the
icon. To modify an existing dataset subset, double-click on it or select it and then select
EditProperties from the menu.

Figure 7-60 Editing a Dataset Subset


In the dataset subset, you use a search to select only the datasets that you are interested in.
The datasets that match the conditions of the search are displayed on the left hand side of the
dialog and are updated with every change you make to the search. See Section 7.1 Creating
and Managing Searches for a detailed description of how to define a search.
If you select an item from the dataset view on the left, then press the Populate button. This
will fill in the search condition editor with the details of the item that you selected.
Each dataset subset must have a unique name and all are contained in the Sequence Objects
Area of the Optimization Project window.

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

Utmost IV Users Manual

The Optimization Setup

Optimization Module

7.14 The Optimization Setup


The optimization setup is used to describe exactly which data from the subset of datasets you
are interested in using for this optimization. It also defines which model and which
optimization algorithm will be used for this optimization step.
To create a new optimization setup, select CreateNew Optimization Setup or click on the
toolbar icon. To modify an existing optimization setup, double-click on it or select it and
then select EditProperties from the menu.

Figure 7-62 Editing an Optimization Setup

7.14.1 Choosing an Optimizer


You can select the optimization algorithm to use from the available list or simply choose to
use your default optimizer. The optimization algorithms available in Utmost IV are described
in Appendix A Optimization Algorithms. To change the default algorithm, select
EditPreferences from the main Utmost IV window and select the ToolsOptimizer
section. You can then choose the default optimizer you wish to use and modify any of the
configuration parameters.

158

Utmost IV Users Manual

The Optimization Setup

Optimization Module

7.14.2 Defining the Optimization Target Data


The Target table is used to define the data to be used during the optimization. Each target is
defined as follows.
Field

Description

Enabled

A disabled target will not be used during the optimization.

Target

The name of the Y axis data.

'vs'

The name of the X axis data.

Scale

The axis scale for both the X and Y axes.

Target Min/Max

Optional box limits for the Y axis.

'vs' Min/Max

Optional box limits for the X axis.

Trace Min/Max

Optional restriction on which traces to include in optimization.

Box Weight

The weight applied to the box, if one is defined.

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.

Figure 7-63 Optimization Targets including Extracted Values


Note: You must plot an extracted value versus a device attribute or temperature or another extracted value.

159

Utmost IV Users Manual

The Optimization Setup

Optimization Module

7.14.3 Choosing the Model Parameters to Optimize


The Parameters table is used to define all of the model parameters that will be used for this
optimization. You can set the range of each parameter. You can also disable a parameter to
remove it from the optimization.
Note: If there is no model parameter in the model library, or if the parameter cannot be marked, then it will be
excluded in the optimization.

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

Utmost IV Users Manual

The Extraction Setup

Optimization Module

7.15 The Extraction Setup


An extraction setup is used to select an extraction to be performed within the sequence and
also to define where to write the result.
To create a new extraction setup, select CreateNew Extraction Setup or click on the
toolbar icon. To modify an existing extraction setup, double-click on it or select it and then
select EditProperties from the menu.

Figure 7-65 An Extraction Setup Writing the Result to a Model Parameter


The model parameter must already exist in the model library.

Figure 7-66 An Extraction Setup Writing the Result to a Variable


The variable name must already exist in the variables table.
Note: In the optimization sequence, the dataset subset that is associated with the extraction setup must contain
exactly one dataset.

161

Utmost IV Users Manual

Automation Using the Optimization Sequence

Optimization Module

7.16 Automation Using the Optimization Sequence


Previous sections of this chapter describe how Utmost IV can be used as an interactive
engineering tool to explore and extract SPICE models. You can also use Utmost IV to
construct a highly automated sequence of extractions and optimizations to generate a
complete SPICE model from a given set of data. You can then use this sequence to repeat the
same model extraction strategy over many different sets of data.
The optimization sequence is built using three sequence objects: the Dataset Subsets, the
Extraction Setups and the Optimization Setups. In the sequence, each optimization setup is
paired to a single dataset subset and together they determine the optimization that will be
performed for that step. Likewise, each extraction setup is paired to a single dataset subset. In
this case, the dataset subset should contain only a single dataset upon which the extraction
will be performed.

Figure 7-67 An Optimization Sequence


You may add the dataset subsets, the extraction setups and the optimization setups to the
sequence by using copy/paste and by using drag/drop. An individual sequence object may
appear multiple times in the optimization sequence. The object is not copied, the same object
will simply be used multiple times within the sequence.

7.16.1 Combining the Dataset Subset and Extraction Setup


In the optimization sequence, each extraction setup is associated with a single dataset subset.
The dataset subset defines the single dataset upon which the extraction is to be performed.
The extraction setup defines which extraction is to be performed and where the result is to be
written.

7.16.2 Combining the Dataset Subset and Optimization Setup


In the optimization sequence, each optimization setup is associated with a single dataset
subset. The optimization setup alone defines the optimization algorithm and the model
parameters for this optimization step. However, it is the interaction of the dataset subset and
the targets of the optimization setup that define which data will be included.
To be included as part of the optimization, each dataset returned by the dataset subset must
contain data arrays that match both the Target and the 'vs' name from the optimization setup.
For example, if the name is 'ID' and the 'vs' name is 'VG' and are included in the
optimization, then the dataset must contain both 'ID' and 'VG' data arrays.

162

Utmost IV Users Manual

Automation Using the Optimization Sequence

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.

Figure 7-68 Optimization Setup with Multiple Targets


If this optimization setup is combined with a dataset subset containing a single 'ID' vs 'VG'
and a single 'ID' vs 'VD' dataset, then the following plots would be produced.

Figure 7-69 Plots Generated by Multiple Targets

163

Utmost IV Users Manual

Automation Using the Optimization Sequence

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.

Figure 7-70 Optimization Setup with Target Containing 'prim' Keyword


When this optimization is combined with the dataset subset of the previous example only
datasets containing 'ID' and where 'VG' is the primary sweep will be included in the
optimization and the following plots would be produced.

164

Utmost IV Users Manual

Automation Using the Optimization Sequence

Optimization Module

Figure 7-71 Plots Generated by Multiple Targets using the 'prim' Keyword

7.16.3 Displaying the Data for the Optimization Step


To verify which data will be included in the optimization, select the optimization setup in the
sequence and select OptimizeShow Plots from the menu. This will display all of the data
for the optimization in the viewer, together with any defined boxes.

Figure 7-72 A Paused Optimization Sequence

165

Utmost IV Users Manual

Automation Using the Optimization Sequence

Optimization Module

7.16.4 Running the Optimization Sequence


To begin running the optimization sequence from the current position, select OptimizeRun
toolbar icon. Once the sequence is running, you may stop it by selecting
or click on the
OptimizeStop or by clicking on the

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.

7.16.5 Changing the Current Position in the Sequence


The current position is indicated by an
status icon in the Status column of the
Optimization Sequence Area. If the sequence is not running, it is from this position that the
optimization will start when requested. To change the current position, select the extraction
setup or the optimization setup in the sequence from where you wish to begin and select
OptimizeSet Position from the menu.

7.16.6 Inserting a Pause in the Sequence


To insert a pause above an item in the sequence, select that item and select OptimizeInsert
Pause from the menu.
Note: If you encounter a pause while running the sequence, the sequence will pause at the first available
optimization setup following the pause.

7.16.7 Using Rubberband from the Optimization Sequence


You can run rubberband from the viewer as described in Section 7.11 Using Rubberband to
Explore and Modify Model Parameters. When you run from the viewer, the initial rubberband
parameters are the parameters in the model library that are currently marked. The data for the
optimization is the data that is currently shown in the viewer.
You can also run rubberband directly from the optimization sequence by selecting an
optimization setup and then selecting OptimizeRubber Band from the menu. In this case,
both the data and the parameters to be optimized are set by the optimization sequence.
Note: Only those parameters that can be marked in the model library and are selected in the optimization setup
will be initially set in the Rubberband dialog.

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

Utmost IV Users Manual

Automation Using the Optimization Sequence

Optimization Module

7.16.8 Generating a Script Version of the Optimization Sequence


The Utmost IV Script Module is described in Chapter 9 Script Module. In this module, you
can run a script to perform the same operation as running the optimization sequence through
the Optimization module and much more.
For rapid script development, you can create a script version of the project and the
optimization sequence by selecting OptimizeExport Script from the menu.

167

Utmost IV Users Manual

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.

7.17.1 Automated Report Document Generation using the Sequence


This feature allows you to generate a report document automatically. This document can be
customized to include a header document, device plots, error tables, and the model library as
required. The data and plots that will be generated are defined in the optimization sequence.
To generate a report document, select OptimizeGenerate ReportDocument from the
project menu that will open the dialog shown below.

Figure 7-73 Generating a Report Document

Field

Description

Directory

The directory where the document and related files will be stored.

File Name

The name of the generated report document.

Document Format

The format of the generated file.

Header Document

You can include your own document at the top of the generated
report.

Plot Name Prefix

An optional prefix to the plot names that are generated as part of


the report.

168

Utmost IV Users Manual

Reporting

Optimization Module

Plot File Format

The embedded plot file format

Simulate

You can generate plots of only measured data or measured and


simulated data.

Error Table

If simulation is being performed, either a full or a summary error


table can be included in the report.

Sort

You can decide the order in which the plots will appear in the
report.

Layout

You can choose how many plots will be grouped together.

Overwrite

Allow existing files in the directory to be overwritten.

7.17.2 Automatic Plot File Generation using the Sequence


This feature is used when a report document is not required, but many plots of the device
characteristics are needed. When data is displayed in the viewer, you can generate a plot file
by selecting FileExportToFile from the viewer menu. This will save a plot file to your
file system. But this can be very time consuming if you have many plots to generate.
To use this feature, select OptimizeGenerate ReportPlot Files from the project menu
and this will open the dialog shown below.

Figure 7-74 Automatically Generating Plot Files

Field

Description

Directory

The directory where you wish to store the generated plot files.

Prefix

An optional prefix to the generated file.

Format

The graphics file format.

Overwrite

Allows you to overwrite existing files in the directory.

Simulate

Generate plots with measured and simulated data.

169

Utmost IV Users Manual

Reporting

Optimization Module

Figure 7-75 An Optimization Sequence


As described in Section 7.16.3 Displaying the Data for the Optimization Step, the data plots
for each optimization step can be displayed using OptimizeShow Plots. When generating
the plot files, the same data will be shown in the viewer and an image of these will be stored
to the file system.
The filename will be automatically generated as follows.
<prefix>_<dataSubsetName>_<OptimizationSetupName>.<fileTypeSuffix>

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

Utmost IV Users Manual

Chapter 8
Developing your own SPICE
Model using Verilog-A

Writing the Verilog-A Module Code

Developing your own SPICE Model using Verilog-A

The Verilog-A language provides a very simple way for anyone to develop their own device
models. 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.

8.1 Writing the Verilog-A Module Code


The module code is written into an external file in ASCII format. A simple diode model is
shown below and the various module sections will be described here .

Figure 8-1 A Typical Verilog-A Module Code File


Note: The file containing the module code must have a .va extension.

172

Utmost IV Users Manual

Writing the Verilog-A Module Code

Developing your own SPICE Model using Verilog-A

8.1.1 The Module Definition


The top line of the module defines the name of the module and the order of the electrical
connections for the netlist. The entire module code is contained between this line and the
'endmodule' line. Multiple modules can be defined within the same file.
module mydiode(anode, cathode);
...
endmodule

8.1.2 The Electrical Connections


Here, you define the input and output nodes and the electrical terminals. Note that if you have
internal nodes, then the number of electrical terminals will be greater than the number of
input and output nodes, but it cannot be less.
inout anode, canode;
electrical anode, cathode, int;

8.1.3 The Parameters


A parameter is a field that can be passed down into the module code from the SPICE netlist
instance or from the model card. For example, a parameter could be the width of the device or
it could be the MOSFET threshold voltage.
parameter real W = 10e-6;
parameter real vth0 = 0.7;

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

Utmost IV Users Manual

Writing the Verilog-A Module Code

Developing your own SPICE Model using Verilog-A

8.1.4 Variables for internal Use


These are very similar to parameters except these are not passed down to the module code
from the netlist instance or from the model card. To define an internal variable that is not a
parameter, you simply omit the name Parameter. Some examples are shown below.
will_be_real

= 1.0;

will_be_integer

= 1;

real myReal

= 27;

integer i

= 0;

These variables can then be used in calculations within the model itself.

8.1.5 The Analog Code Section


Here, the real work of the Verilog-A Model is performed. The statements are grouped
together in a begin/end block. These statements define how the node voltages and currents are
calculated. The <+ syntax is used to add to the device currents and voltages. If you have more
than one current or voltage contribution, you can add these using separate <+ statements.
This section of the code can be as complicated as is required and can include 'if' blocks to
change the behavior of the model in different operating regions. In this example, a different
expression is used for current when the diode is in breakdown versus when it is in regular
operation.
if (V(anode, int)>(-1*bv))
I(anode, int) <+ isat * (exp(V(anode, int)/ (n*$vt)) - 1);
else
I(anode, int) <+ -1 * isat * (exp(-1 * (bv + V(anode, int))/
(nr*$vt)));

Note that $vt is a built in function which returns the thermal voltage (kT/q).

174

Utmost IV Users Manual

Adding a Verilog-A Model Card into the Model Library

Developing your own SPICE Model using Verilog-A

8.1.6 Adding Capacitance into a Verilog-A Model


In Verilog-A, capacitance is added to a device by using the ddt function, which is a derivative
with respect to time. Since current can be expressed as the charge per second, then typically
the capacitance is defined as follows.
I(anode, cathode) <+ ddt (charge));

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

8.2 Adding a Verilog-A Model Card into the Model Library


From the model library window, select ModelNew to open the new model dialog as shown
below. From this menu, select the VLG model type and enter the name of your new model.

Figure 8-2 Adding a Verilog-A Model Card


Once the VLG model is added, you must add parameters into the model card. The first model
parameter must be called 'module' and must contain the name of the module that you
defined in the code from the previous section. To do this, add the parameter, then change this
parameter to be an expression, then type in the module name as shown below.

175

Utmost IV Users Manual

Adding a Verilog-A Model Card into the Model Library

Developing your own SPICE Model using Verilog-A

Figure 8-3 Adding the Module Name to the Verilog-A Model Card
Then, 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

Utmost IV Users Manual

Adding a Verilog-A Element into the Netlist

Developing your own SPICE Model using Verilog-A

8.3 Adding a Verilog-A Element into the Netlist


There are two steps to adding your Verilog-A element into the netlist. The first step is to load
the Verilog-A module code. This is done by the following command.
.verilog "<your .va file name>"

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.

Figure 8-5 Netlist containing Verilog-A Element and Module Code

177

Utmost IV Users Manual

Adding a Verilog-A Element into the Netlist

Developing your own SPICE Model using Verilog-A

Once the module code is defined, the Verilog-A model added into the model library and the
netlist updated as shown above, you can simulate using this Verilog-A model in exactly the
same way as you would for a standard SPICE model.

Figure 8-6 Simulation of Diode Characteristics using Verilog-A Model

178

Utmost IV Users Manual

Rubberbanding your Verilog-A Model with SmartSpice

Developing your own SPICE Model using Verilog-A

8.4 Rubberbanding your Verilog-A Model with SmartSpice


Verilog-A models are fully supported by Utmost IV in just the same way as any of the
standard SPICE models. This means that you can simulate, optimize, and also rubberband
your Verilog-A model parameters. During Verilog-A model development, this is very
important for exploring the behaviour of the new model.

Figure 8-7 Rubberband Verilog-A Model

179

Utmost IV Users Manual

Combining Verilog-A Models and other SPICE Models

Developing your own SPICE Model using Verilog-A

8.5 Combining Verilog-A Models and other SPICE Models


Once defined, a Verilog-A model can be thought of in exactly the same way as any other
SPICE model. Just as Utmost IV can be used to develop a Macro Model using standard
SPICE models, it can also be used to develop macro-models containing any number of
Verilog-A models together with any number of standard SPICE models. You simply have to
define the macro-model connections in your netlist, as in the example shown below, then add
the appropriate model cards into the model library.

Figure 8-8 Macro-Model Development with Verilog-A and SPICE Models

180

Utmost IV Users Manual

Combining Verilog-A Models and other SPICE Models

Developing your own SPICE Model using Verilog-A

Once you have done this you can optimize the parameters of any of the SPICE and Verilog-A
models at the same time or separately, depending on your requirements.

Figure 8-9 Optimize Verilog-A and SPICE models Together

181

Utmost IV Users Manual

Chapter 9
Script Module

Running a Script Directly

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.

9.1 Running a Script Directly


A script may be run directly from the command line as follows.
utmost4 -s myscript.js

9.2 Running a Script using the Command Line Interface


Utmost IV can be run in a command line interface mode from the command line as shown
below. These same commands are also available when running Utmost IV from DeckBuild.
utmost4 -cli

Once in this mode, the following commands are available.


Command

Description

load script "/tmp/myscript.js"

Deletes the existing script and loads a new script from the
named file.

script begin

Deletes the existing script and tells Utmost IV to start reading


the input into the script.

script end

Tells Utmost IV to stop reading the input into the script.

run script

Run the script.

quit

Exits Utmost IV.

9.3 Automatically Creating a Script from a Project


A convenient method to automatically generate a script version of a project sequence has
been described in Section 7.16.8 Generating a Script Version of the Optimization Sequence
for the Optimization Module and in Section 6.12.6 Generating a Script Version of the
Measurement Sequence for the Acquistion Module. These automatically generated scripts
can be run exactly as they are, or can be further modified and customized.
Note: In this chapter, the symbol [] will refer to an array of JavaScript objects. For example, an array of DataSets
will be shown as DataSets[].

183

Utmost IV Users Manual

Silvaco.Utmost4 Object Commands

Script Module

9.4 Silvaco.Utmost4 Object Commands


The Silvaco.Utmost4 object is the main JavaScript object in the Utmost IV Script Module. It
does not have to be created as it is created automatically when the script is run.

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

A number containing the temperature value.

batchName

A string containing the name of the batch.

waferName

A string containing the name of the wafer.

dieName

A string containing the name of the die.

device

A Device object

measSetup

A MeasSetup object

variable []

An array of Variable objects

waferMap

A WaferMap object

netlist

A Netlist Object

modelLibrary

A ModelLibrary Object

simCol

A string containing the name of the column in the model library to


be used. Must be one of "optVal", "fitVal", or "usrVal".

Throws a JavaScript Error object if any of the arguments are invalid.

Example
myDataSet

= Silvaco.Utmost4 .getDataFromSimulation2 (27, "lot1", "1",


"1",
myDevice,
myMeasSetup,
vars,
myWaferMap,
myNetlist,
myModelLibrary,
"optVal");

Note: The function 'getDataFromSimulation', which omits the WaferMap argument, has been
deprecated.

184

Utmost IV Users Manual

Silvaco.Utmost4 Object Commands

Script Module

9.4.2 makeAttribute
Syntax
Attribute makeAttribute (name, value)

Description
Constructs an attribute object based on the following arguments.
name

A string containing the name of the attribute.

value

A number containing the attribute value.

Throws a JavaScript Error object if the inputs are unacceptable.

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

A string containing the name of the device.

deviceTypeName

A string containing the device type name of the device.

groupName

A string containing the group name of the device.

nodes

An array of DeviceNode objects.

attrs

An array of Attribute objects.

Throws a JavaScript Error object if the inputs are unacceptable.

Example
myDevice = Silvaco.Utmost4.makeDevice ("n10x10", "nmos", "",
myDeviceNodes,
myAttributes);

185

Utmost IV Users Manual

Silvaco.Utmost4 Object Commands

Script Module

9.4.4 makeDeviceNode
Syntax
DeviceNode makeDeviceNode (name, pins)

Description
Constructs a DeviceNode object based on the following arguments.
name

A string containing the name of the device node.

pins

An array of integer numbers.

Throws a JavaScript Error object if the inputs are unacceptable.

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

A string containing the name of the extraction.

expr

A string containing the extraction expression.

Throws a JavaScript Error object if the inputs are unacceptable.

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

Utmost IV Users Manual

Silvaco.Utmost4 Object Commands

Script Module

9.4.7 makeNetlist
Syntax
Netlist makeNetlist (nodeNames, attrNames, netlistText)

Description
Constructs a netlist object based on the following arguments.
nodeNames

An array of strings containing the node names.

attrNames

An array of strings containing the attribute names.

netlistText

A string containing the netlist text.

Throws a JavaScript Error object if the inputs are unacceptable.

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

A string containing the name of the variable.

expr

A string containing the variable expression.

Throws a JavaScript Error object if the inputs are unacceptable.

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

Utmost IV Users Manual

Silvaco.Utmost4 Object Commands

Script Module

9.4.10 openDatabase
Syntax
Database openDatabase (serverName, databaseName, userName, password)

Description
Returns a Database object when given the following arguments.
serverName

A string containing the name of the database server.

databaseName

A string containing the name of the database.

userName

A string containing the name of the user.

password

A string containing the users password.

Throws a JavaScript Error object if the Database object cannot be created.

Example
myDatabase = Silvaco.Utmost4.openDatabase ("dbserver", "dbname",
"user1", "pass1");

9.4.11 openDirectory
Syntax
Directory

openDirectory (absoluteDirectoryPath)

Description
Returns a Directory object when given the following argument.
absoluteDirectoryPath

A string containing the path to the directory.

Throws a JavaScript Error object if the directory does not exist.

Example
myDir = Silvaco.Utmost4.openDirectory ("/tmp/mydirectory/");

9.4.12 optimize3
Syntax
number
optimize3
(DataSet[],
OptimSetup,
Variable[], Netlist, ModelLibrary, optimizer)

Extraction[],

Description
Performs an optimization based on the following arguments and returns the optimized error
metric. When the optimization is finished, the ModelLibrary object will contain the optimized
parameters.
DataSet[]

An array of DataSet objects

OptimSetup

An OptimSetup object

Extraction[]

An array of Extraction objects

188

Utmost IV Users Manual

Silvaco.Utmost4 Object Commands

Script Module

Variable []

An array of Variable objects

Netlist

A Netlist object

ModelLibrary

A ModelLibrary object

optimizer

A string containing the optimization algorithm to use. Must be one


of "LM", "HJ", "SA", "PT", "GA", "DE", or "HY".

Throws a JavaScript Error object if any of the arguments are invalid.

Example
bestError = Silvaco.Utmost4.optimize3 (myDatasets, myOptSetup,
myExtractions, myVariables,
myNetlist, myModelLib,
"LM");
Note: The function 'optimize2', which omits the Variable[] argument, has been deprecated.
Note: The function 'optimize', which omits the Extraction[] and the Variable[] arguments, has
been deprecated.

9.4.13 releaseLicenses
Syntax
undefined releaseLicenses ()

Description
Releases any additional licenses taken during the script execution.

Example
Silvaco.Utmost4.releaseLicenses ();

9.4.14 system
Syntax
undefined system (command)

Description
Executes the command as defined in the argument.
command

A string containing the command to be executed.

Throws a JavaScript Error object if the input is unacceptable.

Example
Silvaco.Utmost4.system ("cat myfile");

189

Utmost IV Users Manual

Silvaco.Utmost4 Object Commands

Script Module

9.4.15 writeToFile
Syntax
undefined writeToFile (Directory, filename, text,
overwriteOrAppend)

Description
Writes the specified text to a file based on the following arguments.
Directory

A Directory object containing the directory to store the file.

filename

A string containing the name of the file.

text

A string containing the text to write to the file.

overwriteOrAppend

A string containing either "overwrite" or "append".

Throws a JavaScript Error object if the inputs are unacceptable.

Example
Silvaco.Utmost4.writeToFile (myDir, "output.txt", "Hello World!",
"overwrite");

190

Utmost IV Users Manual

Database Object Commands

Script Module

9.5 Database Object Commands


The Database object provides commands to read from and write to the database.

9.5.1 readDataSets
Syntax
DataSet[] readDataSets (Search)

Description
Returns an array of DataSet objects from the database based on the following argument.
Search

A Search object detailing the database search for the datasets.

Throws a JavaScript Error object if the Search is invalid or if dataset read fails.

Example
myDataSets = myDatabase.readDataSets (mySearch);

9.5.2 readProject
Syntax
Project readProject (projectName)

Description
Returns a Project object from the database based on the following argument.
projectName

A string containing the name of the project

Throws a JavaScript Error object if projectName is invalid or the project cannot be read by
you or does not exist in the database.

Example
myProj = myDatabase.readProject ("myProject");

9.5.3 saveDataSets
Syntax
undefined saveDataSets (DataSet[])

Description
Saves the DataSet objects to the database based on the following argument. Any data sets that
already exist in the database will be overwritten.
DataSet[]

An array of DataSet objects to be saved.

Throws a JavaScript Error object if you do not have permission to save these datasets or if
writing of the datasets fails.

Example
myDatabase.saveDataSets (myDataSets);

191

Utmost IV Users Manual

Database Object Commands

Script Module

9.5.4 saveProject
Syntax
undefined saveProject (projectName, Project)

Description
Saves the Project object to the database based on the following arguments. If the project
already exists in the database, it will be overwritten. Otherwise, it will be created.
projectName

A string containing the new project name in the database.

Project

The Project object to be saved.

Throws a JavaScript Error object if the arguments are invalid or if you do not have permission
to save the project.

Example
myDatabase.saveProject ("new_project", myProj);

192

Utmost IV Users Manual

Directory Object Commands

Script Module

9.6 Directory Object Commands


The Directory object provides commands to read from and write to the file system.

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

A string containing the name of the file.

hiNode

A string containing the name of the hi node for capacitance measurement.

loNode

A string containing the name of the lo node for capacitance measurement.

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

A string containing the name of the file.

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

Utmost IV Users Manual

Directory Object Commands

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

A string containing the name of the file to read.

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

A string containing the name of the project file.

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

Utmost IV Users Manual

Directory Object Commands

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

A string containing the name of the file.

DataSet[]

An array of DataSet objects to be saved.

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

A string containing the file name

Project

The Project object to be saved

Throws a JavaScript Error object if you do not have permission to save this file.

Example
myDir.saveProject ("myfile.prj", myProj);

195

Utmost IV Users Manual

Directory Object Commands

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

A string containing the name of the file.

port1SignalNode

A string containing the name port1 signal node.

port1GroundNode

A string containing the name port1 ground node.

port2SignalNode

A string containing the name port2 signal node.

port2GroundNode

A string containing the name port2 ground node.

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

Utmost IV Users Manual

DataSet Object Commands

Script Module

9.7 DataSet Object Commands


The DataSet object provides commands to read from and write to a dataset.

9.7.1 addAttribute
Syntax
undefined addAttribute (name, expression)

Description
Adds an attribute to the DataSet object based on the following arguments.
name

A string containing the name of the new attribute.

value

A number containing the 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

A string containing the name of the new function

expr

A string containing the arithmetical expression

Throws a JavaScript Error object if the name is unacceptable or already exists or if the
expression is invalid.

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

Utmost IV Users Manual

DataSet Object Commands

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

A string containing the name of the new plot.

type

A string containing a valid plot type, for example "XY (LIN LIN)" or
"XYY (LIN LOG LIN)".

xName

A string containing the name of the x axis data.

yNames

A string containing the names of the y axis data.

y2Names

A string containing the names of the y2 axis data.

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

A string containing the name of the file to write into.

measOrSim

A string containing the name of the data to be exported. Must be


either 'meas' or 'sim'.

Throws a JavaScript Error object if any of the arguments are invalid.

Example
myDataSet.exportToTCADLogfile (myDir, "data_sim.log", "sim");

198

Utmost IV Users Manual

DataSet Object Commands

Script Module

9.7.5 extract
Syntax
number extract(Extraction, Variables [], measOrSim)

Description
Performs the extraction on the dataset and returns the resulting number based on the
following argument.
Extraction

An Extraction object containing the extraction to perform.

Variables []

An array of Variable objects.

measOrSim

A string to select whether the extraction is performed on the


measured or the simulated data. Must be either "meas" or "sim".

Throws a JavaScript error if any of the inputs are unacceptable.

Example
myVth
=
"meas");

myDataset.extract

(myVthExtraction,

myVariables,

9.7.6 getAttrVal
Syntax
number

getAttrVal

(attrName)

Description
Returns the value of a dataset attribute based on the following argument.
attrName

A string containing the name of the attribute.

Throws a JavaScript Error object if the attribute name does not exist.

Example
myAttrValue = myDataSet.getAttrVal ("W");

199

Utmost IV Users Manual

DataSet Object Commands

Script Module

9.7.7 getKeyVal
Syntax
value getKeyVal (keyName)

Description
Returns the value of a dataset key based on the following argument.
keyName

A string containing the name of the key. Must be one of


"temperature", "batchName", "waferName", "dieName",
"deviceName", or "measSetupName".

Throws a JavaScript Error object if the key name does not exist.

Example
myKeyValue = myDataSet.getKeyVal ("temperature");

9.7.8 getMeasData
Syntax
number[] getMeasData (name, part)

Description
Returns an array of numbers containing the values of the measured data based on the
following arguments.
name

A string containing the name of the data array.

part

A string containing the type of data to return. Must be one of


"real", "imag", "mag", or "phase".

Throws a JavaScript Error object if the inputs are invalid.

Examples
myIDdata = myDataSet.getMeasData ("ID", "real");
my_s11mag = myACDataSet.getMeasData ("s11", "mag");

200

Utmost IV Users Manual

DataSet Object Commands

Script Module

9.7.9 getSimData
Syntax
number[] getSimData

(name, part)

Description
Returns an array of numbers containing the values of the simulated data based on the
following arguments. You must simulate the dataset before running this command.
name

A string containing the name of the data.

part

A string containing the type of data to return. Must be one of


"real", "imag", "mag", or "phase" and defaults to "real".

Throws a JavaScript Error object if the inputs are invalid.

Examples
myIDdata = myDataSet.getSimData ("ID");
my_s11mag = myACDataSet.getSimData ("s11", "mag");

9.7.10 getSweepLen
Syntax
number getSweepLen (sweepId)

Description
Returns the number of points in the sweep based on the following argument.
sweepId

A number containing the sweep ID

Throws a JavaScript Error object if the sweep ID does not exist.

Example
sweepLen1 = myDataSet.getSweepLen (1);
Note: Sweep IDs start at one and not zero.

201

Utmost IV Users Manual

DataSet Object Commands

Script Module

9.7.11 remove
Syntax
undefined remove (type, name)

Description
Removes a sub-object of the DataSet object based on the following arguments.
type

A string containing the type of the sub-object. Must be one of "attr", "func", or
"plot".

name

A string containing the name of the sub-object to be removed.

Throws an exception if the arguments are unacceptable, the sub-object does not exist, or if
removing the sub-object would invalidate the DataSet.

Example
myDataSet.remove ("attr", "L");
myDataSet.remove ("func", "gm");
myDataSet.remove ("plot", "plot1");

9.7.12 setKeys
Syntax
undefined setKeys (temperature, batchName, waferName, dieName,
deviceName, measSetupName)

Description
Sets the database keys for the dataset using the following arguments.
temperature

A number containing the measurement temperature.

batchName

A string containing the name of the batch.

waferName

A string containing the name of the wafer.

dieName

A string containing the name of the die.

deviceName

A string containing the name of the device.

measSetupName

A string containing the name of the measurement setup.

Example
myDataSet.setKeys (27, "lot1","1","center","n10x10","idvglin");

202

Utmost IV Users Manual

DataSet Object Commands

Script Module

9.7.13 simulate
Syntax
undefined simulate (Netlist, ModelLibrary, simCol)

Description
Simulates the dataset based on the following arguments.
Netlist

A Netlist object to be used for the simulation.

ModelLibrary

A ModelLibrary object to be used for the simulation.

simCol

A string containing the name of the column in the model library to


be used. Must be one of "optVal", "fitVal", or "usrVal".

Throws a JavaScript Error object if any of the arguments are invalid.

Example
myDataSet.simulate (myNetlist, myModelLib, "optVal");

9.7.14 writeCSVFile
Syntax
undefined writeCSVFile (Directory, fileName, measured_simulated)

Description
Writes out the dataset to a file in CSV format according to the following arguments.
Directory

A Directory object containing the directory to store the file.

fileName

A string containing the name of the file to write to.

measured_simulated

A string that defines the contents of the output file. Must be either
"measured" or "measured_and_simulated".

Throws a Javascript error if any of the inputs are unacceptable.

Example
myDataset.writeCSVFile (myDir, "output.csv", "measured");

203

Utmost IV Users Manual

Project Object Commands

Script Module

9.8 Project Object Commands


The Project object provides commands to read from and write to the project.

9.8.1 getConnection
Syntax
Connection getConnection (deviceName, measSetupName)

Description
Returns a Connection object based on the following arguments.
deviceName

A string containing the name of the device.

measSetupName

A string containing the name of the measurement setup.

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

Utmost IV Users Manual

Project Object Commands

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

A string containing the name of the device subset.

Throws a JavaScript Error object if the device subset does not exist in the project.

Example
myDeviceSubset = myProj.getDeviceSubset ("subset1");

205

Utmost IV Users Manual

Project Object Commands

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

A string containing the name of the extraction.

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

Utmost IV Users Manual

Project Object Commands

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

Utmost IV Users Manual

Project Object Commands

Script Module

9.8.16 getNetlist
Syntax
Netlist getNetlist

()

Returns the netlist for a Optimization Project.

Example
myNetlist = myProj.getNetlist ();

9.8.17 getNetlistOfDevice
Syntax
Netlist getNetlistOfDevice (device)

Description
Returns the Netlist Object for the device specified in the argument below.
A Device object

device

Throws a JavaScript Error object if the input in invalid or if the device does not exist in
the project.

Example
myNetlist = myProj.getNetlistOfDevice (myDevice);

9.8.18 getOptimSetup
Syntax
OptimSetup

getOptimSetup

(optimSetupName)

Description
Returns an OptimSetup object based on the following argument.
optimSetupName

A string containing the name of the optimization setup.

Throws a JavaScript Error object if the optimization setup does not exist in the project.

Example
myOptimSetup = myProj.getOptimSetup ("optim_setup1");

9.8.19 getOptimSetupNames
Syntax
string[]

getOptimSetupNames ()

Description
Returns an array of strings containing the names of all of the optimization setups in this
project.

Example
myOptimSetupNames = myProj.getOptimSetupNames ();

208

Utmost IV Users Manual

Project Object Commands

Script Module

9.8.20 getSearch
Syntax
Search

getSearch

(searchName)

Description
Returns a Search object based on the following argument.
A string containing the name of the search.

searchName

Throws a JavaScript Error object if the search does not exist in the project.

Example
mySearch = myProj.getSearch ("search1");

9.8.21 getSearchNames
Syntax
string[]

getSearchNames

()

Description
Returns an array of strings containing the names of all of the searches in this project.

Example
mySearchNames = myProj.getSearchNames ();

9.8.22 getSimulationCol
Syntax
string getSimulationCol ()

Description
Returns a string containing the name of the column in the model library to be used for
simulation.

Example
mySimCol = myProject.getSimulationCol ()

9.8.23 getTemperatures
Syntax
number[] getTemperatures ()

Description
Returns an array of numbers containing the enabled temperatures of the project.

Example
temps = myProj.getTemperatures ();

209

Utmost IV Users Manual

Project Object Commands

Script Module

9.8.24 getType
Syntax
string

getType ()

Description
Returns a string containing the type of project.

Example
myProjType = myProj.getType ();

9.8.25 getVariable
Syntax
Variable getVariable (variableName)

Description
Returns a Variable object based on the following argument.
variableName

A string containing the name of the variable.

Throws a JavaScript Error object if the variable does not exist in the project.

Example
myVariable = myProj.getVariable ("vd_max");

9.8.26 getVariables
Syntax
Variable[] getVariables ()

Description
Returns an array of Variable objects containing the variables from the project.

Example
vars = myProj.getVariables ();

9.8.27 getVariableNames
Syntax
string[] getVariableNames ()

Description
Returns an array of strings containing the names of all of the variables in this project.

Example
myVariableNames = myProj.getVariableNames ();

210

Utmost IV Users Manual

Project Object Commands

Script Module

9.8.28 getWaferMap
Syntax
WaferMap getWaferMap ()

Description
Returns a Wafer Map object from the project.

Example
myWaferMap = myProj.getWaferMap ();

9.8.29 setModelLibrary
Syntax
undefined setModelLibrary (ModelLibrary)

Description
Writes the ModelLibrary object back into the project based on the following argument.
ModelLibrary

A ModelLibrary object that is to be stored.

Throws a JavaScript Error object if the input in invalid.

Example
myProj.setModelLibrary (myModelLib);
Note: The model library will not be saved to the database until the saveProject command is issued.

9.8.30 setVariables
undefined setVariables (Variables [])

Description
Writes the array of Variables objects back into the project based on the following argument.
Variables []

An array of Variable objects that is to be stored.

Throws a JavaScript Error object if the input in invalid.

Example
myProj.setVariables (myVariables);

211

Utmost IV Users Manual

Search Object Commands

Script Module

9.9 Search Object Commands


9.9.1 appendSearch
Syntax
undefined appendSearch (Search, operator)

Description
Adds a new Search object onto the end of the existing Search object based on the following
arguments.
Search

The Search object to append.

operator

A string containing the description of how to join the searches.


Must be "AND" or "OR".

Throws a JavaScript Error object if any of the arguments are invalid.

Example
myExistingSearch.appendSearch (myNewSearch, "AND");

212

Utmost IV Users Manual

Netlist Object Commands

Script Module

9.10 Netlist Object Commands


9.10.1 getSearch
Syntax
Search getSearch ();

Description
Returns a Search object built from the nodes and attributes of the Netlist object.

Example
mySearch = myNetlist.getSearch ();

213

Utmost IV Users Manual

ModelLibrary Object Commands

Script Module

9.11 ModelLibrary Object Commands


The ModelLibrary object provides commands to read from and write to the model library.

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

A string containing the new model card name.

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

A string containing the model card name.

paramName

A string containing the new parameter name.

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

Utmost IV Users Manual

ModelLibrary Object Commands

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

A string containing the name of the model card.

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

A string containing the name of the model card.

paramName

A string containing the name of the parameter.

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

Utmost IV Users Manual

ModelLibrary Object Commands

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

A string containing the name of the model to export.

column

A string containing the name of the column to export. Must be one of


"optVal", "fitVal", or "usrVal".

Directory

A Directory object containing the directory to store the file.

fileName

A string containing the name of the file.

libraryName

A string containing the library name in which to store the model.

subCircuitName

A string containing the subcircuit name in which to store the model.

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

Utmost IV Users Manual

ModelLibrary Object Commands

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

A string containing the name of the model.

column

A string containing the name of the column to export. Must be one


of "optVal", "fitVal", or "usrVal".

Directory

A Directory object.

fileName

A string containing the name of the filename for export.

Throws a JavaScript Error object if any of the arguments are invalid.

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

A string containing the name of the column to be used. Must be one of


"optVal", "fitVal", or "usrVal".

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

A string containing either "overwrite" or "append".

Throws a JavaScript Error object if any of the inputs are incorrect or inconsistent.

217

Utmost IV Users Manual

ModelLibrary Object Commands

Script Module

Example
var infoArray = [];

infoArray.push ({Wdrawn : 10e-6, Ldrawn : 10e-6, CardName : "n10x10"});


infoArray.push ({Wdrawn : 10e-6, Ldrawn : 1e-6,

CardName : "n10x1" });

infoArray.push ({Wdrawn : 1e-6,

Ldrawn : 10e-6, CardName : "n1x10" });

infoArray.push ({Wdrawn : 1e-6,

Ldrawn : 1e-6,

CardName : "n1x1"

});

myPointModelLibrary.generateBinnedModel (infoArray, "optVal", "bin.1",


myBinnedModelLibrary, "overwrite");

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

A string containing the name of the model.

Throws a JavaScript Error object if the model name does not exist.

Example
myCardType = myModelLib.getCardType ("nch");

218

Utmost IV Users Manual

ModelLibrary Object Commands

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

A string containing the name of the model

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

A string containing the name of the model card.

paramName

A string containing the name of parameter.

attribute

A string indicating which value to return. Must be one of "isVal",


"optVal", "fitVal", "usrVal", "minVal", "maxVal", or
"expr".

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");

myExpression = myModelLib.getValue ("PARAMS", "param1", "expr");

219

Utmost IV Users Manual

ModelLibrary Object Commands

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

A string containing the name of the model card.

Throws a Javascript Error object if the argument is unacceptable.

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

A string containing the name of the model card.

paramName

A string containing the name of the parameter.

Throws a Javascript Error object if the arguments are unacceptable.

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

A string containing the name of the file.

libName

A string containing the name of the library.

subcktName

A string containing the name of the subcircuit.

modelName

A string containing the name of the model.

column

A string containing the name of the column for import.

220

Utmost IV Users Manual

ModelLibrary Object Commands

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

A string containing the name of the file.

libName

A string containing the name of the library.

subcktName

A string containing the name of the subcircuit.

paramName

A string containing the name of the parameter.

column

A string containing the name of the column for import.

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 parameter name supports wildcards.

Example
myModelLib.importModelParams
"d_vth0_n", "optVal");

(myDir,

"model.lib",

"TT",

"",

myModelLib.importModelParams (myDir, "model.lib", "SS", "", "*",


"usrVal");

221

Utmost IV Users Manual

ModelLibrary Object Commands

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

A string containing the current model card name.

newName

A string containing the new model card name.

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

A string containing the name of the model card.

paramName

A string containing the name of parameters.

attribute

A string indicating which value to return. Must be one of "isVal",


"optVal", "fitVal", "usrVal", "minVal", "maxVal", or
"expr".

value

The parameter 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

Utmost IV Users Manual

Extraction Object Commands

Script Module

9.12 Extraction Object Commands


9.12.1 getName
Syntax
string getName ()

Description
Returns a string containing the name of the Extraction.

Example
myExtractionName = myExtraction.getName ();

223

Utmost IV Users Manual

Variable Object Commands

Script Module

9.13 Variable Object Commands


9.13.1 getExpr ()
Syntax
string getExpr ()

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

Utmost IV Users Manual

DataSubset Object Commands

Script Module

9.14 DataSubset Object Commands


9.14.1 apply
Syntax
DataSet[] apply (DataSet[]);

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[]

An array of DataSet objects used as input to the search.

Throws a JavaScript Error object if the input argument is invalid.

Example
mySmallDataSets = myDataSubset.apply (myLargeDataSets);

225

Utmost IV Users Manual

OptimSetup Object Commands

Script Module

9.15 OptimSetup Object Commands


9.15.1 getOptimizerType
Syntax
string getOptimizerType ();

Description
Returns a string containing the name of the optimization algorithm from the optimization
setup.

Example
myOptimizer = myOptimSetup.getOptimizerType ();

226

Utmost IV Users Manual

Hardware Object Commands

Script Module

9.16 Hardware Object Commands


9.16.1 measure
Syntax
dataSet measure (temperature, batchName, waferName,
device, measSetup, variable [], waferMap, connection)

dieName,

Description
Performs a measurement to generate measured data in the resulting dataSet based on the
following arguments.
temperature

A number containing the temperature value.

batchName

A string containing the name of the batch.

waferName

A string containing the name of the wafer.

dieName

A string containing the name of the die.

device

A Device object.

measSetup

A MeasSetup object.

variable []

An array of Variable objects.

waferMap

A WaferMap object.

connection

A Connection object.

Throws a JavaScript Error object if any of the arguments are invalid.

Example
myDataSet = myHardware.measure (27, "lot1", "1", "1", myDevice,
myMeasSetup, vars, myWaferMap, myConnection);

227

Utmost IV Users Manual

Hardware Object Commands

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

A number containing the temperature value.

batchName

A string containing the name of the batch.

waferName

A string containing the name of the wafer.

dieName

A string containing the name of the die.

device

A Device object.

measSetup

A MeasSetup object.

variable []

An array of Variable objects.

waferMap

A WaferMap object.

connection

A Connection object.

openDataSet

A DataSet object containing the open de-embedding data.

Throws a JavaScript Error object if any of the arguments are invalid.

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

Utmost IV Users Manual

Hardware Object Commands

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

A number containing the temperature value.

batchName

A string containing the name of the batch.

waferName

A string containing the name of the wafer.

dieName

A string containing the name of the die.

device

A Device object.

measSetup

A MeasSetup object.

variable []

An array of Variable objects.

waferMap

A WaferMap object.

connection

A Connection object.

shortDataSet

A DataSet object containing the short de-embedding data.

Throws a JavaScript Error object if any of the arguments are invalid.

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

Utmost IV Users Manual

Hardware Object Commands

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

A number containing the temperature value.

batchName

A string containing the name of the batch.

waferName

A string containing the name of the wafer.

dieName

A string containing the name of the die.

device

A Device object.

measSetup

A MeasSetup object.

variable []

An array of Variable objects.

waferMap

A WaferMap object.

connection

A Connection object.

openDataSet

A DataSet object containing the open de-embedding data.

shortDataSet

A DataSet object containing the short de-embedding data.

Throws a JavaScript Error object if any of the arguments are invalid.

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

Utmost IV Users Manual

Hardware Object Commands

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

A string containing the name of the wafer to load.

Throws a JavaScript Error object if any of the arguments are invalid.

Example
myHardware.proberLoad (myWaferMap, "wafer1");

231

Utmost IV Users Manual

Hardware Object Commands

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

A string containing the die name to move to.

groupName

A string containing the group name to move to.

Throws a JavaScript Error object if any of the arguments are invalid.

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

Utmost IV Users Manual

Hardware Object Commands

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 []

An array of Variable objects.

connection

A Connection object.

Throws a JavaScript Error object if any of the arguments are invalid.

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

A number containing the temperature to be set.

Throws a JavaScript Error object if the argument is invalid.

Example
myHardware.thermalSet (27);

233

Utmost IV Users Manual

Hardware Object Commands

Script Module

9.16.14 verify
Syntax
Boolean verify (name)

Description
This command will verify the hardware based on the following arguments.
name

A string containing the name of the measurement hardware to verify.


Must be one of "controller", "thermal", "prober", "scanner",
"dc", "lcr", "ac", or "noise".

Throws a JavaScript Error object if the argument is invalid.

Example
success = myHardware.verify ("dc");

234

Utmost IV Users Manual

WaferMap Object Commands

Script Module

9.17 WaferMap Object Commands


9.17.1 getBatchName
Syntax
string getBatchName ()

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

Utmost IV Users Manual

DeviceSubset Object Commands

Script Module

9.18 DeviceSubset Object Commands


9.18.1 apply
Syntax
Device[] apply (Device[]);

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[]

An array of Device objects used as input to the search.

Throws a JavaScript Error object if the input argument is invalid.

Example
mySmallDevices = myDeviceSubset.apply (myLargeDevices);

236

Utmost IV Users Manual

Device Object Commands

Script Module

9.19 Device Object Commands


9.19.1 getGroupName
Syntax
string getGroupName ()

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

Utmost IV Users Manual

DeviceNode Object Commands

Script Module

9.20 DeviceNode Object Commands


9.20.1 getName
Syntax
string getName ()

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

Utmost IV Users Manual

Attribute Object Commands

Script Module

9.21 Attribute Object Commands


9.21.1 getName
Syntax
string getName ()

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

Utmost IV Users Manual

Chapter 10
Model Check Module

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.

Figure 10-1 The Model Check Project Window

241

Utmost IV Users Manual

Setting Up a Simulation

Model Check Module

10.1 Setting Up a Simulation


To select the model you will test and the simulator you want to us, you will need to set up the
Simulation. This is done through the Simulation dialog that you can open by selecting
SetupSimulations from the menu bar or by clicking on the

toolbar icon.

Figure 10-2 Setting up a Simulation

Field

Description

Name

The name of this simulation.

Simulator

You can select the simulator you wish to use.

Model Name

The name of the model you wish to test.

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

Utmost IV Users Manual

The Model Library

Model Check Module

10.2 The Model Library


The model library can be used to import and store model cards and parameters. You can then
use the model check module to test these models. For a full description of how the Model
Library Window works, please refer to Section 7.6 The Model Library.

10.3 Creating a Characteristic Plot


A characteristic plot is used to display some common device performance characteristics. You
can select which plots to show, the maximum voltages to apply to the device, and any number
of device geometries and temperatures. To open the characteristic plot dialog, select
CreateCharacteristic Plot or click on the

toolbar icon.

Figure 10-3 Defining a Characteristic Plot


Field

Description

Name

The name of the characteristic plot.

Characteristics

One or more characteristics can be selected for model


checking.

Voltage Ranges

The maximum voltages on the device terminals.

Geometries and Temperatures

The device sizes and temperatures to display.

Note: Once you create a plot, it will immediately be placed into the model check sequence.

243

Utmost IV Users Manual

Creating a Characteristic Plot

Model Check Module

An example characteristic plot is shown below.

Figure 10-4 Example Characteristic Plot

244

Utmost IV Users Manual

Creating an Extraction Plot

Model Check Module

10.4 Creating an Extraction Plot


An extraction plot is used to display some common extracted device parameters against
geometry or temperature. You can select the parameter you wish to display, the maximum
voltages to apply to the device, and the geometries and temperatures you wish to sweep over.
To open the extraction plot dialog, select CreateExtraction Plot or click on the
toolbar icon.

Figure 10-5 Defining an Extraction Plot


Field

Description

Name

The name of the extraction plot.

Extraction

You select the name of the parameter you wish to display.

Sweep

You select the attribute you wish to sweep.

Start

The start value for the sweep.

Step

The step value for the sweep.

Points

The number of points in the sweep.

Voltage Ranges

The maximum voltage on the device terminals.

Geometries and Temperatures

You can select various values of the other geometry attributes


or temperature to plot.

Note: Once you create a plot, it will immediately be placed into the model check sequence.

245

Utmost IV Users Manual

Creating an Extraction Plot

Model Check Module

An example extraction plot that would be generated is shown below.

Figure 10-6 Example Threshold Voltage vs. Length Extraction Plot

246

Utmost IV Users Manual

Running the Model Check Sequence

Model Check Module

10.5 Running the Model Check Sequence


As each characteristic and extraction plot is created, it will be inserted into the model check
sequence. You must run the sequence in order to view the plots that will be generated. Select
CheckRun/Continue or click on the

toolbar icon in the viewer. The current position

in the Status column. To change the current position, select


is indicated by a status icon
the item in the sequence and select CheckSet Position. The sequence will run one step at a
time to allow you time to review each plot that is generated.

Figure 10-7 Sequence Containing Two Plots

247

Utmost IV Users Manual

Exploring Your Device Model

Model Check Module

10.6 Exploring Your Device Model


This is a very useful feature when learning about the capabilities of your device. Using
sliders, you can interactively change the geometry attributes, the temperature, and the
maximum device terminal voltages. These effects of these changes will be immediately
shown in the characteristic plots that you select from the dialog.
Once you select CheckExplore from the menu bar or click on the
Explore dialog will open.

toolbar icon, the

Figure 10-8 Setting up a Model Explore


Field

Description

Explorer

The selected characteristics will be explored by moving a


parameters slider or entering a new value to change the parameters
value.

Characteristics

The selected characteristics in this area will be displayed in the


viewer.

248

Utmost IV Users Manual

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

Global Optimization Algorithms

Simulated Annealing
Parallel Tempering
Genetic Algorithm
Differential Evolution

Hybrid Optimization Algorithm

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

Utmost IV Users Manual

Least Squares Levenberg-Marquardt Optimization Algorithm (LM)

Optimization Algorithms

A.1 Least Squares Levenberg-Marquardt Optimization Algorithm (LM)


Levenberg-Marquardt is a standard nonlinear least-squares optimizer, and works very well in
practice if a reasonably good initial set of parameter values is available. It is a local minimum
solver which performs a numerical differentiation at each iteration. It only accepts changes in
the parameters which improve the error metric, and so there is a danger that it will find a local
minimum instead of the global minimum.

Figure A-1 Levenberg-Marquardt Configuration


The following configuration parameters can be used for the LM optimizer.
Maximum number of simulations

The optimizer will stop if it reaches this number of


simulations.

Acceptable error (%)

The optimizer will continue if the incremental


error reduction is greater than 0.1% of this value.

251

Utmost IV Users Manual

Hooke-Jeeves Optimization Algorithm (HJ)

Optimization Algorithms

A.2 Hooke-Jeeves Optimization Algorithm (HJ)


The HJ optimizer is a local optimizer. While the LM optimizer described above is also a local
optimizer, there are some important differences between the two. LM calculates numerical
derivatives but HJ belongs to the class of direct search algorithms which does not use
derivatives. In this respect, HJ is similar to the global optimizers. As some physical models
are discontinuous in the optimization parameters, and because the measured or calculated
variables may introduce numerical noise, calculation of numerical derivatives is often
impractical or inaccurate. In such cases, it is necessary to use a direct search optimizer, such
as HJ.
Each HJ cycle consists of exploration moves followed by pattern moves. An exploration
attempts to find an advantageous direction in which to move the parameters. A successful
exploration is exploited by repeatedly moving the parameters in the same direction. These are
the pattern moves. The amount by which each parameter is moved during an exploration is
called its stepsize. At the end of each cycle every stepsize is reduced by the stepsize factor.

Figure A-2 Hooke-Jeeves Configuration


The following configuration parameters can be used for the HJ optimizer.
Stepsize factor

Multiplies the stepsize of every


parameter at the end of each cycle.

Maximum number of per cycle pattern moves

The cycle will end if it reaches this


number of pattern moves.

252

Utmost IV Users Manual

Hooke-Jeeves Optimization Algorithm (HJ)

Optimization Algorithms

Maximum number of cycles

The optimizer will stop if it reaches this


number of cycles.

Maximum number of simulations

The optimizer will stop if it reaches this


number of simulations.

Acceptable error (%)

The optimizer will stop if the error


metric is less than this value.

253

Utmost IV Users Manual

Simulated Annealing Optimization Algorithm (SA)

Optimization Algorithms

A.3 Simulated Annealing Optimization Algorithm (SA)


SA is a global optimizer. The annealing is designed to enhance the likelihood of avoiding
local minima while searching for the global minimum. Injected randomness helps prevent
premature convergence to a local minimum.
The SA method mimics the formation of an actual physical solid from a liquid as the liquid
cools. At high temperatures, the liquid is highly disordered, its components are free to move,
and its energy is high. As the temperature is lowered, so the energy of the system falls. If the
cooling process is slow enough, an ordered solid (such as a crystal) of the lowest possible
energy will form. If the temperature is lowered too quickly, then likely an amorphous solid at
a higher energy than the crystal will be formed. In SA, the error metric is analogous to the
energy and cooling is achieved by gradually decreasing a temperature, which is an
optimization control parameter. The critical point of the SA algorithm is not to lower the
temperature parameter too quickly.
SA models the physical cooling process by choosing new states at random, always accepting
steps which cause the value of the error metric to fall, and sometimes accepting those which
cause it to rise. Hence, there is always a chance of getting out of a local minimum and
afterwards finding the global minimum. At each temperature, a number of sweeps is
performed. A sweep consists of testing a (typically large) number of states. These states are
chosen according to an internal algorithm.

Figure A-3 Simulated Annealing Configuration

254

Utmost IV Users Manual

Simulated Annealing Optimization Algorithm (SA)

Optimization Algorithms

The following configuration parameters can be set for the SA optimizer.


Initial temperature factor

Multiplies the initial value of the error metric to set


the initial temperature.

Minimum temperature

The optimizer will stop if the temperature reaches this


value.

Cooling factor

Multiplies the temperature after all its sweeps have


been completed.

Number of sweeps per temperature

The temperature will be reduced when this number of


sweeps is reached.

Maximum number of simulations

The optimizer will stop if it reaches this number of


simulations.

Acceptable error (%)

The optimizer will stop if the error metric is less than


this value.

Stop condition

The optimization will stop if, during the specified


previous number of temperatures, none of them has
reduced the error metric by the specified amount.

255

Utmost IV Users Manual

Parallel Tempering Optimization Algorithm (PT)

Optimization Algorithms

A.4 Parallel Tempering Optimization Algorithm (PT)


Parallel Tempering (PT) is a global optimization method. It is related to SA, but instead of
mimicing the gradual cooling process of a single physical system, it consists of an ensemble
of systems (called replicas) at different and fixed temperatures. Each replica carries its own
copy of the optimization parameters which will in general diverge from the other replicas as
the optimization proceeds.
Each cycle of the PT algorithm begins with a number of sweeps of the SA type. These are
followed by exchange iterations in which replicas at adjacent temperatures exchange their
configurations with a certain probability. Provided the temperatures are not too dissimilar,
this probability will be reasonably high and a kind of tunneling can take place between the
systems. Systems at higher temperatures can sample larger areas of parameter space, albeit
more coarsely. Those at lower temperatures can sample smaller areas more finely but may
become trapped in local minima and require a restart in an ordinary SA optimization.
The central idea of PT is that the exchange of replicas enables systems at higher temperatures
to generate new local optimizers at lower temperatures, facilitating good sampling of the
whole phase space. The disadvantage of PT is of course that simulation of replicas, rather
than one, requires on the order of times more computational effort.

Figure A-4 Parallel Tempering Configuration

256

Utmost IV Users Manual

Parallel Tempering Optimization Algorithm (PT)

Optimization Algorithms

The following configuration parameters can be set for the PT optimizer.


Number of replicas

Number of copies of the optimization parameters to be


used, each at a different temperature.

Maximum temperature factor

Multiplies the initial value of the error metric to set the


highest temperature of any replica.

Minimum temperature factor

Multiplies the initial value of the error metric to set the


lowest temperature of any replica.

Number of sweeps per cycle

Each cycle begins with this many sweeps, then


performs exchange iterations.

Number of exchange iterations

After performing its sweeps, each cycle per cycle


concludes with this many exchange iterations.

Maximum number of cycles

The optimizer will stop if it reaches this number of


cycles.

Maximum number of simulations

The optimizer will stop if it reaches this number of


simulations.

Acceptable error (%)

The optimizer will stop if the error metric is less than


this value.

Stop condition

The optimization will stop if, during the specified


previous number of cycles, none of them has reduced
the error metric by the specified amount.

257

Utmost IV Users Manual

Genetic Optimization Algorithm (GA)

Optimization Algorithms

A.5 Genetic Optimization Algorithm (GA)


Genetic algorithm (GA) is a global optimizer and an evolutionary algorithm, that is, it uses
techniques inspired by evolutionary biology. GA works with a population of candidate
solutions to the optimization problem. At each step it generates a new population from the
old. The idea is that the error metric plays the role of the evolutionary pressures found in
nature and causes the evolution of an improved population.
GA uses crossover and mutation operators, analogously to biological reproduction. The
crossover operator produces two children from two parents by mixing parts of both parents.
The mutation operator randomly changes parts of a single child.
Individuals are chosen to contribute to the next generation by one of two means. Tournament
means that pairs are compared at random and the one with the better error metric is chosen.
Universal stochastic sampling chooses contributors based on their fitness relative to the
whole population

Figure A-5 Genetic Algorithm Configuration


The following configuration parameters can be used for the GA optimizer.
Population size

The number of copies of the parameters used in each


generation.

Selection

Choose tournament or stochastic methods to select the


next generation.

Crossover probability

The probability that two parents will generate two


children by exchanging their parameter values. This
value should be relatively high.

258

Utmost IV Users Manual

Genetic Optimization Algorithm (GA)

Optimization Algorithms

Mutation probability

The probability that parameter values will change


spontaneously in a single child. This value should be
relatively low.

Use elitism

If true, the fittest member of the current generation


will always be passed to the next.

Maximum number of generations

The optimizer will stop if it reaches this number of


generations.

Maximum number of simulations

The optimizer will stop if it reaches this number of


simulations.

Acceptable error (%)

The optimizer will stop if the error metric is less than


this value.

Stop condition

The optimization will stop if, during the specified


previous number of generations, none of them has
reduced the error metric by the specified amount.

259

Utmost IV Users Manual

Differential Evolution Optimization Algorithm (DE)

Optimization Algorithms

A.6 Differential Evolution Optimization Algorithm (DE)


Like GA, differential evolution (DE) is a global optimizer and an evolutionary algorithm, that
is, it uses techniques inspired by evolutionary biology. Unlike GA, which always operates
directly on the population members, DE also uses differences between members as it creates
candidate solutions. It constructs a population of these candidates matching the current
population. Only those which improve over their counterparts are accepted, so all the
members of the next generation are always at least as good as the current one.
The amplification factor multiplies difference between existing individuals to make an
intermediate. The crossover probability is used to decide which parts of an intermediate
contribute to to a candidate for the next generation.
Several strategies exist to combine members of the current generation. BEST means that the
member with the best error metric always contributes. The numbers 2 and 4 indicate how
many members contribute. EXP chooses parameters from intermediates in a block, BIN on a
per-individual basis.

Figure A-6 Differential Evolution Configuration


The following configuration parameters can be used for the DE optimizer.
Population size

The number of copies of the parameters used in each


generation.

Amplification factor

Multiplies differences in members contributing to an


intermediate.

Crossover probability

The probability that parts of an intermediate will


contribution to a candidate.

260

Utmost IV Users Manual

Differential Evolution Optimization Algorithm (DE)

Optimization Algorithms

Strategy

The means by which candidate members of the next


generation are constructed.

Maximum number of generations

The optimizer will stop if it reaches this number of


generations.

Maximum number of simulations

The optimizer will stop if it reaches this number of


simulations.

Acceptable error (%)

The optimizer will stop if the error metric is less than


this value.

Stop condition

The optimization will stop if, during the specified


previous number of generations, none of them has
reduced the error metric by the specified amount.

261

Utmost IV Users Manual

Hybrid Optimization Algorithm (HY)

Optimization Algorithms

A.7 Hybrid Optimization Algorithm (HY)


The hybrid optimizer allows a single selection of two sequential optimizations to take best
advantage of the strengths of both global and local optimization algorithms. Typically, the
first optimization is performed using a global optimizer. This optimization provides a good
initial starting point for the much faster local optimizer.

Figure A-7 Hybrid Configuration


The following configuration parameters can be set for the HY optimizer.
First optimizer

The optimization algorithm to be run first.

Second optimizer

The optimization algorithm to be run second.

Transition error (%)

The first optimization will stop and the second will begin if this error
metric is reached.

262

Utmost IV Users Manual

Appendix B
Converting Data from ICCAP,
BSIMPro, ProPlus, and Atlas

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

Utmost IV Users Manual

Adding Missing Key Information

Converting Data from ICCAP, BSIMPro, ProPlus, and Atlas

B.1 Adding Missing Key Information


The information stored in these other formats is incomplete. Typically, the filename or the
directory name or hierarchy is used to tell you what data is stored in the file. When
performing the conversion to Utmost IV format files, this missing key information will have
to be added. In some formats, the temperature information may be incorrect or missing.

Information

Command line option example

Batch Name

batchname=mybatch

Wafer Name

wafername=wafer1

Die Name

diename=center

Device Name

devicename=n10x10

Dataset Name

datasetname=idvglin

Temperature

temperature=27

For example, 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.

B.2 The Utmost IV Data File Header


At the top of every Utmost IV '.uds' data file, there is a short header identifying the file.
The header will be written by default by the awk program. To stop the header from being
written to the output file, you should add the following command line option.
noheader=1
Note: The header must appear at the top of the file and must appear only once. When appending a new converted
dataset to an existing Utmost IV data file, you should use this option to avoid writing out another header into
the file.

B.3 Adding an Attribute


The device attribute information, such as width and length, are often missing from these other
data formats. To add an attribute to the converted dataset, you use the following command
line option.
attr_W=10e-6

This example would add an attribute named 'W' with a value of 10e-6.

265

Utmost IV Users Manual

Adding a Function

Converting Data from ICCAP, BSIMPro, ProPlus, and Atlas

B.4 Adding a Function


You may also want to add an additional function into the converted dataset. For example,
when importing some MOSFET drain current versus gate voltage data, you may want to
calculated the transconductance, gm. This function can be added to the converted dataset
using the following command line option.
func_1=gm::derivative (VG, ID)
func_2=beta::IC/IB

B.5 Adding a Plot


To add a plot to the converted dataset, you would use the following command line option.
plot_1="gm::XY(LIN LIN)::VG::gm"
plot_2=gummel::XY(LIN LOG)::VB::IC IB

For a cartesian plot with both Y1 and Y2 axes, 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.

Figure B-1 Plotting a Dataset with 3 Sweeps

266

Utmost IV Users Manual

Correcting Polarity in BSIMPro Data

Converting Data from ICCAP, BSIMPro, ProPlus, and Atlas

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.

Figure B-2 Plotting Multiple Datasets with 2 Sweeps

B.7 Correcting Polarity in BSIMPro Data


With regard to pmos polarity, several different variants of BSIMPro format data files have
been seen in practice. In the most common variant, both the voltage sweep information and
the measured data are multiplied by -1, the polarity in the file. The conversion script will, by
default, perform this conversion for you. However, if your data files are of the additional
variants that do not follow the above pattern, then you can use the following command line
options to specify exactly how to convert your data.
Command line option

Description

pol_for_volt=1

Voltage sweep information is multiplied by this value.

pol_for_data=-1

Measured data is multiplied by this value.

267

Utmost IV Users Manual

Automating the Conversion of Multiple Files

Converting Data from ICCAP, BSIMPro, ProPlus, and Atlas

B.8 Automating the Conversion of Multiple Files


Utmost III and Utmost IV can store many datasets in a single file in an organized way.
All of the other formats will typically only store a single measurement of a single device in
each file. With a single file for each piece of data, this leads to the generation of many
thousands of these files. Converting each of these files one at a time would be very time
consuming and error prone.
A second script is provided which, together with an additional input file, will fully automate
the conversion of all of your data files. The automation script for ICCAP data is called
iccap_to_ut4_dc and this will read its input from a file called iccap_to_ut4_dc.in,
which you should create to describe the conversions to be made. The structure of this input
file is a single header row giving the file name and the names of the command line options
that you wish to add.
filename;batchname;wafername;diename;devicename;datasetname;temperature

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

Utmost IV Users Manual

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

Utmost IV Users Manual

Index

Extraction Object ............................................................... 223


Extraction Plot ........................................................... 245246
Extraction Setup .......................................................... 96, 161
Extractions ......................................................... 69, 146148

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

getSearch ................................................................209, 213


getSearchNames ...............................................................209
getSimData ......................................................................201
getSimulationCol ................................................................209
getSweepLen ....................................................................201
getTemperatures ...............................................................209
getType ...........................................................................210
getValue ..................................................................219, 239
getVariable .......................................................................210
getVariableNames ..............................................................210
getVariables .....................................................................210
getWaferMap ....................................................................211
getWaferNames .................................................................235
Global Optimization ............................................................250
gm_lin .............................................................................148
Group Grid ...................................................................6263
Group List ..........................................................................64
Group Selection .............................................................6265

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

Utmost IV Users Manual

Index

LCR Source ........................................................................ 90


LCR Target ........................................................................ 91
LCR_TABLE ....................................................................... 81
Levenberg-Marquardt ......................................................... 251
List Sweep ......................................................................... 84
LM .................................................................................. 251
Local Optimization ............................................................. 250
Login ................................................................................ 25

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

Parallel Tempering .....................................................256257


PARAMS .........................................................................128
Password ...........................................................................25
Pause .............................................................................166
Permissions ........................................................................50
Plot ...........................................................................94, 111
Plot File Generation ....................................................169170
Port ..................................................................................91
prim ........................................................................159, 164
proberContact ...................................................................231
proberHome .....................................................................231
proberInit .........................................................................231
proberLoad .......................................................................231
proberMove ......................................................................232
proberNoContact ...............................................................232
Project ...............................................................................26
Project Object ...........................................................204210
Project Permissions ..............................................................27
ProPlus ...........................................................................264
PT ..........................................................................256257
Pulse ................................................................................89

Netlist ............................................................................. 123


Netlist Object .................................................................... 213
NI488 ................................................................................ 73
Node Names ...................................................................... 82
NOISE ............................................................................... 81
Noise Amplifier .................................................................... 76
Noise Target ....................................................................... 92
NOISE_TABLE .................................................................... 81

readDataSets ............................................191, 193, 194, 195


Reading Project Parts ...........................................................31
readProject ...............................................................191, 194
releaseLicenses .................................................................189
remove ............................................................................202
renameCard .....................................................................222
Report Document Generation .......................................168169
Reporting .................................................................168170
Revert .............................................................................155
RS232 .........................................................................71, 73
Rubberband ......................................................154156, 166

openCurrentWorkingDirectory ............................................... 187


openDatabase .................................................................. 188
openDirectory ................................................................... 188
Optimization Module ............................................. 14, 102170
Optimization Sequence ....................................... 103, 162167
Optimization Setup ..................................................... 158160

SA ..........................................................................254255
saveDataSets ...................................................191, 193, 195
saveProject ..............................................................192, 195
Scanner .............................................................................75
scannerClear ....................................................................232
scannerConnect ................................................................233

271

Utmost IV Users Manual

Index

Script .............................................................. 101, 167, 183


Script Module ...................................................... 14, 182235
Search Object ................................................................... 212
Searches ................................................................. 104107
Sequence Objects ........................................................ 53, 103
setKeys ........................................................................... 202
setModelLibrary ................................................................. 211
setValue .......................................................................... 222
setVariables ..................................................................... 211
Show Plots ............................................................... 111, 165
simulate ........................................................................... 203
Simulated Annealing ........................................... 254, 254255
Simulation ................................................................ 149, 242
Simulation Mode .................................................................. 97
Single Step ................................................................. 98, 166
slope ....................................................................... 147, 148
SmartView ......................................................................... 21
Sorting Datasets ................................................................ 110
sparImportFromTCADLogfile ........................................ 196, 204
Spayn ............................................................................. 140
SRDB ............................................................................... 16
Status Log .................................................................. 53, 103
superuser ..................................................................... 17, 48
Sweep ......................................................................... 8385
system ............................................................................ 189

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

Utmost IV Users Manual

Вам также может понравиться