Iccap Help
Iccap Help
Iccap Help
IC-CAP 2008
User’s Guide
Agilent Technologies
Notices
© Agilent Technologies, Inc. 2000-2008 Warranty Safety Notices
No part of this manual may be reproduced in The material contained in this docu-
any form or by any means (including elec- ment is provided “as is,” and is sub-
tronic storage and retrieval or translation ject to being changed, without notice, CAU TI O N
into a foreign language) without prior agree- in future editions. Further, to the max-
ment and written consent from Agilent imum extent permitted by applicable A CAUTION notice denotes a haz-
Technologies, Inc. as governed by United law, Agilent disclaims all warranties, ard. It calls attention to an operat-
States and international copyright laws. either express or implied, with regard ing procedure, practice, or the like
to this manual and any information
Edition contained herein, including but not that, if not correctly performed or
March 2008 limited to the implied warranties of adhered to, could result in damage
merchantability and fitness for a par- to the product or loss of important
Printed in USA ticular purpose. Agilent shall not be data. Do not proceed beyond a
Agilent Technologies, Inc. liable for errors or for incidental or
5301 Stevens Creek Blvd. consequential damages in connec- CAUTION notice until the indicated
Santa Clara, CA 95052 USA tion with the furnishing, use, or per- conditions are fully understood and
formance of this document or of any met.
Acknowledgments information contained herein. Should
Agilent and the user have a separate
UNIX ® is a registered trademark of the written agreement with warranty
Open Group. terms covering the material in this WA RN ING
Windows ®, MS Windows ® and Windows document that conflict with these
NT ® are U.S. registered trademarks of terms, the warranty terms in the sep- A WARNING notice denotes a
Microsoft Corporation. arate agreement shall control.
hazard. It calls attention to an
Errata Technology Licenses operating procedure, practice, or
The hardware and/or software described in
the like that, if not correctly per-
The IC-CAP product may contain references
to “HP” or “HPEESOF” such as in file names this document are furnished under a license formed or adhered to, could result
and directory names. The business entity and may be used or copied only in accor- in personal injury or death. Do not
formerly known as “HP EEsof” is now part dance with the terms of such license. proceed beyond a WARNING
of Agilent Technologies and is known as notice until the indicated condi-
“Agilent EEsof.” To avoid broken functional- Restricted Rights Legend
ity and to maintain backward compatibility tions are fully understood and
U.S. Government Restricted Rights. Soft-
for our customers, we did not change all the ware and technical data rights granted to
met.
names and labels that contain “HP” or the federal government include only those
“HPEESOF” references. rights customarily provided to end user cus-
tomers. Agilent provides this customary
commercial license in Software and techni-
cal data pursuant to FAR 12.211 (Technical
Data) and 12.212 (Computer Software) and,
for the Department of Defense, DFARS
252.227-7015 (Technical Data - Commercial
Items) and DFARS 227.7202-3 (Rights in
Commercial Computer Software or Com-
puter Software Documentation).
2 Program Basics
Documentation Conventions 32
Making Selections with the Mouse 33
Working with Windows 34
Working with Menus and Commands 35
Working with Dialog Boxes 37
Providing Dialog Box Information 38
Table and Text Editors 40
Using Help 42
Starting the Program 43
Opening a Model File 48
IC-CAP File Extensions 55
Changing Directories 56
The Model Window Folders 58
Setting System Variables 59
5 Making Measurements
Hardware Connections 167
Configuring the System 169
Viewing the Instrument Library 171
Specifying Interface Files 172
Building an Active Instrument List 173
Assigning Unit Names 176
Using Unit Names in a Setup 178
Adding a Ground Unit 180
Using Multiple Instruments 181
Specifying Instrument Options 182
Saving Instrument Options 183
Performing a Calibration 185
Performing a Measurement 186
Viewing Results 188
A Measurement Example 189
Sweep Modes and Input/Output Types 193
Sweep Types 193
Multiple Instruments 194
Supported Internal Sweeps 194
Aborting a Measurement 198
Speeding Up Repetitive Measurements 200
Using Fast Measurement 201
6 Simulating
Selecting a Simulator 210
Specifying a Default Startup Simulator 210
Specifying a Simulator for a Specific Model, DUT, or Setup 211
Specifying a Simulator without a Variable 214
Specifying Inputs and Outputs 215
Conventions for Connecting Nodes 216
Specifying Parameter or Variable Sweeps 218
Hierarchical Parameter Sweeps 219
Sychronized List Sweeps (LSYNC) 219
Simulating Open Circuits 220
Performing a Simulation 221
Using the Simulation Debugger 222
Using the Manual Simulate Function 223
Saving the Simulation Debugger Files 224
Simulation Types 225
Simulation Input and Output Requirements 227
DC Simulation 227
AC Simulation 228
Transient Simulation 229
Noise Simulation 229
CV Simulation 231
2-Port Simulation 232
TDR Simulation 237
7 Optimizing
Optimization in IC-CAP 262
Optimization Algorithms 264
Search Methods 266
Levenberg-Marquardt Search 266
Random Search 269
Hybrid (Random/LM) Search 270
Hybrid (Random/Quasi-Newton) Search 270
Sensitivity Analysis 271
Gradient Search 271
Quasi-Newton Search 272
Minimax (Gauss-Newton/Quasi-Newton) Search 272
Genetic Search 273
Relative/Absolute Error Formulation 277
Error Function Formulation 279
Least-Squares Error Function (L2) 279
13 Managing Data
Data Manager 554
Setting Data Management System Variables 555
Exporting Data 558
A Menu Descriptions
Main Window 586
File Menu 586
Edit Menu 586
Tools Menu 587
Windows Menu 588
Hardware Setup Window 589
File Menu 589
Tools Menu 589
Instrument Menu 592
View Menu 592
Windows Menu 592
Model Window 593
File Menu 593
Edit Menu 594
Measure Menu 594
Extract Menu 594
Simulate Menu 595
C DUT/Setup Editing
Adding a DUT or a Setup 622
Deleting a DUT or a Setup 623
Copying/Pasting a DUT or Setup 624
Renaming a DUT or Setup 625
Organizing DUTs and Setups 626
Defining a Test Circuit for a DUT 629
Defining DUT Parameters 630
Setup Editing 631
Input/Output Editing 632
Variables 633
Assigning Values 633
Creating User-defined Variables 636
Defining Instrument Options 637
D Macros
Creating and Running Macros 640
Saving Macros 641
E Transforms
Creating and Running a Transform 644
F Miscellaneous
Clearing Data from Memory 650
Tuning Parameters 650
Saving to File 650
Cut and Copy Selections 651
Adding an Interface Name 651
Deleting an Interface Name 651
Creating the List of Active Instruments 652
Deleting an Instrument from the Instrument List 652
Deleting All Instruments from the List 653
Configuring an Instrument 653
Index
1
Overview
The IC-CAP Modeling System 20
The IC-CAP System Architecture 22
System Functional Areas 23
General Operating Procedures 26
IC-CAP Terminology 28
Agilent Technologies 19
1 Overview
MEASUREMENT CONTROLLER
Local Area
Network
Simulation
HP 4141B
DC Parameter GPIB Mass Storage
Analyzer
Probe Station
or Printer
Test Fixture
HP/Agilent 8510B
Network Plotter
Analyzer
Other
Instruments
Configure
IC-CAP Hardware Hardware
Models Manager
Measure
DUTs Macros Model Model DUT
Circuit Parameters
Simulate
Setups Test DUT Circuit Simulators
Circuit Parameters
Import/
Export
Data Data MDM
Inputs Outputs Transforms Plots Manager Data Files
Display Save
IC-CAP System
DUT
Setups Test Circuit
Parameters
Modeling is the key functional area. You use this function to:
• Test devices and circuits using predefined models
• Modify existing models by editing
• Create new models by describing their physical and electrical
characteristics
• Create macros to automate measurement and extraction
processes
Start
Load/Create
Model
Measure
Store Plot
Measured Measured
Data Curves
Simulated Measured
Extract
Model
Parameters
Store
Parameters
Simulate
Optimize No Parameters
Parameters OK?
Yes
More
Yes Parameters
To Extract?
No
End
IC-CAP Terminology
This section lists the terms used throughout the documentation
to describe the basic parts of the IC-CAP system.
2
Program Basics
Documentation Conventions 32
Making Selections with the Mouse 33
Working with Windows 34
Working with Menus and Commands 35
Working with Dialog Boxes 37
Table and Text Editors 40
Using Help 42
Starting the Program 43
Opening a Model File 48
IC-CAP File Extensions 55
Changing Directories 56
The Model Window Folders 58
Setting System Variables 59
Saving Model Data 63
Tools 66
Aborting an Operation 71
Exit IC-CAP 72
This chapter covers the basic concepts and skills you need in
order to work successfully with the program.
To install the program, follow the instructions in the
Installation and Customization Guide.
Agilent Technologies 31
2 Program Basics
Documentation Conventions
The IC-CAP documentation uses consistent visual cues,
standard text formats, and special terminology so that you can
locate and interpret information easily. The following table lists
these documentation conventions.
Initial Capitals Names of keys on your keyboard (such as, Esc, Back Space, or
Return), menu items, command names, dialog names and
options.
You can move, resize, and arrange windows for best usage of the
screen. For details on window management, refer to your
operating system documentation.
Ellipsis points (...) displayed Opens a dialog box for completing information
after a command name needed to carry out the command.
A triangle (>) at the right side Opens a sub menu for the command.
of the menu command
Undo (Cut/Copy/Paste)
Cut
Copy
Paste
Contents of currently
selected directory
Double-click to select
and open a directory or
file
Currently selected
path/filename
Keystroke Action
Operation Action
Using Help
Help messages are available for each IC-CAP window. Window
level help is displayed when you click Help in the top menu bar
of a specific window.
Help button
the “E”). The slider along the Status window’s right side enables
you to adjust the relative sizes of the Output and
Warnings/Errors panes.
Model
icon
You can load a model and start a macro when you start the program. At the
NO TE system prompt, type: iccap <model_filename> <macro_name>. For
details, refer to “Autostart Macros” on page 461.
Extension indicates
type of files listed
Current directory
One level up
Lists files in current
directory
On the PC, hidden and system folders do not appear in the Directory dialog
NO TE box. If you can't see a directory, just change its attributes so it's not a
hidden or a system file.
Double-click to select
and open a model
$ICCAP_ROOT/examples/model_files/bjt:
vbic_npn.mdl
$ICCAP_ROOT/examples/model_files/diode:
pn_test.mac
$ICCAP_ROOT/examples/model_files/ecl:
ECLgate.mdl ECLornor.mdl
$ICCAP_ROOT/examples/model_files/hemt:
HPEEhemt1.mdl
$ICCAP_ROOT/examples/model_files/mesfet:
$ICCAP_ROOT/examples/model_files/misc:
sys_testrf.mdl
$ICCAP_ROOT/examples/model_files/mosfet:
nmos2.mdl nmos3.mdl
$ICCAP_ROOT/examples/model_files/mosfet/bsim3:
Whats_New.mdl BSIM3_RF_Measure.mdl
$ICCAP_ROOT/examples/model_files/mosfet/bsim3/tutorial:
BSIM3_Temp_Tutorial.mdl
$ICCAP_ROOT/examples/model_files/mosfet/bsim3/utilities:
BSIM3_DC_CV_Finetune.mdl
$ICCAP_ROOT/examples/model_files/mosfet/bsim4:
Whats_New.mdl BSIM4_RF_Measure.mdl
$ICCAP_ROOT/examples/model_files/mosfet/bsim4/tutorial:
BSIM4_DC_CV_Tutorial.mdl
$ICCAP_ROOT/examples/model_files/mosfet/bsim4/utilities:
BSIM4_DC_CV_Finetune.mdl
$ICCAP_ROOT/examples/model_files/noise:
noise_simu.mdl
$ICCAP_ROOT/examples/model_files/noise/1_f_toolkit:
bjt_1f_noise.mdl mos_1f_noise.mdl
$ICCAP_ROOT/examples/model_files/opamp:
mnsopamp.mdl opamp.mdl
$ICCAP_ROOT/examples/model_files/pulse:
opver_k48b.mdl
$ICCAP_ROOT/examples/model_files/statistics/load_data:
Changing Directories
When you load an example model, the directory path for the
model icon in the IC-CAP/Main window points to the
installation directory. You can redirect the path to your working
directory before saving the model data.
To change directory paths:
1 Select File > Change Directories.
2 Edit the selected path by typing a new name in the Selection
field or by browsing the Directories list to the new directory.
The path for IC-CAP model files cannot contain any folder names that use
NO TE a space. For example, C:\Model Files\IC-CAP 2004. If a model file is
saved in a folder name with spaces, you will not be able to open the model
file. You will have to move the model file to a folder name that does not use
a space.
On the PC, hidden and system folders do not appear in the Directory dialog
box. If you can't see a directory, just change its attributes so it's not a
hidden or a system file.
Model
DUT
Setup
View
predefined
variables
Select a Select a
variable variable
type
The path for IC-CAP model files cannot contain any folder names that use
NO TE a space. For example, do not save to C:\Model Files\IC-CAP 2006. If you
include a space in a folder name, you will not be able to load the model file.
You will have to move the model file to a folder name that does not use a
space.
Choose Save
options
Enter a
unique
filename
3 In the File Name field, type a unique filename and choose OK.
3 In the File Name field, enter a unique filename and click OK.
To avoid replacing the existing model by that name, choose No and enter a
unique file name. Or use the Save As command to save the model to
different name.
You can use the same name as the supplied file, as long as you save the
model to a different directory. For details on changing directory paths, refer
to “Changing Directories” on page 56.
Tools
The Tools menu in the IC-CAP/Main window provides access to
a variety of features and options.
System GUI Items Displays the System GUI Items window. For
details, refer to Chapter 12, “Creating Graphic User Interfaces.”
hpsim
Plot Options Displays the Plot Options dialog box for defining
trace options, plot options, and text annotation. For details,
refer to “Setting Plot Options” on page 420.
Aborting an Operation
You can interrupt an IC-CAP activity from the Status window.
The operations that can be aborted are: Measurement,
Simulation, Macro Execution, Transform Execution, and
Optimization. IC-CAP control is returned to you.
If you abort a measurement while an internal system sweep is
in progress, the measurement in IC-CAP is aborted, but the
instrument continues to step through its sweep values until the
sweep is completed. If another IC-CAP measurement using this
instrument is attempted before the sweep is completed, IC-CAP
waits until the sweep is done before performing the
measurement.
After an optimization is aborted, an optimization summary is
printed before control is returned.
To abort an IC-CAP activity:
In the IC-CAP/Status window, click the Interrupt IC-CAP
Activity button.
Alternatively, you can select the menu item, Interrupt > IC-CAP
Activity.
Exit IC-CAP
To exit IC-CAP, select File > Exit in the IC-CAP/Main window.
This opens the Save As dialog box to give you an opportunity to
save changes to models before exiting the program. Click on the
Exit button to automatically close all open windows and
terminate the program.
3
An Example IC-CAP Session
Starting the Program 75
Opening a Model File 76
Viewing the Circuit Description 79
Defining Model Parameters 81
Defining Model Variables 83
Defining DUT Options 85
Defining Setup Options 89
Measuring the Device 95
Performing a Simulation 96
Extracting Model Parameters 97
Simulating with Extracted Parameters 101
Optimizing the Model Parameters 102
Measuring the Remaining Devices 103
Viewing the Results 104
Saving the Model 109
Exiting IC-CAP 110
Agilent Technologies 73
3 An Example IC-CAP Session
Double-click to select
and open a model
Model
icon
Model parameters
After editing the defaults, you can store the current set of
parameter values in a temporary buffer (Memory Store) and
recall these values at any time during the IC-CAP session
(Memory Recall). If you prefer, you can restore the default
values (Reset).
The values stored using Memory Store are not saved with the model file
NO TE and are lost when the IC-CAP session ends.
To view system defaults from the Model Variables folder, select the
NO TE button.
Click to reuse a
circuit text file
To view system defaults from the DUT Variables folder, select the
NO TE button.
Select setup
To detach the setup window for convenient editing, click on Detach below
NO TE the DUT/Setup tree.
To view the raw data for an input or output, select one or more
tables then click View.
To enable the mode for a Setup, open the Setup Variables folder. Enter the
variable name SHOW_INPUT_OUTPUT_FINDER in the Name field, then
enter yes, true, or a non-zero integer in the Value field. If you change the
variable’s setting after opening the Model, you must close (File > Close),
then reopen, the Model window for the new setting to take effect.
Performing a Simulation
You can determine the accuracy of current parameter values by
performing a simulation and comparing the results to the
measured data.
• To perform a simulation on the active setup,
select the setup and click Simulate Setup.
• To perform a simulation on all setups in the active DUT,
select the DUT and click Simulate DUT.
Start extraction
Choose macro
You can also execute macros from the Model window’s main menu. Select
NO TE Macros > Execute, then select the macro you want to run.
Performing an Extraction
You can extract all extraction transforms in the active setup or
extract all setups in the active DUT.
• To perform an extraction on all extraction transforms in the
active setup, select the setup and click Extract Setup.
• To perform an extraction on all extraction transforms in all
setups in the active DUT, select the DUT and click Extract DUT.
When you extract all setups in the active DUT, the extractions
are performed in the left-to-right order listed in the setup. This
order is usually critical to proper extraction performance.
For detailed procedures on extraction order, refer to the tutorial for your
NO TE model.
You can edit the setup for the data table in one of two ways:
• Edit directly in the table. Click or double-click a field and
type the new data
• Use the Plot Editor. To open the Plot Editor, first select the
table and then click Edit (or double-click on the table). Edit
the fields and click OK.
Exiting IC-CAP
To exit IC-CAP, select File > Exit in the IC-CAP/Main window.
This opens the Save As dialog box to give you an opportunity to
save changes to models before exiting the program. Click on the
Exit button to automatically close all open windows and
terminate the program.
4
Creating and Modifying Models
Model Components 112
Defining Model Components 114
Adding a Model to the Work Area 115
Saving Model Files 116
Copying Parts of a Model 118
Specifying the Circuit Definition 119
Specifying Model Parameters 123
Setting Model Variables 125
Defining DUT Options 127
Defining Setup Options 134
Adding a Macro to the Model 150
Example: Creating a New Model 152
Before starting this chapter, you must configure the necessary source and
NO TE measuring instruments for the IC-CAP system. For information on
configuring the system, refer to the Installation Guide.
Model Components
The IC-CAP model components are shown in the following
figure. A model consists of these components:
• Circuit Description of the circuit used to represent the
actual device.
• Model Parameters Values used in simulating the circuit.
• Model Variables User-defined variables that are global to
a model.
• DUTs Representations of different physical devices or
measurement configurations.
• Macros Combinations of the available menu functions
used to create complex operations.
IC-CAP Model
You can use the same name as the supplied file, as long
as you save the model to a different directory. For details
on changing directory paths, refer to “Changing
Directories” on page 56.
Model parameters
3 When you move the mouse pointer out of the window, the
new circuit description is parsed automatically. This parse
only occurs after a change has been made to the contents
of the circuit description.
Syntax errors are reported in the IC-CAP/Status window
and must be corrected. For example, if the wrong type of
simulator is selected and syntax errors result from the
parse, you must parse the circuit after the correct simulator
is specified.
To parse the circuit definition manually, click Parse.
You can copy the circuit definition from an existing model. Open the model
NO TE you want to copy. Open the Circuit folder. Select Edit > Copy Circuit. In the
new model, select Edit > Paste Circuit.
You can copy a current set of parameter values from an existing model.
NO TE Open the model you want to copy. Select the Model Parameters folder.
Select Edit > Copy Parameter Set. In the new model, select Edit > Paste
Parameter Set.
To view system defaults from the Model Variables folder, select the
NO TE button.
You can copy the model variables from an existing model. Open the model
NO TE you want to copy. Select the Model Variables folder. Select Edit > Copy
Variable Table. In the new model, select Edit > Paste Variable Table.
Adding a DUT
To add a DUT:
1 In the DUTs-Setups folder, click Add.
Enter new
DUT name
Deleting a DUT
To delete a DUT:
1 In the DUTs-Setups folder, select the DUT you want to delete.
2 Select Edit > Cut DUT, or click Cut on the toolbar.
You can also delete a DUT by right-clicking on the DUT to view its pop-up
NO TE menu. Then select Edit > Cut.
Organizing DUTs
To move a DUT in the list:
1 Select Tools > Organize Model from the Model window to
display the following dialog box:
You can copy a test circuit from an existing model. Open the model and
NO TE select the DUT you want to copy. Select the Test Circuit folder. Select Edit
> Copy DUT/Test Circuit. In the selection dialog box, choose Selected
Test Circuit. Then select Edit > Copy. In the new Model window, select the
Test Circuit folder. Select Edit > Paste Test Circuit.
2 Select the Param Name Value field and edit the DUT
parameters for the device being measured.
3 Optionally, select the Param Name Min field and set minimum
values for the DUT parameters.
4 Optionally, select the Param Name Max field and set maximum
values for the DUT parameters.
5 Select an action from the following:
• To temporarily store the current set of parameter values,
click Memory Store.
• To recall stored parameter values, click Memory Recall.
• To reset the default values specified in the circuit
definition, click Reset.
You can copy DUT parameters from an existing model. Open the model and
NO TE select the DUT you want to copy. Select the DUT Parameters folder. Select
Edit > Copy DUT/Device Parameter Set. In the selection dialog box,
choose Selected Device Parameter Set. In the new Model window, select
the DUT Parameters folder. Select Edit > Paste Device Parameter Set.
To view system defaults from the DUT Variables folder, select the
NO TE button.
You can copy DUT variables from an existing model. Open the model and
NO TE select the DUT you want to copy. Select the DUT Variables folder. Select
Edit > Copy DUT/ Variable Table. In the selection dialog box, choose
Selected Variable Table. In the new Model window, select the DUT
Variables folder. Select Edit > Paste Variable Table.
Add a new
setup
Enter new
setup name
New setup
Organizing Setups
To move a Setup:
1 In the DUTs-Setups folder, select the DUT then click Organize
to display the following dialog box:
You can also access this dialog box by first selecting Tools > Organize
NO TE Model from the Model window, then select the Organize DUT button.
To add a Setup:
1 Choose where you want to add the Setup in the list:
• Select a Setup if you want to add a Setup after that
position.
• Do not select a Setup if you want to add a Setup to the first
position.
2 Click the plus icon.
3 A new Setup named Untitled is added. Type the desired
name in the Item Name field then select the Enter key.
To delete a Setup:
1 Select one or more Setups.
2 Click the delete icon.
To apply you changes and leave the dialog box open, select the
Apply button.
To apply your changes and close the dialog box, select the OK
button.
To close the dialog box without making changes, click the Cancel
button.
See also: “Organizing DUTs and Setups” on page 626
To add inputs:
1 In the DUTs-Setups folder, select the setup. Then select
Measure/Simulate.
Add input
Enter
name
To add outputs:
1 Click New Output to open the Output Editor.
Add output
Enter name
Edit values
4 Select the field you want to modify and edit the existing data.
Enter name
5 Click OK.
Alternatively, you can edit directly in the table by selecting the field and
NO TE typing the new values.
To view system defaults from the Setup Variables folder, select the
NO TE button.
You can copy setup variables from an existing model. Open the model and
NO TE select the setup you want to copy. Select the Setup Variables folder.
Select Edit > Copy Setup/Variable Table. In the selection dialog box,
choose Selected Variable Table. In the new Model window, select the
Setup Variables folder. Select Edit > Paste Variable Table.
2 Click New...
Add transform
3 In the dialog box, enter a name for the new transform in the
Transform Name field.
Enter name
Add transform
Select a group
and a function
Edit fields
Add plot
3 In the Plot field, enter a name for the new plot and complete
the values as required.
Enter name
To edit plots:
1 In the DUTs-Setups folder, select the setup. Then select Plots.
2 Select the plot you want to modify.
3 Click Edit to open the Plots Editor.
Edit plot
Alternatively, you can edit directly in the table by selecting the field and
NO TE typing the new values.
Add macro
Define macro
Add a Setup
1 In the Model window, select DUTs-Setups.
2 Click Add.
3 In the dialog box, click Add New Setup to Dut large.
4 In the Enter New Setup Name field, type the setup name,
idvg.
5 Click OK.
Mode Voltage
+ Node G
- Node GROUND
Unit SMU2
Compliance 10.00u
Sweep Type Linear
Sweep Order 1
Start 0.000
Stop 5.000
# of Points 21
Step Size 250.0m
Mode Voltage
+ Node B
- Node GROUND
Unit SMU4
Compliance 1.000m
Sweep Type Linear
Sweep Order 2
Start 0.000
Stop -3.000
# of Points 3
Step Size -1.500
Input vd Input vs
Mode V V
+ Node D S
- Node GROUND GROUND
Unit SMU1 SMU3
Compliance 100.0m 100.0m
Sweep Type CON CON
Value 100.0m 0.000
When you change the Sweep Type from LIN to CON the
fields at the bottom of the table used to specify a linear
sweep are replaced by a single Value field. Similarly, a
change in the Mode alters the structure of the upper
portion of the table.
10 Add the output id by completing the value entries as
shown below:
Mode I
To Node D
From Node GROUND
Unit SMU1
Type B
Gate V vg
Bulk V vb
Drain V vd
Drain I id.m
Target id.m
Simulated id.s
Weight 1.000 1.000
Add macro
dc_simu
You can also execute macros from the Model window’s Macro menu. Click
NO TE on Macros > Execute, the click on the macro you want to execute. This is
useful if you want to execute a macro, and you do not have the Macro
folder open.
Create Other DUTs and Setups You can create other DUTs and
setups by repeating the example procedure. Or, you can build a
complete model by copying portions of the supplied model and
then modifying any parts of the new setup that needs to be
changed to achieve the desired behavior. For the MOSFET
model, you can copy the entire large DUT to two new DUTs
named narrow and short. In the short DUT, the idvg setup can
be copied to a new Setup named idvd. After making the
necessary modifications, you have the complete set of DUTs and
setups necessary for DC MOSFET characterization. For details,
refer to “Copying Parts of a Model” on page 118.
5
Making Measurements
Hardware Connections 167
Configuring the System 169
Viewing the Instrument Library 171
Specifying Interface Files 172
Building an Active Instrument List 173
Assigning Unit Names 176
Using Unit Names in a Setup 178
Adding a Ground Unit 180
Using Multiple Instruments 181
Specifying Instrument Options 182
Saving Instrument Options 183
Performing a Calibration 185
Performing a Measurement 186
Viewing Results 188
A Measurement Example 189
Sweep Modes and Input/Output Types 193
Aborting a Measurement 198
Speeding Up Repetitive Measurements 200
Using Fast Measurement 201
Forced Instrument Initialization 205
Hardware Connections
Connecting the hardware consists of making the appropriate
GPIB connections between the instruments and the
computer. Connections must also be made between the
individual units of the instruments and the test fixture. The
test device should be inserted into the test fixture with the
appropriate unit to device connections made.
hpib
4 Choose OK.
The GPIB interface name is added to the HB-IB Interface
list and made the currently selected interface.
The hardware displayed in the Instrument List may not reflect the physical
NO TE instruments actually connected. See adding instruments manually below.
You can not manually add an HP/Agilent 4142 or 4155/6 to the list of the
NO TE Active Instruments because the units of these instruments are
configurable. The program finds what units these instruments have when
you execute Rebuild Active List.
where:
INSTR_TYPE is the instrument model number exactly as it
is listed in the Instrument Library.
SELECTCODE is the gpib interface's Logical Unit Number
or Board number of the GPIB interface.
ADDR is the address (in decimal notation) of instrument,
as set on the instrument's address selector switch.
hpib
New names
assigned
Alternatively, you can edit the Unit field directly in the Input or Output
NO TE table.
Choose
.iot
Enter file
name
Performing a Calibration
Most instruments have internal or hardware calibration
capability. For example, CV meters and network analyzers
have an internal calibration menu to perform appropriate
calibration for each test condition. Refer to Chapter 1,
“Supported Instruments,” in the Reference manual for
specific information regarding instrument calibration.
Performing a Measurement
After you have entered the instrument configuration and
have done the necessary calibrations, you are ready to
perform measurements.
To perform measurements for the active setup only:
1 In the Model window, select DUTs-Setups.
2 Select the DUT and the setup.
3 Select Measure/Simulate.
4 Click Measure Setup.
The system status line in the IC-CAP/Status window
displays:
Measure in progress...
When the measurement is done, the status line displays:
IC-CAP Ready
The IC-CAP measurement is complete.
To perform measurements for all setups in the active DUT:
1 In the Model window, select DUTs-Setups
2 Select the DUT.
3 Choose Measure DUT.
The system status line in the IC-CAP/Status window
displays:
Measure in progress...
When the measurement is done, the status line displays:
IC-CAP Ready
The IC-CAP measurement is complete.
To clear measured data for a selected setup:
1 In the Model window, select DUTs-Setups.
2 Select the DUT and the setup.
3 Select Measure/Simulate.
4 Click Clear and choose the type of data to clear.
Viewing Results
You can view results of both the measured and simulated
data in a graphic display. Measured data is represented by
solid lines and simulated data is represented by dashed
lines. For details on viewing results, see Chapter 10,
“Printing and Plotting.”
To view the results of the measurement:
1 In the Model window, select DUTs-Setups.
2 Select the DUT and the setup.
3 Select Plots.
4 Click Display Plot or Display All.
A Measurement Example
This example provides a general overview for performing a
measurement. Using the supplied model bjt_npn.mdl, the
example measures the forward early voltage of an npn
bipolar device using the SMUs of the HP 4141 DC Analyzer.
4 Choose OK.
IC-CAP finds the device and adds HP 4141 to the Active
Instruments list.
When the HP 4141 is added to the active instrument list, the
corresponding units are added to the Unit Table. The Unit
Table contains an entry for each active unit.
To view unit names:
1 Select Configure. A dialog box opens, displaying the Unit
Table and Instrument Address.
For this example, the units of the HP 4141 are:
HP4141.7.23.SMU1, HP4141.7.23.SMU2, HP4141.7.23.SMU3,
HP4141.7.23.SMU4, HP4141.7.23.VS1, HP4141.7.23.VS2,
HP4141.7.23.VM1, and HP4141.7.23.VM2.
2 No changes are made. Choose Cancel.
When Use User Sweep is set to Yes, the measurement is taken from 0.000
NO TE to 5.000 volts in 21 steps, with each voltage being set separately or
point-by-point. A measurement taken with a user sweep is slower than the
same measurement taken with an internal instrument sweep. However,
the advantage for using a user sweep is increased flexibility in the types of
measurements that can be taken.
Sweep Types
The sweeping of a source for an instrument is controlled by
the instrument or by IC-CAP. This applies only for the
instrument to which the primary unit belongs. The primary
unit is a unit with a sweep order 1. The instrument with the
primary unit is called the primary instrument.
User Sweep When the Use User Sweep is Yes for a primary
instrument, IC-CAP performs a set of spot measurements to
make up a single sweep measurement. Even though all
supported instruments except time-domain instruments
perform spot measurement, instruments like Network
Analyzers need to use the internal sweep for calibrated data.
Most sweep types are possible with user sweep because
IC-CAP controls each point directly. However, a user sweep
is much slower than an internal sweep.
Multiple Instruments
When multiple instruments are involved in a measurement
setup, non-primary sweep instruments use the user
(spot-mode) sweep regardless of how the Use User Sweep option
is set. The sweep capabilities of the primary sweep instrument
and the nature of the measurement determine whether internal
or user sweep is appropriate.
When the primary instrument has internal sweep capability and
other instruments are only used for non-primary sweeps or
constants, the internal sweep for the primary instrument is
possible. This includes the case where a network analyzer
sweeps its frequency as a primary sweep while a DC bias is
given as a secondary sweep from some DC instruments.
When multiple instruments have to synchronize at each
measurement point, the user sweep must be used because these
instruments don’t know about each other. Only in this fashion
can IC-CAP control them properly. An example is to measure
both S parameters and DC currents at each frequency point.
Source Channel
Input Mode V X
F X
Type LIN X X
LOG X
SYNC
LIST X
CON
TDR
Output Mode V
SHYZKA
N X
Model Number 3577 8510, 8702, 54120 Series 54510 8130, 8131
8719, 8720,
8722, 8753
Input Mode V X
F X X
T X X
Type LIN X X X X
LOG X
SYNC
LIST X
CON X X
PULSE X X
TDR X X
Output Mode V X X X
SHYZKA X X
T X X X
Aborting a Measurement
You can interrupt a measurement from the Status window. If
you abort a measurement while an internal system sweep is
in progress, the measurement in IC-CAP is aborted, but the
instrument continues to step through its sweep values until
the sweep is completed. If another IC-CAP measurement
using this instrument is attempted before the sweep is
completed, IC-CAP waits until the sweep is done before
performing the measurement.
To abort a measurement:
In the IC-CAP/Status window, click Interrupt IC-CAP
Activity.
You can use the Tools menu in the Hardware Setup window
to control some measurement activities. For example, you
can stop an internal sweep by sending a command byte to
instruments on the bus.
To stop an internal sweep:
1 Open the Hardware Setup window.
2 Select Tools > Send/Receive.
3 Select Send Byte.
4 In the dialog, enter the low-level GPIB command 4 to
clear a single device or a 20 to clear all instruments.
5 Click OK.
6
Simulating
Selecting a Simulator 210
Specifying Inputs and Outputs 215
Conventions for Connecting Nodes 216
Specifying Parameter or Variable Sweeps 218
Simulating Open Circuits 220
Performing a Simulation 221
Using the Simulation Debugger 222
Simulation Types 225
Simulation Input and Output Requirements 227
Aborting a Simulation 239
Aborting a Simulation 239
Linking a Simulator to IC-CAP 240
Adding a Simulator 242
Remote Simulation 252
Model
Model Model
DUT
Circuit Parameters
Test DUT
Setup
Circuit Parameters
Input
Outputs Inputs
Deck
Output SPICE
File Simulator
Simulators are provided with IC-CAP as a courtesy to IC-CAP users and are
NO TE not supported by Agilent Technologies except for the ADS simulator.
HPSPICE hpspice
HSPICE hspice
ELDO eldo
Saber saber
Selecting a Simulator
You can set a simulator in one of three ways:
• By specifying a default startup simulator (setting
DEFAULT_SIMU variable)
• By specifying a simulator for a specific model, DUT, or setup
(setting SIMULATOR variable)
• By specifying a simulator without a variable (using Select
Simulator command)
4 Enter the simulator name in the Value field and choose OK.
You can type the variable name and value in the System Variables window
NO TE directly without going through the dialog box.
bjt_ft.mdl hpspice
bjt_ncehf.mdl hpspice
HPEEbjt2.mdl mns
hpsimbjt_ncehf.mdl hpeesofsim
hpsimbjt_nhf.mdl hpeesofsim
hpsimnpn.mdf hpeesofsim
hpsimvbic.mdl hpeesofsim
mnsnpn.mdl mns
mxt3t_npn.mdl mns
mxt4t_npn.mdl mns
mxt504_npn.mdl hpeesofsim
sabernpn.mdl saber
spectre_ncehf.mdl spectre
spectrenpn spectre
vbic_npn mns
HPDiode.mdl mns
juncap.mdl spice3
pn_diode.mdl spice2
HPEEhemt1.mdl mns
CGaas1.mdl hpspice
CGaas2.mdl hpspice
CGaashf.mdl hpspice
CGaashfax.mdl hpspice
HPEEfet3.mdl mns
HPRootFet.mdl mns
hpsimHPEEfet3.mdl hpeesofsim
UCBGaas.mdl spice3
UGaashf spice3
lc.mdl spice3
sabercirc.mdl saber
sys110_verify.mdl hpspice
hnmos6.mdl hspice
hnmos28.mdl hspice
hpmos28.mdl hspice
HPRootMos.mdl mns
sabernmos.mdl saber
noise_simu.mdl spice3
bjt_1f_noise.mdl hpspice
mos_1f_noise.mdl spice3
mnsopamp.mdl mns
opamp.mdl hpspice
bjt_ncehfp.mdl hpspice
BSIM3_DC_CV_Measure.mdl spice3
BSIM3_DC_CV_Extract.mdl spice3
BSIM3_RF_Measure.mdl spice3
BSIM3_RF_Extract.mdl spice3
BSIM3_AC_Noise_Tutorial.mdl spice3
BSIM3_CV_Tutorial.mdl spice3
BSIM3_DC_Tutorial.mdl spice3
BSIM3_Temp_Tutorial.mdl spice3
BSIM3_DC_CV_Finetune.mdl spice3
BSIM4_DC_CV_Measure.mdl spice3
BSIM4_DC_CV_Extract.mdl spice3
BSIM4_RF_Measure.mdl spice3
BSIM4_RF_Extract.mdl spice3
BSIM4_DC_CV_Tutorial.mdl spice3
BSIM4_DC_CV_Finetune.mdl spice3
Mode = V Mode = V
+Node = BASE and +Node = BASE
−Node = EMITTER −Node = EMITTER2
When you enter an invalid node name, such as K in any of the input and
NO TE output node fields and try to simulate, the program sends an error
message:
ERROR: Invalid Input node name K used
ERROR: Unable to simulate.
Check the Input and Output specifications.
You can set the value for a constant or values for sweeps of the simulation
NO TE temperature by adding the TEMP variable to the variable table and creating
an input (Mode = Parameter and Name = TEMP) in the setup.
Performing a Simulation
You can perform a simulation on the active setup or on all
setups in the active DUT.
• To perform a simulation on the active setup, select the setup
and click Simulate Setup.
• To perform a simulation on all setups in the active DUT,
select the DUT and click Simulate DUT.
Simulation Types
IC-CAP recognizes eight basic simulation types. This section
describes the input and output specifications required for a
valid setup for each simulation type. Each of the eight types can
be categorized as either a standard simulation or a special
simulation.
Special simulation types are not directly available in the SPICE simulators.
NO TE IC-CAP builds the additional circuitry required in the simulator input files
to perform the simulation.
DC Simulation
Table 12 describes the input and output specifications required
for a valid setup for DC simulation and Figure 13 shows an
example of input and output specifications for a MOSFET id
versus vg setup.
AC Simulation
Table 13 describes the input and output specifications required
for a valid setup for AC simulation. Figure 14 shows an example
of input and output specifications for simulating the output
voltage versus frequency of an inverting operational amplifier.
V LIN, LOG, LIST, SYNC, CON, AC V, I 1. Exactly one frequency sweep required.
2. At least one AC source required.
I LIN, LOG, LIST, SYNC, CON, AC V, I 3. SYNC is not a valid sweep type when using
ADS simulators.
Transient Simulation
Table 14 describes the input and output specifications required
for a valid setup for Transient simulation and Figure 15 shows
an example of input and output specifications for voltage versus
time characteristics of a differential pair.
Noise Simulation
The following tables describe the input and output
specifications required for a valid setup for Noise simulation
depending on the simulator being used.
Table 15 Input and Output Requirements for a Noise Simulation using SPICE Simulators
V LIN, LOG, LIST, SYNC, CON, AC N 1. Exactly one noise output required.
2. Exactly one frequency sweep required.
I LIN, LOG, LIST, SYNC, CON, AC N 3. At least one AC source required.
F LIN, LOG, CON N
Table 16 Input and Output Requirements for a Noise Simulation using ADS Simulators
CV Simulation
Table 17 describes the input and output specifications required
for a valid setup for CV simulation and Figure 16 shows an
example of input and output specifications for a BJT
base-emitter pn-junction capacitance versus voltage setup.
V LIN, LOG, LIST, SYNC, CON a single C Any single output type of C, G, R, or X; or
a single G exactly one C and one G; or exactly one C
I LIN, LOG, LIST, SYNC, CON a single R and one R.
a single X A single C or a C + G is the capacitance
C+G using Cp-Gp mode, while a C + R will
C+R simulate Cs-Rs data
2-Port Simulation
Table 18 describes the input and output specifications required
for a valid setup for 2-port simulation and Figure 17 shows an
example of input and output specifications for an
H21-parameter versus Vbe setup.
* 2-Port noise simulation supports ADS only. If the SIMULATOR is not equal to hpeesofsim, the following error message ap-
pears.
Error: in "Output xxxx"
High frequency noise output is not supported with current simulator.
Table 19 High Frequency Noise Output and Its Data Type Description
F Output Name (Output Editor) Symbol shown on Setup Description Port Input
Page Requirement
* The port field of the NF/TE noise parameter can not be blank.
If the port field set NF/TE type is blank, the following error message appears.
Error: in "Output xxxx"
Blank output node name for NF specified.
† The port name of the NF/TE parameter must be consistent with the port name of the 2-port output.
The port name of the NF/TE output noise must be equal to one of the port names of the 2-port output; otherwise, the follow-
ing error message appears.
Error: in "Output xxxx"
Port "xx" is not consistent with the 2-port specification node: "xx" or "xx"
2-Port Circuits
An L-network of LCR is added to port 1 and port 2 to uncouple
an AC signal from a DC bias to simulate a DUT using AC
analysis. To see an actual input circuit deck, use the Simulator
Debugger.
When the port 1 has an AC source, its signal goes through an R
whose value is defined by TWOPORT_Z0 and its default is 50
[ohm]. Then this signal is given to a port 1 through a C whose
value is defined by TWOPORT_C, and its default is 100 [F]. The
port 1 is also connected to a DC bias source through an L whose
Because the default C and L values are so large compared to actual DUT
NO TE values, sometimes it is necessary to specify smaller values to reduce
numeric errors in simulation. For example, 1mF for C and 1mH for L are
more realistic values.
TDR Simulation
Table 20 describes the input and output specifications required
for a valid setup for TDR (Time Domain Reflect) simulation.
Figure 19 shows an example of input and output specifications
for simulating the reflected and transmitted signal of a simple
TDR circuit.
V LIN, LOG, LIST, SYNC, CON, AC V, I 1. Exactly one frequency sweep with Sweep Type =
HB required.
I LIN, LOG, LIST, SYNC, CON, AC 2. At least one AC source required:
F HB V or I (AC), or W.
3. The Test Circuit includes elements such as
W (Power) LIN, LOG, LIST, CON DCFEED or DCBLOCK.
4, Units for the Power (W) source can be set to
dBm(d) or Watts (W).
Aborting a Simulation
You can abort a simulation at any time from the IC-CAP Status
window.
To abort a simulation:
In the IC-CAP/Status window, click Interrupt IC-CAP
Activity.
The following simulator links may work for IC-CAP 2002 PC, but
were not thoroughly tested:
• Remote to MNS on UNIX
• Remote to HSPICE on UNIX
• Remote to HSPICE on another PC
• Remote to hpeesofsim in CANNOT_PIPE mode on another PC
• Remote to hpeesofsim in CANNOT_PIPE mode on UNIX
Adding a Simulator
The IC-CAP Open Simulator Interface allows the addition of any
simulator to IC-CAP. The following figure shows a data flow
diagram of this interface.
In this design, the IC-CAP system has no knowledge of your
simulator. The circuit description is entered in the format
corresponding to the template name in the usersimulators field
(2nd argument).
spice2 spice
spice3
hpspice
hspice
eldo
spectre443
spectre spectre
spmodeads
saber saber
IC-CAP
Inputs Simulation
Circuit
Description Outputs Debugger
netlist source/sweep
body information
Translation Module
Create or
Input Deck Augment Raw Data
Translator Text Output Translator
(optional)
User’s Simulator
user’s responsibility
As part of the interface code, you are supplied with a file called
usersimulators in the directory $ICCAP_ROOT\iccap\lib. This
file must contain the user-specified information for each
simulator added to the IC-CAP system. Five fields of
information must be specified when adding a user simulator to
IC-CAP. The fields of information must be separated by a space.
The fields may or may not be surrounded by quotation marks. A
blank, such as host_name, is indicated by a pair of quotation
marks (""). An optional sixth field is available to use the Open
Circuit Parsing Interface.
The general format is as follows:
where:
simulator_name is the name of the user simulator being
added to the list. This is the name you will specify when
selecting the simulator in the Select Simulator dialog box or
the SIMULATOR variable. You may assign any name to this
field EXCEPT for any of the reserved IC-CAP template
names. The reserved template names are shown in Table 10.
template_name is the name of the template simulator. The
user-written translation modules map the input file format of
the user’s simulator to the input file format of the template
simulator. Likewise, the output file format of the template
simulator is translated into the output file format of the
user’s simulator. To specify that the simulator returns the
raw data in big endian format, append .be or the alias .hpux
or .sparc. To specify that the simulator returns the raw data
in little endian format, append .le or the alias .pc.
path_name is the complete path name of the user’s simulator
executable file or translation module. Use back slashes when
naming the path to a simulator on a PC and forward slashes
when naming the path to a simulator on UNIX.
host_name is the host machine name on which the simulator
can be used. The purpose of this information is for remote
simulations where only a particular computer is able to
or
.subckt
.
.
.ends
Output File:
.MODEL $modname$ D
+ IS = $pvalIS$
+ N = $pvalN$
+ BV = $pvalBV$
+ IBV = $pvalIBV$
+ RS = $pvalRS$
+ CJO = $pvalCJO$
+ VJ = $pvalVJ$
+ M = $pvalM$
+ FC = $pvalFC$
+ TT = $pvalTT$
+ EG = $pvalEG$
+ XTI = $pvalXTI$
Output File:
.SUBCKT $modname$ 1 2
RS 1 11 $pvalRS$
DLO 11 2
+ DLO
DHI 11 2
+ DHI
.MODEL DLO D
+ IS = $pvalDLO.IS$
+ N = $pvalDLO.N$
.MODEL DHI D
+ IS = $pvalDLO.IS$
+ N = $pvalDLO.N$
+ CJO = $pvalDLO.CJO$
+ M = $pvalDLO.M$
+ VJ = $pvalDLO.VJ$
+ FC = $pvalDLO.FC$
.ENDS
UNRESOLVED <x>
Here <x> is the name of a model which was referenced in the
netlist, but had no associated model card. In this case
IC-CAP will try to find a model in its loaded list of models to
insert.
ERROR: <x>
Here <x> is any arbitrary error message. The space after the
colon is required. The entire line, including ERROR: will be
reported in an error dialog.
DECKCOMPLETE
This should be the last line issued indicating that the parse
was successful and that the output file has been generated.
where:
The simulator mysim uses spice2 as the template simulator.
mysim is a user-written module that does the following:
• Translates a spice2 input format deck to a mysim input
format deck.
• Makes the call to the user’s simulator. In this example, the
executable simulator is spice2.
• Translates the user’s binary output format to spice2
binary output format.
• Optionally sends information to the output text file.
mysim is located in the $ICCAP_ROOT/bin directory.
Remote Simulation
You can perform a simulation on a computer other than the
computer on which you are working by using the remote
simulation feature. You might do this for one of the following
reasons:
• Running the simulation on a faster machine
• Running the simulation on a computer authorized to run a
particular simulator
To execute a remote simulation, the remote machine must meet
the following requirements:
• It runs Linux, SunOS, or a similar operating system that
supports execution of Berkeley’s remote shell (remsh or rsh)
and remote file copy (rcp) commands.
• Both local and remote machines know each other. This
means both machines are connected by a network and the IP
address database is updated to talk to the other machine.
This database is usually found in /etc/hosts.
• It allows remote shell and copy program execution from your
local host without entering a password (relaxed network
security).
• It allows for removal of files using /bin/rm.
• The remote machine is expected to have a directory named
/var/tmp for writing temporary files unless an alternate
directory is specified in the usersimulators file for that
simulator’s host_name field. See host_name (page 245) for
details.
The procedure for setting up the appropriate network security
for your simulator depends on your remote host’s operating
system.
Network Security
When the remote commands listed above are executed, the
current user ID is used to establish access to the remote
machine. Therefore, it is necessary to have the same user ID on
both local and remote machines. Also, the following files may be
modified to allow remote program execution from a particular
host.
• /usr/adm/inetd.sec
• /etc/hosts.equiv
• .rhosts
When the security is set up, make sure the following command
returns the current date without any errors (substitute your
remote machine name where <remote_machine> appears in the
example).
On SunOS or Linux, type:
rsh <remote_machine> date
Make sure that there are no commands in the .cshrc file on the remote
NO TE host that may generate output. Also, do not perform terminal related
operations in your .cshrc file such as termset or stty. Since there is no
physical terminal with remote shell commands, commands expecting one
in your .cshrc file lead to errors.
If you prefer to preserve the defaults as shipped, you can add the
NO TE specifications to your local, or Home, directory by copying and editing the
usersimulators file. If you set the specifications in your home directory,
you must change the pointers in your configuration file. Copy the file
$ICCAP_ROOT/config/iccap.cfg to $HOME/hpeesof/config/iccap.cfg.
See the Installation and Customization Guide for additional information.
where:
Since the Solaris machine’s byte order is big endian, the .be
extension must be appended to the template name.
To run native spectre on the remote Solaris machine called
cadencebox, enter the line:
where:
spectre is the template for native spectre, which causes
IC-CAP to parse its circuit page expecting native spectre
syntax. See SPECTRE Interfaces in the Reference manual,
chapter 4, “SPECTRE Simulator.”
From a PC, enter the line:
Since the Solaris machine’s byte order is big endian, the .be
extension must be appended to the template name.
To run UCB SPICE 2G.6 on the remote machine called
spice2mach, enter the line:
spice2rem spice2 /usr/iccap/bin/ucbspice2g6 "spice2mach" CAN_PIPE
where:
spice2rem represents the name of the simulator and pipe
creates an interprocess channel that responds to read/write
calls.
where:
spice3rem represents the name of the simulator and pipe
creates an interprocess channel that responds to read/write
calls
To run HPSPICE on the remote machine called hpspicemach,
enter the line:
where:
hpspicerem represents the name of the simulator and pipe
creates an interprocess channel that responds to read/write
calls
When performing remote simulations using the HPSPICE
simulator, both of the executable files called shpspice and
spice2.4n1 must be present on the remote machine.
To run HSPICE on the remote machine called hspicemach,
enter the line:
hspicerem hspice /usr/bin/hspice "hspicemach" CANNOT_PIPE
where:
hpspicerem represents the name of the simulator and pipe
creates an interprocess channel that responds to read/write
calls
Depending on the version of HSPICE you have installed, the
execution script called hspice may exist in a different directory
path from /usr/bin/hspice. In this case, create a symbolic link
from /usr/bin/hspice to the actual hspice script that will be
Note that you must be in the root directory when executing the
above command.
To run ELDO on the remote machine called eldomach, enter the
line:
where:
<anacad_root> and <version> are replaced with the home
directory of the ANACAD software and the current version
number of ELDO, respectively; eldorem represents the name
of the simulator and pipe creates an interprocess channel
that responds to read/write calls.
To run Saber on the remote machine called sabermach enter
the line:
saberrem saber /usr/saber/bin/saber "sabermach" CAN_PIPE
where:
saberrem represents the name of the simulator and pipe
creates an interprocess channel that responds to read/write
calls
To run MNS on the remote machine called mnsmach enter the
line:
mnsrem mns /usr/hp85150/lib/mns "mnsmach" CAN_PIPE
where:
mnsrem represents the name of the simulator and pipe
creates an interprocess channel that responds to read/write
calls.
mns is the simulator name.
where:
hpsimrem represents the name of the simulator and pipe
creates an interprocess channel that responds to read/write
calls.
hpeesofsim is the simulator name.
The third field is the path to the simulator’s location
installed on the remote machine.
To launch an external simulation, you must copy the file
$ICCAP_ROOT/bin/hpeesofsim_start to some location on the
remote machine. You must then modify the file (as explained
within the file) to set HPEESOF_DIR and
HPEESOFSIMFRONT_DIR for the remote machine. Then you
must insure hpeesofsim_front is on the remote machine. If the
remote machine is the same OS as the local machine, then you
can copy $ICCAP_ROOT/bin/hpeesofsim_front from the local
machine. If the remote machine is a different architecture,
hpeesofsim_front for all architectures can be found on your
distribution CD under the subdirectory simlinks. Finally,
modify the file usersimulators to refer to the remote host and
the path to hpeesofsim_start on the remote host.
7
Optimizing
Optimization in IC-CAP 262
Optimization Algorithms 264
Search Methods 266
Relative/Absolute Error Formulation 277
Error Function Formulation 279
Termination Conditions 283
RMS Error Definition 285
Transform Data 287
Performing an Optimization 289
An Example Optimization 300
Optimization Output 301
Weighted Optimization 316
Multiple Setup Optimization 317
The Optimizer Algorithm 320
Sensitivity Analysis Method 322
Extraction Versus Optimization 324
References 328
Optimization in IC-CAP
Optimization is the process of creating an optimum set of model
parameter values. This optimum parameter set is created by
adjusting the initial model parameter values in an iterative
process. The process continues until simulated output data
matches the actual measured output data within specified
tolerances.
Optimization Algorithms
The choice of optimization algorithms depends upon:
• the goal of the optimization, and
• the nature of the model equations involved.
The optimization algorithm is selected with the Algorithm
drop-down list on the Extract/Optimize table, described in
“Selecting the Optimizer Algorithm” on page 290.
The following table includes a short description of each
optimization algorithm.
Algorithm Description
1 Uses full working precision of 15 digits during simulation and error calculation
while optimizing. The IC-CAP Status window displays results based on the
WORKING_PRECISION variable, which is 6 by default. At the end of the
optimization, RMS and MAX error are calculated at the default precision.
Therefore, results displayed at the end of the optimization may differ from
those obtained during optimization steps.
Algorithm Description
1 Uses full working precision of 15 digits during simulation and error calculation
while optimizing. The IC-CAP Status window displays results based on the
WORKING_PRECISION variable, which is 6 by default. At the end of the
optimization, RMS and MAX error are calculated at the default precision.
Therefore, results displayed at the end of the optimization may differ from
those obtained during optimization steps.
Search Methods
Nine search methods are available within IC-CAP:
• “Levenberg-Marquardt Search” on page 266
• “Random Search” on page 269
• “Hybrid (Random/LM) Search” on page 270
• “Hybrid (Random/Quasi-Newton) Search” on page 270
• “Sensitivity Analysis” on page 271
• “Gradient Search” on page 271
• “Quasi-Newton Search” on page 272
• “Minimax (Gauss-Newton/Quasi-Newton) Search” on
page 272
• “Genetic Search” on page 273
Levenberg-Marquardt Search
The Levenberg-Marquardt method uses a nonlinear,
least-squares-fit (Levenberg-Marquardt) algorithm. This
algorithm combines the steepest descent and Gauss-Newton
methods.
The Levenberg-Marquardt method calculates the specified
model parameters until the RMS error between measured and
simulated data is minimized.
If the model is well-behaved and local minima are not a problem, use
NO TE Levenberg-Marquardt Optimization.
2
F( X) =
∑ I
simu
–I
meas
The optimizer finds the vector X of the model parameters that
minimizes F(X).
The Levenberg-Marquardt method is a minimization algorithm,
requiring the first derivative of this function. This method
combines the Steepest Descent and Gauss-Newton methods.
Gauss-Newton Method
Newton’s method is based on the assumption that near the
minimum point Xmin, the function F(x) can be approximated by
a quadratic function. The truncated Taylor’s vector series uses
the following formula:
Dx ⋅ H ⋅ Dx
F ( x + D ) = F ( x ) + D ⋅ G + ----------------------------
x x 2
Levenberg-Marquardt Method
This method generates a sequence of approximation to the
minimum point by the formula:
Xk + 1 = Xk + Pk
where
Pk = −(Jt ⋅ J + Lambda ⋅ I)−1 ⋅ Jt ⋅ F(x)
I is the identity matrix.
Lambda is the Marquardt parameter, which is the sequence
of non-negative real constants.
As Lambda becomes very large relative to the norm Jt ⋅ J, Pk
tends toward the direction of steepest descent. When Lambda is
very small, the Gauss-Newton solution is obtained.
For a bad initial estimate, Lambda is chosen large. The
algorithm then behaves like the steepest descent, giving large
improvements in the minimization of the objective function F(x)
to guarantee convergence.
Within the iteration, Lambda is increased until a reduction in
F(x) is achieved. Between iterations, Lambda is reduced
successively so that as the minimum is reached, Pk tends to
move closer to the Gauss-Newton direction. This ensures that
the overall algorithm has second order convergence near the
minimum.
Jacobian Calculation
The Jacobian is numerically calculated using the forward
difference approximation:
J = (F(X + dX) − F(X))/dX
Random Search
The Random, Random (Gucker), and Random Minimax
optimizers arrive at new parameter values by using a
random-number generator to choose random values within a
range until the specified RMS error value is obtained.
Sensitivity Analysis
In sensitivity analysis mode, the partial derivatives of the data
with respect to each parameter are printed. In addition, the
partial derivatives at each data point are stored as transform
data and can be viewed graphically. To gain insight into the
sensitivities involved in a particular optimization, sensitivity
analysis should be selected.
Gradient Search
The optimizers using gradient search method (Gradient and
Gradient Minimax optimizers in Table 22 on page 264) find the
gradient of the network’s error function. These optimizers
usually progress more quickly to a point where the error
function is minimized, though it is possible for them to
terminate in a local minimum.
The optimizers find the gradient of the error function (i.e., the
direction to move a set of parameter values in order to reduce
the error function). Once the direction is determined, the set of
parameter values is moved in that direction until the error
function is minimized and the gradient is re-evaluated. This
cycle equals one gradient optimizer iteration.
Quasi-Newton Search
The optimizers using Quasi-Newton search method
(Quasi-Newton and Least Pth optimizers in Table 22 on
page 264) use second-order derivatives of the error function
and the gradient to find a descending direction.
The optimization routine using Quasi-Newton search method
estimates the second-order derivatives using the
Davidson-Fletcher-Powell (DFP) formula or its complement.
Appropriately combined with the gradient, this information is
used to find a direction and an inexact line-search is conducted.
The optimization terminates when the gradient vanishes, the
change ratio in the variables is small (less than 1.0e-5), or the
number of specified iterations is reached.
The bounds imposed on the variables are formulated and treated directly
NO TE as linear constraints without having to resort to variable transformation.
Therefore, a source of nonlinearity is eliminated.
Genetic Search
Genetic algorithms (GA's) provide another direct search
optimization method. The basis of the procedure is a set of trial
parameter sets, sometimes called chromosomes, which are
allowed to evolve towards a set that gives progressively better
performance.
The key to the genetic optimization is the strategy of change,
sometimes likened to survival of the fittest. Based on the idea
that with each change in the parameter population, i.e., each
generation of parameters, the performance given by the
parameter population improves.
This performance evolution is achieved using a five-step process
including (1) representation, (2) evaluation, (3) reproduction,
(4) breeding and crossover, and (5) mutation.
1 Representation: Genetic algorithms require the input
parameter set to be represented as a string of digits. It is
straightforward to map each parameter onto the interval 0 to
1, for instance, and then have each of the n parameters
occupy a position in the string of n bounded numbers. The
algorithm then manipulates and optimizes this string of
numbers as a whole. An individual string of parameters is
called an element within the population of parameter strings.
2 Evaluation: Each generation of parameters begins with a
performance evaluation of each string in the population.
Usually this involves determining the performance G(P) for
each representation of P in the population. Each element is
Genetic optimization techniques will prove useful for many complex optimization problems, including discrete value and tolerance optimization.
Representation i = 1
i=i+1 Mutation
I simu ( i ) – I meas ( i )
e(i) = --------------------------------------------------
I (i)
meas
Absolute Error:
I simu ( i ) – I meas ( i )
e ( i ) = ---------------------------------------------
-
∑ ( Imeas ( i ) )
2
n
----------------------------------
-
n
where
Isimu and Imeas represent the simulated and target data sets
specified in the Inputs page of the optimizer, and
n the number of data points included in each data set.
Special handling is done for the Relative Error case to avoid
situations where Imeas(i) is zero or much smaller than the
numerator. For the Levenberg-Marquardt optimizer, the
formulation is
I ( i ) – Imeas ( i )
e(i) = simu
-----------------------------------------------------------------------------
max ( I meas ( i ) , I simu ( i ) )
n –1
j
2
p–1 ∑
( e j ( i ) )
i = 0
E MS = ∑
W j ⋅ -----------------------------------
nj
j=0
E RMS = E MS
where
error term ej(i) is defined as in the previous section.
Note that the error is always positive (see “Relative/Absolute
Error Formulation” on page 277.)
Since the error terms are always positive and the mimimax
error EMM > 0, we can define the Least Pth error function, Epth,
as follows:
1⁄P
P
E pth =
∑ ( ej( i ))
j
Termination Conditions
Termination conditions are the prerequisite factors for ending
the function of optimization algorithms. When a termination
condition value is met, the optimization algorithm ceases
functioning.
∑ ( Imeas ( i ) )
2
i=1
RMS t arg et = --------------------------------------
N
where
N is the total number of points from all the inputs.
The absolute error term used by the Levenberg -Marquardt
optimizer becomes:
I simu – I meas
e ( i ) = ----------------------------------
RMS t arg et
∑ (e(i ))
2
i=1
RMS = --------------------------
-
N
In optimizers other that the Levenberg-Marquardt, when
selecting absolute error, the error term uses different
normalizing factors, called RMStarget (j), for each input column
on the Inputs page.
∑ ( Imeas ( i ) )
2
where
j is the target index (or column on the Inputs page)
nj is the number of points of the j-th input.
For a definition of the RMSerror function, see Chapter 8,
“IC-CAP Functions” in the Reference manual.
Transform Data
Different information is saved as transform data, depending on
the optimization mode that is selected. This data is accessible to
other IC-CAP objects, such as plots or PEL programs. The
behaviors of the different modes are listed in the following
table.
The RMS and maximum errors are normalized to 1 (1% = 0.01).
If an invalid optimization setup is defined, no transform data is
generated. If an error occurs during the optimization, the error
data is set to 1.0.
Performing an Optimization
The basic steps required to perform an optimization are:
1 Selecting an optimization transform.
2 Selecting an optimization algorithm.
3 Specifying the error as absolute or relative.
4 Specifying the inputs to the optimizer.
5 Specifying the parameters to be optimized.
6 Specifying the optimizer options.
7 Executing the optimization.
The following sections describe each of these steps, as well as
undoing an executed optimization.
You must specify the inputs, parameters, and options for the
selected transform. The following sections describe these tables.
For further details, refer to Chapter 9, “Using Transforms and
Functions.”
Neither target nor simulated data files must come from the
same setup. The Inputs table may be used to specify either
target or simulated data files from any location. The only
requirement is that both data sets must have the same number
of data points.
There is no limit on the number of data points.
You can also run multiple setup optimizations by entering more
than one target simulated pair in the Inputs table. Enter as
many target pairs as desired.
Weight Relative weighting factor to apply to each pair of Targeted and
Simulated data. For details, see “Weighted Optimization” on
page 316.
Target Min Lower limit for the target data values. Data values lower than
this limit are ignored during optimization.
Target Max Upper limit for the target data values. Data values higher than
this limit are ignored during optimization.
X Min Lower limit for the X-axis data values. Data with X-axis values
lower than this limit are ignored during optimization.
X Max Upper limit for the X-axis data values. Data with X-axis values
higher than this limit are ignored during optimization.
Curve Min Lower limit for the curve. For a family of curves, curves
numbered lower than this limit are ignored during optimization.
A single curve can be selected by entering the same curve
number in both the Curve Min and Curve Max fields.
Curve Max Upper limit for the curve. For a family of curves, curves
numbered higher than this limit are ignored during
optimization.
X Data Ref Reference data set used for X boundary conditions X Min and X
Max or when the variables X_LOW and X_HIGH are defined.
When left blank (default), the reference data set is the first
order sweep defined in the setup.
When no target or X-axis bounds are set, the bounds default to
zero (0) and no bounding is performed. When minimum and
maximum bound values are equal, no bounding is performed.
These per-target bounds take precedence over the bounds
Auto Set Sets minimum and maximum values based on the value of the
coefficient defined with the AUTOSET_COEFF variable on the
System Variables page. The default coefficient value is 5.
if the Value > 0, then
Min = Value ÷ Coefficient
Max = Value × Coefficient
if the Value < 0, then
Min = Value × Coefficient
Max= Value ÷ Coefficient
if the Value =0
Min = −Coefficient
Max = +Coefficient
The Tune Fast and Tune Slow buttons open a tuner window. The
tuner enables you to adjust the parameter values. You can see
the effects in a plot as you vary parameter values using the
tuner.
Tune Fast recalculates constantly as a slider is moved. Tune
Slow recalculates only when a slider is released.
While the tuner window is open, you can change the Min and
Max values. It’s best to use Tune Slow when the time per
calculation is slow (about one second or more).
Store Param Locally stores the current parameter values to the Stored
column on the Parameters table. When the file is saved, these
values are stored as part of the optimizer settings.
Recall Param Resets the Parameters table values to the locally stored values.
Termination Conditions
This group of settings determine the values at which the
optimization process terminates. The following data fields may
be active, depending on which algorithm is selected.
Function Tol Optimization stops when the percentage change in RMS error
value, from one optimization to the next, is less than the
specified value.
Max error Optimization stops when the maximum error between
measured and simulated data is less than the specified value.
Max Evals Optimization stops when the number of function evaluations
(which normally are simulations) exceeds the specified value.
Max Iters Optimization stops when the number of iterations reaches the
specified value.
Parameter Tol Optimization stops when the percentage change in each
parameter value, from one optimization to the next, is less than
the specified value.
Rand Iters Optimization stops when the number of iterations reaches the
specified value.
RMS error Optimization stops when the RMS deviation between all
measured and simulated data points is less than the specified
value. Percentages are normalized to 1. For example, 1% is
specified as 0.01.
Global Conditions
This group of settings determine the rectangular limitations of
the optimized data set.
Y Lower Bound Sets a lower limit for Y-axis data values. Data values lower than
this limit are ignored during optimization. Bounding is
performed according to the target data values. If a target data
point falls within the specified range, the simulated data point
is also used in the optimization, regardless of its value.
Y Upper Bound Sets an upper limit for Y-axis data values. Data values higher
than this limit are ignored during optimization.
X Lower Bound Sets a lower limit for X-axis data values. Data values lower than
this limit are ignored during optimization. X-axis bounding only
applies to the main sweep of the Setup that contains the target
data set. This cannot be changed by simply specifying a
different X-axis on a plot.
X Upper Bound Sets an upper limit for X-axis data values. Data values higher
than this limit are ignored during optimization.
You can set these bounds by using the Y_LOW, Y_HIGH, X_LOW,
and X_HIGH variables. However, any functions, such as log, that
are applied to the data sets in the Inputs table must be applied
to the bounds also.
When no bounds are set, the option defaults to zero (0) and no
bounding is performed. Also, when upper and lower bound
values are equal, no bounding is performed. These bounds are
only applied to targets that do not have any per-target bounds
specified. That is, if bounds are entered in one or more of the
target Min/Max, X Min/Max, or curve Min/Max fields, the
bounds from the Options table are not applied to that Inputs
table row.
Other Settings
This group of settings determine values specific to the chosen
algorithm. The following data fields may be active, depending on
which algorithm is selected.
Comb Filter Filters the target data to be used in the optimization by using
every nth point, where n is the value set in this field. For
example, set the value to 2 and the optimizer uses every other
data point. Set the value to 3 and the optimizer uses every third
data point, and so on. The comb filter uses at least one data
point from each data set.
Enable Select checkbox when optimization is to run when Extract is
Extraction selected from the DUT or Setup Menu. The optimization is
performed after any extractions that are defined in the Setup
have been run.
Normalize Sens Controls the sensitivity analysis. Select check box for
normalized sensitivities. Deselect checkbox for raw partial
derivatives.
Param Delta Controls the parameter delta used in the optimizer when
calculating the numerical derivatives. Typically this option is
not altered, but altering it may be useful for certain time
domain optimizations. The default is 0.001.
Rand Std Dev Controls the standard deviation of the Gaussian distribution for
Random optimization. The default is 0.3.
Rand Reward Specifies the reward coefficient for Random optimization. The
default = 0.5.
Rand Penalty Specifies the penalty coefficient for Random optimization. The
default = 0.5.
Rand Seed Specifies the seed that controls the initial random jump. The
default = 0.
Use Rank 1 Select checkbox to allow the Broyden rank one Jacobian update.
Print Settings
This group of settings determine print values specific to the
chosen algorithm. The following data fields may be active,
depending on which algorithm is selected.
Print Sets option for printing parameter data.
Parameters
Print Error Sets option for printing error data.
Print Sens Sets option for printing sensitivity information.
Results
Executing an Optimization
To perform an optimization on the active setup,
1 Select the setup.
2 Click Optimize Setup.
To perform an optimization on all setups in the active DUT,
1 Select the DUT.
2 Click Optimize DUT.
Undoing an Optimization
To undo an optimization, click the Undo Optim button on the
Extract/Optimize page.
Pressing this button resets the optimized parameter values to
values prior to the optimization and runs a simulation.
An Example Optimization
For an example of the optimization process, you can optimize
the UCB MOS Level 2 saturation region parameters VMAX and
NEFF, using id versus vd measured data.
1 Load the model file mosfet/nmos2.
2 Select the DUT/Setup large/idvg.
3 In the Extract/Optimize folder, select the optimize transform.
4 In the optimizer Parameters table, click Clear Table.
5 From the Insert Pram or Var: drop-down box, select VMAX.
6 To specify the minimum and maximum acceptable values
that the VMAX parameter can be set to, enter a minimum
acceptable value of 100.0 in the Min field and a maximum
acceptable value of 1.000MEG in the Max field.
7 Similarly, select the parameter name NEFF, and adjust the
with a minimum acceptable value to 0.000 and a maximum
acceptable value to 10.00.
8 In the Options tab Termination Conditions group box, enter
35 in the Max Evals data entry field.
9 To perform the optimization, click Execute on the
Extract/Optimize page or from the menu bar.
Optimization Output
Sample optimization output from the different types of
optimization modes are shown in Table 25 through Table 28.
Parameter Value
--------- -----
TRAN.BR 60.00
TRAN.IKR 10.00m
TRAN.ISC 2.000f
TRAN.NC 1.400
PAR.IS 20.00a
Parameter Value
--------- -----
TRAN.BR 60.00
TRAN.IKR 10.00m
TRAN.ISC 2.000f
TRAN.NC 1.400
PAR.IS 20.00a
Guess is Accepted
Guess is Rejected
Guess is Rejected
Guess is Accepted
Guess is Rejected
Guess is Rejected
Guess is Rejected
Guess is Accepted
Random Opt Exit Status: RMS error is less than specified value
Parameter Value
--------- -----
TRAN.BR 4.103
TRAN.IKR 147.3u
TRAN.ISC 15.69f
TRAN.NC 1.857
PAR.IS 30.00a
Guess is Rejected
Guess is Accepted
Guess is Rejected
Guess is Rejected
Weighted Optimization
Each data set being optimized can be assigned a different
weight. For example, suppose data sets A and B are being
optimized simultaneously and A has a weight of 1 while B has a
weight of 2. Data set B is assumed to be twice as important as A,
and the optimizer tries twice as hard to fit B.
In weighted optimization the error vector in the optimizer is
directly weighted, so weighting can be used in absolute error or
percent error optimization. Since the error vector is used to
calculate the Jacobian (sensitivities) and terminating
conditions, these are affected also.
All of the weights are normalized to 1.00 during the
optimization, so weights of 1.00 and 2.00 have the same effect as
0.50 and 1.00. This means that data with a normalized weight of
less than 1.00 has a lower sensitivity to the parameters being
optimized and looser terminating conditions. If the specified
terminating condition is a one percent error, data with a
normalized weight of 0.50 only needs to be below two percent
error to cause the optimization to terminate.
Optimization Time
This section explains optimization time for
Levenberg-Marquardt, Random, and Hybrid (Random/LM)
optimization.
Levenberg-Marquardt Optimization
The largest amount of time spent by the optimizer is in
performing a function evaluation (specified as Function_eval).
Function_eval calls the model a number of times in order to
generate the data points defined by the setup.
The following equations illustrate the relationship between the
number of calls to the model (specified as Model_eval) and the
other factors involved in the optimization. Model_eval is an
integer that is proportional to the time it takes to perform an
optimization.
I = number of iterations
A = number of parameters optimized when calculating
Jacobian
A = 0 when updating Jacobian by rank 1
Function_eval = I + 1 + (I • A)
Model_eval = total number of data points per Setup •
Function_eval
To help reduce optimization time, use good initial values for
parameters, use the least practical number of data points, and
avoid optimizing large numbers of parameters at the same time.
For relatively simple functions that can be represented by a few
equations, a transform can be written to evaluate the function
by simply solving the equations using specified parameter
values and bias values. By entering the name of this function
transform into the simulated field of the optimizer Inputs table,
and the name of the measured data set into the Measured field,
the optimization is performed using the transform function’s
equation playback instead of a simulation for each iteration.
Random Optimization
There is no Jacobian calculation in a Random optimization, so
the optimization time is not affected by the number of
parameters optimized. A random guess and function evaluation
occurs at the start of each iteration. If the guess reduces the
error, the next iteration begins. If the error is not reduced, the
parameter values are moved in the opposite direction of the
guess and the function is reevaluated. As a result, each iteration
will contain either one or two function evaluations, regardless
of the number of parameters that are optimized.
However, the additional degrees of freedom that result from
additional parameters generally result in a larger number of
iterations to achieve the specified exit condition. This effect can
be controlled by bounding the parameters as tightly as possible.
Global Optimization
A drawback to blind global optimization is that since the
optimization routines know nothing about device physics or
about the meaning of the model parameters, optimizing all of
the model parameters to all of the measured data at once
without any starting value determination often produces
meaningless results. Also, global optimization consumes a great
deal of computing power to analyze the myriad of possible
parameter combinations without any model specific guidance.
Many times, final parameter values are caught in local minima
resulting in inaccurate values. Much time can be wasted
attempting to optimize parameters to data on which they have
no physical effect. Furthermore, parameters that have similar
effects on the device characteristics (such as, RE and RB for the
Bipolar model) are usually determined incorrectly. For these
reasons, global optimization should not be performed in
IC-CAP, although it can be done.
Final
Parameters
Partial Optimization
The IC-CAP optimizer can fine tune extracted parameters. The
optimization, known as partial optimization, is applied only to
the parameters with dominant effects in a given region of
operation. Since the initial values for the optimization now
contain model specific information provided by the parameter
extraction transforms, results from the optimization process are
more accurate. Also, run time is minimized since the initial
parameters are very close to the absolute minimum of the cost
function represented by the difference between the measured
and simulated data.
The optimizer is most effective when used in conjunction with
model specific extraction transforms. However, several special
features of the optimizer allow control of the solution in a
manner that makes optimization starting from a less accurate
initial value estimate feasible. The IC-CAP optimizer transform
provides parameter constraints, data selection controls and
convergence controls to tailor the optimizer’s performance to
the specific application. You can set these features in the
optimizer transform editor.
References
Jorge More, The Levenberg-Marquardt Algorithm:
Implementation and Theory, Numerical Analysis: Seventh
Biannual Conference, University of Dundee, Scotland, Springer
Verlag, N.Y., 1977.
8
Using the Plot Optimizer
Enabling Plot Windows 331
Configuring Plot Optimizer Inputs 333
Defining Plot Optimizer Parameters 345
Defining Plot Optimizer Options 349
Running an Optimization 349
Saving and Opening a Plot Optimizer Setup 350
Plot Optimizer
Enable/Disable Plot
box
results in:
T id.m
S id_calc
• If a trace’s dataset type is BOTH, then that trace is
configured as Both Target and Simulated.
• If a plot has multiple traces and one trace’s dataset type
is MEAS, then an algorithm searches for an SIMU dataset
with the same name. If found, the two traces are paired
with the MEAS dataset type trace set as Target versus the
SIMU dataset type trace.
To disable all traces in a Plot window, choose Optimizer >
Disable All Traces.
Global Region
To define a trace region for all traces in the plot, form a
rectangle of the desired trace region then:
• Choose Optimizer > Global Region > Reset to delete all existing
global trace regions on the plot and define a new global
trace region.
or
• Choose Optimizer > Global Region > Add to add a global trace
region without deleting existing global trace regions.
Form a rectangle
of the trace region
The target and X-axis values for all traces are automatically
set to the trace region defined by the rectangle.
Form a rectangle
of the trace region
The target and X-axis values for the selected trace are
automatically set to the trace optimizer region defined by
the rectangle.
If you disable then re-enable a plot or trace, the values for that plot or trace
NO TE are reset to their default values.
Curve Min Lower limit for the curve. For a family of curves,
curves numbered lower than this limit are ignored during
optimization. A single curve can be selected by entering the
same curve number in both the Curve Min and Curve Max
fields.
Curve Max Upper limit for the curve. For a family of curves,
curves numbered higher than this limit are ignored during
optimization.
Running an Optimization
After setting up the Inputs, Parameters, and Options folders,
do the following to run an optimization.
1 Choose an Algorithm from the drop-down list.
For a description of the available algorithms, see
“Optimization Algorithms” on page 264.
2 choose Optimize > Run Optimization or choose the Run
Optimization icon.
Alternatively, to automatically set the minimum and
maximum parameter values then run an optimization,
choose Optimize > Autoset Min/Max and Optimize or choose the
Autoset Min/Max and Optimize icon.
9
Using Transforms and Functions
Customizing IC-CAP 356
Defining Transforms 357
Example Transforms 358
Performing Transforms 360
Measured, Simulated, and Common Data 363
Using Data from Another Setup 365
Creating C Language Functions in IC-CAP 366
Declarations and Implementation Examples 369
Customizing IC-CAP
Defining Transforms
Transforms are created as members of setups, since they
typically operate on data from a particular setup.
To define a transform:
1 In the Model window, select the setup.
2 Select Extract/Optimize.
3 Click New.
4 In the prompt, type a name for the new transform. This name
is used to refer to the data set created by this transform.
5 Click OK. The new name appears in the transform list and is
selected.
6 In the Function field, enter the name of the function to be
used for the new transform by doing one of the following:
• Click Browse to select a predefined function from the list.
• Type Program2 or Program and press Enter to create
your own function.
Example Transforms
Performing Transforms
You can perform transformations manually or automatically.
To perform transforms manually:
1 In the Model window, select the setup.
2 Select Extract/Optimize.
3 Select the transform you want to perform.
4 Click Execute.
If the drive you’re copying to is NFS mounted, clock skews can result if the
NO TE NFS drive’s system has a slightly different system time than the local
system. If you think this might apply to you, first, execute touch * then
execute touch *.o. The first touch synchronizes all files to your local
system’s time; the following touch causes the make system to believe that
all of the .o files were generated later than the source files, so it will not
attempt to rebuild any unnecessary files.
my_average_double
Function Types
You can add three types of functions to IC-CAP. These functions
are designed to operate on Real, Complex, and Matrix data.
Although you must choose one of these types, your function
does not need to perform mathematical operations. For
example, you can implement functions that perform instrument
I/O operation.
The function average_double() in userc.c is an example of a
function that operates on real data. This function is defined in
Figure 34 where the function arguments are:
inputs A 2-dimensional array of double precision real
numbers that contains zero or more input data sets
num_inputs An integer indicating the number of input
data sets contained in inputs
points_per_input An array of integers indicating the
number of data points in each data set in inputs
output An array of double precision real numbers used to
store the results of the function.
num_out_points An integer indicating the number of data
points in output
variables An array of double precision real numbers
containing zero or more variables passed to the function
num_variables An integer indicating the number of values
contained in variables
/*********************************************************
** average_double ()
** return average of data sets of real data
*********************************************************/
static int average_double (inputs, num_inputs, points_per_input, output,
num_out_points, variables, num_variables, parameters, num_parameters,
points_per_curve )
double_2d_array inputs;
int num_inputs;
int_array points_per_input;
double_array output;
int num_out_points;
double_array variables;
int num_variables;
string_array parameters;
int num_parameters;
int points_per_curve;
{
int dataset_num ;
int point_num ;
double sum ;
int dataset_size = points_per_input[0] ;
/* see if at least one input received */
if ( num_inputs < 1 ) {
standard_fail_msg ( "no input dataset(s) received" ) ;
return -1 ; /* indicates failure to system */
}
/* see if input datasets are all of same size */
for ( dataset_num = 0; dataset_num < num_inputs ; dataset_num++ ){
if ( points_per_input[dataset_num] != dataset_size ) {
standard_fail_msg ( "input datasets have different sizes" ) ;
return -1 ; /* indicates failure to system */
}
}
/* see if output dataset has same size as inputs */
if ( num_out_points != dataset_size ) {
standard_fail_msg ( "output dataset has different size than inputs" ) ;
return -1 ; /* indicates failure to system */
}
/* do the averaging */
for ( point_num = 0; point_num < dataset_size ; point_num++ ) {
sum = 0 ;
for ( dataset_num = 0; dataset_num < num_inputs ; dataset_num++ ) {
sum += inputs [ dataset_num ] [ point_num ] ;
}
output [ point_num ] = sum / num_inputs ;
}
return 0 ; /* indicates success */
}
Function Definition
Function Definition
Function Definition
Function Definition
Utility Functions
IC-CAP provides a set of utility functions to use when writing
transforms in C language. Most of these functions are declared
in xf_util.c.h. Some functions, for which the source is provided,
appear only in userc.c or userc.h. Each is described in the
following tables.
Function Definition
Function Definition
extern int set_par_w_check ( /* char
*param_name, double val */ );
Function Definition
Function Definition
Function Definition
Function Definition
Routines are provided to read values from IC-CAP data sets and
to obtain information about the sweeps present in the setup.
You can write new data values onto existing outputs and
transforms.
Function Definition
get_data_w_check Gets the value of a single point in an IC-CAP data set (an
Input, Output, or transform). A complex number will be
fetched from the IC-CAP data set and placed in
data_fetched. The data set name is the first argument. The
second argument should specify ’M’ (measured) data, or
’S’ (simulated). The row and col arguments should be 1,1
unless dealing with 2-port data. The index argument can
range from 0 to (size of dataset -1). The final argument is
the address of a ’complex’ struct (see userc.h). An
example is provided in xf_util.c.h. Return values are:
0 = dataset is found, and msb, row, col, and index
are all in range
−1 = any error condition
Syntax:
extern int get_data_w_check ( /* char*
dsname, char msb, int row, int col, int
index, complex* data_fetched */ ) ;
Function Definition
Function Definition
get_number Uses a dialog box to query the user for a number. It returns -l if the
user chooses CANCEL, otherwise it returns 0. The desired value
is returned by reference in return_data.
int get_number ( /* char* prompt , double
default_value, double* return_data*/ ) ;
get_string Uses a dialog box to query the user for a string. It returns -1 if the
user chooses CANCEL, otherwise it returns 0. The desired value
is returned by reference in return_data.
int get_string ( /* char* prompt, char*
default_value, char** return_data */) ;
A static area is used for the returned string. You should copy the returned
NO TE string, or use it before calling this function again.
Function Definition
object_name Gets the name of the transform or Macro under which this
function is running.
extern char* object_name ();
Function Definition
extern char* function_name () ;
IC-CAP employs the sigvector signal handling facility (see the UNIX
NO TE manual page sigvector(2)). Any User C code that modifies signal handling
should employ the same facility. That is, the system calls described under
signal(2) and sigset(2V) should not be used within IC-CAP.
#include <stdio.h>
#include <sighandler.hxx>
10
Printing and Plotting
Creating an IC-CAP Plot 390
Printing from UNIX 432
Printing from the PC 446
Automating Print Functionality 448
The term data set means either Input, Output, or Transform, as used in
NO TE Chapter 11, “Creating and Running Macros.”
Assign Y2 data
Y2 Axis Type: Additional Y axis type used for showing another data set
with a different magnitude or domain. For example, use the
Y axis for gain and the Y2 axis for phase.
Polar Data 0: The Output data set name or expression that is a function of
the outputs
Smith Data 0: The Output data set name or expression that is a function of
the outputs
Variable Definition
Variable Definition
Variable Definition
Editing a Plot
To edit an existing plot definition:
1 Open the Plot Editor:
• From the plot window, click Options > Edit Definition or right
click on the plot then choose Edit Definition.
• From the DUTs-Setups folder, select the setup. Then select
Plots. Now double-click the plot table you want to edit or
select the plot table and click Edit.
Alternatively, you can edit directly in the plot table. See
“Table and Text Editors” on page 40.
2 Change the fields as needed and click OK. The plot definition
is updated.
Notes:
• If the plot window is open when you click OK, the plot
window closes then immediately reopens with the new
definition. The exception is if you were editing the definition
of a sub-plot in a Multiplot window. In that case, the
Multiplot window refreshes with the updated definition. If
the selected plot was also displayed in a single plot, the
single plot closes and does not reopen.
• In a Multiplot window, if you right click on a plot to open the
Plot Editor and change the plot’s name, when you click OK
the plot disappears from the Multiplot window.
Tips:
• Use Display Plot to view the plot window for an individual,
selected plot.
• Use Display All to view plot windows for all defined plots.
• Use Close All to close all open plot windows.
• For all plots except Multiplot, use View to see data in a
tabular format.
Y2 Data
Another Y axis, called Y2 data, is available for XY GRAPH. The
Y2 data axis is useful for showing another data set with a
different magnitude or domain. For example, in a gain and
phase versus frequency graph you can use the Y axis for gain
and the Y2 axis for phase. The Y2 axis always requires one or
more Y data sets because a slope of a Diag Line is derived from
the left axis values.
The program assumes that Y2 data shares the same setup with
the X data, so the program never looks up the Y2 data and
always draws against the X data in the plot definition.
Expression
An expression can be entered into the data set fields described
above, just like any other fields where an expression is allowed.
For example, you can enter a natural log of id as log(id) in the Y
Data 0 field. The calculated data set belongs to the setup where
this plot definition exists.
Multiple X Data
IC-CAP allows plots to have multiple XY pairs in a single graph
by looking up the same X data name in another setup. This is
useful when comparing multiple XY pairs with different X
ranges.
Auto Lookup
Each Y data set is examined for its corresponding X data set.
This feature, called Auto Lookup, takes the X data name from
the plot definition and searches this name in the setup that has
this particular Y data in question. If there is no such X data in
that setup, then the X data in this plot definition is used.
For example, the next definition draws two different sets of id
vs vg curves based on large and short setups so that one set
represents id vs vg of nmos2/large/idvg setup while the other
set shows that of nmos2/short/idvg. The Y data names do not
have to be the same. This feature supports all the report types.
Table 47 Id vs Vg #1
X Data /nmos2/large/idvg/vg
Y Data 0 /nmos2/large/idvg/id
Y Data 1 /nmos2/short/idvg/id
Table 48 Id vs Vg #2
X Data vg
Y Data 0 id
Y Data 1 nmos2/short/idvg/id
The tabular report drops each Y data set that does not share the
X data of the plot definition, because representing multiple,
possibly independent X and Y data pairs in a simple
2-dimensional table is difficult.
For example, the plot definition in the second table shows the
vg and id of nmos2/large/idvg setup only. When you must show
all data sets that do not share the same X data, set the system
variable CHECK_PLOT_MATCH to No.
Calculated Data
If an expression is entered into a plot definition, then the
calculated result belongs to the setup where the plot definition
exists. Therefore, when using a transform, you must calculate
data within its home setup.
For example, the next definition based on the previous example
gives the wrong curves for Y Data 1 because the id in the short
setup is drawn against vg in the large setup. If the data size does
not match between the X and Y data sets, the program issues an
error message.
Table 49 Calculated Id
X Data vg
Y Data 0 id
Y Data 1 nmos2/short/idvg/id*2
Disabling Lookup
You can disable the Auto Lookup so that all the Y data are
drawn against the same X data even if these Y data sets do not
belong to the same setup with the X data. To turn off the Auto
Lookup set the system variable USE_PLOT_LOOKUP to No.
Displaying Plots
You can open a plot window to view your measured and
simulated data (see the following figures). The
currently-defined graphs are listed in the Plots folder in each
setup. You can open one or more plot windows at a time and
each display appears in a separate window. For all plots except
Multiplot, you can view the same data at the same time on a
graph and in a tabular format.
Measured data is displayed as a solid line; simulated data is
displayed as small squares by default. Plots are automatically
updated each time a measurement or simulation is performed.
After an extraction and subsequent simulation, you can view
the plots for agreement between measured and simulated data.
• To view the plot window:
• For an individual, selected plot, click Display Plot
• For all plots defined in a setup, click Display All
• To see data in a tabular format for all plots except Multiplot,
click View.
• To close all open plot windows, click Close All.
If you want to display or close plots while a different folder is open, use the
tool bar buttons at the top of the Model window: Display Plots (Setup),
Close Plots (Setup), Display Plots (DUT), Close Plots (DUT).
Area Tools
To display Area Tools, choose Options > Area Tools or right
click then choose Graphic > Area Tools. The following figure
shows a Plot window with Area Tools displayed.
Plot Optimizer
Autoscale
Error
X Axis Type
Y Axis Type
Zoom
Plot Optimizer
Autoscale
Error
X Axis Type
Y Axis Type
Zoom
Plot Optimizer
Autoscale
Error
X Axis Type
Y Axis Type
Scaling
Autoscale
Autoscale can be toggled on and off by either:
• Choosing Options > Autoscale
• Right clicking on the plot then choosing Scaling > Autoscale
• Clicking the plot’s A area tool.
If a check mark is before the Autoscale menu item or the plot’s
A area tool is orange, Autoscale is on. When Autoscale is on, the
axes will autoscale so all data is visible. When Autoscale is off,
the state of this menu item is saved to .mdl files. For example, if
you save a plot (or a model containing the plot) with Autoscale
turned off, the plot retains the setting, and opens in the
Autoscale OFF state the next time the plot is opened.
Axes scaling is controlled by settings you choose in the Manual
Rescale dialog box (Options > Manual Rescale). If you have a
new plot, or a plot that has never had the scaling modified,
turning Autoscale off locks the current settings in place. Any
future toggling of Autoscale ON/OFF will switch between full
scale, and this remembered setting. The remembered setting can
be further modified by using the Options > Manual Rescale or
Options > Set Scale menu choices.
Rescale
You can zoom into a selected area of a plot by drawing a box
around a portion of the plot, then either:
• Choose Options > Rescale
• Right click on the plot and choose Scaling > Rescale
• Click the A area tool
• In a Multiplot window, select a plot then choose Plots >
Selected Plot Menu > Scaling > Rescale
Also, you can pan across the plot by selecting a single point on
the plot then choose Rescale. The plot moves so the selected
point is at the display’s center. When Autoscale is on, the
rescaling is temporary. The next replot restores the plot to full
Autoscale.
Form a rectangle
to define the area
to rescale
Set Scale
The Options > Set Scale menu item is a shortcut to establish
Manual Rescale settings. You can also access this menu item by
right clicking on the plot then choosing Scale > Set scale or from
a Multiplot window by first selecting a plot then choosing Plots
> Selected Plot Menu > Scaling > Set scale. Whether you are in
autoscale mode or had performed a Rescale to zoom in on a
region of the plot, choosing Options > Set Scale sets the Manual
Rescale dialog box to the plot’s current scaling values (e.g., X
min, X max, Y min, Y max, etc.).
Manual Rescale
The Manual rescale dialog box enables you to fully describe all
three axes of XY plots in terms of minimum value, maximum
value, number of major divisions, and number of minor
divisions. You can access this dialog box by choosing Options >
Manual rescale or right clicking on the plot then choosing
Scaling > Manual rescale. In a Multiplot window, you can
access this dialog by selecting a plot then choosing Plots >
Selected Plot Menu > Scaling > Rescale.
Select Autoscale
In addition
• You may leave any of the three axes autoscaled if you like.
• You may scale the real and imaginary axes of RI plots as well.
RI, Smith, and Polar plots can be centered around a specified
point with a specified radius displayed.
• You may specify the number of major and minor divisions for
RI and Polar plots, but not for Smith plots.
Histogram and cumulative density plots permit scaling of the X
axis and scatter plots permit scaling of the X and Y axes. Some
requests may be denied due to algorithmic constraints, and in
this case, the closest match is made updating the dialog with the
actual values used. For example, LOG scaled axes are forced to
the next decade, and the number of major and minor divisions
are ignored. The number of major divisions in polar plots must
be even.
Manual Rescale enables you to set the minimum to a specific
value, such as .123, without rounding the value up or down.
While this gives you much greater control, it can cause some
problems with numbers overwriting each other, usually on the
X axis. However, LOG scaled axes will still round up or down to
the nearest decade.
Any settings established using Manual Rescale, the associated
iccap_func command, or Options > Set Scale are saved with the
plot in the .mdl file. To establish settings, choose OK or Apply.
(OK also dismisses the dialog box.) To see what a plot looks like
before establishing the current settings, choose Preview. To
restore settings to the previously established ones, choose Reset
or Cancel. To dismiss the dialog box, choose Cancel.
The settings in this dialog box update dynamically whenever a
plot’s scale changes. Scales change dynamically for various
reasons, including when a simulation changes an autoscaled
limit, or the Options > Rescale menu item is chosen. Updated
settings do not change your established settings until you
choose OK, Apply, or Options > Set Scale. Dynamic updating is
convenient when you want to establish new settings.
Manual Rescale is fully controllable through PEL. To rescale a
plot, use the iccap_func command for Plot:
iccap_func("Plot","<keyword>")
The keywords Scale RI Plot Preview and Scale Plot Preview function in the
NO TE same way as Scale RI Plot and Scale Plot, but the scaling will be lost on
the next Replot command.
Marking a Point
You can identify the nearest data point on the graph and show
its X and Y values and data point number by marking a point.
To mark a data point:
Click the Left mouse button on the graph.
Marking a Point
Drawing a
diagonal line
To erase the diagonal line, select Options > Draw Diag Line, without
NO TE going through the mouse clicks forming the rectangle.
Setting Variables
When a rescale rectangle is shown on a plot, its X and Y values
can be copied to system variables. Four variables (X_LOW,
X_HIGH, Y_LOW, and Y_HIGH) are reserved for this purpose.
You can use this feature when setting X and Y limits for
optimization by specifying these variables in the Optimizer
Options Table.
1 To perform Set Variables define these system variables at
any level. Only the variables of interest must be defined.
2 With the left mouse, click and drag on a plot to form a
rectangle.
3 Choose Options > Copy to Variables (or press C on the
keyboard). From a Multiplot window, choose Plots > Selected
Plot Menu > Graphic > Copy to Variable.
The data values are taken directly from the plot. Therefore, you may need
NO TE to transform those values to another form when they are used in the
Optimizer Options Table. For example, if the optimization target is log(ic)
and the plot shows ic versus ve with LOG10 Y axis type, the Y Bound in
Optimization should be log(Y_LOW) and log(Y_HIGH).
If Area Tools are enabled, you can click on the plot’s E area tool
to toggle between displaying relative error, absolute error, or
not displaying any error. The E area tool is green if error
calculation is enabled. To enable Area Tools, choose Options >
Area Tools.
Trace Options
The Trace Options tab enables you to define trace colors and
symbol shapes for all plots except Scatter, Histogram, and CDF
plots. If you select Automatic, the default IC-CAP settings is
used. If you select a specific color, an asterisk (*) is display next
to the color to indicate that it is not the default color.
Plot Options
The Plot Options tab enables you to define Data
Representation, Layout and Background, and Text Font.
However, for Scatter, Histogram, and CDF plots, the Data
Representation section is not available.
Text Annotation
The Text Annotation tab enables you to add annotation text
to document information such as date, lot number,
simulation parameters, and so on. You can either directly enter
text annotation or you can specify a PEL macro (see
“Annotating a Plot Using a PEL Macro” on page 428).
Advanced
The Advanced tab enables you to specify a PEL callback
(macro or transform) to run whenever the selected plot in a
Multiplot changes. Note that reselecting the same plot will
not invoke the callback.
To specify a PEL callback, unselect Automatic then type in
the callback path and name. Using a relative path, the
callback is found relative to the Multiplot. Therefore, the
path for macros is ../../MacroName and for transforms is
./TransformName. This is true regardless of where you open
Plot Options. For example, if you open Plot Options from the
Model window, the relative path for a macro is still
../../MacroName.
Restrictions
• This callback can only identify when the selection
changes. Currently no mechanism exists that can detect
when a plot is clicked on again, reselecting the same plot.
• Calling iccap_func() with “Select Plot” is not allowed
during the selection callback and doing so will have no
effect. Selection can occur just prior to displaying a right
click menu or at the start of a click and drag. Changing
the selection at these moments would be problematic, and
allowing selection changes for some selections but not
others can be equally problematic, so it is not allowed.
• Deleting the invoking Multiplot or the plot that is being
selected is not allowed during the selection callback.
• You can modify Multiplot entries during a callback, but
any call to Replot will do nothing during the callback.
This is because changing a graph between selection and
display of the right mouse menu can lead to problems.
• In general you should not change the Multiplot, its
selection, or any of the child plots during a selection
callback. The purpose of the callback is to allow an
embedded GUI to change states in reaction to the selected
plot.
Multiplot Layout
The Layout tab enables you to define the layout and
background settings for a Mulitplot.
2 In the Plot Image File Name dialog box, set the location
where you want to save the file.
3 Enter the file name in the form of filename.ext where ext is
gif or jpg.
On Windows, you can copy a plot image to the Windows clipboard, paste it
NO TE into another applications (such as Microsoft Paint), then save it in the
other application.
To copy a plot image to the Windows clipboard, select Options > Copy to
Clipboard or press Ctrl+C on the keyboard.
Plot annotation
Annotation Variables
The variables that control the annotation in a plot can be
defined at any level, providing flexibility and programming
capability. These variables are:
• ANNOTATE_MACRO. This variables sets a macro name
which is executed by a plot for generating annotation text. If
this variable is undefined or blank, then no program is
executed. A model name may precede a macro name to locate
a macro in another model (for example, /npn/legend).
• ANNOTATE_FILE. This variable sets a file from which a plot
reads in annotation text. When this variable is undefined or
blank, a plot does not read a file to update its annotation.
• ANNOTATE_AUTO. When this variable is either Y or Yes,
then a plot updates its annotation whenever its datasets are
updated, for example, when measured or simulated.
Otherwise, the annotation is updated when a plot window is
opened or its menu choice Update Annotation is selected.
Annotation Example
The annotation example shows how to use the annotation text
from the example plot used in this chapter. The following table
shows variable values for this example, except
ANNOTATE_FILE, which is defined in the legend macro
program.
Variable Value
ANNOTATE_MACRO legend
ANNOTATE_FILE
ANNOTATE_AUTO No
ANNOTATE_CSET
Advanced Annotation
Setting Up a Printer
The Print Setup dialog box enables you to setup and manage
your printer options. To access the Print Setup dialog box,
1 Choose File > Print Setup. The Print Setup dialog box appears.
Option Description
Resolution (dpi): This option enables you to set the print quality
(resolution) in dots per inch (dpi).
Scale Factor (%): This option enables you to set a scaling factor
that defines the percentage of normal size by
which to enlarge or reduce the document on
the page. Default is 100%.
Option Description
Option Description
Black and White Click this option if you want your output in
black and white. Default is activated unless
the system detects support for color printer. If
this is the case, the system will default to the
color option.
Managing Printers
The Printer Management dialog box enables you to manage an
individual printer or group of printers. To access the Printer
Management dialog box,
1 Choose File > Print Setup. The Print Setup dialog box appears.
2 Click the Printer Management button in the Print Setup dialog
box. The Printer Management dialog box appears.
Options Description
Installed Printers The Installed Printers field displays a list of all currently
installed printers.
Printer Drivers Use the Printer Drivers drop-down list to select a printer
driver.
Defined Ports Use the Defined Ports drop-down menu to select a defined
port.
Options Description
Help Click the Help button to access the online context sensitive
help.
Option Description
Ports The Ports field displays a list of ports. Port names can be any
names you choose with the exception of FILE: which is a
reserved port name.
Edit Port The Edit Port field is used to enter a new port. After you have
entered the port definition, click the Add/Replace button.
Add/Replace Click the Add/Replace button to update the Ports list with
contents of Edit Port field.
Remove If you want to remove a port from the Ports list, click the port
name in the Ports list to activate the Remove button. Click the
Remove button to remove the selected port.
Import from Click the Import from Spooler button to generate a list of ports
Spooler (based on your printcap file).
Help Click the Help button to access the online context sensitive help.
Option Description
Close Click the Close button to dismiss the Ports dialog box and accept
the changes. Settings will be saved upon exit.
Option Description
Option Description
Fit to Page Activate the Fit to Page option if you want your
output to be automatically scaled to fit on the
page.
Print to File Activate the Fit to Page option if you want your
output to be directed to a file.
Option Description
Fit to Page Activate the Fit to Page option if you want your
output to be automatically scaled to fit on the
page.
Print to File Activate the Fit to Page option if you want your
output to be directed to a file.
Option Description
Printing to a File
The Print to File dialog box enables you to define a
destination path and file name and then output your
information to the specified file. To use the Print to File
dialog box,
1 Choose File > Print. The Print dialog box appears.
5 Enter the file name for your output in the Selection field.
6 Click the OK button to output the file.
The options available vary based on the printer/printer driver you select.
NO TE
Select this option to send output to file for printing at a later time. Select Enhanced Metafile,
Windows Metafile, or HP-GL/2 as the file format when the Print to File dialog box appears.
Select this option to print in color (on a color printer) or in grayscale, rather than black and
white (on a monochrome printer).
Select this option to place the image on the Windows clipboard (Bitmap) for pasting in any
Windows application.
Basic Printing
To send the entire contents of the window to the printer:
1 Choose File > Print and a dialog box appears.
2 Change any print options as needed, and click OK.
11
Creating and Running Macros
Creating and Running a Macro 453
Macro Features 455
Controlling the IC-CAP System 457
Autostart Macros 461
Computations with Data Sets 463
An Example Macro 465
mactst
5 Click OK. The macro name, mactst, appears in the macro list.
6 Select mactst. The macro editing text window clears.
7 Click anywhere in the text editing area and type:
iccap_func("/npn/dc/fgummel","Display Plots")
where:
iccap_func specifies the execution of a specific action
/npn/dc/fgummel is the path name of the setup containing
the plots
a comma (,) separates the path name from the command
Display Plot specifies the action to perform
Alternatively, you can execute macros from the Macros menu in the Model
NO TE window’s main menu bar, Macros > Execute > <macro name>. This is
useful when you want to run a macro and the Macros folder is not open.
You can save the macro by selecting it and selecting File > Save As.
Select the file type Macro, select the macro from the list, and click OK.
Macro Features
As demonstrated in the example, basic macro syntax is quite
simple, yet reasonably powerful. This section gives more detail
about macro features.
In macros you can write statements that use IC-CAP’s
Parameter Extraction Language (PEL). The PEL syntax is based
on Rocky Mountain Basic or HP BASIC. You can run operating
system commands and send data to external files. Macros can
store IC-CAP data to data bases.
IC-CAP uses a single interpreter for both the Program function
and macros. As a result, these have nearly identical features,
except that a macro does not store a data set when it finishes.
Program Statements
Several IF statements and a WHILE statement allow looping
and conditional execution for a statement or a block of
statements.
The LINPUT and PRINT statements permit 2-way
communication with an operator and permit sending output to
files and instruments.
Built-in Functions
Functions and operators for numerical computation and for
handling strings are available. You can compute using single
numbers or whole data sets, without additional programming
effort. The functions and operators use the same names (such
as, LOG SQRT VAL$ and SYSTEM$) as HP BASIC or RMB. The
SYSTEM$ function is one of two functions available for invoking
HP-UX shell commands. For information refer to “Built-in
Functions" in the Reference manual.
Autostart Capabilities
You can request the execution of a particular macro on startup.
For details, refer to “Autostart Macros” on page 461.
Specifying an Object
IC-CAP is implemented in an object-oriented fashion. To the
user, this means selecting an object in the system, such as a
setup, and then selecting an action, such as Simulate. The
iccap_func command reflects this object-oriented style, since
the command requires an object name and then an action. The
command searches first for the object within the IC-CAP system
and then, having found the object, it executes the action to be
performed on that object.
When using the iccap_func command, particularly within a
macro, you specify objects by using a leading “/” character in
their names. (When viewing the setup in the Model window, the
leading character is not shown, so it is easy to forget this detail
when programming with iccap_func.) For example:
iccap_func(“/npn/dc/fgummel”,”simulate”)
IC-CAP
|— Variables
|— GUI Items
|— GUI Items
|— Simulation Debugger
|— Hardware
|— HPIB Analyzer
|— PlotOptions
|— MODEL(*)
|— Variables
|— GUI Items
|— GUI Items
|— Circuit
|— PlotOptimizer
|— PlotOptions
|— Parameter Set
|— MACRO(*)
|— DUT(*)
|—Variables
|— GUI Items
|— GUI Items
|—Test Circuit
|—Device Parameter Set
|—SETUP(*)
|—Variables
|— GUI Items
|— GUI Items
|—Instrument Options
|—INPUT(*)
|—OUTPUT(*)
|—TRANSFORM(*)
|—PLOT(*)
|— PlotOptions
Specifying an Action
Having identified an object, such as /npn/dc/fgummel, you
then provide the name of an action to perform on it. Many
of the available actions in IC-CAP are made up of multiple
words, such as Rebuild Active List in the Hardware window.
When specifying a multi-word action, spaces and
capitalization do not matter. However, when specifying the
object, spaces (or the lack of) and capitalization are critical.
IC-CAP allows you to name one model as npn and another
as Npn, so the spelling and capitalization of an object must
be exact.
iccap_func("/npn/dc/fgummel","Save As","fgummel.set")
Autostart Macros
You can request the execution of the npn/dc_test macro after
the model file is loaded, by starting IC-CAP in this fashion:
iccap bjt_npn.mdl -x npn/dc_test
Since Macros are not inside the Setups, they must fully specify
the names of data sets that they use. A leading “/” character
must be used. In a Macro, the previous PRINT statement needs
to be written as follows:
PRINT max(/npn/dc/rgummel/vb)
Some of the functions in the IC-CAP Function List will not execute within a
NO TE Macro, although they would succeed in a Program. These functions
depend on being able to determine the number of points per curve in a
Setup. This is generally because they operate on a single curve in a data
set (or on each curve separately). Example: If you use the derivative
function in a Macro, the following error box message will appear:
Cannot perform derivative function because points per curve cannot be
determined. This function must be done inside a Setup.
The other functions with this limitation are these: correlation, fit_line,
circlefit, and linfit. Starting with IC-CAP 2006B addon3, a new derivative
function called derivative2 is available, which can be called from a macro
by passing in the number of points as an additional argument. See
derivative2 for more information. To use the classic derivative or the other
functions mentioned during the execution of a Macro, these functions
might be placed within dedicated Transforms inside Setups, which the
Macro can Perform via the iccap_func command.
An Example Macro
This section provides an example to improve your
understanding of what a Macro can accomplish and how some if
its features can be used. This example (Figure 40) benchmarks
the quality of the DC extraction in the pn_diode.mdl file. Load
this file to view and run the example. Before running this
example, you must define TNOM in your System Variables Table.
After performing Read Model you should be able to edit the
diode model. By selecting Read Macro from the menu
associated with its list of Macros, you can load pn_test.mac, so
you don’t have to enter the text appearing below. After loading
the Macro file, perform the Edit menu choice for the newly
loaded Macro test_extract, Execute the Macro by selecting its
name and clicking on Execute.
The Macro code is included below. The comments within the
Macro should clarify what the Macro is doing.
12
Creating Graphic User Interfaces
Basic Commands - The Model GUI Items Menu 469
The Widget Properties Dialog Box 472
Troubleshooting 476
GUI Item Options Controlling Variables 478
Common Options 482
Widget Descriptions 484
OnLine Briefing 515
Controlling Dialogs 518
Data Input Slider (Example) 521
More on Tables (Examples) 526
Viewing Pages Sequentially (Example) 537
Viewing Pages at Random (Example) 540
Counter (Example) 541
Adding a Caption to the Unix Window (Example) 544
More on Sliders (Examples) 546
Random Numbers (Example) 549
Select Tab
The Model GUI Items page is used for building and testing
GUI’s. Once built GUI’s could conceivably be used from this
page. However it is not intend to be used that way. It is
more convenient to have macros launch the appropriate
GUI’s as an operation proceeds.
The Model GUI Items page has a menu at the left as shown
below.
These buttons
create widgets
Add...
The Add... button is used to add the first item of a GUI,
usually a Table which acts as an organizational tool to
layout the children GUI Items to be added later. See “More on
Tables (Examples)” on page 526.
Add Child...
The Add Child... button, through the Widget Properties
dialog box, adds children to whatever is selected in the main
window. In the example above the Vertical Table is selected
and three buttons are added to it as children. When children
are added to a widget a black triangle (the node symbol)
appears to the left of it. Clicking on the node symbol causes
it to point downwards to a list of the children.
Properties
The Properties button launches the Widget Properties dialog
box for displaying and customizing widget. This box is
described in detail in the Widget Properties Dialog Box
Section. The dialog box will also be displayed if you
double-click on an item in the window.
Display
The Display button will create and display a working version
of whatever widget is selected in the window.
Delete
The Delete button deletes whatever is selected in the
window. For example we could select and delete but3 if we
wanted only two buttons. If we select and delete the Vertical
Table we will also delete all of the children. Caution: There
is no Undo.
Enclose
The Enclose command allows you add an additional level of
hierarchy into the GUI structure. For example a Vertical
Table contains three push buttons. We want to add three
more as a second stack of three to the right of the first
three. We select the Table and click Enclose. The Table now
has a new parent with the default name NewTable. We select
NewTable and change its Orientation to Horizontal. Then we
add to it as a child a further Vertical Table which will
contain the second three Push Buttons.
See the tutorial “Enclose” on page 533 for more details.
Widget type
selected here
The top level item in this box is the Select Type box. Press
the activate button on the right side of it. A dropdown menu
appears offering sixteen choices of widgets.
Click here
to show list
of GUI items
Widget Classes
The available widgets perform four general functions:
organizing placement, handling single variables, and handling
lists.
Placement Widgets
The Table (of anything) and the Tabbed Folder (of pages)
organize layout of widgets within a GUI.
Widget Naming
Once the widget type has been chosen it can be named in
the top box of the Widget Properties dialog box. This is not
essential but it is very desirable since it makes the widget
map (as distinct from the GUI itself) much more intelligible.
Once a widget type has been selected, the left side of the
properties box shows a list of the Options and a list of
Callbacks available for this widget.
Select, for example, the option Caption.
• The information box at the bottom will show relevant
information.
• The title of the right side editing area changes to Editing:
Caption.
For a fixed caption:
1 Click on the box titled Please Enter Text Value and enter the
text for the caption, e.g “Start”. Do not use the enter key
unless you are entering multi-line captions.
2 Click on the OK or Apply button immediately below. In the
Options list Caption will be shown as Caption (Start).
For a variable Caption:
1 In the Editing: Caption box set Track Variable to on (so
that an x shows in the box).
2 Click on the box titled Variable and enter the variable
name, e.g. buttonName.
3 Then click on the OK or Apply button immediately below.
In the Options list Caption will be shown as Caption
(Variable buttonName).
4 The variable buttonName must be declared in a variable
table, e.g. the Model Variable table accessed by clicking on
the Model Variables tab.
For the GUI to accept the information from the Widget
Properties dialog box, click on either the OK or the Apply
buttons at the bottom left corner. OK dismisses the dialog
box, while Apply leaves it in place.
Troubleshooting
Problem: Widget Properties dialog the Editing box will not
accept text, even though an insertion point marker is visible.
Solution: There is usually more than one box so you must
click on one to select it for text entry.
Problem: Option not found in the Options list. For most GUI
Items there are not enough options to fill the option box.
When there are enough options to overflow the box a scroll
bar appears at the right hand side. Use this to access the
options at the end of the list.
Problem: The following Dialog Box appears:
Modifying Variables
• All variables and arrays must be declared and defined,
typically in the Model Variables Table, and declared in the
Widget Properties box.
• Some options can only track an iccap_variable in the form
of an ICCAP_ARRAY. In this case a single blank will be
presented with the instruction to Please enter the name of an
ICCAP_ARRAY. Other options may be ‘hardcoded’ with a
literal, or can be tied to a variable. For the later case,
please check the box labeled Track Variable and fill in the
Variable Name blank.
Label <none>
Separator <none>
Table <none>
Common Options
These options are common to most widgets, so they are
described in this section. Widget specific options are in
individual tables in each GUI item description.
Option Description
Background Color Specifies the Background Color for the GUI Item.
Foreground Color Specifies the Foreground Color for the GUI Item.
Height and Width These are the widget dimensions in pixels. Note that these
options are only used if applied to a widget which is actually
displayed. If the options are set on children of the widget
being displayed, they will be ignored.
Option Description
Managed This option indicates whether the item is managed (shown)
or unmanaged (not shown). This allows a widget to be
removed from the GUI at times when it is not needed, and
rapidly restored when needed without the rebuilding time.
In the sequential display of pages it is used to make only the
active page visible (see tutorial on sequential display). Most
useful when Track Variable is selected. Default is 1.
Row and Indicates how many rows or columns this table should span
Column Span in a table.
Note, a dummy table must be placed at the cell(s) of the
table that will be overlapped.
Sizing Options These indicate how the widget should behave in a Table
when you expand the GUI window.
See tutorial “Captions, Frames and Sizing” on page 526.
Unmanage a Dialog
Dialogs can be removed from the screen without being really
destroyed. Some dialogs are somewhat time consuming to
build. If they are unmanaged instead of destroyed, the next
time they are displayed, they will not need to be rebuilt and
will appear quickly.
iccap_func(mydialog, Close GUI, DialogName)
iccap_func(mydialog,Close Single GUI)
Widget Descriptions
This section describes the widgets that are listed in the
Select Type dropdown box in the Widget Properties dialog
box.
Check Box
Toggle State Toggles a value between 1 and 0 each time the box is
checked.
Dropdown Combo
Entered Text This is the text in the edit field. If tied to a variable,
the variable will only update when Enter is pressed.
Typed Text This is the text in the edit field. If tied to a variable, it
will always reflect the current value.
Visible Columns The integer value for the number of columns that are
visible at once.
Visible Item Count The integer value for the number of items that are
visible at once.
Visible Columns The integer value for the number of columns that are
visible at once.
Visible Item Count The integer value for the number of items that are
visible at once.
Edit Text
Caption
Field Value
The Edit Text box serves primarily as an input where the user
can enter and change the value of numbers or strings of text.
However it also operates as a monitor in that will show the new
values of a variable or text string any time that variable
changes.
Fixed Label
To show a fixed (hard coded) title, in the Widget Properties
dialog box, select Caption from the Options list. Then select the
Track Variable box to set it to off (no x shown in it). Then in the
box titled Please Enter Text Value type, for example, Please
Enter Text and click OK. The caption in the options list will
now be displayed as
Caption (Please Enter Text)
Click OK and display the edit box and its title.
In the Widget Properties dialog box, select Field Value from the
Options list. Then select Track Variable setting it to on (so that an
x is shown in it) and then type, for example, newText into the
Variable box. Click the OK button directly underneath it.
In the Options list the Caption will now be shown as:
Field Value (newText)
Then click the bottom left OK button.
Edit Mode Controls if the field can have multiple lines or just a single
line.
Editable Controls whether the edit field can be modified by the user.
Label
Fixed Label
The text is normally a fixed string of characters and is
contained in the Caption.
It can be single or multi-line.
To show a fixed (hard coded) label, in the Widget Properties
dialog box, after selecting Label, select Caption from the
Options list. Then in the box titled Please Enter Text Value
Variable Label
A variable containing the text can be generated by a macro
which generates the text message or selects it from a list.
Select Track Variable and then type, for example, textString
into the Variable box. Click the OK button directly
underneath it.
The caption option in the option in the list will now be
displayed as
Caption (Variable textString)
Then click the bottom left OK button.
To display the message in textString it must be given a
value. For demonstration purposes click the Model Variables
tab and scroll down to the empty cells at the bottom of the
table and add textString in the Name column, and
“Hello” in the Value column.
Display the Label with its text “Hello” then select the Model
Variables tab and edit the string “Hello” to “Goodbye”. When
you press Enter you will see the text in the widget change.
None
List
Caption
Click here to
select item
Table Caption
Single Item Select Uses the Option Selected Index (singular) to the
store the selection. Clicking on a selected item
unselects it.
Browse Style Selection This is the same as the Select Single Item mode
except that clicking on a selected item has no
effect. After the first selection one item always
remains selected.
Extended Style Selection This is the same as the Browse Style Selection
mode except that you may select multiple items
by using the <Shift> and <Ctrl> keys while
clicking.
Selection Policy The type of selection policy to be used: Select Single Item,
Select Multiple Items, Browse Style Selection, Extended
Style Selection.
Visible Columns The integer value for the number of columns that are visible
at once.
Visible Item Count The integer value for the number of items visible at once.
Page
Caption
Label
Column Spacing The integer value for the number of pixels between
columns in a table.
Default Sizing Options The sizing options for all members of the table if they
for children don't declare their own sizing options.
Margin Width The integer value for the number of pixels of margin at
the sides of the page.
Number Rows/Columns The integer value for the number of rows displayed for
a horizontal orientation or the number of columns
displayed for a vertical orientation. The children will
be divided up evenly between the rows/columns.
Row Spacing The integer value for the number of pixels between
rows of a table.
Use Radio Behavior When this is TRUE only one radio button in the table
may be selected at a time.
Push Button
Caption
Button Caption
To show a fixed (hard coded) name for the button, in the
Widget Properties dialog box, select Caption from the
Options list. Then in the box titled Please Enter Text Value
type, for example, Activate! and click OK. The caption in the
options list will now be displayed as:
Caption (Activate!)
and the button will appear as shown above.
None
Radio Box
Caption
Selected Button
true, all radio button’s siblings in a table will act just like
radio box (single selection). If Radio Button Behavior is
FALSE the buttons behave like Check Boxes and allow
multiple selections as show above right.
The items selected by a group of radio buttons are stored in
an ICCAP_ARRAY.
The Option Selected Index allows you to assign a variable
which takes the index value of the selected item n the
ICCAP_ARRAY.
The array and index variables must be declared and defined
in a variables table, for example in the Model Variables
Table.
See “Using the Properties Dialog Box” on page 474.
Number Rows/Columns The integer value for the number of rows displayed
for a horizontal orientation or the number of columns
displayed for a vertical orientation. The children will
be divided up evenly between the rows/columns.
Radio Button
Multiple selection
Caption
Caption
Toggle State Toggles a value between 1 and 0 each time the box is
checked.
The Radio Box widget automatically creates its own buttons which are
NO TE ROUND. The Radio Button widget is a DIAMOND shaped button.
Scroll Table
Tables are used to organize the placement of widgets into a
hierarchy of rows and columns, and are usually the first
item to be defined in a GUI. The default orientation is
vertical.
When widgets are added as children to a vertical table they
will be placed one above the other in the same order as
listed in the hierarchy in the Model GUI Items page.
Horizontal tables may also be added as children to vertical
tables.
Scroll tables are like normal tables except the table requires
scrollbars to access table entries beyond the values set by
Columns Visible and Visible Rows unless the rest of the
dialog can accommodate more space. Setting Columns Visible
Column Spacing The integer value for the number of pixels between
columns in a table.
Columns Visible The integer value for the number of columns of widgets to
show before scrollbars appear.
Default Sizing The sizing options for all members of the table if they
Options for children don't declare their own sizing options.
Equalize All When TRUE all widgets in a table are normalized to the
same size. The default is FALSE.
Margin Height The integer value for the number of pixels of margin at the
top of the table.
Margin Width The integer value for the number of pixels of margin at the
sides of the table.
Number The integer value for the number of rows displayed for a
Rows/Columns horizontal orientation or the number of columns displayed
for a vertical orientation. The children will be divided up
evenly between the rows/columns.
Row Spacing The integer value for the number of pixels between rows
of a table.
Use Radio Behavior When this is TRUE only one radio button in the table may
be selected at a time.
Visible Rows The integer value for the number of rows of widgets to
show before scrollbars appear.
Separator
Labels
Separators
Length The integer value for the length (in pixels) of the separator.
Slider
Captions
Captions
Sliders
Spin Box
Caption
Integer Values
The default Spin Box controls an integer in increments of 1,
with minimum and maximum values of 0 and 100.
The Options Maximum Value, and Minimum Value are only
used for Spin Integer.
For the Option Spin Position set Track Variable on and
assign a variable to indicate the position.
Real Values
Set the Spin Type to Spin Real.
For the Option Spin Real set Track Variable on and assign a
variable to indicate the position. The Option Delta Between
Real Steps must be set to a finite value. It is used only for
real values.
Text Values
Set the Spin Type to Spin Text
Select the Option Items and enter the name of an
ICCAP_ARRAY to hold the text strings to be displayed. Items
is used only for text strings.
Split Arrows
This is a styling feature. When set to TRUE the up and down
arrows appear on opposite sides of the value display box. On
FALSE the will both be to the right.
See “Using the Properties Dialog Box” on page 474.
Delta Between Real Steps Indicates the delta between steps when the spin
box is in real mode.
Real Value This is the real value of a spin box when the mode
is set to real numbers.
Spin Box Wraps Indicates whether a spin box should wrap around
when it hits its minimum/maximum value.
Spreadsheet Table
Column
Row Labels
Labels
Main Area
Main Area Cell Alignment This resource indicates how the values should be
aligned within the cells of the main area of the
spreadsheet.
Main Area Cells Editable This resource indicates If the cells should be
editable in the main area of the spreadsheet.
Main Area Cells Traversable This resource indicates if focus should move with
the keyboard in the main area of the spreadsheet.
Main Area Grid Type Indicates if gridlines should be used in the main
area of the spreadsheet.
Column Label Cell This resource indicates how the values should be
Alignment aligned within the cells of the main area of the
spreadsheet.
Column Label Area Cells This resource indicates if focus should move with
Traversable the keyboard in the Column Label area of the
spreadsheet
Column Label Area Row Indicates the height of the spreadsheet column
Height headers.
Row Label Area Cells This resource indicates if focus should move with
Traversable the keyboard in the Row Label area of the
spreadsheet.
Row Label Area Column Indicates the width of the spreadsheet row
Width headers.
Row Label Foreground Color Indicates the foreground color that should be
used in the row label area of the spreadsheet.
Row Label Grid Type Indicates if gridlines should be used in the row
label area of the spreadsheet.
Row Area Cell Alignment This resource indicates how the values should be
aligned within the cells of the main area of the
spreadsheet.
Color Table
Caption on
Tabbed Folder
Caption on Label
Page on Page
Current Page Indicates the initial page to display when an integer is set. If
tracking a variable, the variable is updated with each page
change to reflect the currently selected page.
Margin Height The integer value for the number of pixels of margin at the
top of the table.
Margin Width The integer value for the number of pixels of margin at the
sides of the table.
Page Change OK Set to 1 just before a page change. The Page Validation
callback is then invoked. If you set this option to track a
variable, you may set it to 0 during the Page Validation
callback to prevent a page change.
Callbacks Description
Page Changed Invoked whenever the current page is changed. If you track
the Current Page with a variable, the variable will have the
new page in the callback.
Table
learn.Items.TableFrame
learn.Items.TableFrame.SubTable2
learn.Items.TableFrame.SubTable2.SubSubTable2
Default Sizing Options The sizing options for all members of the table if they
for children don't declare their own sizing options.
Margin Height and The integer value for the number of pixels of margin at
Margin Width the sides and top of the table.
Number The integer value for the number of rows displayed for
Rows/Columns a horizontal orientation or the number of columns
displayed for a vertical orientation. The children will be
divided up evenly between the rows/columns.
Row and Column Indicates how many pixels of spacing between rows
Spacing or columns.
Use Radio Behavior When this is TRUE only one radio button in the table
may be selected at a time.
OnLine Briefing
The following pages may also be viewed on line. We suggest
you add ICCAP_VIEW_GUI_PAGES=1 to the configuration file
iccap.cfg. This ensures that the GUI Model Pages tab is
always present. Open the model file gui_tutorial.mdl located
in the examples/iccap_studio directory.
Radio Button
Controlling Dialogs
Launching Dialogs
You can launch dialogs defined in the GUI page via four
iccap_func commands:
iccap_func("/mdl/dut/orSet/GuiName","Display Modal GUI",
"InstanceName")
iccap_func("/mdl/dut/orSet/GuiName","Display Modeless
GUI","InstanceName")
These forms don’t require a name, and thus you can only
show the dialog once using this command. It’s useful for
callbacks—see the properties for the Wizard GUI Item's
Cancel button in the gui_tutorial.mdl.
Removing Dialogs
You can remove dialogs in two ways—Close and Destroy:
iccap_func("/mdl/dut/orSet/GUIName","Close GUI",
"InstanceName")
iccap_func("/mdl/dut/orSet/GUIName","Destroy GUI",
"InstanceName")
iccap_func("/mdl/dut/orSet/GUIName","Close Single GUI")
iccap_func("/mdl/dut/orSet/GUIName","Destroy Single GUI")
Close GUI merely takes the dialog off the screen. The
dialog is still built and is reacting to modifications to the
variables page, etc. Recalling Display after you’ve closed
simply redisplays the dialog and is very fast.
Destroy GUI actually frees the memory associated with
the dialog and the next Display needs to build the entire
dialog again.
Adding Items
You may add items to a GUI page via iccap_func on either
the GUI Items page, or another GUI item. Two additional
parameters are required to name the item and to declare the
item’s type. The type specification must be a code that
uniquely declares the Item type. Select the Show Codes button
on the Properties dialog of a GUI Item to see the codes for
all Item types.
iccap_func("./GUIItems","Add GUI","ANewTable","TL")
iccap_func("./ANewTable","Add GUI","Button","PB")
Setting Options
You may change options on any Item on a GUI Page from
PEL by using the Set GUI Options action on a GUI Item. You
may enter as many additional arguments as desired. The last
argument must be "" (a null string) to signify completion.
Each argument is of the form <code>=<val>. Code is the
Setting Callbacks
You may set a callback on a GUI item by using the action
Set GUI Callback. This action requires three other
arguments. The first is the code for the callback. The second
and third extra argument are the two parameters to the
callbacks associated iccap_func().
Example:
iccap_func("./someItem","Set GUI Callback","AC","aMacro",
"Execute)
Click here to
show dropdown
list of GUI Items
Select Caption from the Options list and a new dialog box
appears on the right.
Add the caption name Slider in the Enter Text Value box
and click OK in the box.
Select Orientation and pick Horizontal from the dropdown list,
then OK.
Click OK at the bottom of the Widget Properties box.
The text in the main window will now look like this:
Select Display...
An empty table captioned Slider appears.
Node symbol
When the slider is moved, the numerical value displayed changes. Also,
NO TE when the number is edited, the slider position moves in response, acting
as an output device.
layout.ClientArea.FrameAndCaption.Plain.Table3
layout.ClientArea.FrameAndCaption.Framed.Table2
layout.ClientArea.FrameAndCaption.Captioned.Table1
6-Button Table
Orientation
Vertical
Orientation
Horizontal
1 Column
(default) 1 Row (default)
Orientation Orientation
Vertical Horizontal
2 Columns 3 Rows
Orientation Orientation
Horizontal
Vertical
2 Rows 3 Columns
Enclose
The hierarchy of tables nested within tables controls the
relative placements of all the widgets in a GUI. If we need to
add more widgets in new places not permitted by the
current hierarchy of place holders then we need to insert a
new level into the overall hierarchy. This is what the Enclose
command does.
For example we have a vertical table called buttonTable
which contains three Push Buttons in a vertical column.
Select this
and click Enclose
You will see that a new table with the default name
Newtable has been inserted into the hierarchy as a new
level, and that buttonTable is nested in it. (At this point the
displays of Newtable and buttonTable are identical.)
Click on the Model Variables tab to see the contents of the wizPage array.
NO TE
The tab captions are the Captions of the Page, and the text
on each page is a Label. Random access comes automatically
with the Tabbed Folder.
Counter (Example)
Load the model counterParts.mdl from the Model window.
This is how the tree looks:
Try to make it work and you get error messages because the
buttons are not linked to anything. It won’t even display a
value. We will now fix that.
We need to create a variable:
1 Click on the Model Variables tab. The page will show an
empty table.
2 In the Name field type n and in the Value field type 0,
the initial value.
Window title
where:
./RandomAccess refers to the top level name of a GUI
item (see next figure).
Display Modal GUI is the action.
Tabbed Folder is the caption (title) to appear on the Unix
window.
To operate SliderVersion2:
1 Select SliderVersion2 and click on Display.
2 Drag the slider button back and forth between its limits.
3 Notice how jerkily it moves. Actually, it moves 2 inches in
10 steps of 0.2 inches.
The values of slidePosn can only be changed in
increments of 1 (a coarse resolution of 10%).
SliderVersion3 has the slider Minimum and Maximum values
set to 5 and 6 respectively.
To operate SliderVersion3:
1 Select SliderVersion3 and click on Display.
2 Drag the slider button back and forth between its limits.
Notice how it jumps back and forth between 5 and 6.
Actually, it moves 2 inches in a single step without being
able to stop in between.
The values of slidePosn can only be changed by an
increment of 1 (a coarse resolution of 100%).
SliderVersion4 has the slider Minimum and Maximum reset
to the default values of 0 and 100.
To operate SliderVersion4:
1 Select SliderVersion4 and click on Display.
2 Drag the slider button back and forth between its limits.
Notice how smoothly it moves again (back to the previous
2 inches in 100 steps of 0.02 inches).
3 The value of the new variable displayVal displayed in the
Edit box is now calculated from the value of slidePosn by
PEL code in a macro called sliderMoved. Click on the
Macros tab to see the calculation:
displayVal=5.0+slidePosn/100
Look at the Properties dialog for the slider Callbacks. We are
using the Slider Moving callback to call the Macro
sliderMoved. Click on the Slider Moving callback. In the right
hand callback editing dialog sliderMoved is shown as the
“Item to act on”, and Execute as the “action” to take.
13
Managing Data
Data Manager 554
Exporting Data 558
Importing Data 567
Examples 571
MDM File Structure 575
This chapter describes the Data Manager (MDM) and its system
variables and file structure. It also provides procedures for:
• Importing and Exporting data to an MDM file
• Exporting data to an MDIF (Model Data Interchange Format)
file
• Exporting data to a dataset file (.ds)
Data Manager
The Data Manager (MDM) de-couples the measured or
simulated data from the Model file. With this capability, you can
save all the data for a collection of device geometries,
temperatures, etc. into a single data management file (one file
per setup). Subsets of this file (as required by specific
extractions) can be imported into a given setup. With the Data
Manager, you can import data measured from a non-IC-CAP
environment into IC-CAP. You can use this data in a database
(commercially available or internal), where you can use an
external database program to manage huge amounts of data
and then translate the data in the database into the MDM
format for subsequent input into IC-CAP. Similarly, you can use
the external database to control the exported MDM file.
Using the Data Manager, you can:
• Export measured or simulated data along with
non-simulatable attributes (such as, length, width,
temperature, etc.)
• Export transforms
• Import data from the MDM file as a whole
• Import data from parts of the MDM file
• Import data with sweep-orders that are different from what
was measured, exported or stored in the data file
Managing your measured data consists of two major steps:
• Exporting the measured or simulated data in a setup to an
MDM file
• Importing the data back into a pre-defined setup
Examples:
MDM_XFORM_LIST = calc_ic I C E, calc_ib I B E SMU2
MDM_XFORM_LIST = Hcalc H, beta
Exporting Data
You can export various types of IC-CAP data for various uses.
• You can export your current model parameters to an MDIF
(Model Data Interchange Format) file for use in the Advanced
Design System (ADS) schematics.
• You can merge your current model parameters with your
circuit definition and export to a file for use in an external
simulator.
• You can export all the numeric data in your model file to a
dataset file for use in ADS.
• You can export your measurement, simulation, and
transformation data to an IC-CAP MDM file. This data (or
subsets of this data) can then be read back into IC-CAP.
Attribute-Independent Measurements
To export attribute-independent measurements to an MDM
file:
1 Select the DUT and setup.
2 Choose File > Export Data > Active Setup or click Export Data on
the Measure/Simulate folder.
The Data Management - Export Data dialog box appears.
The file path and file name are specified by the IC-CAP system variables
NO TE MDM_FILE_PATH and MDM_FILE_NAME. When exporting, the program
automatically sets these variables in the Setup Variables Table. Similarly,
exporting transforms is controlled by MDM_EXPORT_XFORM_DATA.
Attribute-Dependent Measurements
You can only export non-measurable/simulatable parameters
(such as, length, width, or temperature) by using a PEL
macro. Before exporting any data, you must register these
parameters to the MDM file using one of the three PEL
functions:
• icdb_register_con_sweep
• icdb_register_lin_sweep
• icdb_register_list_sweep
• icbd_register_lsync_sweep
Some important points to be noted while exporting or
importing data:
• The setup used for importing must have all the input
sweeps defined in the MDM file.
• You can import one or more output data.
• You can import all the data in an MDM file, or part of the
data, by defining the input sweeps in the setup
accordingly.
PEL Functions
The PEL functions used for exporting the data are:
icdb_register_con_sweep/icdbf_register_con_sweep Creates a
CON type sweep of an arbitrary parameter in the exported file.
Intended primarily to create sweeps of parameters that cannot
be swept during a measurement. Returns the total number of
points in all the registered sweeps. For details, see
“icdb_register_con_sweep" and “icdbf_register_con_sweep" in
the Reference manual.
icdb_register_lin_sweep/icdbf_register_lin_sweep Creates a
LIN type sweep of an arbitrary parameter in the exported file.
Intended primarily to create sweeps of parameters that cannot
be swept during a measurement. Returns the total number of
points in all the registered sweeps. For details, see
“icdb_register_lin_sweep" and “icdbf_register_lin_sweep" in the
Reference manual.
icdb_register_list_sweep/icdbf_register_list_sweep Creates a
LIST type sweep of an arbitrary parameter in the exported file.
Intended primarily to create sweeps of parameters that cannot
be swept during a measurement. Returns the total number of
icdb_register_lsync_sweep/icdbf_register_lsync_sweep Creates
a LSYNC type sweep of an arbitrary parameter in the exported
file. Intended primarily to create sweeps of parameters that
cannot be swept during a measurement. Returns the total
number of points in all the registered sweeps. For details, see
icdb_register_lsync_sweep and icdbf_register_lsync_sweep in
the Reference manual.
Importing Data
You can import data (.mdm files) to the active setup, to all
setups in an active DUT, or to all DUTs in a model.
Dataset files (.ds) can NOT be imported into a model file. Dataset files can
NO TE be exported from a Model window and displayed in the ADS Data Display
window.
ICCAP_FUNC can be used to import data from MDM files into all setups in
NO TE a DUT, and into all DUTs in a model as shown in these examples:
iccap_func(<model/DUT>,“Import Data”) All Setups in Active
DUT
iccap_func(<model>,“Import Data”) All DUTs in Model
The dialog box that appears has three columns and a Fill
Data Type selection area. The first column shows the DUT
name, the 2nd column the setup names and the 3rd column
the MDM file to be imported. By default, the file represented
by the variables MDM_FILE_PATH and MDM_FILE_NAME
are shown in the 3rd column.
3 Enter the name of the file directly into the field
corresponding to the setup, by typing in or by using the File
Browser.
Click buttons to view data in file or create input sweeps and outputs automatically
You can delete the inputs and outputs from a setup by using ICCAP_FUNC
NO TE with Import Delete as the second argument, as in this example
ICCAP_FUNC(<setup>, “Import Delete”)
Examples
The data management example is located in the product
directory:
${ICCAP_ROOT}/examples/demo_features/3_MEAS_ORGANIZE_n_
VERIFY_DATA/2_mdm_basics/2_xforms_2_db.mdl
! Here is a simple data export example which illustrates the use of the icdb_xxx
! commands. Although simulated data is exported in this example, it is easy
! to see how a simple replacement of the "Simulate" command inside the main
! export loop with a "Measure" would yield a data file with temperature dep-
! endent Gummel-Poon measurement data.
file_exists=SYSTEM("ls "&VAL$(filename))
IF file_exists==0 THEN LINPUT "--WARNING--
overwriting existing file '"&VAL$(filename)&"'","ok",dummy
! This command opens the file that the data will be stored in.
! The function icdb_open returns nothing.
dummy=icdb_open(VAL$(filename))
! The next data base function tells IC-CAP to define a linear sweep over
! temperature. The function arguments are: sweep order, sweep start,
! sweep stop, number of points and sweep name. The function returns the
! cumulative number of points in all the registered user sweeps. The value
! "num_pts" is useful for setting up the export loop.
! The next data base function tells IC-CAP to define a list sweep over
! temperature. The function arguments are: sweep order, sweep name,
! and IC-CAP variable array name. The function returns the cumulative
! number of points in all the registered user sweeps. The value "num_pts"
! is useful for setting up the export loop.
! Here is the "export" loop. The number of loop iterations should be consistent
! with the dimension of the user sweep space. For example, if a LIST sweep with
! 10 points is defined and a LIN sweep with 5 points is defined, then 5*10 = 50
! iterations of the export loop must be completed. The export functions will
! error out if too many iterations are attempted. However, if too few iter-
! ations are performed, the problem will go undetected until an import is tried.
! Use the return value of the icdb_register_xxx_sweep to set the maximum number
! of iterations. This should minimize the possibility of any errors.
count=0
while count < num_pts
! Now that we've updated the temperature for the simulator, we can
! re-simulate to compute a new set of data.
ICCAP_FUNC(path, "Simulate")
! This call exports the simulated data ("S") in the current setup out
! to the file. Measured data can be exported by specifying "M" for the
! second argument. The first call to icdb_export_data writes the header
! information as well as the setup data. The function icdb_export_data
! returns nothing. To reference a setup other than the one under which
! a transform is executing, the full path should be passed in as the
! first arguement of icdb_export_data.
count=count+1
end while
! This function closes the file opened with icdb_open. Note, that only one
! file can be opened at a time. The first opened file must be closed before
! a second one is opened. The function icdb_close returns nothing.
dummy=icdb_close()
! The following code guarantees that the output of this transform will not be
! exported to the mdm file if MDM_EXPORT_XFORM_DATA is set to TRUE.
COMPLEX tmp[1]
RETURN tmp
BEGIN_HEADER
USER_INPUTS
<user_input_name_1> <sweep_type> [<sweep_type_options_list>]
.
.
<user_input_name_n> <sweep_type> [<sweep_type_options_list>]
ICCAP_INPUTS
<input_name_1> <mode> [<mode_options_list>] <sweep_type> [<sweep_type_options_list>]
.
.
<input_name_m> <mode> [<mode_options_list>] <sweep_type> [<sweep_type_options_list>]
ICCAP_OUTPUTS
<output_name_1> <mode> [<mode_options_list>] <unit> <compliance> <type>
.
.
<output_name_p> <mode> [<mode_options_list>] <unit> <compliance> <type>
ICCAP_VALUES
<value_name_1> <value_1>
.
.
<value_name_q> <value_q>
END_HEADER
where,
<input_name> is a unique but arbitrary name for a user
sweep or an IC-CAP sweep
<mode> is set to one of the following values: V, I, F, T, P, U, W
(inputs) or V, I, C, G, T, S, H, Z, Y, K, A (outputs)
<mode_options_list> is a list of fields that depend on the
<mode>. The following shows the fields for each <mode>:
Table 55 <mode_options_list>
<mode> Fields
Inputs
P <Param Name><Unit>
F, T (no options)
<mode> Fields
Outputs
T <Node><Pulse Param>
Table 56 <sweep_options_list>
<sweep_type> Fields
CON <value>
AC <magnitude> <phase>
<sweep_type> Fields
PWL <number of pairs> <time 1> <value 1> ... <time 7> <value
7> <start time> <repeat times>
For matrix data (such as, multiport data), the data format for a
single output is structured as follows:
<in_name> R:<out_name>(1,1) I:<out_name>(1,1) …
R:<out_name>(n,m) I:<out_name>(n,m)
input1 real(output 1,1)1 imag(output 1,1)
1 … real(output n,m) 1 imag(output n,m) 1
.
.
.
inputk real(output 1,1) k imag(output 1,1)
k … real(output n,m) k imag(output n,m) k
Each group begins with the keyword BEGIN_DB and ends with
the END_DB keyword. Note that the IC-CAP inputs always vary
faster than the user inputs. The file structure of each group is as
follows:
BEGIN_DB
<user_input_1> <user_value_1> … <user_input_n>
<user_value_n> <iccap_input_2> <iccap_value_2> …
<iccap_input_m> <iccap_value_m>
[tabular data goes here]
END_DB
File Examples
This section contains three example .mdm files that were
generated with IC-CAP's export functions.
! VERSION = 6.00
BEGIN_HEADER
ICCAP_INPUTS
vb V B GROUND SMU1 0.01 LIN 1 0.33 0.83 51 0.01
ve V E GROUND GND 0.1 CON 0
vc V C GROUND SMU2 0.2 SYNC 1 0 vb
ICCAP_OUTPUTS
ib I B GROUND SMU1 B
ic I C GROUND SMU2 B
END_HEADER
BEGIN_DB
ICCAP_VAR ve 0
#vb vc ib ic
0.33 0.33 4.87574e-011 4.67239e-010
0.34 0.34 5.77546e-011 6.85381e-010
0.35 0.35 6.86361e-011 1.00538e-009
0.36 0.36 8.18976e-011 1.47476e-009
0.37 0.37 9.82047e-011 2.16325e-009
0.38 0.38 1.18461e-010 3.17307e-009
0.39 0.39 1.4391e-010 4.65412e-009
0.4 0.4 1.76281e-010 6.82619e-009
0.41 0.41 2.18003e-010 1.00115e-008
0.42 0.42 2.72518e-010 1.46826e-008
0.43 0.43 3.44737e-010 2.15321e-008
0.44 0.44 4.41716e-010 3.15754e-008
0.45 0.45 5.73646e-010 4.63009e-008
0.46 0.46 7.55304e-010 6.78903e-008
0.47 0.47 1.0082e-009 9.95413e-008
0.48 0.48 1.36373e-009 1.45941e-007
0.49 0.49 1.86784e-009 2.13956e-007
0.5 0.5 2.58788e-009 3.13654e-007
0.51 0.51 3.62273e-009 4.59782e-007
0.52 0.52 5.11772e-009 6.7395e-007
0.53 0.53 7.28674e-009 9.87821e-007
0.54 0.54 1.04447e-008 1.44778e-006
0.55 0.55 1.50555e-008 2.12177e-006
0.56 0.56 2.18032e-008 3.10934e-006
0.57 0.57 3.16961e-008 4.55624e-006
0.58 0.58 4.62218e-008 6.67595e-006
0.59 0.59 6.75746e-008 9.78105e-006
0.6 0.6 9.89915e-008 1.43291e-005
0.61 0.61 1.45248e-007 2.09898e-005
0.62 0.62 2.1339e-007 3.07431e-005
0.63 0.63 3.13803e-007 4.50218e-005
0.64 0.64 4.61803e-007 6.59204e-005
0.65 0.65 6.79941e-007 9.64972e-005
0.66 0.66 1.0014e-006 0.000141213
0.67 0.67 1.47494e-006 0.000206561
0.68 0.68 2.17197e-006 0.000301974
0.69 0.69 3.19683e-006 0.000441095
0.7 0.7 4.70103e-006 0.000643565
0.71 0.71 6.9031e-006 0.00093743
0.72 0.72 1.01148e-005 0.00136231
0.73 0.73 1.47739e-005 0.00197331
0.74 0.74 2.14824e-005 0.00284535
! VERSION = 6.00
BEGIN_HEADER
ICCAP_INPUTS
vb V B GROUND SMU1 0.01 LIN 1 0.3 0.8 51 0.01
ve V E GROUND GND 0.1 CON 0
vc V C GROUND SMU2 0.2 SYNC 1 0 vb
ICCAP_OUTPUTS
ib I B GROUND SMU1 B
ic I C GROUND SMU2 B
beta U
END_HEADER
BEGIN_DB
ICCAP_VAR ve 0
vb vc ib ic R:beta(1,1) I:beta(1,1)
0.3 0.3 2.97359e-011 1.48082e-010 4.9799 0
0.31 0.31 3.50033e-011 2.17173e-010 6.20438 0
0.32 0.32 4.12693e-011 3.18536e-010 7.71848 0
0.33 0.33 4.87574e-011 4.67239e-010 9.58294 0
0.34 0.34 5.77546e-011 6.85381e-010 11.8671 0
0.35 0.35 6.8636e-011 1.00538e-009 14.648 0
.
.
.
0.73 0.73 1.47739e-005 0.00197331 133.567 0
0.74 0.74 2.14824e-005 0.00284535 132.45 0
0.75 0.75 3.10425e-005 0.00407717 131.342 0
0.76 0.76 4.44792e-005 0.00579344 130.25 0
0.77 0.77 6.30296e-005 0.0081425 129.185 0
0.78 0.78 8.80775e-005 0.0112877 128.156 0
0.79 0.79 0.000121025 0.015391 127.172 0
0.8 0.8 0.000163119 0.0205921 126.24 0
END_DB
BEGIN_HEADER
ICCAP_INPUTS
freq F LIN 1 1e+09 2e+10 20
vd V D 0 CON 2
vg V G 0 CON 0
vs V S 0 CON 0
ICCAP_OUTPUTS
s S G D 0
END_HEADER
BEGIN_DB
ICCAP_VAR vd 2
ICCAP_VAR vg 0
ICCAP_VAR vs 0
A
Menu Descriptions
Main Window 586
Hardware Setup Window 589
Model Window 593
Plot Window 597
Multiplot Window 601
Plot Optimizer Window 606
Simulation Debugger Window 608
Main Window
File Menu
New Creates a blank, untitled model file and displays a symbol for it
in the work area of the Main window. Highlight the text below
the symbol and type the desired name for the new model.
Double-click to open the Model window.
Open Enables you to open an existing model file.
Examples Enables you to quickly open a model file in the examples
directory
Edit Opens the selected Model window (select the model symbol,
then the command).
Auto Execute Runs the AutoExecute macro in the selected model if it is
declared or opens the selected Model window if AutoExecute
in not declared.
Save As Enables you to save one or more of the models currently in
memory.
Change Directory Enables you to change the directory to which data will be
saved during the current session.
<File Names> Contains list of most recently loaded files.
Exit Exits IC-CAP. The Save As dialog box appears enabling you to
save any models currently in memory before exiting.
Edit Menu
Tools Menu
System Variables Displays the System Variables window for setting values
for global (system) variables. You can create user-defined
variables by typing names and values here. You can also
type names and values of supplied variables here, or click
the System Variables button and use the dialog box to
select variables, view descriptions, and set values. Note
that the names of supplied variables are reserved and
cannot be used for variables you create.
The Print button enables you to save the currently
displayed variables table to file. You are prompted for a
filename. The file is saved to the current work directory
with a default .asc extension.
File
• Open—Enables you to open a previously saved
Variables Table file (.vat). Change directories as needed,
select the desired file, and click OK.
• Save As—Enables you to save a variables table to file.
Change directories as needed, type the desired name in
the Selection field, and click OK.
• Close—Closes the variables window.
Edit
• Undo—Undoes the previous copy or paste
• Copy—Copies the currently defined global variables
enabling you to paste them in the Model window at the
Model, DUT, or Setup level.
• Paste—Enables you to paste variables copied at the
Model, DUT, or Setup level to the global level.
System GUI Items Displays the System GUI Items window. For details, see
Chapter 12, “Creating Graphic User Interfaces.”
Simulation Debugger Displays the Simulation Debugger Window.
Windows Menu
The Windows menu provides a quick method of bringing a
different window to the foreground. All currently open
windows, including those that are minimized, are listed on
the menu. Individual models are listed on the Model window
submenu. Choose the desired window and it is displayed in
front of all other IC-CAP windows.
File Menu
The File menu allows you to perform basic file management
commands as well as exit the Hardware Setup window.
Tools Menu
This set of commands provides basic GPIB capabilities to
communicate with the instruments on the bus. These may be
useful for debugging an instrument driver or manually
setting an instrument to a certain state that is not
supported by IC-CAP. The Status panel displays continuously
updated information about GPIB activity.
The Tools menu offers the following choices:
Interface
Address
Send/Receive
Settings
Macros
Serial Poll
Interface
Address
Send/Receive
Send String Prompts for a string that will be sent to the instrument at
the active address. Carriage return and line feed
characters can be included using "\r" and "\n",
respectively.
Receive String Sets CPU to Listen status and the active address to talk
status, and collects data from the active address until an
EOI is received. Usually used with Send String. The result
is also placed in the HPIB_READ_STRING system variable
if you have defined it.
Receive PEL String Same as Receive String, but skips the Talk/Listen setup
which should be done using the Send Byte command. The
result is also placed in the HPIB_READ_STRING system
variable if you have defined it.
Display String Displays data most recently read by the CPU via a Read
String operation.
Send/Read/Display Lets you send a command to the instrument at the active
address and receive a response from the instrument. The
response is displayed in the Status panel. The result is
also placed in the HPIB_READ_STRING system variable if
you have defined it.
Send Byte Sends one command byte specified as a decimal integer.
For example, use 63 to send UNLISTEN.
Settings
Macros
Specify Prompts you for the name of an GPIB Analyzer macro file.
Execute Executes commands contained in the GPIB Analyzer macro
file. For the syntax of commands, refer to Chapter 12, “GPIB
Analyzer,” in the Reference manual.
Serial Poll
Polls the active address and displays the status byte in
decimal form.
Instrument Menu
The Instruments menu offers a variety of instrument operations
to assist you in making measurements.
View Menu
The View menu allows you to toggle on and off the screen
debugger and the toolbar.
Screen Debug Enables you to toggle on and off the low-level debugging
facility that produces detailed debug messages on each GPIB
transaction.
Toolbar Enables you to toggle the toolbar on and off.
Windows Menu
The Windows menu provides a quick method of bringing a
different window to the foreground. All currently open
windows, including those that are minimized, are listed on
the menu. Individual models are listed on the Model window
submenu. Choose the desired window and it is displayed in
front of all other IC-CAP windows.
Model Window
File Menu
Related Topics:
Overview
Edit Menu
Measure Menu
Extract Menu
Active Setup Performs all extraction transforms for the active setup.
Active DUT Performs all extraction transforms for all setups in the active
DUT.
Simulate Menu
Optimize Menu
Active Setup Performs all optimization transforms for the active setup
Active DUT Performs all optimization transforms for all setups in the
active DUT
Data Menu
Plots
Display All
In Active Setup Displays all currently defined plots for the active setup.
In Active DUT Displays all currently defined plots for the active DUT.
in Model Displays all currently defined plots for the current model.
Close All
In Active Setup Closes all displayed plots for the active setup.
In Active DUT Closes all displayed plots for the active DUT.
in Model Closes all displayed plots for the current model.
Clear Data
Measured Clears all measured data In Active Setup, In Active DUT, or In
Model.
Simulated Clears all simulated data In Active Setup, In Active DUT, or In
Model.
Both Clears both measured and simulated data In Active Setup, In
Active DUT, or In Model.
Tools Menu
Macros Menu
Windows Menu
The Windows menu provides a quick method of bringing a
different window to the foreground. All currently open
windows, including those that are minimized, are listed on the
menu. Individual models are listed on the Model window
submenu. Choose the desired window and it is displayed in
front of all other IC-CAP windows.
Plot Window
File Menu
Print Opens the Print dialog box which enables you to print
to the specified printer, a file, or copy to the Windows
clipboard.
Save Image... Enables you to save the current plot configuration to a
file of your choosing.
Printer Setup... Opens the Print Setup dialog box (see Chapter 10,
“Printing and Plotting”).
Close Closes the Plot window.
Options Menu
Optimizer Menu
Windows Menu
The Windows menu provides a quick method of bringing a
different window to the foreground. All currently open
windows, including those that are minimized, are listed on the
Multiplot Window
File Menu
Print Opens the Print dialog box which enables you to print
to the specified printer, a file, or copy to the Windows
clipboard.
Save Image... Enables you to save the current plot configuration to a
file of your choosing.
Printer Setup... Opens the Print Setup dialog box (see Chapter 10,
“Printing and Plotting”).
Close Closes the Plot window.
Options Menu
Optimizer Menu
Plots Menu
Windows Menu
The Windows menu provides a quick method of bringing a
different window to the foreground. All currently open
windows, including those that are minimized, are listed on the
menu. Individual models are listed on the Model window
submenu. Choose the desired window and it is displayed in
front of all other IC-CAP windows.
File Menu
Plots Menu
Simulate
Optimize
Tune Slow... Opens a tuner window which enables you to adjust the
parameter values. Recalculates only when a slider is
released. You can see the effects in a plot as you vary
parameter values using the tuner. While the tuner
window is open, you can change the Min and Max
values. It’s best to use Tune Slow when the time per
calculation is slow (about one second or more).
Tools
Store Parameters Stores values in the Parameters table for later recall.
Recall Parameters Recalls the values stored in the Parameters table.
Undo Optim After running an optimization, restores the parameters
to their previous state.
AutoSet Min and Max Automatically sets the parameter values.
Reset Min and Max Restores the parameter values to their default values.
Windows
The Windows menu provides a quick method of bringing a
different window to the foreground. All currently open
windows, including those that are minimized, are listed on the
menu. Individual models are listed on the Model window
submenu. Choose the desired window and it is displayed in
front of all other IC-CAP windows.
File Menu
Manual Simulation Executes a simulation using the circuit deck in the Input field
of the debugger. The Debugger Input field is not linked to the
Model Circuit Definition editor or Input and Output setups, so
edits made in the field have no effect on IC-CAP and are
irrelevant to a simulation run from a DUT or Setup. To make
changes permanent, make them in the Model Circuit
Definition editor.
Save Input File Provides a dialog box for specifying a filename for saving the
contents of the Input editor to a file.
Save Command File Provides a dialog box for specifying a filename for saving the
contents of the Command editor to a file.
Save Output File Provides a dialog box for specifying a filename for saving the
contents of the Output editor to a file.
Close Closes the Simulation Debugger window.
Windows Menu
The Windows menu provides a quick method of bringing a
different window to the foreground. All currently open
windows, including those that are minimized, are listed on the
menu. Individual models are listed on the Model window
submenu. Choose the desired window and it is displayed in
front of all other IC-CAP windows.
B
File and Data Management
Opening Files 612
Opening Parts of a Model File 613
Saving Files 614
Saving a Model File 615
Saving Parts of a Model File 615
Changing Default Directory 617
Importing Data into a Single Setup 618
Importing Data into All Setups in an Active DUT or All DUTs in the
Model 619
Opening Files
To open a file:
1 Choose File > Open and a dialog box appears. By default, the
path in the Filter field is set to the directory from which you
started the program and the filter is set to *.ext where ext is
an extension specific to the task you are performing. (For
example, *.mdl for model files, *.hdw for hardware
configuration files, etc.). All files in the current directory
with that extension are displayed.
2 Adjust the path as needed. You can type in the Filter field
and then click the Filter button or use the mouse to navigate
the list of Directories.
The path for IC-CAP model files cannot contain any folder names that use
NO TE a space. For example, C:\Model Files\IC-CAP 2004. If a model file is
saved in a folder name with spaces, you will not be able to open the model
file. You will have to move the model file to a folder name that does not use
a space.
If loading a model file, once it is loaded, a symbol with the model name is
NO TE displayed in the work area. Double-click the symbol to open the Model
window.
The path for IC-CAP model files cannot contain any folder names that use
NO TE a space. For example, C:\Model Files\IC-CAP 2004. If a model file is
saved in a folder name with spaces, you will not be able to load the model
file. You will have to move the model file to a folder name that does not use
a space.
Saving Files
To specify a directory and a filename:
1 Choose File > Save As and a dialog box appears.
2 Double-click in the Directories list box to locate the desired
directory.
3 To save to an existing file, select that filename from the Files
list box and click OK. To save to another name, type that
name in the Selection field and click OK.
4 Where applicable, click OK to dismiss the previous dialog box.
The path for IC-CAP model files cannot contain any folder names that use
NO TE a space. For example, do not save to C:\Model Files\IC-CAP 2004. If you
include a space in a folder name, you will not be able to load the model file.
You will have to move the model file to a folder name that does not use a
space.
You can also save a model file from the Model Window if you want to save
NO TE all components to one file.
The path for IC-CAP model files cannot contain any folder names that use
NO TE a space. For example, do not save to C:\Model Files\IC-CAP 2004. If you
include a space in a folder name, you will not be able to load the model file.
You will have to move the model file to a folder name that does not use a
space.
Importing Data into All Setups in an Active DUT or All DUTs in the Model
1 Select the DUT.
2 Select File > Import Data and choose one of the following:
All Setups in Active DUT
All DUTs in Model
The dialog box that appears has three columns (DUT, Setup,
Data Filename) and a Fill Data Type selection area.
3 Specify a filename for each setup. You can type the path and
filename directly in the Filename field, or use the Browser to
select it.
4 Click Apply each time you specify a filename for a setup.
5 Select a fill data type.
• Measured if available, otherwise Simulated: Outputs of type M or
B receive mdm data in their measured array. Outputs of type
S receive mdm data in their simulated array.
• Measured only: Outputs of type M or B receive data in their
measured array. Outputs of type S do not receive any data.
• Simulated if available, otherwise Measured: Outputs of type S or
B receive mdm data in their simulated array. Outputs of type
M receive mdm data in their measured array.
• Simulated only: Outputs of type S or B receive mdm data in
their simulated array. Outputs of type M do not receive any
data.
6 Click OK.
Tips • To view the header of an MDM data file, select the Setup cell
in the dialog box, enter the corresponding MDM filename,
then click View.
• To create the inputs and outputs for a new setup from the
header of an MDM file, first create a new setup, select the
setup name in the dialog box, enter the corresponding MDM
filename, and click Create.
See Also • Importing Data into a Single Setup
• Chapter 13, “Managing Data”
C
DUT/Setup Editing
Adding a DUT or a Setup 622
Deleting a DUT or a Setup 623
Copying/Pasting a DUT or Setup 624
Renaming a DUT or Setup 625
Organizing DUTs and Setups 626
Defining a Test Circuit for a DUT 629
Defining DUT Parameters 630
Setup Editing 631
Input/Output Editing 632
Variables 633
Defining Instrument Options 637
You can also display this dialog box by selecting a DUT in the model file,
NO TE then clicking the Organize button at the bottom of the DUT/Setup panel.
You can also display this dialog box by selecting a Setup in the model file,
NO TE then clicking the Organize button at the bottom of the DUT/Setup panel.
To apply you changes and leave the dialog box open, select the
Apply button.
To apply your changes and close the dialog box, select the OK
button.
To close the dialog box without making changes, click the Cancel
button.
Setup Editing
Setups contain information for performing specific
measurements and simulations on a DUT. The individual
components of a Setup are:
• Inputs
• Outputs
• Extraction/Optimization Specifications (Transforms)
• Plots
• Variables
• Instrument Options
See also: Assigning Values to Setup Variables and Organizing
DUTs and Setups
Input/Output Editing
The inputs and outputs of a Setup define the various currents,
voltages, etc. you want to monitor with respect to the associated
DUT.
To add a new input or output:
1 Click New Input or New Output.
2 Fill in all fields as necessary and click OK.
To delete an input or output:
1 Select the input or output.
2 Choose Edit > Cut, select the input/output option in the dialog
box, and click OK.
To edit an input or output:
1 Double-click the input or output or select it and click the Edit
button in the Measure/Simulate folder or use the on-screen
editor.
2 Make all the necessary changes in the dialog box and click OK.
Alternatively, you can edit an input or output directly using
the on-screen editor.
See also: Organizing DUTs and Setups
Variables
Several variable names are reserved by IC-CAP and cannot be
assigned as user-defined variables. You can assign values to
reserved variables and define your own variables at several
different levels (variables at lower levels inherit their values
from variables above them):
• Global * DUT level
• Model level * Setup level
You define global variables through the IC-CAP Main window.
These variables apply to all Models, DUTs, and Setups unless
you explicitly set the variables differently at the Model, DUT, or
Setup level.
You define Model, DUT, and Setup variables through the Model
window:
• Model variables apply to all DUTs and Setups of that Model
unless you explicitly set the variables differently for
individual DUTs and/or Setups.
• DUT variables apply to all Setups of that DUT unless you
explicitly set the variables differently for individual Setups.
• Setup variables apply only to that Setup.
Assigning Values
D
Macros
Creating and Running Macros 640
Saving Macros 641
Saving Macros
Macros are saved when you save the model file. They are saved
to the current work directory. You can explicitly save a macro at
any time and specify another directory.
To save macros:
1 With any of the macros in the Macros folder selected, choose
File > Save As.
2 Select the Macro option.
3 Select the macro name from the drop-down list.
4 If desired, change the path using the Browser.
5 If desired, supply a different filename in the File Name field.
6 Click OK.
E
Transforms
Creating and Running a Transform 644
Creating a Function 645
Selecting an Existing Function 646
Saving Transforms 647
Creating a Function
To create a new function:
1 Click the Extract/Optimize tab.
2 Select the transform for which you want to create a function.
3 Type Program2 or Program in the Function field and press
Enter. The window changes to display a scrollable text field.
4 Type the desired text.
When you create a function within the user interface, you use a
NO TE BASIC-like language referred to as Parameter Extraction
Language (PEL). You can also create functions outside IC-CAP
using C language.
Saving Transforms
By default, transforms are saved when you save the model file.
But you can explicitly save a transform at any time and specify
another directory, if desired.
To save transforms:
1 With any of the transforms in the Extract/Optimize folder
selected, choose File > Save As.
2 Select the Transform option.
3 Select the transform name from the drop-down list.
4 If desired, change the path using the Browser.
5 If desired, supply a different filename in the File Name field.
6 Click OK.
Related Topics:
Chapter 9, “Using Transforms and Functions”
Chapter 11, “Creating and Running Macros”
Chapter 9, “Parameter Extraction Language,” in the Reference
manual
F
Miscellaneous
Clearing Data from Memory 650
Tuning Parameters 650
Saving to File 650
Cut and Copy Selections 651
Adding an Interface Name 651
Deleting an Interface Name 651
Deleting an Instrument from the Instrument List 652
Deleting All Instruments from the List 653
Configuring an Instrument 653
Tuning Parameters
By including the TUNER statement in a PEL macro, you can
tune parameters during macro execution. To tune parameters
once the dialog box appears:
a Position the pointer over the slider associated with the
parameter you want to tune.
b Press the left mouse button and drag the slider in the
desired direction. Notice the plot is dynamically updated
as you change values.
c To close the dialog box and return control to the macro,
click OK; to abort the macro, click Cancel.
Saving to File
Several parts of the program enable you to save a variety of
things to file. For example, you can click the Print button in the
Model Variables folder, enter a filename and click OK, and an
ASCII file (.asc) containing parameter names and values is
written to your startup directory.
Another example is plotting to file. In this case, the contents of
the file vary depending on the source, which may be graphics or
text.
Related Topic:
• Chapter 10, “Printing and Plotting”
To save instrument options before deleting instruments from the list, with
NO TE the Instrument Options folder active, choose File > Save As. Select
Instrument Options (.iot), set the path and filename as desired, and click
OK.
To save instrument options before deleting instruments from the list, with
NO TE the Instrument Options folder active, choose File > Save As. Select
Instrument Options (.iot), set the path and filename as desired, and click
OK.
Configuring an Instrument
To define the GPIB bus address of an instrument in the
Instrument List, as well as assign unit names, select that
instrument and click Configure.
Interface
Reflects the names of any interface files added in the
Hardware Setup window. Select one to change its address
and assign units.
Instrument Address
Enables you to set the address of an instrument on the GPIB.
Unit Table
Contains default unit names for an instrument. Edit these
names as needed.
After assigning unit names here, specify those same names for the inputs
NO TE and outputs (in the Measure/Simulate folder) as needed.
instruments M measurement
active, listing, 173 aborting, 198
configuring, 653 macros defined, 28
creating list of active, 652 adding, 150 DUT, 103
deleting all, 653 autostart, 461 example, 189
deleting one, 652 computations, 463 invoking, 95
initialization, forcing, 205 controlling IC-CAP, 457 multiple instruments, using, 181
input/output types, 193 creating and running, 453 options, specifying, 137
library, viewing, 171 defined, 29 performing, 165, 186, 192
multiple, using, 181, 194 deleting, 461 speeding up, 200
options described, 455 menu functions, 456
editing, 93 dialog boxes, 459 menus
saving, 183 example, 465 basics, 35
values, setting, 162 functions pop-up, 85
physically connecting, 166 built-in, 455 methodology, extraction, 325
sweep modes, 193 calling library, 456 Min data field, 294
interface calling menu, 456 minimax
adding to hardware setup, 651 menu error function, 280
deleting from hardware setup, 651 hardware setup window, 591 optimizer, 280
interface files, specifying, 172 model window, 596 model
interface menu, hardware setup modeling, implementing, 122 components, 112
window, 590 saving, 640, 641 data, saving, 63
internal (system) sweep, 193 setting initial extraction values, 98 defined, 28
internal sweeps, 194 statements, 455 equations, implementing new, 356
main window, 586 files
manual simulate function, 223 examples, 48
L Max data field, 294 opening, 48
label widget, 489 Max Error data field, 296 saving, 109
least Pth error function, 281 Max Evals data field, 296 new
least-squares error function, 279 Max Iters data field, 297 adding a, 115
Levenberg-Marquardt MDM_EXPORT_COMMENT, 555 example, creating, 152
optimization time, 318 MDM_EXPORT_COMMENT_FILE, 555 opening, 76
sample output, 301 MDM_EXPORT_XFORM_DATA, 555 parameters
library, instrument, 171 MDM_FILE_NAME, 555 defined, 28
license status, 67 MDM_FILE_PATH, 555 defining, 81
linking a simulator, 240 MDM_HEADER_VERBOSE, 557 editing, 123
list widget, 491 MDM_REL_ERROR, 555 extracting, 97
little endian, 244 MDM_VALUES_LIST, 556 optimizing, 102
MDM_XFORM_LIST, 556 specifying, 123
MDM_ZERO_TOL, 557 parts, copying, 118
measure menu, model window, 594 saving, 116
specifying simulator, 211
variables, setting, 125
window, 593
windows, viewing, 58
mouse
selecting with, 33
tables, selecting with, 41
text, copying with, 40
N
Name data field, 294
network security, 253
node connections, specifying, 216
noise simulation, 229
Normalize Sens checkbox, 298
O
online briefing, GUI, 515
open circuit parsing interface, 246
opening model, 76
operating procedures, 26
optimization Normalize Sens checkbox Rand Seed data field definition, 299
algorithm, 320 definition, 298 Rand Std Dev data field definition, 298
hybrid, 321 options Recall Param button definition, 295
Jacobian calculation, 268 Comb Filter data field, 298 Reference SetUp data field
Levenberg-Marquardt, 266 Enable Extraction checkbox, 298 definition, 293
random, 320 Function Tol data field, 296 references, 328
Auto Set button definition, 294 Max Error data field, 296 relative/absolute error
Clear Table button definition, 293 Max Evals data field, 296 formulation, 277
Comb Filter data field definition, 298 Max Iters data field, 297 RMS error
Curve Max data field definition, 292 Normalize Sens checkbox, 298 defined, 285
Curve Min data field definition, 292 Param Delta data field, 298 RMS error data field definition, 297
data Parameter Tol data field, 297 running, 349
sensitivity analysis, 322 Print Error data field, 299 sample output, 301
transform, 316 Print Parameters data field, 299 hybrid, 307
defined, 29 Print Sens Results data field, 299 Levenberg-Marquardt, 301
defining Rand Iters data field, 297 random, 303
algorithm, 290 Rand Penalty data field, 298 sensitivity analysis, 314
error formulation, 290 Rand Reward data field, 298 setups, in multiple, 317
inputs, 291 Rand Seed data field, 299 Simulated data field definition, 291
options, 295 Rand Std Dev data field, 298 Store Param button definition, 295
parameters, 293 RMS error data field, 297 Target data field definition, 291
Enable Extraction checkbox Use Rank 1 data field, 299 Target Max data field definition, 292
definition, 298 X Lower Bound data field, 297 Target Min data field definition, 292
example setup optimization, 300 X Upper Bound data field, 297 time, 317
executing an, 299 Y Lower Bound data field, 297 hybrid, 319
Function Tol data field definition, 296 Y Upper Bound data field, 297 Levenberg-Marquardt, 318
global, drawbacks to, 324 Param Delta data field definition, 298 random, 319
inputs Parameter Tol data field definition, 297 transform data, 287
Curve Max, 292 parameters transform selection, 289
Curve Min, 292 Auto Set button, 294 Tuner data field definition, 294
Reference SetUp, 293 Clear Table button, 293 undoing an, 299
Simulated, 291 Insert Param or Var, 293 Use Rank 1 data field definition, 299
Target, 291 Max data field, 294 versus extraction, 324
Target Max, 292 Min data field, 294 Weight data field definition, 292
Target Min, 292 Name data field, 294 weighted, 316
Weight, 292 Recall Param button, 295 X Data Ref data field definition, 292
X Data Ref, 292 Store Param button, 295 X Lower Bound data field
X Max, 292 Tuner data field, 294 definition, 297
X Min, 292 partial, 327 X Max data field definition, 292
Insert Param or Var data field performing, 289 X Min data field definition, 292
definition, 293 Print Error data field definition, 299 X Upper Bound data field
Max data field definition, 294 Print Parameters data field definition, 297
Max Error data field definition, 296 definition, 299 Y Lower Bound data field
Max Evals data field definition, 296 Print Sens Results data field definition, 297
Max Iters data field definition, 297 definition, 299 Y Upper Bound data field
Min data field definition, 294 process defined, 261 definition, 297
mode, selecting a, 264 Rand Iters data field definition, 297 optimize menu, model window, 595
modes, 264 Rand Penalty data field definition, 298
Name data field definition, 294 Rand Reward data field definition, 298
tools menu, 66 V Y
hardware setup window, 589
main window, 587 variables Y Lower Bound data field, 297
model window, 596 creating user-defined, 636 Y Upper Bound data field, 297
tools, provided with IC-CAP, 66 defining
trace optimizer region, 341 DUT level, 634
transform data, optimization, 287 model level, 634
transforms setup level, 635
creating and executing, 644 DUT, 133
creating and running, 644 DUT, defining, 88
data, 316 for plot characteristics, 399
data from another setup, 365 model, setting, 125
defining, 144, 357 plot, setting, 418
definition, 29 setup, defining, 93, 143
editing, 97 sweeping, 218
examples, 358 system, 66
extraction function, 358 for data management, 555
program function, 359 setting, 59
executing automatically, 360, 362 view menu, 592
performing, 360
saving, 647 W
selecting from Browser, 145
special handling, 363 weight data field, 292, 343
transient simulation, 229 weighted optimization, 316
translation module, example, 250 widget properties dialog box, 472
troubleshooting GUI, 476 widget types check box, 484
Tuner data field, 294 window
basics, 34
hardware setup, 589
U help, 42
unit names, assigning, 176 main, 586
unit table, 190 simulation debugger, 608
Use Rank 1 data field, 299 windows menu
USE_PLOT_LOOKUP variable, 400 hardware setup window, 592
user sweep, 193 main window, 588
usersimulators file, 245 model window, 596
simulation debugger window, 609
X
X Data Ref data field, 292
X Lower Bound data field, 297
X Max data field, 292
X Min data field, 292
X Upper Bound data field, 297
XY data plot, defining, 393