450

Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

Embed Size (px)

Citation preview

Page 1: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses
Page 2: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

1

IC-CAP 2010.08July 2010

Extraction, Analysis, and Programming

This is the default Notice page

Page 3: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

2

© Agilent Technologies, Inc. 2000-20103501 Stevens Creek Blvd., Santa Clara, CA 95052 USANo part of this documentation may be reproduced in any form or by any means (includingelectronic storage and retrieval or translation into a foreign language) without prioragreement and written consent from Agilent Technologies, Inc. as governed by UnitedStates and international copyright laws.

Acknowledgments

UNIX ® is a registered trademark of the Open Group.MS-DOS ®, Windows ®, and MS Windows ® are U.S. registered trademarks of MicrosoftCorporation.Pentium ® is a U.S. registered trademark of Intel Corporation.PostScript® is a trademark of Adobe Systems Incorporated.Java™ is a U.S. trademark of Sun Microsystems, Inc.Mentor Graphics is a trademark of Mentor Graphics Corporation in the U.S. and othercountries.Qt Version 4.5Qt NoticeThe Qt code was modified. Used by permission.Qt CopyrightQt Version 4.5, Copyright (c) 2009 by Nokia Corporation. All Rights Reserved.Qt License Your use or distribution of Qt or any modified version of Qt implies that youagree to this License. This library is free software; you can redistribute it and/or modify itunder the terms of the GNU Lesser General Public License as published by the FreeSoftware Foundation; either version 2.1 of the License, or (at your option) any laterversion. This library is distributed in the hope that it will be useful, but WITHOUT ANYWARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR APARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. Youshould have received a copy of the GNU Lesser General Public License along with thislibrary; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,Boston, MA 02110-1301 USA Permission is hereby granted to use or copy this programunder the terms of the GNU LGPL, provided that the Copyright, this License, and theAvailability of the original version is retained on all copies. User documentation of anycode that uses this code or any modified version of this code must cite the Copyright, thisLicense, the Availability note, and "Used by permission." Permission to modify the codeand to distribute modified code is granted, provided the Copyright, this License, and theAvailability note are retained, and a notice that the code was modified is included.Qt Availability http://www.qtsoftware.com/downloadsPatches Applied to Qt can be found in the installation at:$HPEESOF_DIR/prod/licenses/thirdparty/qt/patches.You may also contact Brian Buchanan at Agilent Inc. at [email protected] formore information. For details see:http://bmaster.soco.agilent.com/mw/Qt_License_Information

Errata The IC-CAP product may contain references to "HP" or "HPEESOF" such as in filenames and directory names. The business entity formerly known as "HP EEsof" is now partof Agilent Technologies and is known as "Agilent EEsof." To avoid broken functionality andto maintain backward compatibility for our customers, we did not change all the namesand labels that contain "HP" or "HPEESOF" references.

Warranty The material contained in this documentation is provided "as is", and is subjectto being changed, without notice, in future editions. Further, to the maximum extentpermitted by applicable law, Agilent disclaims all warranties, either express or implied,with regard to this manual and any information contained herein, including but not limitedto the implied warranties of merchantability and fitness for a particular purpose. Agilentshall not be liable for errors or for incidental or consequential damages in connection withthe furnishing, use, or performance of this document or of any information containedherein. Should Agilent and the user have a separate written agreement with warrantyterms covering the material in this document that conflict with these terms, the warrantyterms in the separate agreement shall control.

Page 4: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

3

Technology Licenses The hardware and/or software described in this document arefurnished under a license and may be used or copied only in accordance with the terms ofsuch license.

Restricted Rights Legend U.S. Government Restricted Rights. Software and technicaldata rights granted to the federal government include only those rights customarilyprovided to end user customers. Agilent provides this customary commercial license inSoftware and technical 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 CommercialComputer Software or Computer Software Documentation).

Page 5: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

4

Creating and Running Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Creating and Running a Macro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Saving Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Macro Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Controlling the IC-CAP System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 Autostart Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 Computations with Data Sets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 An Example Macro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

Creating Graphic User Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 Simple User Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 Status Window Menus/Icons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 Customized Dialog Boxes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 Basic Commands - The Model GUI Items Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 The Widget Properties Dialog Box . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 Troubleshooting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 GUI Item Options Controlling Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 Common Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 Widget Descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 OnLine Briefing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 Controlling Dialogs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 Data Input Slider (Example) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 More on Tables (Examples) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 Viewing Pages Sequentially (Example) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 Viewing Pages at Random (Example) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 Counter (Example) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 Adding a Caption to the Unix Window (Example) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 More on Sliders (Examples) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 Random Numbers (Example) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 Adding an Interface Name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

Controlling IC-CAP from Another Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 Compiling Using the Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 Details of Function Calls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 Details of the LinkReturnS Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

IC-CAP Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 Built-in Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

Built-in Functions Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 Built-in Functions (Starting from Alphabet A) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

abs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 array_copy(x,yout) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 array_equal_num(x,y[,prec]) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 array_equal_str(x,y) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 array_insert_at(x,y [,pos]) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 array_remove_all(x,y[,prec]) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 array_remove_at(x,pos) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 array_remove_first(x,y[,prec]) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 array_remove_last(x,y[,prec]) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 array_reorder (x,idxarr) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 array_rsort_num (x, prec[, idxArr]) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 array_rsort_str (x[, idxArr]) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 array_sort_num (x, prec[, idxArr]) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 array_sort_str (x[, idxArr]) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 array_swap (x, index1, index2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 ascii$ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

Built-in Functions (Starting with Alphabet C) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 chr$(x) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 colsof(x) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 complex_equal(x,y [,prec]) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 complex_insert_at(x,y [,pos]) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 complex_remove_all(x,y[,prec]) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 complex_remove_at(x,pos) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 complex_remove_first(x,y[,prec]) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96

Page 6: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

5

complex_remove_last(x,y[,prec]) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 complex_reorder (x,idxarr) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 complex_rsort (x,prec[,idxArr]) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 complex_sort (x,prec[,idxArr]) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 cutstr(x,y[,delimiter]) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99

Built-in Functions (Starting from Alphabet D) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 dataset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 dimension_array(x,n1,n2,n3,...) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100

Built-in Functions (Starting from Alphabet E) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 exp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101

Built-in Functions (Starting from Alphabet F) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 fix_path$ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 fix_path$(<path>) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102

Built-in Functions (Starting from Alphabet G) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 get_user_region_names(x,y) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103

Built-in Functions (Starting from Alphabet I) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 iccap_status_button_queue$ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 imag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 imaginary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 index_of(x,y,pos[,prec]) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104

Built-in Functions (Starting from Alphabet L) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 last_index_of(x,y[,prec]) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 log10 or lgt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 lookup_instr_table_val or lookup_instr_table_val_eval . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 lookup_obj_attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 lookup_par . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 lookup_table_val or lookup_table_val_eval . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 lookup_var . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 lwc$(x) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109

Builtin Functions (Starting from Alphabet M) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 mag or magnitude . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 max . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 mdata(expr) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 min . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110

Built-in Functions (Starting from Alphabet P) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 ph or phase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111

Built-in Functions (Starting with Alphabet R) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 real . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 rowsof(x) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112

Built-in Functions (Starting from Alphabet S) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 sdata(expr) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 sizeof(x) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 sqrt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 strlen(x) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 strpos(x,y) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 strrpos(str1,str2 [,endpos]) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 substr$(x,start,stop) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 sys_path$ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 sys_path$(<path>) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 system . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 system$ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115

Built-in Functions (Starting from Alphabet T) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 trim$(x,chars) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116

Built-in Functions (Starting from Alphabet U) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 upc$(x) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117

Built-in Functions (Starting with Alphabet V) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 val . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 val$ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118

Built-in Functions (Starting from Alphabet W) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119

Page 7: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

6

WHOAMI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 WHOIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119

Main IC-CAP Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 Functions Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 User Defined Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 8753_TRL_Cal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 abs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 acs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 acsh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 AgilentHBT_ABCX_extract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 AgilentHBT_calculate_ccb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 AgilentHBT_calculate_rbb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 AgilentHBT_CCMAX_extract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 AgilentHBT_CEMAX_extract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 AgilentHBT_CJC_extract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 AgilentHBT_CJE_extract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 AgilentHBT_IS_NF_extract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 AgilentHBT_ISC_NC_extract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 AgilentHBT_ISE_NE_extract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 AgilentHBT_ISH_NH_extract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 AgilentHBT_ISR_NR_extract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 AgilentHBT_ISRH_NRH_extract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 AgilentHBT_ITC_ITC2_extract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 AgilentHBT_Param_Init . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 AgilentHBT_TFC0_extract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 AgilentHBT_VJC_extract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 AgilentHBT_VJE_extract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 arg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 ascii$ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 asn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 asnh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 atn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 atnh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 autofit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 autofit3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 B2200_bias_card_enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 B2200_bias_ch_enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 B2200_bias_enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 B2200_bias_init . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 B2200_close_interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 B2200_connect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 B2200_couple_enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 B2200_couple_setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 B2200_debug . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 B2200_disconnect_card . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 B2200_GPIB_handler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 B2200_ground_card_enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 B2200_ground_enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 B2200_ground_init . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 B2200_ground _outch_enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 B2200_ground _unused_inputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 B2200_init . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 B2200_open_interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 BJT_dc_model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 BJTAC_high_freq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 BJTAC_rb_rbm_irb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 BJTCV_stoc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 BJTDC_fwd_gummel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 BJTDC_is_nf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 BJTDC_nr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 BJTDC_rc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147

Page 8: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

7

BJTDC_rcfb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 BJTDC_re . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 BJTDC_rev_gummel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 BJTDC_vaf_var . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 BPOPAMP_macro_model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 BSIM1DC_geom_indep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 BSIM1DC_lin_sat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 BSIM1DC_sub . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 BSIM2_lin_plot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 BSIM2_save_dev_pars . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 BSIM2DC_geom_indep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 BSIM2DC_lin_sat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 BSIM3_calculate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 BSIM3_check_par . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 BSIM3_DC_calc_bin_parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 BSIM3_DC_calculate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 BSIM3_DC_get_parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 BSIM3_DC_vth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 BSIM3_error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156 BSIM3_set_opt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156 BSIM3_toolkit_vth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 BSIM3CV_total_cap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 BSIM3CVmodCBD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 BSIM3CVmodCBS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 BSIM3DC_bulk_short . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 BSIM3DC_lin_large . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 BSIM3DC_lin_narrow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 BSIM3DC_lin_short . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 BSIM3DC_lin_small . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 BSIM3DC_model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 BSIM3DC_sat_narrow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 BSIM3DC_sat_short . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 BSIM3DC_sat_short2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 BSIM3DC_sub_short . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 BSIM3DC_sub_short2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 BSIM3DC_vth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 BSIM3DC_vth_sim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 BSIM3DC_vth_versus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 BSIM4_check_par . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 BSIM4_DC_calc_bin_parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 BSIM4_DC_calculate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 BSIM4_DC_extr_A0_AGS_KETA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 BSIM4_DC_get_parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 BSIM4_DC_vth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 BSIM4_error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 BSIM4_set_opt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 BSIM430_DC_calculate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 BSIM430_DC_vth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 BSIM450_DC_calculate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 BSIM450_DC_vth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 BSIMCV_total_cap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 BSIMSOI4_check_par . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 BSIMSOI4_DC_calc_bin_parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170 BSIMSOI4_DC_calculate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170 BSIMSOI4_DC_get_parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172 BSIMSOI4_DC_vth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 BSIMSOI4_set_opt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 ceil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 check_error_log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 circlefit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 circlefit3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175

Page 9: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

8

conjg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 Connect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 copy2output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 CORNER_DC_vth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 correlation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 cos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 cosh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 dataset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 derivative . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 derivative2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 derivative3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 DIODEDCmod_ia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 EEbjt2_ce_dc_iv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 EEbjt2_ce_ss_elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 EEbjt2_extrinsic_ckt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 EEbjt2_Is_N . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 EEbjt2_mdl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 EEfet3_ckt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 EEfet3_cs_dc_iv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 EEfet3_lecp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 EEfet3_mdl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 EEfet3_model_name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 EEfet3_package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 EEfet3_ResCheck . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 EEfet3_Rs_delta_m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 EEfet3_Rs_delta_s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 EEfet3_s2ckt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 EEfet3_spars . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184 EEmos1_ckt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184 EEmos1_cs_dc_iv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 EEmos1_lecp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 EEmos1_mdl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 EEmos1_model_name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186 EEmos1_package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186 EEmos1_ResCheck . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 EEmos1_s2ckt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 EEmos1_spars . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 equation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 exp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 extrapolate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 fit_line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 fit_line3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 floor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 FNPort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 GAASAC_calc_rc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 GAASAC_calc_rl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 GAASAC_cur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 GAASAC_l_and_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191 GAASAC_r_and_c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191 GAASCV_cgs_cgd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192 GAASDC_cur1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192 GAASDC_cur2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192 GAASDC_lev1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 GAASDC_lev2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 GAASDC_rd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 GAASDC_rs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 GAASmod_cgd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 GAASmod_cgs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 GAASmod_id . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 GAASmod_ig . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 H11corr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195

Page 10: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

9

HFBJT_linear_elem_extr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 HFBJT_linear_ssmod_sim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 HFMOD_get_bias_size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 HFMOD_get_freq_index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 HFMOD_get_freq_value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 HFMOD_remove_freq_dbl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 HFMOD_remove_freq_mat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196 HFMOS3_capas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196 HFMOS3_lin_large . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196 HFMOS3_lin_narrow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196 HFMOS3_lin_short . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196 HFMOS3_modcap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196 HFMOS3_paras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197 HFMOS3_sat_short . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197 HFMOS3_StoC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197 HFMOS3_StoZ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197 HFMOS3_sub_large . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197 HFMOS3_total_cap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197 HiSIM2_DC_vth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197 HiSIM_HV_DC_vth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198 HP5250_bias_card . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198 HP5250_bias_channel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 HP5250_bias_init . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 HP5250_bias_setmode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 HP5250_card_config . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200 HP5250_compensate_cap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200 HP5250_connect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201 HP5250_couple_enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201 HP5250_couple_setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201 HP5250_debug . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201 HP5250_disconnect_card . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202 HP5250_init . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202 HP5250_show . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202 HPdiode_C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203 HPdiode_C2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203 HPdiode_data_acqu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203 HPdiode_fgrt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203 HPdiode_fless . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203 HPdiode_I . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203 HPdiode_iextr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203 HPdiode_mdl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203 HPdiode_para_at_f . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203 HPdiode_para_f . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 HPdiode_Q . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 HPdiode_R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 HPdiode_S11i . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 HPdiode_S11r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 HPdiode_V . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 HPdiode_wr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 HPIB_abort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 HPIB_clear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 HPIB_close . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 HPIB_command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 HPIB_eoi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 HPIB_fwrite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 HPIB_open . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 HPIB_read . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 HPIB_read_reals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 HPIB_readnum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 HPIB_readstr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 HPIB_spoll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207

Page 11: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

10

HPIB_srq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 HPIB_timeout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 HPIB_write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 HPMOS_process_pars . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 HPMOSDC_lin_large . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 HPMOSDC_lin_narrow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 HPMOSDC_lin_short . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 HPMOSDC_sat_short . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 HPRoot_data_acqu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 HPRoot_FET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 HPRoot_fet_acqu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 HPRoot_FET_t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 HPRoot_Id . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210 HPRoot_Idh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210 HPRoot_Ig . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210 HPRoot_initial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210 HPRoot_mos_acqu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210 HPRoot_mos_para . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210 HPRoot_MOSFET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 HPRoot_n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 HPRoot_para_cal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 HPRoot_parasitic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 HPRoot_Qd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 HPRoot_Qg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 HPRoot_Vd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212 HPRoot_Vg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212 HPRoot_wr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212 HPRoot_Y11i . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212 HPRoot_Y11r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212 HPRoot_Y12i . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212 HPRoot_Y12r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213 HPRoot_Y21i . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213 HPRoot_Y21r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213 HPRoot_Y22i . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213 HPRoot_Y22r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213 HPTFTCV_model_cgd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213 HPTFTCV_model_cgd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214 HPTFTCV_model_cgs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214 HPTFTDC_lin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214 HPTFTDC_model_id . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214 HPTFTDC_sat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214 icdb_add_comment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215 icdb_close . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215 icdb_export_data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215 icdb_get_sweep_index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215 icdb_get_sweep_value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215 icdb_open . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216 icdb_register_con_sweep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216 icdb_register_lin_sweep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216 icdb_register_list_sweep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216 icdb_register_lsync_sweep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 icdb_register_text_list_sweep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 icdb_register_text_lsync_sweep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 icdbf_add_comment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218 icdbf_close . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218 icdbf_export_data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218 icdbf_get_sweep_index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218 icdbf_get_sweep_value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219 icdbf_open . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219 icdbf_register_con_sweep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219 icdbf_register_lin_sweep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219

Page 12: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

11

icdbf_register_list_sweep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220 icdbf_register_lsync_sweep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220 icdbf_register_text_list_sweep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220 icdbf_register_text_lsync_sweep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221 ICMSarray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221 ICMSchar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221 ICMSint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221 ICMSpin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222 ICMSreal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222 ICMSstr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222 icstat_activate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222 icstat_analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222 icstat_attribute_2_parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223 icstat_clear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223 icstat_close_sdf_file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223 icstat_correlation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223 icstat_deactivate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223 icstat_delete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224 icstat_equations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224 icstat_exit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224 icstat_factor_analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224 icstat_from_partable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225 icstat_get_attribute_columns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225 icstat_get_cell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225 icstat_get_column . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 icstat_get_deactivated . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 icstat_get_filtered_rows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 icstat_get_row . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 icstat_get_text_cell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 icstat_insert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 icstat_nonparametric_models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 icstat_num_attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228 icstat_num_columns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228 icstat_num_deactivated . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228 icstat_num_filtered . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228 icstat_num_rows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228 icstat_open . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 icstat_open_sdf_file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 icstat_parameter_2_attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 icstat_parametric_models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 icstat_plot_graph . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 icstat_save_sdf_file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230 icstat_set_cell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230 icstat_set_column . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230 icstat_set_param_column_labels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231 icstat_set_row . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231 icstat_set_text_cell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231 icstat_stat_summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232 icstat_to_partable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232 icstat_write_to_status_window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232 integral0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232 integral3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 is_constant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 is_noise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 JUNCAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 JUNCAP_TR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 K70X_clear_setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 K70X_close_crosspoints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 K70X_config_trigger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 K70X_connect_sequence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 K70X_copy_setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235

Page 13: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

12

K70X_debug . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235 K70X_delete_setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235 K70X_edit_setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235 K70X_init_interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236 K70X_open_crosspoints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236 K70X_trigger_disable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236 K70X_trigger_enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236 K707_init . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 linfit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 linfit3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 LINKarray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 LINKchar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238 LINKint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238 LINKpin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238 LINKreal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238 LINKstr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238 log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 log10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 lookup_par . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 lookup_var . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 make_bool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240 mean . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240 mem_diag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240 MEXTRAM_stoc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240 MM9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241 MM9_COPY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241 MM9_DATA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241 MM9_GEOMPAR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241 MM9_GEOMSCAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241 MM9_KEEP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241 MM9_LIN_EXT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241 MM9_SAT_EXT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242 MM9_SAVE_SPARS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242 MM9_SETUP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242 MM9_STH_EXT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242 MM9_TEMPPAR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242 MM9_TEMPSCAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242 MM9_WEAVAL_EXT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242 MOS_process_pars . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242 MOSCV_total_cap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242 MOSCVmodCBD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 MOSCVmodCBS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 MOSDC_lev2_lin_large . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 MOSDC_lev2_lin_narrow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 MOSDC_lev2_lin_short . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 MOSDC_lev2_sat_short . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244 MOSDC_lev3_lin_large . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244 MOSDC_lev3_lin_narrow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244 MOSDC_lev3_lin_short . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244 MOSDC_lev3_sat_short . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244 MOSDC_lev6_lin_large . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245 MOSDC_lev6_lin_narrow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245 MOSDC_lev6_lin_short . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245 MOSmodel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245 MOSmodel2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245 mxt3t_cbc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246 mxt3t_cbe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246 mxt3t_cj0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246 mxt3t_ft_ic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246 mxt3t_ft_ic_new . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246 mxt3t_fwd_early_ib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247

Page 14: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

13

mxt3t_fwd_early_ic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247 mxt3t_fwd_gummel_hfe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247 mxt3t_fwd_gummel_ib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247 mxt3t_fwd_gummel_ic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248 mxt3t_fwd_gummel_vbe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248 mxt3t_i0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248 mxt3t_linear_range . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248 mxt3t_output_ic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249 mxt3t_output_vbe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249 mxt3t_rev_early_ie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249 mxt3t_rev_early_qb0_guess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249 mxt3t_rev_gummel_hfc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250 mxt3t_rev_gummel_ib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250 mxt3t_rev_gummel_ie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250 mxt4t_cbc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250 mxt4t_cbe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251 mxt4t_cj0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251 mxt4t_csc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251 mxt4t_ft_ic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251 mxt4t_ft_ic_new . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251 mxt4t_fwd_early_ib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252 mxt4t_fwd_early_ic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252 mxt4t_fwd_gummel_hfe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252 mxt4t_fwd_gummel_ib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252 mxt4t_fwd_gummel_ic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253 mxt4t_fwd_gummel_vbe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253 mxt4t_i0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253 mxt4t_linear_range . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253 mxt4t_output_ic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254 mxt4t_output_vbe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254 mxt4t_rev_early_ie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254 mxt4t_rev_early_qb0_guess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254 mxt4t_rev_gummel_hfc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255 mxt4t_rev_gummel_hfc_sub . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255 mxt4t_rev_gummel_ib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255 mxt4t_rev_gummel_ie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255 MXT_cbc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256 MXT_cbe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256 MXT_cj0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256 MXT_csc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256 MXT_forward_hfe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257 MXT_forward_ic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257 MXT_forward_vbe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257 MXT_ft . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258 MXT_hard_sat_isub . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258 MXT_I0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258 MXT_ic_vce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258 MXT_jun_cap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259 MXT_reverse_currents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259 MXT_reverse_hfc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260 MXT_reverse_hfc_sub . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260 MXT_reverse_isub . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260 MXT_show_parms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261 mxt_smooth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261 MXT_veaf_ib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261 MXT_veaf_ic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261 MXT_vear_ie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262 MXT_VEF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262 MXT_VER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262 NOISE_1f_bjt_1Hz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262 NOISE_1f_bjt_calc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262

Page 15: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

14

NOISE_1f_bjt_extract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263 NOISE_1f_force_bias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263 NOISE_1f_get_Af . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264 NOISE_1f_get_Bf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264 NOISE_1f_get_Ef . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264 NOISE_1f_get_Kf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264 NOISE_1f_mos_1Hz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264 NOISE_1f_set_Af . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264 NOISE_1f_set_Bf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264 NOISE_1f_set_Ef . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265 NOISE_1f_set_Kf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265 NOISE_1f_stop_bias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265 Package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265 PB_abort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266 PB_bincode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266 PB_bindex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266 PB_bindex_cr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267 PB_gindex_cr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267 PB_gsite_xy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267 PB_index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267 PB_index_cr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268 PB_msite_xy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268 PBench_CMD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268 Pdown . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268 Phome . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268 Pimove . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268 Pink . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269 Pmove . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269 PNCAPsimu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269 Porig . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269 Ppos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269 Prober_debug . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269 Prober_init . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270 Prober_reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270 Prober_status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270 Program or Program2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270 Pscale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271 PSP_check_par . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271 PSP_DC_calc_bin_parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272 PSP_DC_vth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272 PSP_set_opt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273 PTFTCV_cgd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273 PTFTCV_cgs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274 PTFTDC_lin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274 PTFTDC_sat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274 Pup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274 rand_flat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274 rand_gauss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275 rand_seed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275 random . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276 RBBcalc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277 RMSerror . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277 sin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278 sinh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278 smooth3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278 SPECSSpin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278 sqrt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279 stabilization_reached . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279 SWM_debug . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279 SWM_init . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279 tan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280

Page 16: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

15

tanh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280 TARGET_DC_vth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280 tis_p_down . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280 tis_p_home . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280 tis_p_imove . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280 tis_p_ink . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281 tis_p_move . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281 tis_p_orig . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281 tis_p_pos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281 tis_p_scale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281 tis_p_up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281 tis_prober_get_ba . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281 tis_prober_get_name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281 tis_prober_init . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281 tis_prober_read_sysconfig . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281 tis_prober_reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281 tis_prober_status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281 TRL_Cal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281 TwoPort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282 TwoPort2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282 USERC_avg_2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282 USERC_avg_3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282 USERC_close . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283 USERC_conjg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283 USERC_data_w_check . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283 USERC_get_object_name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283 USERC_init_param . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284 USERC_num_of_points . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284 USERC_open . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284 USERC_read_reals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284 USERC_readnum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284 USERC_readstr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285 USERC_seek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285 USERC_set_param . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285 USERC_set_param_quiet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285 USERC_size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285 USERC_sweep_mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286 USERC_sweep_name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286 USERC_sweep_start . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286 USERC_sweep_stepsize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286 USERC_sweep_stop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286 USERC_system . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287 USERC_tell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287 USERC_transpose . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287 USERC_write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287 variance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287 variance2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288 VBIC_ac_solver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288 VBIC_avc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288 VBIC_cbc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288 VBIC_cbe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289 VBIC_cj0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289 VBIC_clean_data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289 VBIC_csc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289 VBIC_dc_approx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289 VBIC_dci_solver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290 VBIC_dcv_solver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290 VBIC_fg_currents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291 VBIC_ibci_nci . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291 VBIC_ibei_nei . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291 VBIC_ikf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292

Page 17: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

16

VBIC_ikr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292 VBIC_is_nf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292 VBIC_isp_nfp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292 VBIC_nr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292 VBIC_qcdepl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293 VBIC_rcx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293 VBIC_rg_currents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293 VBIC_stoc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294 VBIC_vef_ver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294 Wait . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295 wirexfX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295 wirexfXY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295 wirexfY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296 wirexfYX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296 WPro_lookup_info . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296 WPro_set_info . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296

User C Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297 Example 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297 Example 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297 Function Descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298 Hints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301

ICCAP_FUNC Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303 The Third Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303 Objects and Actions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303

Actions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305 Add Active Instr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306 Add Global Native Region . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307 Add Global Region . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307 Add GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308 Add Interface File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308 Add Trace Region . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309 Area Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309 Area Tools Off . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309 Area Tools On . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310 Autoconfigure or Autoconfigure And Enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310 Autoscale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310 Auto Set Min Max . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311 Auto Set Optimize or Auto Set And Optimize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311 Bus status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311 Calibrate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312 Change Address . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312 Change Directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312 Change Interface File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313 Check Active Address . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313 Clear Active List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313 Clear Data/Simulated/Measured/Both . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314 Clear Plot Optimizer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314 Clear Status Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314 Clear Status Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314 Clear Table or Clear Parameter Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315 Close . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315 Close All . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315 Close Branch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316 Close Error Log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316 Close GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316 Close Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317 Close License Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317 Close Output Log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317 Close Single GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317 Color . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318 Copy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318

Page 18: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

17

Copy to Clipboard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318 Copy to Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319 Create Image . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319 Create Variable Table Variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319 Data Markers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320 Delete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320 Delete Active Instr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320 Delete All User Regions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321 Delete Global Regions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321 Delete Interface File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321 Delete Trace Regions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322 Delete User Region . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322 Destroy GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322 Destroy Single GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322 Diagnostics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323 Diagnostics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323 Disable All . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324 Disable All Traces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324 Disable Plot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324 Disable Supplies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324 Disable Trace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325 Display Found Instrs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325 Display Modal GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325 Display Modeless GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326 Display Plot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326 Display Plots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326 Display Single Modal GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326 Display Single Modeless GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327 Draw Diag Line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327 Dump To Plotter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327 Dump To Printer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328 Dump To Stdout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328 Dump Via Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329 Dump Via Server UI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329 Edit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329 Enable All . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330 Enable Plot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330 Exchange Black-White . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330 Execute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331 Exit/Exit! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331 Export Data Measured . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331 Export Dataset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332 Export Data Simulated . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332 Extract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332 File Debug On . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333 File/Screen Debug Off . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333 Footer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333 Footer On . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334 Full Page Plot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334 Header . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335 Header Off . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335 Header On . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335 Hide Highlighted Curves . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336 Import Create . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336 Import Create Header Only . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336 Import Create Measured . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337 Import Create Measured or Simulated . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337 Import Create Simulated . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338 Import Create Simulated or Measured . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338 Import Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338 Import Delete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339

Page 19: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

18

Import Measured Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339 Import Measured or Simulated Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340 Import Simulated Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340 Import Simulated or Measured Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341 Import Text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341 I-O_Lock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342 I-O_Reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342 I-O_Screen Debug OFF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342 I-O_Screen Debug ON . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343 I-O_Unlock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343 Legend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343 Legend Off . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343 Legend On . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344 License Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344 Listen Active Address . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344 Macro File Execute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345 Macro File Specify . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346 Manual Rescale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346 Manual Simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347 Mark Curve Highlighted . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347 Measure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347 Memory Recall . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348 Memory Store . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348 New DUT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348 New Input/Output/Transform/Plot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349 New Macro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349 New Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349 New Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350 Open . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350 Open Branch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350 Open DUT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351 Open Error Log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351 Open Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351 Open Input/Output/Transform/Plot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351 Open Macro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352 Open Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352 Open Output Log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352 Open Plot Optimizer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352 Open Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353 Optimize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353 Parse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353 Print Read Buffer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354 Print Via Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354 Read from File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354 ReadOnlyValues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355 Read String . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355 Read String for Experts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355 Rebuild Active List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356 Recall Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356 Redisplay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356 Refresh Dataset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357 Release License . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357 Rename . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357 Replace Interface File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358 Replot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358 Rescale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358 Reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358 Reset Global Region . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358 Reset Min Max . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359 Reset Option Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359 Reset to Saved Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359

Page 20: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

19

Reset Trace Region . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360 Run Self-Tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360 Save All . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360 Save All No Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361 Save As . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361 Save As No Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361 Save Extracted Deck . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362 Save Image . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362 Save Input/Command/Output File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362 Scale Plot/Scale Plot Preview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363 Scale RI Plot/Scale RI Plot Preview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364 Screen Debug On . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364 Search for Instruments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365 Select Error Region . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365 Select Plot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365 Select Whole Plot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366 Send, Receive, and Print . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366 Send Command Byte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366 Send String . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367 Send To Printer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367 Serial Poll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368 Set Active Address . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368 Set Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368 Set Error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369 Set GUI Callbacks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369 Set GUI Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370 Set Instrument Option Value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370 Set Speed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371 Set Table Field Value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371 Set Target Vs Simulated . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372 Set Timeout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372 Set Trace As Both . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372 Set User Region . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373 Set Variable Table Value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373 Show Absolute Error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374 Show Highlighted Curves . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374 Show Relative Error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374 Simulate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375 Simulate All . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375 Simulate Plot Inputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375 Simulation Debugger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375 Status Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376 Stop Multisim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376 Stop Simulator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376 Store Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376 Talk Active Address . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377 Text Annotation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377 Text Annotation Off . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377 Text Annotation On . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378 Toggle Zoom . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378 Tune Fast . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378 Tune Slow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379 Turn Off Marker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379 Undo Optim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379 Undo Zoom . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380 Unmark All Highlighted Curves . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380 Unmark Highlighted Curve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380 Unselect All . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381 Update Annotation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381 View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381 Who Are You . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382

Page 21: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

20

Write to File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382 Zoom Plot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382

Button/Menu Pick and Actions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383 Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389

Circuit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389 Device Parameter Set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389 DUT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389 GUI Item . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390 GUI Items . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390 Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390 HPIB Analyzer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390 IC-CAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391 Create Status Button . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391 Remove All Status Buttons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392 Remove Status Button . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392 INPUT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392 Instrument Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393 MACRO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393 MODEL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393 OUTPUT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393 Parameter Set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394 PLOT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394 PlotOptimizer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 395 PlotOptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 395 SETUP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396 Simulation Debugger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397 Test Circuit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397 TRANSFORM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397 Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398

Parameter Extraction Language . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399 Fundamental Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399 Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416 Tuning Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419

Using Transforms and Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 420 Customizing IC-CAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421 Defining Transforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421 Example Transforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422 Performing Transforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423 Measured, Simulated, and Common Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424 Using Data from Another Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425 Creating C Language Functions in IC-CAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425 Declarations and Implementation Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 427

Defining Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 431

Page 22: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

21

Creating and Running Macros Creating and Running a MacroThis example uses the Bipolar Transistor model bjt_npn and creates a small macro thatgives you an immediate visible result.

Open the Example model bjt_npn.1.

In the Model window click Macros. 2.Click New. 3.In the prompt, type the macro name mactst.4.

Click OK. The macro name, mactst, appears in the macro list.5.Select mactst. The macro editing text window clears.6.Click anywhere in the text editing area and type:7.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 plotsa comma (,) separates the path name from the commandDisplay Plot specifies the action to perform

Click Execute to run the macro.8.

Plot windows, for the two plots defined, appear in the fgummel setup.9.

This completes the procedure for creating and testing a simple macro. You can run themacro anytime by selecting it and clicking Execute.

Page 23: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

22

NoteAlternatively, you can execute macros from the Macros menu in the Model window's main menu bar,Macros > Execute > < macro name >. This is useful when you want to run a macro and the Macrosfolder is not open.You can save the macro by selecting it and selecting File > Save As. Select the file type Macro, select themacro from the list, and click OK.

Saving MacrosMacros are saved when you save the model file. They are saved to the current workdirectory. You can explicitly save a macro at any time and specify another directory.To save macros:

With any of the macros in the Macros folder selected, choose File > Save As.1.Select the Macro option.2.Select the macro name from the drop-down list.3.If desired, change the path using the Browser.4.If desired, supply a different filename in the File Name field.5.Click OK.6.

Macro FeaturesAs demonstrated in the example, basic macro syntax is quite simple, yet reasonablypowerful. 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 runoperating system commands and send data to external files. Macros can store IC-CAPdata 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 itfinishes.

NoteFor details on PEL statements, refer to Parameter Extraction Language (prog).

Program Statements

Several IF statements and a WHILE statement allow looping and conditional execution fora statement or a block of statements.

The LINPUT and PRINT statements permit 2-way communication with an operator andpermit 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 additionalprogramming effort. The functions and operators use the same names (such as, LOGSQRT VAL$ and SYSTEM$) as HP BASIC or RMB. The SYSTEM$ function is one of twofunctions available for invoking HP-UX shell commands. For information refer to Built-inFunctions (prog).

Calling the Function List Library

Within macros, you can invoke the functions used by transforms without creatingtransforms. On the other hand, you can also perform an existing transform, if that is moreconvenient (see the next section, Calling Menu Functions ). The example macro at the endof this section demonstrates a call to the RMSerror function.

Page 24: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

23

Calling Menu Functions

A special command, iccap_func, provides a simple but powerful means for controlling theIC-CAP system in an automated fashion (see Controlling the IC-CAP System). Theexample at the end of this section demonstrates the use of iccap_func to performsimulation and extraction.

NoteThe iccap_func statement replaces the menu_func statement used in earlier releases. Macros using themenu_func statement will still work, but when creating new macros, we recommend using the iccap_funcstatement. However, note that not all UI functionality is accessible with iccap_func.

Autostart Capabilities

You can request the execution of a particular macro on startup. For details, refer toAutostart Macros.

Controlling the IC-CAP SystemThis section provides details on the use of the iccap_func command. The first example inthis section illustrated the iccap_func command:

iccap_func("/npn/dc/fgummel","Display Plots")

The iccap_func command needs at least two arguments. The first argument is the name ofan object on which you want to act and the second argument is the action you want toperform.

In addition, you can provide responses when the macro requires user input (throughdialog boxes) during execution. This capability to answer provides truly automatedoperation. If you do not provide answers in advance, the dialog boxes appear when themacro executes and wait for input. For further information on this capability, refer to thesection Anticipating Dialog Boxes.

Specifying an Object

IC-CAP is implemented in an object-oriented fashion. To the user, this means selecting anobject in the system, such as a setup, and then selecting an action, such as Simulate. Theiccap_func command reflects this object-oriented style, since the command requires anobject 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 onthat object.

When using the iccap_func command, particularly within a macro, you specify objects byusing a leading "/" character in their names. (When viewing the setup in the Modelwindow, the leading character is not shown, so it is easy to forget this detail whenprogramming with iccap_func.) For example:

iccap_func("/npn/dc/fgummel","simulate")

The hierarchy of objects is illustrated next. An asterisk (*) next to an object (in theillustration) indicates that multiple objects or items with different names can be specifiedfor that object. For example, a model may have many DUTs, but only one Parameter Set.

IC-CAP (prog) |- Variables (prog) |- GUI Items (prog) |- GUI Item (prog) |- Simulation Debugger (prog) |- Hardware (prog)

Page 25: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

24

|- HPIB Analyzer (prog) |- PlotOptions (prog) |- MODEL (prog)(*) |- Variables (prog) |- GUI Items (prog) |- GUI Item (prog) |- Circuit (prog) |- PlotOptimizer (prog) |- PlotOptions (prog) |- Parameter Set (prog) |- MACRO (prog)(*) |- DUT (prog)(*) |-Variables (prog) |- GUI Items (prog) |- GUI Item (prog) |-Test Circuit (prog) |-Device Parameter Set (prog) |-SETUP (prog)(*) |-Variables (prog) |- GUI Items (prog) |- GUI Item (prog) |-Instrument Options (prog) |-INPUT (prog)(*) |-OUTPUT (prog)(*) |-TRANSFORM (prog)(*) |-PLOT (prog)(*) |- PlotOptions (prog)

NoteFor exact specification of these objects and descriptions of available arguments, see ICCAP_FUNCStatement (prog).

Specifying an Action

Having identified an object, such as /npn/dc/fgummel, you then provide the name of anaction to perform on it. Many of the available actions in IC-CAP are made up of multiplewords, such as Rebuild Active List in the Hardware window. When specifying a multi-wordaction, 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 onemodel as npn and another as Npn, so the spelling and capitalization of an object must beexact.

Ambiguous Object Names

In the IC-CAP system, it is possible for two objects to have the same name. For example,in an npn model, there is nothing to prevent you from naming a DUT as dc_dut andnaming a macro the same thing. Perhaps this Macro performs all necessarycharacterization operations for the DUT of the same name.

To eliminate confusion in such cases, include an optional object type when specifying thename of the object. For example, suppose you have a DUT and a macro called xyz.Specifying:

iccap_func("/npn/xyz","execute")

does not work. Even though the DUT does not have an execute action associated with it,IC-CAP does not know how to differentiate the object. Instead, include the object type:

iccap_func("macro /npn/xyz","execute")

Anticipating Dialog Boxes

Page 26: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

25

It is possible to provide answers, in advance, for dialog boxes that arise during executionof a macro. These are provided as additional arguments to the iccap_func command. Thefollowing example calls the Save As dialog box, which requires a filename for saving thesetup:

iccap_func("/npn/dc/fgummel","Save As","fgummel.set")

In this example, fgummel.set is provided as the filename that you would otherwise type inthe dialog box displayed by the Save As command. You can include any number of stringexpressions, separated by commas, to anticipate any number of dialog boxes. If you failto anticipate all of the dialog boxes and do not provide answers for all of them, then thesystem displays the dialog boxes when the macro runs, and you can provide answers atthat time.

Another interactive technique is to anticipate the dialog boxes and use the LINPUTcommand to prompt the user for the information to be supplied. Without this prompt, youmay see a dialog box in which a filename is requested, but not know what the file is to beused for.

LINPUT "Enter filename to save the Setup fgummel:",

user_answer iccap_func("/npn/dc/fgummel","Save As",

user_answer)

It is possible to stop a macro from running if iccap_func generates an error message box.Include the following command to monitor the error log, and read the number ofcharacters in the error box text:

x=check_error_log()

If the number of characters has increased since the last call to iccap_func, the macro canbe programmed to stop.

Autostart MacrosYou can request the execution of the npn/dc_test macro after the model file is loaded, bystarting IC-CAP in this fashion:

iccap bjt_npn.mdl -x npn/dc_test

You can intersperse any number of model file names and autostart macro executionrequests. Just be sure to precede each macro with the -x option, and do not execute amacro before you load the model file containing it. You can load several models beforeexecuting any macros, if desired. You can execute 0, 1, or more autostart macros for eachmodel loaded. These options are demonstrated below:

iccap bjt_npn.mdl -x npn/dc_test nmos2.mdl

iccap bjt_npn.mdl -x npn/dc_test -x npn/prdc_test nmos2.mdl

iccap bjt_npn.mdl -x npn/dc_test nmos2.mdl -x npn/prdc_test

iccap bjt_npn.mdl nmos2.mdl -x npn/dc_test -x npn/prdc_test

Unattended IC-CAP Sessions

It is possible to run an IC-CAP session completely unattended, by executing all neededmenu functions within one or more autostart macros. Such a session can be terminatedwith the following macro statement:

iccap_func("IC-CAP","Exit!")

In this example, Exit! is used to exit without prompting to save changes; to prompt theuser to save files before exiting, use Exit only.

Page 27: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

26

Disallowed Deletes and Reads

Because the iccap_func function can access objects in the system and execute actions onthem, some potentially dangerous situations arise. The following is an example of a Macroattempting to Delete itself:

iccap_func("/npn/mactst","delete") ! delete myself

The system prevents such commands from executing, because reliable operation could nototherwise be guaranteed. Another case which can be less obvious to recognize, but whichwould be equally dangerous is as follows:

iccap_func("/npn","delete") ! delete my parent

In this attempt to delete the model that owns the running Macro, the Macro would bedestroyed. This is not permitted.

In general, when a Program or Macro is running, attempts to execute the Delete or Openfunctions fail when that operation would result in the running Program or Macro beingdestroyed or overwritten. However, most requests to perform Delete or Open shouldsucceed. The following example shows a supported case in which a Macro within the npnmodel deletes the fgummel Setup:

iccap_func("/npn/dc/fgummel","delete")

This is not a problem, since the Macro would not be deleted when the fgummel Setup isdeleted.

Computations with Data SetsLike Transforms using the Program function (Programs), Macros can apply a variety ofoperators and functions to data sets. However, it is more difficult for Macros to access thedata sets. This is because Macros are further removed from the data sets, which existinside Setups, alongside Programs. As is discussed in Using Data from Another Setup.Programs can readily access data sets in another Setup by preceding the data set's namewith the name of its Setup, as in rgummel/vb. (This data set is an Input appearing in thebjt_npn.mdl model file.) Simpler still is the case where a Program accesses a data set inthe same Setup. In this case it can access an Input named vb just by using its name. Forexample:

PRINT max(vb)

Since Macros are not inside the Setups, they must fully specify the names of data setsthat they use. A leading "/" character must be used. In a Macro, the previous PRINTstatement needs to be written as follows:

PRINT max(/npn/dc/rgummel/vb)

Within a currently executing Macro or Transform, the notation for relative path (../ and../..) can be used when accessing a data set in another DUT or Setup.

Page 28: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

27

NoteSome of the functions in the IC-CAP Function List will not execute within a Macro, although they wouldsucceed in a Program. These functions depend on being able to determine the number of points per curvein a Setup. This is generally because they operate on a single curve in a data set (or on each curveseparately). Example: If you use the derivative function in a Macro, the following error box appears:Cannot perform derivative function because points per curve cannot be determined. Thisfunction 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 amacro by passing in the number of points as an additional argument. See derivative2 for moreinformation. To use the classic derivative or the other functions mentioned during the execution of aMacro, these functions might be placed within dedicated Transforms inside Setups, which the Macro canPerform via the iccap_func command.

An Example MacroThis section provides an example to improve your understanding of what a Macro canaccomplish and how some if its features can be used. This example (code listing below)benchmarks the quality of the DC extraction in the pn_diode.mdl file. Load this file to viewand run the example. Before running this example, you must define TNOM in your SystemVariables Table.

After performing Read Model you should be able to edit the diode model. By selectingRead 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, performthe Edit menu choice for the newly loaded Macro test_extract, Execute the Macro byselecting its name and clicking on Execute.

The Macro code is included below. The comments within the Macro should clarify what theMacro is doing.

Example Macro

! This macro will perturb model parameters,

! automatically call an extraction,

! and then compare the extracted parameters

! to the original, "perturbed" parameters

! perturb model parameters IS = IS * 0.5N = N * 1.2RS = RS * 2.1

! save perturbed model parameter values is1 = IS n1 = N rs1 = RS

! simulate with perturbed parameters and

! then compute and print rms error between

! meas. & sim. current

iccap_func("/diode/dc/idvd", "simulate")

error = RMSerror(/diode/dc/idvd/ia.m,/diode/dc/idvd/ia.s,0)

print "RMS error before extraction: " ; error

! call extraction to clean up parameters

iccap_func("/diode/dc", "extract")

! display plot if user desires

Page 29: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

28

Creating Graphic User InterfacesYou can create user interfaces in IC-CAP ranging from simple Line input boxes raised fromthe PEL LINPUT or GET_STRING commands, to fully customized dialog boxes. Additionally,customized menu picks can be added to the IC-CAP/Status window which have the uniqueability of making the IC-CAP/Main window aware of some action even while the main IC-CAP may be running PEL code.

Simple User InterfacesCalling LINPUT, GET_STRING, GET_REAL, or GET_INT from PEL invokes a simple dialogrequesting data from the user. These functions are covered in Parameter ExtractionLanguage (prog). These functions cause the running PEL code to wait for the user to enteror cancel. If the user cancels, the entire running macro is cancelled.

Status Window Menus/IconsThe IC-CAP/Status window runs in a different process space than the main IC-CAPprogram. Because of this, you can press buttons or select menus on the status windowwhile IC-CAP is compute bound and becomes unresponsive. If the reason for IC-CAP beingcompute bound is that a long PEL sequence you have written is in progress, you may usecustom Status menus/icons to signal IC-CAP. You may then check intermittently in yoursequence for any of these menu/icon actions.

You can add and manage customized menus (each with a toolbar icon) to the IC-CAP/Status window by using iccap_func actions Create Status Button (prog), RemoveStatus Button (prog), and Remove All Status Buttons (prog) on the root IC-CAP object("ic-cap" or "/"). Each custom menu is assigned a specific alphanumeric character (A-Z, a-z, or 0-9). Each time you call iccap_status_button_queue$() (prog) in PEL, you willreceive a string of these characters representing which buttons have been pressed sincethe last call. For example if you have 3 buttons with characters 'a', 'b', and 'c' and theuser pressed the button for 'a' followed by the button for 'b' in between two calls toiccap_status_button_queue$() (prog), the 2nd call will return the string "ab". If nobuttons have been pushed since the last call it will return an empty string (""). Refer tothe StatusButtons.mdl file in the examples/misc directory for a working example of this.

In addition to checking for menu/icon presses using iccap_status_button_queue$() (prog)which communicates the order in which buttons are pressed, you can also createspecifically named variables in the system level Variable table (Main window Tools >System Variables). This specifically named variable is ICCAP_STATUS_BUTTON_prepended to the character tied to the menu/icon. For example if you create a button tiedto the character 'a', then each time that icon or menu is activated, the variableICCAP_STATUS_BUTTON_x in the top level System variables (if it exists) will beincremented. This is done automatically without needing to code anything in PEL, howeverit will only happen while PEL is running, or when IC-CAP is idle. It will not happen duringsimulation, optimization, or within PEL function calls. Refer to the'AdvancedStatusButtons.mdl' file in the example/misc directory for a working example ofthis.

Customized Dialog BoxesThe Model GUI Items tab accesses a page for adding, customizing, testing anddiagnosing the widgets in a GUI.

The widgets include various types of selection boxes, with single or multiple selection,read only and editable text displays, spin boxes, sliders, and standard and radio type pushbuttons.

The IC-CAP Studio provides an exchange of data between PEL Macros/Transforms,

Page 30: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

29

Variable Table entries and the GUI. GUI items can perform IC-CAP automation includingexecution of PEL Macros/Transforms, which can access the state of the GUI Items storedin variables in the variable table. In turn these macros/transforms can launch other GUIdialogs to create the use model you wish.

The placement of widgets is typically organized in row type place holders (known asHorizontal Tables) nested within column type place holders (known as Vertical Tables).When a caption is added to a table, a pleasing bounding box is drawn as a border aroundthe items in it, and the caption is inset within the border.

Basic Commands - The Model GUI Items MenuFirst the Model GUI Items page of IC-CAP must be displayed.

This done by adding this line to the iccap.cfg file:ICCAP_VIEW_GUI_PAGES=1

This will cause the Model GUI Items tab to appear in the working window. Select this tab.

The Model GUI Items page is used for building and testing GUI's. Once built GUI's couldconceivably be used from this page. However it is not intend to be used that way. It ismore 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.

The commands available in the left window operate on whatever object is selected in themain window. The only exception is the Add... command which adds the parent widget toa new GUI. Any object may be selected by clicking on it, and only one object remainsselected (single item selection).

Add...

The Add... button is used to add the first item of a GUI, usually a Table which acts as anorganizational tool to layout the children GUI Items to be added later. See More on Tables(Examples).

Add Child...

The Add Child... button, through the Widget Properties dialog box, adds children towhatever is selected in the main window. In the example above the Vertical Table isselected and three buttons are added to it as children. When children are added to awidget a black triangle (the node symbol) appears to the left of it. Clicking on the node

Page 31: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

30

symbol causes it to point downwards to a list of the children.

Properties

The Properties button launches the Widget Properties dialog box for displaying andcustomizing widget. This box is described in detail in the Widget Properties Dialog BoxSection. 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 isselected in the window.

Move Up /Move Down

The Move Up and Move Down buttons move whatever is selected. For example if the thirdbutton but3 is selected it can be moved up and down the list of buttons. The position inthe layout will change accordingly. Thus the children can be rearranged in any order.

Delete

The Delete button deletes whatever is selected in the window. For example we couldselect and delete but3 if we wanted only two buttons. If we select and delete the VerticalTable 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 GUIstructure. For example a Vertical Table contains three push buttons. We want to add threemore as a second stack of three to the right of the first three. We select the Table andclick Enclose. The Table now has a new parent with the default name NewTable. We selectNewTable and change its Orientation to Horizontal. Then we add to it as a child a furtherVertical Table which will contain the second three Push Buttons.

See the tutorial Enclose for more details.

The Widget Properties Dialog BoxThe dialog box is shown below.

Page 32: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

31

The Widget Properties Dialog Box is launched

when the Add... or Add Child... buttons are selected.when the Properties button is selected.when a widget in the right window is double-clicked.

The top level item in this box is the Select Type box. Press the activate button on the rightside of it. A dropdown menu appears offering sixteen choices of widgets.

Widget Classes

The available widgets perform four general functions: organizing placement, handlingsingle variables, and handling lists.

Placement Widgets

The Table (of anything) and the Tabbed Folder (of pages) organize layout of widgets

Page 33: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

32

within a GUI.

Single Variable Widgets

The Spin Box and the Slider increment and decrement variables declared with the CurrentValue and Real Value options respectively.

The Edit Box can be used for both input and output, while the Label is like a read only EditBox. Labels can be large blocks of text including many carriage returns. They are used tohold the text on Pages.

Multiple Variable (List) Widgets

Notice that the Dropdown Combo, dropdown List Combo, List, Radio Box, and Spreadsheetare all different styles of list from which the user may select one or more values. TheOption Items allows you to declare an ICCAP_ARRAY that stores the values that aredisplayed. The option Selected Index allows us to declare an integer which is an index intothe selected member of the array. This can then be read by macros and programs. The isunique in that it uses a two-dimensional array as its primary list.

Widget Naming

Once the widget type has been chosen it can be named in the top box of the WidgetProperties dialog box. This is not essential but it is very desirable since it makes thewidget map (as distinct from the GUI itself) much more intelligible.

NoteDuplicate naming of siblings is prevented. The top level name of in a GUI becomes the name of the GUIwhich a macro uses to execute it. Lower level GUI's are called with a hierarchical a.b.c convention.

Using the Properties Dialog Box

Once the widget type has been selected and named it is mandatory that it be assigned avariable to modify and/or a function to call if the widget is to handle input or output.

Once a widget type has been selected, the left side of the properties box shows a list ofthe 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:

Click on the box titled Please Enter Text Value and enter the text for the caption,1.e.g "Start". Do not use the enter key unless you are entering multi-line captions.Click on the OK or Apply button immediately below. In the Options list Caption will2.be shown as Caption (Start).

For a variable Caption:

In the Editing: Caption box set Track Variable to on (so that an x shows in the box).1.Click on the box titled Variable and enter the variable name, e.g. buttonName.2.Then click on the OK or Apply button immediately below. In the Options list Caption3.will be shown as Caption (Variable buttonName).The variable buttonName must be declared in a variable table, e.g. the Model4.Variable table accessed by clicking on the Model Variables tab.

For the GUI to accept the information from the Widget Properties dialog box, click oneither the OK or the Apply buttons at the bottom left corner. OK dismisses the dialog

Page 34: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

33

box, while Apply leaves it in place.

TroubleshootingProblem: Widget Properties dialog the Editing box will not accept text, even though aninsertion point marker is visible.

Solution: There is usually more than one box so you must click on one to select it for textentry.

Problem: Option not found in the Options list. For most GUI Items there are not enoughoptions to fill the option box. When there are enough options to overflow the box a scrollbar appears at the right hand side. Use this to access the options at the end of the list.

Problem: The following Dialog Box appears:

Go back to the Properties dialog and click on OK or Apply under the Editing area.

Problem: The following Dialog Box appears:

This means that a variable xxxx has been set to be tracked but has not been decalred in atable.

Solution: Add xxxx to, for example, the Model Variables table. Another possibility is thatthe variable name was misspelled.

Problem: After executing a macro the 'watch' symbol remains in the Model window,preventing any further commands from being accepted. This is probably because themacro launched a GUI (maybe hidden under another window) that is waiting for input orwaiting to be closed.

Solution:

Enter some input or close the GUI.Another possibility is that a macro is running in an infinite loop. To kill it, click on the"Stop" sign in the status window.

GUI Item Options Controlling VariablesOnce the widget type has been chosen the left side of the dialog box lists the Optionsavailable for that widget. The Caption option should usually be set because it appears onthe widget and adds to the intelligibility of the GUI.

Page 35: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

34

There are only a few Options vital to the functionality. These options control data, whereasthe rest affect only the appearance and cosmetics of the GUI.

The Options which allow a variable to track and store data are shown in the following tablewhich lists the name of the option and the type of variable it controls.

Modifying Variables

All variables and arrays must be declared and defined, typically in the ModelVariables Table, and declared in the Widget Properties box.Some options can only track an iccap_variable in the form of an ICCAP_ARRAY. Inthis case a single blank will be presented with the instruction to Please enter thename of an ICCAP_ARRAY. Other options may be 'hardcoded' with a literal, or canbe tied to a variable. For the later case, please check the box labeled Track Variableand fill in the Variable Name blank.

Options that can be tied to Variables:

Widget Option Name Value Type

Check Box Toggle State Integer: 1 or 0

Dropdown Combo Entered Text String

Selected Index Integer

Typed Text String

Visible ItemCount

Integer

Dropdown ListCombo

Selected Index Integer

Visible ItemCount

Integer

Edit Text Editable Integer: 1 or 0

Field Value String (editable)

Label <none>

List Selected Index Integer

Visible ItemCount

Integer

Page < none >

Push Button < none >

Radio Box Selected Index Integer

Radio Button Toggle State Integer: 1 or 0

Scroll Table Margin Height Integer

Margin Width Integer

Separator <none>

Slider Current Position Integer

Spin Box Real Value Real

Spreadsheet Table <none>

Tab Current Page Integer

Margin Height Integer

Margin Width Integer

Page Change OK Integer: 1 or 0

Table <none>

The Callback section of the Widget Properties dialog box list the conditions under which aMacro or Transform will be executed. These possible conditions, depending on the GUIitem, are:

Page 36: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

35

Callback Triggered by:

< Enter > Pressed The Enter key was pressed.

Button Pressed Button down detected.

Combo Pulled Down A menu is visible.

Exit Function Top level widget was closed.

Focus Entered Cursor is in the GUI item area.

Focus Lost Cursor has left the GUI area.

Item Double Clicked An item in a list was double clicked.

Item Selected An item selected from a menu or list.

Page Changed New Page number.

Page Validation Attempt to change a page.

Radio Changed A Radio Button was pressed.

Slider Moved Slider stopped moving.

Slider Moving Slider still moving.

Spin Box Decreased Value decreasing.

Spin Box Increased Value increasing.

Spin Field Modified Value changed.

Toggle State Changed A Check Box state changed.

Variable Changed A tracked variable changed.

By selecting a callback condition, e.g., for the Push Button widget we select theButtonPressed condition in the Callbacks box. A sub dialog appears on the right promptingfor two arguments to iccap_func. The arguments are the object to operate on and theaction to take.

These could be a macro name (e.g., countPresses for the item to act on, and the secondargument could be Execute for the action to take.

This would cause the Button Pressed condition in the Callbacks box to be shown as:

Button Pressed (iccap_func("countPresses","Execute"))

Common OptionsThese options are common to most widgets, so they are described in this section. Widgetspecific options are in individual tables in each GUI item description.

Page 37: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

36

Option Description

BackgroundColor

Specifies the Background Color for the GUI Item.

Caption Optional on all widgets, but doesn't make sense to leave blank for Buttons, Labels or Pages.For all other widgets if will appear above them and left justified with them.For Buttons, the caption text appears directly on the button, thus identifying it anddistinguishing it from other buttons.For Pages, it is the text on the tab.For Tables, it is the header text (optional).For Edit fields it is the text describing the field (not the text in the field).For Labels, it is the text itself as it appears on a page or table.Use the Sample button on the Properties dialog to see how text appears on an item.

EditableText The Option Editable may be set to TRUE or FALSE. When TRUE it allows the text insertion pointto be placed between text characters so that they may be edited.

ForegroundColor

Specifies the Foreground Color for the GUI Item.

Font Indicates the type of font to use.

Height andWidth

These are the widget dimensions in pixels. Note that these options are only used if applied to awidget which is actually displayed. If the options are set on children of the widget beingdisplayed, they will be ignored.

Items Indicates the names of the items (text strings) contained in the widget such as a DropdownList, List or Spin Box.Specify the name of a variable in a variable table. It is expected that this variable will have avalue of the format: ICCAP_ARRAY[x] where x is a number specifying the length of the array.

Managed This option indicates whether the item is managed (shown) or unmanaged (not shown). Thisallows a widget to be removed from the GUI at times when it is not needed, and rapidlyrestored when needed without the rebuilding time. In the sequential display of pages it is usedto make only the active page visible (see tutorial on sequential display). Most useful whenTrack Variable is selected. Default is 1.

Orientation Can be Vertical or Horizontal. Default depends on widget type.See tutorial Captions, Frames and Sizing.

Row andColumn Span

Indicates how many rows or columns this table should span in a table.Note, a dummy table must be placed at the cell(s) of the table that will be overlapped.

Sensitivity When sensitivity is set to 0 the widget is non-responsive and appears greyed out to indicatethat it is not active.When sensitivity is 1 the widget has normal appearance and response. This option is useful ifTrack Variable is selected.PEL code can then set the tracked variable to 0 or 1 for a dynamic look to your GUI.

SizingOptions

These indicate how the widget should behave in a Table when you expand the GUI window.See tutorial Captions, Frames and Sizing.

Unmanage a Dialog

Dialogs can be removed from the screen without being really destroyed. Some dialogs aresomewhat time consuming to build. If they are unmanaged instead of destroyed, the nexttime 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 DescriptionsThis section describes the widgets that are listed in the Select Type dropdown box in theWidget Properties dialog box.

Check Box

Page 38: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

37

The Check Box widget is actually a toggle box. It has a Toggle State of 1 or 0.

To assign a variable, such as checkVal to a variable it must be declared in a variablestable. For example, the Model Variables Table is accessed through the Model Variablestab. Each time you click in the box, checkVal will toggle between the binary values 1 and0.

After selecting Check Box in the Widget Properties dialog box, select Toggle State fromthe Options list. This can be set to Toggle On or Toggle Off. Then select Track Variableand type checkVa into the Variable box.

Special Options Description

Toggle State Toggles a value between 1 and 0 each time the box is checked.

An & in a Caption for buttons (Radio buttons, Push Buttons, and Check Boxes) will causethe following character to appear with an underscore. This will enable ALT-<char> to actas a shortcut for pressing that button.

See Using the Properties Dialog Box.

Dropdown Combo

The Dropdown Combo widget enables you to choose from a large dropdown list, whichdisappears after use to save space.

The Dropdown Combo is editable in that the user can add items by typing them in the topeditable box as well as choose them from a list. When Enter is pressed on the keyboardthe new item is added to the displayed list. The widget can also be configured toautomatically add new entries to the list.

The items displayed in the dropdown list are declared, for example, in an array in theModel Variables table as shown below. listElems is declared as an ICCAP_ARRAY of size 4,and the four values are defined individually for each element of the array.

After selecting Dropdown Combo in the Widget Properties dialog box, select the optionItems. Then click the box captioned Please enter the name of an ICCAP_ARRAY andtype listElems. Click both OK buttons.

To return a value from the dropdown list, select the option Selected Index. Click onTrack Variable and then in the Variable box enter, for example, index. The item selectedwill be listElems[index]. The variable name index, of course, must be declared, forexample in the Model Variables table.

To set the Dropdown Combo to be user extendable, select the option Add Entry on<Enter>

The dialog box will show <none specified>

Click on the activate button at the right of the New Value box and select TRUE.

Click on OK in the box below it, and then OK at the bottom left.

Page 39: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

38

The dropdown Combo will now have a cursor indicating that it is editable.

Display the Dropdown Combo and edit the contents of the edit field, then press Enter.Pressing Enter causes the contents of the edit field window to be added to the list ofitems.

Next time you press on the activate button, the last new item added will be shown at thetop of the list.

Special Options Description

Add Entry on <Enter> Allows you to add items to the list.

Entered Text This is the text in the edit field. If tied to a variable, the variable will only update whenEnter is pressed.

Scroll BarConfigurations

Indicates which scrollbars to use: Vertical, Horizontal, Vertical & Horizontal, or noscroll bars.

Selected Index Index into the selected member of the ICCAP_ARAY.

Typed Text This is the text in the edit field. If tied to a variable, it will always reflect the currentvalue.

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.

See Using the Properties Dialog Box.

Dropdown List Combo

The Dropdown List Combo is the same as the Dropdown Combo except that the usersmust select entries from the list, and cannot type their entries by hand.

See previous item: Dropdown Combo.

Special Options Description

Scroll BarConfigurations

Indicates which scrollbars to use: Vertical, Horizontal, Vertical & Horizontal, or noscroll bars.

Selected Index Index into the selected member of the ICCAP_ARAY.

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.

See Using the Properties Dialog Box.

Edit Text

Page 40: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

39

The Edit Text box serves primarily as an input where the user can enter and change thevalue of numbers or strings of text. However it also operates as a monitor in that willshow 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 Captionfrom the Options list. Then select the Track Variable box to set it to off (no x shown init). Then in the box titled Please Enter Text Value type, for example, Please Enter Textand 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 selectTrack 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.

To display the value of the variable newText it must be declared otherwise there will be anerror message when the GUI is run saying Unable to locate parameter or variablenewText... For demonstration purposes click the Model Variables tab and scroll down tothe empty cells at the bottom of the table and add newText in the Name column.

Special Options Description

Columns The integer value for the number of columns shown.

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.

Field Value This is the text in the edit field

Rows If Edit Mode is Multiple Lines, controls the number of lines displayed.

See Using the Properties Dialog Box.

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 selectingLabel, select Caption from the Options list. Then in the box titled Please Enter Text Valuetype, for example, A Label can be any piece of text and click OK. The caption optionin the option in the list will now be displayed as

Page 41: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

40

Caption (A Label can be any piece of text)

The displayed label will appear as shown above.

Variable Label

A variable containing the text can be generated by a macro which generates the textmessage 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 purposesclick the Model Variables tab and scroll down to the empty cells at the bottom of thetable 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 thestring "Hello" to "Goodbye". When you press Enter you will see the text in the widgetchange.

Special Options Description

None

See Using the Properties Dialog Box.

List

A List widget displays a permanent list of items which may be selected with the mouse.When an item is selected it remains selected after the mouse button is released.

The List may set up for single selection (like the Radio Buttons) or multiple selectionwhere any number of items may be selected. In the Select Multiple Items mode clickingon selected items in the list will unselect them.

The List remains on display to show the selections.

To return a selection from a list select the option Selected Index. Click on TrackVariable and then in the Variable box enter, for example, index.

The item selected will be listElems[index]. The variable name index, of course, must bedeclared, for example in the Model Variables table.

Page 42: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

41

The Selection Policy has four options:

SelectionMode

Description

Select MultipleItems

Requires the option Selected Indices (plural) to declare the name of an ICCAP_ARRAY whichstores the list of selected indices. Clicking on a selected item unselects it and has no effecton other selected items.

Single ItemSelect

Uses the Option Selected Index (singular) to the store the selection. Clicking on a selecteditem unselects it.

Browse StyleSelection

This is the same as the Select Single Item mode except that clicking on a selected item hasno effect. After the first selection one item always remains selected.

Extended StyleSelection

This is the same as the Browse Style Selection mode except that you may select multipleitems by using the <Shift> and <Ctrl> keys while clicking.

The Option specific to the List GUI item are:

Special Options Description

Scroll BarConfiguration

Indicates which scrollbars to use: Vertical, Horizontal, Vertical & Horizontal, or no scrollbars.

Selected Index Index into the selected member of the ICCAP_ARAY.

Selected Indices Indices into the selected members of the ICCAP_ARAY.

Selection Policy The type of selection policy to be used: Select Single Item, Select Multiple Items, BrowseStyle 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.

See Using the Properties Dialog Box.

Page

Pages are used in a Tabbed Folder. They are like tables whose caption shows up on a tab.

A Tabbed Folder is a stack of overlapping pages with non-overlapping tabs on each page.When a tab is selected its page comes to the top of the stack. See the Tab description.

A pages are added to a Tabbed Folder as a children by selecting the Tab item and thenAdd Child...

From the Widget Properties dialog select:

Page 43: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

42

Page > Option > Caption

is used to set the caption on the tab of each page.

On each page you can add text (as a child) as a Label or as an Edit Text Box

On each page you can also add any combination of widgets.

NoteOn UNIX platforms, some widgets on Tabbed-folder pages may not appear properly. To avoid thispotential problem, place your content within a single Table widget (it can have 0 margin width and 0margin height) inside the page. For example, instead of placing 4 widgets on a page, place a single tableon a page, then place the 4 widgets inside the table.On Window platforms, you should also place your content within a single Table widget inside the page justin case the mdl is ever used on a UNIX platform.

The Option Allow Resize allows a page to grow dynamically with the text strings in theLabels in it. This allows arbitrary text strings generated or selected by a macro to bedisplayed.

See Using the Properties Dialog Box.

Special Options Description

Allow Resize Permits the page to dynamically resize to fit the string(s) of text.

Column Spacing The integer value for the number of pixels between columns in a table.

Default SizingOptions for children

The sizing options for all members of the table if they don't declare their own sizingoptions.

Equalize All When TRUE all widgets in a table are normalized to the same size. The default isFALSE.

Frame Visible Indicates if a frame is to be visible or not. The default is FALSE.

Margin Height The integer value for the number of pixels of margin at the top of the page.

Margin Width The integer value for the number of pixels of margin at the sides of the page.

NumberRows/Columns

The integer value for the number of rows displayed for a horizontal orientation or thenumber of columns displayed for a vertical orientation. The children will be divided upevenly 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

A Push Button is only active when while the cursor is over it and while the mouse button isdepressed. Unlike the Check Box widget, the Push Button widget has no memory of beingselected, and does not control any variable. It operates by performing a callback, such asButton Pressed, whenever the button is pressed.

An & in a Caption for buttons (Radio buttons, Push Buttons, and Check Boxes) will causethe following character to appear with an underscore. This will enable ALT-<char> to actas a shortcut for pressing that button.

Typically, you will want to set Fix Width and Fix Height under Sizing options for buttons.

Button Caption

Page 44: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

43

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 displayedas:

Caption (Activate!)

and the button will appear as shown above.

Special Options Description

None

See Using the Properties Dialog Box.

Radio Box

The Radio Box automatically creates and labels Radio Buttons according to the text stringsstored in the array identified by the Entries Option.

Radio Buttons act as a group with all other radio buttons in a given Table. A group of radiobuttons in a table is very similar to the Radio Box, but placing radio buttons in a tablegives you more flexibility in the button placement. Radio buttons in a table can alsoprovide a 'multiple selection' radio box. The Option Radio Box Behavior on the parent tablesets this mode. If Radio Button Behavior is true, all radio button's siblings in a table willact just like radio box (single selection). If Radio Button Behavior is FALSE the buttonsbehave 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 ofthe selected item n the ICCAP_ARRAY.

The array and index variables must be declared and defined in a variables table, forexample in the Model Variables Table.

See Using the Properties Dialog Box.

Special Options Description

DesensitizedIndices

This is a list of 1's or 0's in an ICCAP_ARRAY to indicate which buttons in a Radio Box areinsensitive.

NumberRows/Columns

The integer value for the number of rows displayed for a horizontal orientation or thenumber of columns displayed for a vertical orientation. The children will be divided upevenly between the rows/columns.

Orientation Indicates the orientation of the items: Horizontal or Vertical.

Selected Index The index number of the selected item.

Radio Button

Page 45: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

44

Radio buttons are always used in groups.

The default behavior when placed in a Table is Radio Button Behavior in which only onebutton can be selected at a time. When an unselected button is selected the previouslyselected button automatically becomes unselected. The selected one remains visuallydifferent to show the last selection, as shown above left.

When the Table Option Radio Button Behavior is set to FALSE the buttons behave likeCheck boxes and allow multiple sections as shown above right.

Special Options Description

Toggle State Toggles a value between 1 and 0 each time the box is checked.

NoteThe Radio Box widget automatically creates its own buttons which are ROUND. The Radio Button widget isa DIAMOND shaped button.

An & in a Caption for buttons (Radio buttons, Push Buttons, and Check Boxes) will causethe following character to appear with an underscore. This will enable ALT-<char> to actas a shortcut for pressing that button.See Using the Properties Dialog Box.

Scroll Table

Tables are used to organize the placement of widgets into a hierarchy of rows andcolumns, and are usually the first item to be defined in a GUI. The default orientation isvertical.

When widgets are added as children to a vertical table they will be placed one above theother in the same order as listed in the hierarchy in the Model GUI Items page. Horizontaltables may also be added as children to vertical tables.

Scroll tables are like normal tables except the table requires scrollbars to access tableentries beyond the values set by Columns Visible and Visible Rows unless the rest of thedialog can accommodate more space. Setting Columns Visible and Visible Rows to 0 allowsthe table to shrink smaller than the first entry in the table and scrollbars will be shown tosee the entire first entry.

Page 46: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

45

Special Options Description

Allow Resize Permits items in the table to dynamically resize themselves and force the entire dialogto resize to accommodate the change.

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 scrollbarsappear.

Default SizingOptions for children

The sizing options for all members of the table if they don't declare their own sizingoptions.

Equalize All When TRUE all widgets in a table are normalized to the same size. The default isFALSE.

Frame Visible Indicates if a frame is to be visible or not. 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.

NumberRows/Columns

The integer value for the number of rows displayed for a horizontal orientation or thenumber of columns displayed for a vertical orientation. The children will be divided upevenly 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

Separators are purely for cosmetic use and do not handle data.

As a GUI develops and contains more and more widgets the use of horizontal and/orvertical separators helps to keep the widgets and associated text visually organized.

Their positions are determined by the position in the list of siblings.

Special Options Description

Length The integer value for the length (in pixels) of the separator.

See Using the Properties Dialog Box.

Slider

The Slider is an input in which the slider button is selected and dragged by holding downthe left mouse button while it is moved. It has the advantage avoiding typing, and it isfaster than the spin box.

Page 47: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

46

The Option Current Value specifies the slider position as a integer, and a range may beestablished with the Minimum Value and Maximum Value options. The default range is 0 to100.

There are three callbacks.

Slider Moved-Name the Macro/Transform to be executed when the button is released aftera slider has been moved.

Slider Moving-Name the Macro/Transform to be executed while the slider is being movedvia the UI.

Variable Changed-Name the Macro/Transform to be executed whenever the specifiedvariable/parameter changes.

See Using the Properties Dialog Box.

Special Options Description

Current Position The current position of the slider

Maximum Value The maximum allowed value of the position

Minimum Value The minimum allowed value of the position

Spin Box

See Using the Properties Dialog Box.

The Spin Box allows you to change a value by clicking on the increment or decrementbuttons. The advantage is that no typing is required. A minimum and maximum value canbe set so as to keep the number in a useful (predetermined) range.

Scroll down the Options list and select Spin Type.

The choices are Spin Integer (default), Spin Real, Spin Text.

Integer Values

The default Spin Box controls an integer in increments of 1, with minimum and maximumvalues 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 theposition.

Real Values

Set the Spin Type to Spin Real.

For the Option Spin Real set Track Variable on and assign a variable to indicate theposition. The Option Delta Between Real Steps must be set to a finite value. It is usedonly for real values.

Page 48: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

47

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 stringsto be displayed. Items is used only for text strings.

Spin Box Wraps

When set to TRUE (the default) any attempt to increase the value past the maximum willcause it to go to the minimum value, and vice versa. When the limit is reached theappropriate arrow changes from white to grey.

When set to FALSE the value increases to the specified maximum and stays there. Thearrow changes from white to gray (insensitive) to indicate the value has hit the limit.

Split Arrows

This is a styling feature. When set to TRUE the up and down arrows appear on oppositesides of the value display box. On FALSE the will both be to the right.

See Using the Properties Dialog Box.

Special Options Description

Columns The integer value for the number of columns shown.

Delta BetweenReal Steps

Indicates the delta between steps when the spin box is in real mode.

Editable Controls whether the edit field can be modified by the user.

Maximum Value Indicates the maximum value.

Minimum Value Indicates the minimum value.

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/maximumvalue.

Spin Position Indicates where the Spinbox is.

Spin Type Items is only used for Spin Text. Maximum Value, Minimum Value are only used for SpinInteger. Real Value, Delta Between Real Steps are only used for Spin Real.

Split Arrows Indicates whether the arrows should be split.

Spreadsheet Table

The Spreadsheet Table is an array of rows and columns of edit fields. It is much faster andmore manageable than a table with the same number of Edit Text items in it, but is morerestrictive in that it is always regular in shape.

It is usually needed only for very large data in very regular structures. The children willnormally be Edit Text boxes.

The Spreadsheet Table, with its 46 Options, is the most complex of the widgets. It hasthree main regions (see Figure above):

Main area which is an array of cells in rows and columns.Space for the column labels.

Page 49: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

48

Space for the row labels.

The Spreadsheet Table displays a two-dimensional array of data from an ICCAP_ARRAY.The spreadsheet will be automatically sized. The primary index is the number of columnsand the secondary index is the number of rows.

The name of the ICCAP_ARRAY is specified with Widget Properties > Options >Entries.

The iccap_array is actually a linear array of linear arrays.

In the Editing: Entries dialog box select the editing box and enter the name of the array ofdata for the cells, and click on the OK button directly underneath it.

The Option Label Type is typically set to Row and Column Labels. The labels for the rowsand columns are set in ICCAP_ARRAY(s) which are named using the Widget Properties> Options. Select: Row Label Entries and Column Label Entries respectively andspecify the names of ICCAP_ARRRAYS holding the row and column labels.

The Spreadsheet Table may also be used as an input device by setting the option MainArea Cells Editable to TRUE.

See Using the Properties Dialog Box.

Special Options Description

Main Area Options The 2-Dimensional Array Area.

Entries Specifies an ICCAP_ARRAY two dimensional array of entries to show up in thespreadsheet.

Main AreaBackground Color

Indicates the background color that should be used in the main area of the spreadsheet.

Main Area CellAlignment

This resource indicates how the values should be aligned within the cells of the main areaof the spreadsheet.

Main Area CellsEditable

This resource indicates If the cells should be editable in the main area of the spreadsheet.

Main Area CellsTraversable

This resource indicates if focus should move with the keyboard in the main area of thespreadsheet.

Main AreaForeground Color

Indicates the foreground color that should be used in the main area of the spreadsheet.

Main Area GridType

Indicates if gridlines should be used in the main area of the spreadsheet.

Repaint Specify a Variable Table Variable which when set to 0 allows you to make extensivemodifications to the entries in the table without the visual changes. Resetting the variableto 1 will repaint the whole graph with the new values in place.

Resize Rule Specifies the resize rule: No Resize, Horizontal Resize, Vertical Resize, or Horizontal andVertical Resize. Affects every cell in the table.

Label Type Specifies the label type. The default is No Labels. If defining Column Label Entries, setLabel Type to Column Labels or Row And Column Labels. If defining Row Label Entries,set Label Type to Row Labels or Row And Column Labels.

Column AreaOptions

The Column Label Area.

Column LabelEntries

Specifies an ICCAP_ARRAY one dimensional array of labels to show up in the columnheaders. If you specify Column Labels, you must also set Label Type to either ColumnLabels or Row And Column Labels in order for the spreadsheet to display properly.

Column Label CellAlignment

This resource indicates how the values should be aligned within the cells of the main areaof the spreadsheet.

Column Label AreaCells Traversable

This resource indicates if focus should move with the keyboard in the Column Label areaof the spreadsheet

Column Label AreaRow Height

Indicates the height of the spreadsheet column headers.

Column LabelBackground Color

Indicates the background color that should be used in the column label area of thespreadsheet.

Page 50: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

49

Column LabelForeground Color

indicates the foreground color that should be used in the column label area of thespreadsheet.

Column Label GridType

Indicates if gridlines should be used in the column label area of the spreadsheet.

Row AreaOptions

The Row Label Area.

Row Label Entries Specifies an ICCAP_ARRAY one dimensional array of labels to show up in the rowheaders. If you specify Row Labels, you must also set Label Type to either Row Labels orRow And Column Labels in order for the spreadsheet to display properly.

Row Label AreaCells Traversable

This resource indicates if focus should move with the keyboard in the Row Label area ofthe spreadsheet.

Row Label AreaColumn Width

Indicates the width of the spreadsheet row headers.

Row LabelBackground Color

Indicates the background color that should be used in the row label area of thespreadsheet.

Row LabelForeground Color

Indicates the foreground color that should be used in the row label area of thespreadsheet.

Row Label GridType

Indicates if gridlines should be used in the row label area of the spreadsheet.

Column byColumn Options

Set each column individually.

ColumnBackground Colors

Set to 0 for <None Specified>.Set to 1 for Default Color.Set to 2 for Black.Set to 3 for Red ...See Color Table.

Column CellAlignments

This is an ICCAP_ARRAY of attribute codes, one for each column. Press 'Show Codes' andsee 'Main Area Cell Alignment' for valid entries. It is used to set the alignment typeattribute individually for each column.

Column Grid Types Set to 1 for No Grid.Set to 2 for Horizontal Grid.Set to 3 for Vertical Grid.Set to 4 for Horizontal And Vertical Grid.

Columns Editable This has values set to -1, 0, or 1 which indicate whether the corresponding column of thespreadsheet should be editable. -1 indicates that the cell should be whatever is set byMain Area Cells Editable, 0 means not editable, and 1 means editable.

ColumnForeground Colors

This is an ICCAP_ARRAY of attributes, one for each column. It is used to set theforeground color individually for each column.Note, indicating <none specified> means use what is in 'Main Area Foreground Color' ifspecified. Press 'Show Codes' and see 'Main Area Foreground Color' for valid values forthe array entries.

ColumnsTraversable

This is an IC-CAP Array that of values set to 0 or 1 which indicates whether thecorresponding column of the spreadsheet is to be traversable or not.

Column Width This is an ICCAP_ARRAY-- one element for each column. Each entry determines the widthof that column of the cell. Each entry should be an integer between 1 and 200. Thesevalues will not be changed if the user resizes a column.

Row by RowOptions

Set each row individually.

Row Area CellAlignment

This resource indicates how the values should be aligned within the cells of the main areaof the spreadsheet.

Row BackgroundColors

Set to 0 for <None Specified>.Set to 1 for Default Color.Set to 2 for Black.Set to 3 for Red ...See Color Table.

Row CellAlignments

Set to 0 for <None Specified>.Set to 1 for Left Alignment.Set to 2 for Right Alignment.Set to 3 for Center Alignment.

Row ForegroundColors

Set to 0 for <None Specified>.Set to 1 for Default Color.Set to 2 for Black.Set to 3 for Red ...See Color Table.

Page 51: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

50

Row Grid Types Set to 1 for No Grid.Set to 2 for Horizontal Grid.Set to 3 for Vertical Grid.Set to 4 for Horizontal And Vertical Grid.

Row Height This is an ICCAP_ARRAY-- one element for each row. Each entry determines the height ofthat row of the cell. Each entry should be an integer between 1 and 20. These values willnot change if the user resizes a row.

Row Span Indicates how many rows this widget should span in a table.Note, a dummy table must be placed at the cell(s) of the table that will be overlapped.

Rows Editable This has values set to -1, 0, or 1 which indicate whether the corresponding row of thespreadsheet should be editable.-1 indicates that the cell should be whatever is set by Main Area Cells Editable, 0 meansnot editable, and 1 means editable.

Rows Traversable This is an IC-CAP Array that of values set to 0 or 1 which indicates whether thecorresponding row of the spreadsheet is to be traversable or not.

See Using the Properties Dialog Box.

Color Table

Page 52: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

51

Set to D for <None Specified> Set to C36 for VIOLET_RED

Set to C0 for Default Color Set to C37 for DARK_ORCHID

Set to C1 for Black Set to C38 for SNOW1

Set to C2 for Red Set to C39 for SNOW2

Set to C3 for Yellow Set to C40 for ANTIQUE_WHITE1

Set to C4 for GREEN Set to C41 for LEMON_CHIFFON1

Set to C5 for CYAN Set to C42 for IVORY1

Set to C6 for BLUE Set to C43 for HONEYDEW1

Set to C7 for MAGENTA Set to C44 for LAVENDER_BLUSH1

Set to C8 for GRAY Set to C45 for LAVENDER_BLUSH2

Set to C9 for WHITE Set to C46 for MISTY_ROSE1

Set to C10 for MEDIUM BLUE Set to C47 for MISTY_ROSE2

Set to C11 for DARK_SLATE_GRAY Set to C48 for AZURE1

Set to C12 for DIM_GREY Set to C50 for AZURE2

Set to C13 for SLATE_GREY Set to C51 for DODGER_BLUE2

Set to C14 for MIDNIGHT_BLUE Set to C52 for STEEL_BLUE1

Set to C15 for NAVY_BLUE Set to C53 for DEEP_SKY_BLUE1

Set to C16 for DARK_SLATE_BLUE Set to C54 for SKY_BLUE_1

Set to C17 for SLATE_BLUE Set to C55 for LIGHT_SKY_BLUE1

Set to C18 for MEDIUM_SLATE_BLUE Set to C56 for SLATE_GRAY2

Set to C19 for ROYAL_BLUE Set to C57 for LIGHT_STEEL_BLUE1

Set to C20 for DODGER_BLUE Set to C58 for LIGHT_BLUE1

Set to C21 for STEEL_BLUE Set to C60 for LIGHT_CYAN1

Set to C22 for DARK_GREEN Set to C61 for PALE_TURQUOISE1

Set to C23 for DARK_OLIVE_GREEN Set to C62 for CADET_BLUE

Set to C24 for SEA_GREEN Set to C63 for CADET_BLUE2

Set to C25 for FOREST_GREEN Set to C64 for TURQUOISE1

Set to C26 for OLIVE_DRAB Set to C65 for CYAN1

Set to C27 for INDIAN_RED Set to C66 for DARK_SLATE_GRAY1

Set to C29 for SIENNA Set to C67 for AQUAMARINE2

Set to C30 for FIRE_BRICK Set to C68 for DARK_SEA_GREEN1

Set to C31 for BROWN Set to C69 for DARK_SEA_GREEN2

Set to C28 for SADDLE_BROWN Set to C70 for SEA_GREEN1

Set to C32 for ORANGE_RED Set to C71 for PALE_GREEN1

Set to C33 for DEEP_PINK Set to C72 for SPRING_GREEN1

Set to C34 for MAROON Set to C73 for GREEN1

Set to C35 for MEDIUM_VIOLET_RED Set to C74 for CHARTREUSE1

Set to C75 for OLIVE_DRAB1 Set to C90 for DEEP_PINK1

Set to C76 for DARK_OLIVE_GREEN1 Set to C91 for HOT_PINK1

Set to C77 for KHAKI1 Set to C92 for PINK1

Set to C78 for LIGHT_GOLDENROD1 Set to C93 for LIGHT_PINK1

Set to C79 for YELLOW1 Set to C94 for PALE_VIOLET_RED1

Set to C80for GOLD1 Set to C95 for MAROON1

Set to C81 for GOLDENROD1 Set to C96 for VIOLET_RED1

Set to C82 for SIENNA2 Set to C97 for MAGENTA1

Set to C83 for WHEAT2 Set to C98 for ORCHID1

Set to C84 for CHOCOLATE1 Set to C99 for PLUM1

Set to C85 for BROWN1 Set to C100 for THISTLE1

Set to C86 for LIGHT_SALMON1 Set to C101 for GRAY52

Set to C87 for ORANGE1 Set to C102 for GRAY62

Set to C88 for CORAL2 Set to C103 for GRAY72

Set to C89 for RED2 Set to C104 for GRAY82

Page 53: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

52

(Tab) Tabbed Folder

The GUI Item Tab creates a folder of overlapping pages with non-overlapping tabs oneach page. When a tab is selected, its page comes to the top of the stack.

The folder is named with

Properties > Tab > Options > Caption

Pages are added as children to the Tabbed folder using

Add Child... > Widget Properties > Select Type > Page

The caption on the tab of each page is set with Tab > Caption.

On each page you can add (as a child) unlimited text (including carriage returns) as

A Label which will produce read-only (uneditable) textAn Edit Text Box which produces editable text in a scrolling Edit Text box.

NoteOn UNIX platforms, some widgets on Tabbed-folder pages may not appear properly. To avoid thispotential problem, place your content within a single Table widget (it can have 0 margin width and 0margin height) inside the page. For example, instead of placing 4 widgets on a page, place a singletable on a page, then place the 4 widgets inside the table.On Window platforms, you should also place your content within a single Table widget inside thepage just in case the mdl is ever used on a UNIX platform.

NoteAny combination of widgets can also be entered on a page so as to produce a folder of GUIs.

SpecialOptions

Description

CurrentPage

Indicates the initial page to display when an integer is set. If tracking a variable, the variable isupdated with each page change to reflect the currently selected page.

FrameVisible

Indicates if a frame is to be visible or not. The default is FALSE.

MarginHeight

The integer value for the number of pixels of margin at the top of the table.

MarginWidth

The integer value for the number of pixels of margin at the sides of the table.

PageChange OK

Set to 1 just before a page change. The Page Validation callback is then invoked. If you set thisoption to track a variable, you may set it to 0 during the Page Validation callback to prevent apage change.

Callbacks Description

PageChanged

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.

PageValidation

Invoked before a page is changed. Prior to invocation, Page Change OK is set to 1 if a variable isbeing tracked. Set this variable to 0 during the callback if the page change should not occur.

See Using the Properties Dialog Box.

Page 54: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

53

Table

Tables are used to organize the placement of widgets into a hierarchy of rows andcolumns, and are usually the first item to be defined in a GUI. The default orientation isvertical.

When widgets are added as children to a vertical table they will be placed one above theother in the same order as listed in the hierarchy in the Model GUI Items page. Horizontaltables may also be added as children to vertical tables.

Widgets are then added as children in the horizontal tables. Tables may be nested withinother tables without limit to organize a complex hierarch of input and output devices.

See tutorial More on Tables (Examples).

The Diode Extraction Demonstration is a good example.

Special Options Description

Allow Resize Permits items in a Table to dynamically resize themselves and force the entire dialog toresize to accommodate the change. Note that all tables in the hierarchy must be set toAllow Resize for the resizing to propagate all the way to the main dialog.

Default SizingOptions for children

The sizing options for all members of the table if they don't declare their own sizingoptions.

Equalize All When TRUE all widgets in a table are normalized to the same size. The default is FALSE.

Frame Visible Indicates if a frame is to be visible of not. The default is FALSE unless there is aCaption.

Margin Height andMargin Width

The integer value for the number of pixels of margin at the sides and top of the table.

NumberRows/Columns

The integer value for the number of rows displayed for a horizontal orientation or thenumber of columns displayed for a vertical orientation. The children will be divided upevenly between the rows/columns.

Row and ColumnSpacing

Indicates how many pixels of spacing between rows or columns.

Use Radio Behavior When this is TRUE only one radio button in the table may be selected at a time.

See Using the Properties Dialog Box.

OnLine BriefingThe following pages may also be viewed on line. We suggest you addICCAP_VIEW_GUI_PAGES=1 to the configuration file iccap.cfg. This ensures that the GUIModel Pages tab is always present. Open the model file gui_tutorial.mdl located in theexamples/iccap_studio directory.

Page 55: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

54

Page 56: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

55

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

The above forms require that you provide a third argument, which is a unique name forthat instance of the dialog. In this way you can raise three identical dialogs if it makessense to do so.

iccap_func("/mdl/dut/orSet/GuiName","Display Single Modal GUI")

iccap_func("/mdl/dut/orSet/GuiName","Display Single Modeless GUI")

These forms don't require a name, and thus you can only show the dialog once using thiscommand. It's useful for callbacks-see the properties for the Wizard GUI Item's Cancelbutton in the gui_tutorial.mdl.

Auto Execute Feature

If you name a macro AutoExecute, it will run when the icon is double clicked on the mainwindow. The normal Model window will not open. To open the normal Model window,select File > Edit... or right click on the icon and choose Edit... If an AutoExecute macro isnot declared, double clicking the icon opens the Model window as usual. You can create anAutoExecute Dialog that creates a particular GUI. This alternate GUI could allow anextraction to be preformed without opening the model file. The following example shows asimple 2 line AutoExecute macro that first calls a transform in a particular setup, whichresets the controlling flags of the GUI to a known state, then it displays a modeless dialog.

iccap_func("/mdl/dut/setup/resetGUI","Execute")

! restore known state

Page 57: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

56

iccap_func("/mdl/dut/setup/GuiName","Display Modeless GUI","your GUI name here")

For additional examples, see gui_tutorial.mdl or gui_demo.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 isreacting to modifications to the variables page, etc. Recalling Display afteryou've closed simply redisplays the dialog and is very fast.

Destroy GUI actually frees the memory associated with the dialog and the nextDisplay needs to build the entire dialog again.

Automating GUI Items

Adding Items

You may add items to a GUI page via iccap_func on either the GUI Items page, or anotherGUI item. Two additional parameters are required to name the item and to declare theitem'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 forall 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 GUIOptions 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 theform <code>=<val>. Code is the associated code for the option as found by pressingShow Codes on the properties dialog. The <val> can be one of four forms.

A literal

<val> may be a string, or a number

A Variable Changed

If the first character after the equal sign is a %, the value is taken to track avariable by the given name.

An Enumerated type code

Many options have enumerated types such as list selection mode. Each of thesepossible values has an associated code which can be viewed on the propertiesdialog.

Multiple Enumerated types

Some options (sizing options, for example) allow multiple enumerated types tobe set (fixed width and fixed height). These are indicated by specifying |.

Page 58: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

57

Examples:

iccap_func("./someItem","Set GUI Options","OR=HO","CA="title","")

iccap_func("./some.other.item","Set GUI Options","TO=FW|FH","")

Setting Callbacks

You may set a callback on a GUI item by using the action Set GUI Callback. This actionrequires three other arguments. The first is the code for the callback. The second andthird extra argument are the two parameters to the callbacks associated iccap_func().

Example:

iccap_func("./someItem","Set GUI Callback","AC","aMacro","Execute)

Data Input Slider (Example)This example shows the use of the Widget Properties dialog box to create a small GUI withtwo linked input/output items in it.

In the main window click Tab Model Gui Items. A menu of GUI manipulation commandsappears at the left.

To start a new GUI from the left menu Select Add...

A large dialog box is displayed titled Widget Properties.

In the Name: box edit the default name UntitledChild, changing it to topFrame.

From the Select Type box pick Table from the dropdown list.

Once a widget type has been chosen an Options list appears.

Page 59: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

58

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:

Click on the text to select it.

Select Display...

An empty table captioned Slider appears.

We will now add a slider and a value display to the GUI.

With the text in the main window still selected, click Add Child...

The Widget Properties box appears.

Edit the Name to Slider.

Page 60: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

59

Click the button in the Select Type box and select Slider.

From the Options list select Current Position.

In the Editing: Current Position panel click the Track Variable box.

Click on the Variable box and enter sliderVal and OK in the box under it.

Click OK in the bottom left box.

The text in the main window will now look like this:

Note the node symbol which indicates that there is now hierarchy in the GUI.

Click on the node. It will rotate, and the contents will be shown.

Before the slider can communicate its Current Position in the variable we named sliderVal,this variable has to be declared to the system.

In this example we will do it by clicking on the Model Variables tab. A table, probablyempty will appear. On the name side type sliderVal.

Note that a value for sliderVal appears automatically.

Now click the Model GUI Items tab.

Select the top level item Slider (Horizontal Table...

Click Add Child...

The Widget Properties dialog box appears again.

In the Select Type box click Edit Text.

Edit Name to Show Value.

Select Field Value in the Options list, set Track Variable, and set the variable name tosliderVal, and click OK directly underneath it.

The slider GUI now looks as shown below.

Page 61: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

60

NoteWhen the slider is moved, the numerical value displayed changes. Also, when the number is edited, theslider position moves in response, acting as an output device.

More on Tables (Examples)To keep the tabs less cluttered IC-CAP, by default, does not display the GUI Items tab.

To make the tab visible, from the ICCAP/Main Window, choose the menu pick Tools >Options > View GUI Pages. Then when you open a new model (or close and reopen theModel window of a previously loaded model) you will see a GUI Items page at the Modellevel, DUT level, and Setup level.

Captions, Frames and Sizing

The following examples are taken from the Wizard. You can follow them both with thisdocumentation or by showing them through IC-CAP.

In the following figure, the path to each of the three tables that control the style areshown at the bottom.

Page 62: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

61

In the examples below display the following window, and then stretch it vertically andhorizontally to really see the affect of the options.

Page 63: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

62

Rows and Columns within Tables

The figure below shows the tree for six Push Buttons added to a Table.

Page 64: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

63

The resultant set of buttons can take many forms. In the figure below the Option NumberRows/Columns is at the default value of 1. The left set of buttons has the defaultOrientation of Vertical, the right is Horizontal.

There is no limit to the number of items in a row or column unless it is set with theNumber Rows/Columns option set to a value greater than one as shown below. The sixbuttons are divided between two columns (left) and three rows (right).

Yet another ordering is shown below.

The use of multiple rows or columns is simple and flexible. It works best with items whichare all the same. The problems are when items are added or removed as the GUI isdeveloped causing the number of items to be no longer exactly divisible by the number ofrows or columns.

Enclose

Page 65: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

64

The hierarchy of tables nested within tables controls the relative placements of all thewidgets in a GUI. If we need to add more widgets in new places not permitted by thecurrent hierarchy of place holders then we need to insert a new level into the overallhierarchy. This is what the Enclose command does.

For example we have a vertical table called buttonTable which contains three Push Buttonsin a vertical column.

We wish to add three sliders but a six-high column of items would be too tall to fit withinthe GUI layout. What we want is to place the three new items in a vertical column to theright of the existing column, but there is no place-holder for them.

On the Model GUI Page tab select buttonTable and click on Enclose.

You will see that a new table with the default name Newtable has been inserted into thehierarchy as a new level, and that buttonTable is nested in it. (At this point the displays ofNewtable and buttonTable are identical.)

Newtable has the default orientation of Vertical so we select it and click Properties so wecan change the orientation to Horizontal.

Back in the Model GUI Items we now select Newtable and click on Add Child....

In the Widget Properties dialog select Table and name it, for example sliderTable.

Back in the Model GUI Items select sliderTable and click on Add Child...

In the Widget Properties dialog select Slider.

Repeat this step two more times and we now have two 3-high columns, one of Push Buttons and the other of Sliders, as shown below.

Page 66: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

65

The Enclose command gave you two advantages.

You can change your mind during the development of the GUI and add a new level ofhierarchy.The buttons and sliders are now in separate Tables. If you change the number ineither table there will be no overflow from one to the other as would happen with asingle table split into rows and columns.

Viewing Pages Sequentially (Example)Explore the Wizard tree by setting all the node symbols downward so as to show theentire hierarchy. It should look like this:

The Wizard (Vertical Table) contains ClientArea (Vertical Table) and ButtonArea (VerticalTable). Both of these can be selected by clicking on them and then clicking on Display...

In ClientArea there are six tables each containing an Edit Text item. If you double-click onany Text item you will see in the Properties dialog box that the Field Variable is set to aspecific member of the ICCAP_ARRAY wizText which stores the contents of each page. The

Page 67: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

66

index into wizText is one less than the page number.

So why are not all six pages displayed simultaneously?

You can see the answer by double-clicking on the parent Table of each Edit Text item. Youwill see in the Properties dialog box that Managed is controlled by the array wizPage.

wizPage is an array of flags.Only one of the flags is TRUE.Only the page with the TRUE flag is managed (i.e. visible).The rest are not visible and have zero size.The macro showPage manages the wizPage flag array

NoteClick on the Model Variables tab to see the contents of the wizPage array.

It will normally have only one member set to 1 (TRUE). If you edit it as shown here with threemembers set to 1, and then select and display the wizard it will show three pages instead of one!

In the ButtonArea are the three buttons that appear at the bottom of the Wizard. Thenested table scheme is simply to keep the Next and Back buttons next to each other atthe right, and the Cancel button separate at the left.

Macros started by Push Buttons

Click on the Next (Push Button) at the bottom of the tree. In the Properties dialog boxunder Callbacks you will see Button Pressed (iccap_funct("nextWizard","Execute")). This simply means that the Next button calls the macro nextWizard. Similarly the Backbutton calls the macro backupWizard.

You can see the text of these macros by clicking on the Macros tab and selectingnextWizard and backupWiizard under the Select Macro: header.

As you can see these macros increase and decrease respectively the current pagenumber, then they call the macro showPage.

The macro showPage

Keeps the page number within the number of pages.Sets the flags backSense and nextSense when the ends of the range are reached.

The flags backSense and nextSense control the greying out of the paging buttons whenthe limit has been reached. See the greyed and 'insensitive' Back button in the Figureabove.

For the Next and Back buttons, look on the Properties dialog for Sensitivity which controlswhether an item is disabled (insensitive), or if it is responding normally. They appear asSensitivity (Variable nextSense) and Sensitivity (Variable backSense).

Viewing Pages at Random (Example)

Page 68: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

67

The easiest way is to add Pages to a Tab. The text on each page is added as a Label. AGUI example is shown below:

The structure of the 3-page Tabbed Folder is shown below:

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:

Display the top level. This is how the GUI looks:

Try to make it work and you get error messages because the buttons are not linked toanything. It won't even display a value. We will now fix that.

We need to create a variable:

Click on the Model Variables tab. The page will show an empty table.1.In the Name field type n and in the Value field type 0, the initial value.2.

Now we link the variable n to the Monitor (Edit Text) box:

Page 69: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

68

Click on the Model GUI Items tab and select the item Monitor (Edit Text).1.Double-click it to bring up the Properties dialog.2.In the Options list click on Field Value.3.In the Edit dialog (at the right) click on Track Variable.4.Click on the Variable box, and type n, the click on the Apply box underneath.5.The Field Value will now be displayed as Field Value (Variable n).6.The Edit Text box is now linked to the variable n.7.Click on the bottom left OK button.8.

We now create macros to execute when the buttons are pressed:

Click on the Macros tab.1.Click on New from the left menu.2.In the dialog box type the macro name reset, and click OK.3.Under the Select Macro: heading click on reset.4.In the blank page on the right type n = 0.5.This is the contents of the macro named reset.Now create two more macros:6.countUp contains the text: n = n + 1countDown contains the text: n = n - 1

We now link the buttons to the macros:

Click on the Model GUI Items tab.1.Double-click the countUp push button in the tree.2.In the Properties dialog, under Callbacks, click on Button Pressed.3.In the Edit dialog enter4.

The macro name countUp as the first argument.The action Execute as the second argument.

Click on Apply underneath.5.The callback will now showButton Pressed (iccap funct("countUp","Execute"))Repeat this for the other two buttons, linking them to the macros with the same6.names.

The counter will now count up, count down and reset:

Adding a Caption to the Unix Window (Example)To add a caption (i.e. an instance name) to the Unix window, such as "Tabbed Folder" inthe example below you have to launch the GUI through a macro with iccap_func(). Thiswill replace the default caption "User Displayed Dialog".

The macro can have any name of course and contains an iccap_func() call such as

Page 70: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

69

iccap_func("./RandomAccess","Display Modal GUI","Tabbed Folder")

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.

More on Sliders (Examples) Review of Key Features of the Slider

The Slider operates both as an input and an output device. When the valuerepresenting the slider position is changed, the slider position moves accordingly.The Slider has no output device of its own for numbers. You would typically use anEdit Text box (for editable numbers) or a Label for read-only numbers.The output is an integer.The default min/max range is 0 to 100. The minimum value is 0 or greater, and themaximum value is unlimited.

Six Versions of a Slider GUI (slider.mdl)

SliderVersion1 uses the default settings. The range is 0 to 100 in steps of 1.

The slider option Current Position shares the variable slidePosn with the Edit Text Boxoption Field Value.

To operate SliderVersion1:

Select SliderVersion1 and click on Display.1.Drag the slider button back and forth between its limits. Notice how smoothly it2.moves. Actually, it moves 2 inches in 100 steps of 0.02 inches.Edit the number in the text box. When Enter is pressed note how the slider position3.responds to the edited value. Click on the Model Variables tab. You will see thevalue of slidePosn responding to our GUI.When you edit the value of slidePosn in the Model Variables table and then press4.Enter, you will see both the slider position and the number in the edit box change inresponse.

SliderVersion2 has the slider Minimum and Maximum values set to 50 and 60 respectively.

To operate SliderVersion2:

Select SliderVersion2 and click on Display.1.Drag the slider button back and forth between its limits.2.Notice how jerkily it moves. Actually, it moves 2 inches in 10 steps of 0.2 inches.3.The values of slidePosn can only be changed in increments of 1 (a coarse resolution

Page 71: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

70

of 10%).

SliderVersion3 has the slider Minimum and Maximum values set to 5 and 6 respectively.

To operate SliderVersion3:

Select SliderVersion3 and click on Display.1.Drag the slider button back and forth between its limits. Notice how it jumps back2.and forth between 5 and 6. Actually, it moves 2 inches in a single step without beingable to stop in between.The values of slidePosn can only be changed by an increment of 1 (a coarseresolution of 100%).

SliderVersion4 has the slider Minimum and Maximum reset to the default values of 0 and100.

To operate SliderVersion4:

Select SliderVersion4 and click on Display.1.Drag the slider button back and forth between its limits. Notice how smoothly it2.moves again (back to the previous 2 inches in 100 steps of 0.02 inches).The value of the new variable displayVal displayed in the Edit box is now calculated3.from the value of slidePosn by PEL code in a macro called sliderMoved. Click on theMacros tab to see the calculation:displayVal=5.0+slidePosn/100

Look at the Properties dialog for the slider Callbacks. We are using the Slider Movingcallback to call the Macro sliderMoved. Click on the Slider Moving callback. In the righthand callback editing dialog sliderMoved is shown as the "Item to act on", and Execute asthe "action" to take.

As long as the slider is moving, the new value of slidePosn keeps changing in incrementsof 1 and the callback Slider Moving executes the sliderMoved macro which updatesdisplayVal, which in turn automatically updates the number displayed in the Edit box.

But notice that editing the value of slidePosn in the Variables table has no effect on thevalue displayed in the Edit box. Similarly, editing the value of displayVal in the Variablestable has no effect on the slider's position. This situation is corrected in SliderVersion5.

Look at the Properties dialog for the Edit Text box. The callback Variable Changed is usedto call the macro valChanged. Click on the Macros tab to see the calculation:

slidePosn=(displayVal-5.0) * 100

This macro recalculates the value of slidePosn any time displayVal changes. Now if aprocess changes the value of displayVal, the position of the slider will be automaticallyupdated.

The calling of the valChanged macro is not associated with the Edit Text box but with thevalue of displayVal changing-for any reason.

To view a demonstration of this, see sliderVersion6.

The Variable Changed callback is now in the Slider callbacks, instead of the Edit Textcallbacks where we first put it. You could also put the Variable changed callback in theenclosing Table. But wherever you put it, you only need it in one place.

Page 72: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

71

NoteThe callback Variable Changed is associated with the variable it tracks, not the widget where it isspecified.The Variable Changed callback is so useful for making smooth working GUIs that we made it available, foryour convenience, on every single widget.

Random Numbers (Example)The random numbers example model is an example of a setup with a custom GUI thatdemonstrates how to use IC-CAP PEL functions to generate random numbers.

The random numbers example model file is located in the product directory:

${ICCAP_ROOT}/model_files/misc/random_example.mdl

After you load the example model file, double-click on the Random model icon (by defaultthe model is in AutoExecute mode) to display the following windows:

Random Numbers WindowRandom Histogram Plot

Random Numbers Window

The Random Numbers window includes the following three sections that you caninteractively modify by selecting either a fixed seed or varying seed value (seed =val(system$("date +%s"))) push buttons...):

Using Function 'random'Using Function 'rand_flat' (uses function rand_seed() initially)Using Function 'rand_gauss' (uses function rand_seed() initially)

Random Histogram Plot

Depending upon which push buttons you select in the Random Numbers window, you can

Page 73: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

72

interactively modify the random histogram plot (randPlot).

Details about how this example works:

To create your own IC-CAP graphical user interface (GUI) items or see how the1.existing model's GUI items were created, you need to do one of the following beforeloading your IC-CAP *.mdl:

From the IC-CAP/Main window, select Tools > Options > View GUI Pages.Or if you plan to do a lot of IC-CAP GUI programming you can add theICCAP_VIEW_GUI_PAGES=1 variable to your iccap.cfg file.

Load the random_example.mdl example model file into IC-CAP 2006B (or greater)2.Main window, then right-click and select Edit.If you go to the example model file's Macros tab, you will see that the following3.random/random DUT Setup's transform, plot, and custom GUI get invoked when youfirst AutoExecute the example random model.The following shows the example's Macros tab defining the AutoExecute macro:

The heart of this example is the random/random DUTs-Setups' PEL transform called4.random_data. Depending upon which buttons you select in the custom GUI window,the following key PEL functions can be executed:

Using function random :

return random(42)

return random(val(system$("date +%s")))

Using function rand_flat or rand_gauss :

x=rand_seed(42)

or

x=rand_seed(val(system$("date +%s")))

i=0

Page 74: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

73

while i < size(X)

if randType=="rand_flat" then

nums[i]=rand_flat()

endif

if randType=="rand_gauss" then

nums[i]=rand_gauss(gaussMean, gaussSigma)

endif

i=i+1

endwhile

return nums

The random/random DUTs-Setups' Plots tab defines the histogram plot that will be5.used with the custom GUI (Note: Data-set is set to random_data transform results;Header is set on the fly based upon which button you select).Finally, the random/random DUTs-Setups' Setup GUI Items tab shows how the6.custom GUI window was constructed. Notice that all the Push Button GUI items aredefined to have a Button Pressed Callback action to execute the random_datatransform via an iccap_func() statement.

Adding an Interface NameTo add an interface name to the list, click Add Interface. In the dialog box that appears,supply the interface filename. An interface card by that name should have been previouslyinstalled. When you choose OK, the existence of a card by that name is verified.

For information about installing and configuring an interface card, see Check theSupported Instrument Interfaces for Windows installations (winstall) or Check theSupported Instrument Interfaces for UNIX installations (uinstall).

Deleting an Interface Name

To delete an interface filename from the list, select the interface name and click DeleteInterface.

Creating the List of Active Instruments

The Instrument List potentially displays all instruments attached to the GPIB bus. Once onthe list, you can configure each instrument to set the address and assign unit names. Youcan create this list automatically or manually.

To create the Instrument List automatically: Click Rebuild. This clears the current Instrument List, polls all available GPIBaddresses. and creates a complete list of instruments connected to the GPIB bus,providing they are powered up. To Create the Instrument List Manually: Select the instrument name and click Add to List. This enables you to create a list ofinstruments that are not necessarily currently powered up or connected to the bus.

Deleting an Instrument from the Instrument List

To delete an individual instrument from the list, select it and click Delete. You can deletean instrument any time, regardless of its power status.

NoteTo save instrument options before deleting instruments from the list, with the Instrument Options folderactive, choose File > Save As. Select Instrument Options (.iot), set the path and filename as desired,and click OK.

Deleting All Instruments from the List

Page 75: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

74

To delete all instruments from the Instrument List, click Delete All. A confirmation dialogbox appears to confirm this operation because all instrument options will also be removed.

NoteTo save instrument options before deleting instruments from the list, with the Instrument Options folderactive, 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 assignunit names, select that instrument and click Configure.

Interface

Reflects the names of any interface files added in the Hardware Setup window. Select oneto 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.

NoteAfter assigning unit names here, specify those same names for the inputs and outputs (in theMeasure/Simulate folder) as needed.

Page 76: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

75

Controlling IC-CAP from AnotherApplicationOther applications written in the C or C++ programming language can control IC-CAP viaa library provided by IC-CAP. The library, libiclinklibs.a, consists of 6 function calls whichenable the application to launch IC-CAP and communicate with it through an IPC (Inter-Process Communication) link.

The library allows the C application to send arbitrary PEL code to IC-CAP. The PEL code isthen executed within IC-CAP. The context of the PEL code is 1 level above the macros in aModel. Therefore, the only variables available to the PEL code are the top-level SystemVariables. To see these variables, open the System Variables window using the menuTools > System Variables in IC-CAP's Main window.

The library libiclinklibs.a contains the following calls:

int launch_iccap(const char *appName,const char *host,

const char *iccapRoot,const char *altPath)

int initialize_session()

int terminate_session()

int send_map(int *map, int length)

int send_PEL(const char *PELText,

int wait,

char **errMsg,

LinkReturnFuncT retfunc);

int get_PEL_response(char **errMsg, LinkReturnFuncT retfunc);

Compiling Using the LibraryOther files provided by IC-CAP to establish an IPC link include the following:

Platforms File Names

Solaris $ICCAP_ROOT/src/iclinklib.h

Solaris $ICCAP_ROOT/lib/sol2x/libiclinklibs.a$ICCAP_ROOT/lib/sol2x/libiclinklib.so

NoteIn IC-CAP 2004, the name of the static library changed from libiclinklib.a to libiclinklibs.a.

To compile your application with the static library, add -liclinklibs to the compilecommand along with -L$ICCAP_ROOT/lib/<pltfm> -liclinklibs where <pltfm> is sol2xor hpux10. In general, the static library (libiclinklibs.a) will be sufficient, but if you want touse the shared version (libiclinklib.sl or libiclinklib.so), it is also provided. To compile yourapplication with the shared library, add -liclinklib to the compile command along with -L$ICCAP_ROOT/lib/<pltfm> -liclinklib where <pltfm> is sol2x or hpux10. For the Suncompiler, use the -Bstatic or -Bdynamic option to choose between the 2 libraries.

Solaris Examples

To use the static iclinklibs library, and use shared libraries for all others (libc, etc.):

cc program.c -L$ICCAP_ROOT/lib/sol2x -Bstatic -liclinklibs -Bdynamic

To use static libraries for everything:

cc program.c -L$ICCAP_ROOT/lib/sol2x -Bstatic -liclinklibs

To use shared libraries for everything:

cc program.c -L$ICCAP_ROOT/lib/sol2x -Bdynamic -liclinklib

Page 77: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

76

or

cc program.c -L$ICCAP_ROOT/lib/sol2x -liclinklib

Details of Function CallsThis section describes each function call available in the libiclinklibs.a library. Thedescriptions include available arguments, and the results returned, including error codes.

For an example of each function call, see the IC-CAP IPC Link example program ($ICCAP_ROOT/src/ipcexample.c). This example program takes control of IC-CAP. It thensends PEL commands to access variables and datasets in an npn model, performs a time-consuming task, and sends a pin mapping to IC-CAP and then accesses it.

launch_iccap

int launch_iccap(const char *appName, const char *host, const char *iccapRoot,

const char *altPath)

launch_iccap invokes IC-CAP with the IPC link in place.

appName declares the name of the invoking program. This name cannot contain anyspaces. This name will appear in the interactive dialog selector in IC-CAP as well as withina menu. If appName is NULL or the null string, the default link name will beUnnamed_Link.

host specifies the host's name on which to run. If this string is not NULL, and if gethostentmatches this host with gethostbyname(), then no remsh or rsh is used. If host is not NULL(or null string), and it returns a hostent with gethostbyname, then remsh or rsh will beused to invoke IC-CAP.

iccapRoot is the path to where IC-CAP has been installed on the machine on which it is torun. If iccapRoot is NULL, it is assumed that ICCAP_ROOT is or will be set in theenvironment and that $ICCAP_ROOT/bin is already in the path.

altPath identifies a different path. Ordinarily, $ICCAP_ROOT/bin/iccap is used to invokeIC-CAP. Users often place a wrapper around this script to set up ICCAP_ROOT andLM_LICENSE_FILE. If this is the case, the alternate script can be named in this argument.

Returns

launch_iccap returns 0 if successful, or the following error codes:

-1 - Unable to determine current host.-2 - Unable to fork.

initialize_session()

int initialize_session()

initialize_session attempts to gain control of the current IC-CAP session. Once initialized,PEL calls can be sent. IC-CAP is placed in a special mode on success of this call which willnot raise any error dialogs. It also actively listens for calls from the link.

Returns

initialize_session() returns 0 if successful, or one of the following error codes:

-1 - IC-CAP is being used interactively. Message should be presented to user inthis case telling them to set IC-CAP for Linked Mode.

Page 78: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

77

-2 - General Communications Failure. IC-CAP is not responding as expected.The link has been broken.-3 - The session is already running, and waiting for a PEL response from a priorsend_PEL with wait ==0. get_PEL_response must be called.

terminate_session()

int terminate_session()

terminate_session relinquishes control of IC-CAP. This enables you to interactively use IC-CAP.

Returns

terminate_session() returns 0 if successful, or one of the following error codes:

-1 - Indicates that IC-CAP is in interactive mode.-2 - Indicates a communications failure. When -2 is returned, the link is broken.-3 - The session can't be terminated. Waiting for a PEL response from a priorsend_PEL with wait ==0. get_PEL_response must be called.

send_PEL

int send_PEL(const char *PELText, int wait, char **errMsg, LinkReturnFuncT

retfunc)

send_PEL sends PELText across the link to be executed within IC-CAP. initialize_session()must have been called successfully prior to this working. The text can be multiline or asingle line of code. Each call to send_PEL essentially begins a new macro, so temporaryvariables within text will not persist between send_PEL calls. However, temporaryvariables can be used within multiline PELText. PELText should be null terminated.

wait specifies if send_PEL should wait for the PEL to finish before returning. If wait isnonzero, send_PEL will wait. If wait is 0, send_PEL will return immediately upon sendingthe PEL text to IC-CAP. The caller must then, at a later time, call get_PEL_response() towait for the call to complete and collect the return status. See get_PEL_response.

If errMsg is not NULL and a PEL error occurs (noted by return of -3), it will be set to pointto an error message returned from IC-CAP. The message will be a null terminated stringand must be freed with free(). No memory is allocated if NULL is passed to send_PEL, or ifno error occurs. errMsg is only meaningful when -3 is returned.

retfunc points to a function of type LinkReturnFuncT. This function will be invokedwhenever IC-CAP calls one of the functions ICMSchar, ICMSint, ICMSreal, ICMSstr, orICMSarray. The one argument to this function is a pointer to a LinkReturnS structure asshown in the following statement:

typedef int (*LinkReturnFuncT)(struct LinkReturnS *);

For details about the structure, see Details of the LinkReturnS Structure.

Returns

send_PEL() returns 0 if successful, or one of the following error codes:

-1 - Indicates that IC-CAP is in interactive mode.-2 - Indicates a communications failure. When -2 is returned, the link is broken.-3 - PEL was executed, but an IC-CAP error occurred. Check errMsg for details.-4 - PEL could not be sent, because there is a pending response caused by aprior send_PEL with wait ==0.

Page 79: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

78

get_PEL_response

int get_PEL_response(char **errMsg, LinkReturnFuncT retfunc)

get_PEL_response waits PEL from a prior send_PEL (with wait ==0) to complete.

If errMsg is not NULL and a PEL error occurred (error code -3), it will be set to point to anerror message returned from IC-CAP. The message will be a null terminated string andmust be freed with free(). No memory will be allocated if NULL is passed to send_PEL, orif no error occurs. errMsg is only meaningful when -3 is returned.

retfunc points to a function of type LinkReturnFuncT. This function is invoked when IC-CAPcalls one of the functions ICMSchar, ICMSint, ICMSreal, ICMSstr, or ICMSarray. The oneargument to this function is a pointer to a LinkReturnS structure as shown in the followingstatement:

typedef int (*LinkReturnFuncT)(struct LinkReturnS *);

For details about the structure, see Details of the LinkReturnS Structure.

Returns

get_PEL_response() returns 0 if successful, or one of the following error codes:

-1 - Indicates that IC-CAP is in interactive mode.-2 - Indicates a communications failure. When -2 is returned, the link is broken.-3 - PEL was executed, but an IC-CAP error occurred. Check errMsg for details.-4 - There were no prior send_PEL calls with wait ==0 to wait for.

send_map

int send_map(int *pinMap, int numPins)

send_map sends a new pin matrix mapping to IC-CAP for use with ICMSpin() orSPECSpin(). The indices of the pinMap array correspond to the actual pins in thehardware. The values of pinMap correspond to the logical pad numbers associated withthe pins. For example, if pinMap[5]=12, a call to SPECSpin(5) would return 12. If hardwarecontains no 0 pin, load pinMap[0] with -1.

Returns

send_map() returns 0 if successful, or one of the following error codes:

-1 - indicates that IC-CAP is in interactive mode.-2 - indicates a communications failure. When -2 is returned, the link is broken.-3 - Map cannot be sent. Waiting for a PEL response from a prior send_PEL withwait ==0. get_PEL_response must be called.

Details of the LinkReturnS Structure

struct LinkReturnS {

char type;

int indx;

int asize;

union{char c_val;

int i_val;

double r_val;

double *a_val;

char *s_val;

} value;

};

Page 80: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

79

type is a single character denoting type of data being passed: I (Int), C (Char), R (Real),S (String) or X (array).

indx refers to the index field of an ICMS XXXX function call. This is the index into whichICMS is to place the data.

asize is the size of the array that is passed in. This is 1 for type I, C, and R. For S, it is thelength of the array. For X, it is the number of points in the data array.

union contains arguments where each x_ val corresponds to the type character.

Page 81: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

80

IC-CAP FunctionsThis section describes the IC-CAP functions. They appear in alphabetical order.Mainly, the functions are categorized into:

Main IC-CAP Functions (prog)1.Built-in Functions (prog)2.User C Functions (prog)3.

When reviewing the functions, keep the following points in mind:

Many functions can be called from within a Program or Macro. Several examples areprovided here; additional examples can be found in Calls to the Function Library(prog).The list does not represent all the functions available in a Program or Macro.Additional built-in functions are available in the Parameter Extraction Language.Refer to Built-in Functions (prog).For consistency, the argument names listed for each function reflect the descriptivelabels these arguments would get in a standalone Transform editor.The Input Arguments referred to as Strings/Pars/Vars can be any of the followingalternatives: string expressions, Model parameter names, DUT parameter names, orIC-CAP system variable names.

Page 82: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

81

Built-in FunctionsBuilt-in functions are built into the Parameter Extraction Language. They can be entered inall uppercase or all lowercase, as in HP BASIC. Some are duplicated in the IC-CAPFunction List, like log. Some functions were built in for efficiency with scalar data (theFunction List has functions designed to operate best on data sets). Other built-in functionsare for programming convenience, such as size and system$.

NoteA function applied to a data set, unless otherwise noted, generates a new data set in which the specifiedfunction has been applied to every point. However, the functions max, min, and size each return singlenumbers only.

Explore the built-in functions from the following built-in functions Index.

Built-in Functions Index

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

A

abs

abs (prog)

array

array_copy(x,yout) (prog)

array_equal_num(x,y[,prec]) (prog)

array_equal_str(x,y) (prog)

array_insert_at(x,y[,pos]) (prog)

array_remove_all(x,y[,prec]) (prog)

array_remove_at(x,pos) (prog)

array_remove_first(x,y[,prec]) (prog)

array_remove_last(x,y[,prec]) (prog)

array_reorder (x,idxarr) (prog)

array_rsort_num (x, prec[, idxArr]) (prog)

array_rsort_str (x[, idxArr]) (prog)

array_swap (x, index1, index2) (prog)

ascii

ascii$ (prog)

C

Page 83: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

82

character

chr$(x) (prog)

columns

colsof(x) (prog)

complex

complex_equal(x,y [,prec]) (prog)

complex_insert_at(x,y [,pos]) (prog)

complex_remove_all(x,y[,prec]) (prog)

complex_remove_at(x,pos) (prog)

complex_remove_first(x,y[,prec]) (prog)

complex_remove_last(x,y[,prec]) (prog)

complex_reorder (x,idxarr) (prog)

complex_rsort (x,prec[,idxArr]) (prog)

complex_sort (x,prec[,idxArr]) (prog)

string

cutstr(x,y[,delimiter]) (prog)

D

dataset

dataset (prog)

array

dimension_array(x,n1,n2,n3,...) (prog)

E

exponent

exp (prog)

F

path

fix_path$ (prog)

fix_path$(<path>) (prog)

G

array

get_user_region_names(x,y) (prog)

I

status

iccap_status_button_queue$ (prog)

imaginary part

imag (prog)

imaginary (prog)

array

index_of(x,y,pos[,prec]) (prog)

L

Page 84: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

83

array

last_index_of(x,y[,prec]) (prog)

log

log (prog)

log10 or lgt (prog)

lookup

lookup_instr_table_val or lookup_instr_table_val_eval (prog)

lookup_obj_attribute (prog)

lookup_par (prog)

lookup_table_val or lookup_table_val_eva (prog)

lookup_var (prog)

lwc$(x) (prog)

M

magnitude

mag or magnitude (prog)

arguments

max (prog)

mdata(expr) (prog)

min (prog)

P

phase

ph or phase (prog)

R

real part

real (prog)

integer

rowsof(x) (prog)

S

simulated part

sdata(expr) (prog)

size

size (prog)

square root

sqrt (prog)

string length

strlen(x) (prog)

starting position

strpos(x,y) (prog)

strrpos(str1,str2 [,endpos]) (prog)

substring

substr$(x,start,stop) (prog)

system

sys_path$ (prog)

sys_path$(<path>) (prog)

system (prog)

system$ (prog)

T

Page 85: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

84

trim

trim$(x,chars) (prog)

U

uppercase

upc$(x) (prog)

V

value

val (prog)

W

who

WHOAMI (prog)

WHOIS (prog)

Calls to the Function Library

Refer Calls to the Function Library (prog).

Page 86: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

85

Built-in Functions (Starting fromAlphabet A) absAbsolute value of a single real number or magnitude of a complex number.

array_copy(x,yout)Returns 0 if the ICCAP_ARRAY x is copied successfully to the ICCAP_ARRAY yout. Forexample:

abc="ICCAP_ARRAY[6]"

abc[0]="foo"

abc[1]=1.235

abc[2]=2.33

abc[3]="foo"

abc[4]=3

abc[5]=-10.23919

! abc = {"foo", 1.235, 2.33, "foo", 3, -10.23919}

fgh="ICCAP_ARRAY[1]"

fgh[0]="hello"

! fgh = {"hello"}

print array_equal_str(abc, fgh)

print array_copy(abc, fgh)

! abc = {"foo", 1.235, 2.33, "foo", 3, -10.23919}

! fgh = {"foo", 1.235, 2.33, "foo", 3, -10.23919}

print array_equal_str(abc, fgh)

Output:

0

0

1

Example:

fgh="ICCAP_ARRAY[2]"

fgh[0]="ICCAP_ARRAY[3]"

fgh[0][0]="foo"

fgh[0][1]=1.235

fgh[0][2]=2.33

fgh[1]="ICCAP_ARRAY[2]"

fgh[1][0]=0

fgh[1][1]= "ICCAP_ARRAY[4]"

fgh[1][1][0]="fee"

fgh[1][1][1]=-10.23919

fgh[1][1][2]=3

fgh[1][1][3]="foo"

array_copy(abc, fgh)

Result:

abc="ICCAP_ARRAY[2]"

abc[0]="ICCAP_ARRAY[3]"

abc[0][0]="foo"

abc[0][1]=1.235

abc[0][2]=2.33

abc[1]="ICCAP_ARRAY[2]"

abc[1][0]=0

abc[1][1]= "ICCAP_ARRAY[4]"

abc[1][1][0]="fee"

abc[1][1][1]=-10.23919

Page 87: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

86

abc[1][1][2]=3

abc[1][1][3]="foo"

Example:

array_copy(abc[1], fgh)

Result:

fgh="ICCAP_ARRAY[2]"

fgh[0]=0

fgh[1]= "ICCAP_ARRAY[4]"

fgh[1][0]="fee"

fgh[1][1]=-10.23919

fgh[1][2]=3

fgh[1][3]="foo"

Example:

array_copy(abc[0], fgh[1][3])

Result:

fgh="ICCAP_ARRAY[2]"

fgh[0]=0

fgh[1]= "ICCAP_ARRAY[4]"

fgh[1][0]="fee"

fgh[1][1]=-10.23919

fgh[1][2]=3

fgh[1][3]="ICCAP_ARRAY[3]"

abc[1][3][0]="foo"

abc[1][3][1]=1.235

abc[1][3][2]=2.33

array_equal_num(x,y[,prec])Returns 1 if the ICCAP_ARRAY x elements have the same double values as thecorresponding elements of ICCAP_ARRAY y. Returns 0 if the ICCAP_ARRAY x andICCAP_ARRAY y are not equivalent. The 3rd optional argument prec can be used to specifythe double precision to compare the input arrays x and y with when determining theirequivalency. For example:

abc="ICCAP_ARRAY[4]"

abc[0]=-4.23321

abc[1]=1.235

abc[2]=21

abc[3]=-10.23919

! abc = {-4.23321, 1.235, 21, -10.23919}

abc2="ICCAP_ARRAY[5]"

abc2[0]=-4.23321

abc2[1]=1.235

abc2[2]=21

abc2[3]=-10.23919

abc2[4]=0.3422

! abc = {-4.23321, 1.235, 21, -10.23919, 0.3422}

abc3="ICCAP_ARRAY[4]"

abc3[0]=-4.23321

abc3[1]=1.235

abc3[2]=21

abc3[3]=-10.24

! abc3 = {-4.23321, 1.235, 21, -10.24}

Page 88: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

87

print array_equal_num(abc, abc2, 3)

print array_equal_num(abc, abc3, 2)

print array_equal_num(abc, abc3, 5)

print array_equal_num(abc2, abc3, 3)

Output:

0

1

0

0

array_equal_str(x,y)Returns 1 if the ICCAP_ARRAY x elements have the same string values as thecorresponding elements of ICCAP_ARRAY y. Returns 0 if the ICCAP_ARRAY x andICCAP_ARRAY y are not equivalent. For example:

abc="ICCAP_ARRAY[4]"

abc[0]="foo"

abc[1]=1.235

abc[2]="foo2"

abc[3]=-10.23919

! abc = {"foo", 1.235, "foo2", -10.23919}

abc2="ICCAP_ARRAY[5]"

abc2[0]="foo"

abc2[1]=1.235

abc2[2]="foo2"

abc2[3]=-10.23919

abc2[4]="foo3"

! abc2 = {"foo", 1.235, "foo2", -10.23919, "foo3"}

abc3="ICCAP_ARRAY[4]"

abc3[0]="foo"

abc3[1]=1.235

abc3[2]="foo2"

abc3[3]=-10.23919

! abc3 = {"foo", 1.235, "foo2", -10.23919}

print array_equal_str(abc, abc2)

print array_equal_str(abc, abc3)

print array_equal_str(abc2, abc3)

Output:

0

1

0

array_insert_at(x,y [,pos])Returns 0 if successful and ICCAP_ARRAY x will be modified to include the data y insertedinto the data array at the optional 3rd argument integer index pos. If the 3rd argumentpos is not specified, the data y will be appended to the end of the ICCAP_ARRAY dataarray x. For example:

abc="ICCAP_ARRAY[5]"

abc[0]=1

abc[1]=2

abc[2]=3

abc[3]=3

abc[4]=12

print array_insert_at(abc,55,6)

! abc = {1,2,3,3,12}

print array_insert_at(abc,43,5)

! abc = {1,2,3,3,12,43}

Page 89: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

88

print array_insert_at(abc,23.33,0)

! abc = {23.33,1,2,3,3,12,43}

print array_insert_at(abc,-55.34)

! abc = {23.33,1,2,3,3,12,43, -55.34}

print array_insert_at(abc,"foo",2)

! abc = {23.33,1,"foo",2,3,3,12, 43,-55.34}

Output:

-1

0

0

0

0

array_remove_all(x,y[,prec])Returns 0 if the value y is found and removed in the array x. Returns -1 if unsuccessful.The ICCAP_ARRAY x will be updated to no longer contain all elements found in the arraywith the value y. If value y is a double value, then the optional 3rd argument prec can beused to set what precision the function will use to search for the double value y in thearray x. For example:

abc="ICCAP_ARRAY[6]"

abc[0]="foo"

abc[1]=1.235

abc[2]=2.33

abc[3]="foo"

abc[4]=3

abc[5]=-10.23919

! abc = {"foo", 1.235, 2.33, "foo", 3, -10.23919}

print array_remove_all(abc, "unknown" )

! abc = {"foo", 1.235, 2.33, "foo", 3, -10.23919}

print array_remove_all(abc, "5")

! abc = {"foo", 1.235, 2.33, "foo", 3, -10.23919}

print array_remove_all(abc, "3")

! abc = {"foo", 1.235, 2.33, "foo", -10.23919}

print array_remove_all(abc, 2.33)

! abc = {"foo", 1.235, "foo", -10.23919}

print array_remove_all(abc, -10.239, 3)

! abc = {"foo", 1.235, "foo"}

print array_remove_all(abc, "foo")

! abc = {1.235}

Output:

-1

-1

0

0

0

0

array_remove_at(x,pos)Returns 0 if successful and the dataset, complex 1x1 array, or ICCAP_ARRAY x with thedata removed from the data array at argument integer index pos. For example:

abc="ICCAP_ARRAY[4]"

abc[0]=1

abc[1]=2

abc[2]="foo"

Page 90: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

89

abc[3]=3

! abc = {1, 2, foo, 3}

print array_remove_at(abc, 2)

! abc = {1, 2, 3}

print array_remove_at(abc, 1)

! abc = {1, 3}

print array_remove_at(abc, 0)

! abc = {3}

print array_remove_at(abc, 0)

! abc = ""

! abc is no longer an ICCAP_ARRAY

Output:

0

0

0

0

array_remove_first(x,y[,prec])Returns the integer position of the first occurrence of value y that is found in the array xand removed, or returns -1 if unsuccessful. The ICCAP_ARRAY x will be updated to nolonger contain the first element found in the array to contain the value y on return. Ifvalue y is a double value, then the optional 3rd argument prec can be used to set whatprecision the function will use to search for the double value y in the array x for removal.For example:

abc="ICCAP_ARRAY[6]"

abc[0]="foo"

abc[1]=1.235

abc[2]=2.33

abc[3]="foo"

abc[4]=3

abc[5]=-10.23919

! abc = {"foo", 1.235, 2.33, "foo", 3, -10.23919}

print array_remove_first(abc, "unknown" )

! abc = {"foo", 1.235, 2.33, "foo", 3, -10.23919}

print array_remove_first(abc, "5")

! abc = {"foo", 1.235, 2.33, "foo", 3, -10.23919}

print array_remove_first(abc, "3")

! abc = {"foo", 1.235, 2.33, "foo", -10.23919}

print array_remove_first(abc, 2.33)

! abc = {"foo", 1.235, "foo", -10.23919}

print array_remove_first(abc, -10.239, 3)

! abc = {"foo", 1.235, "foo"}

print array_remove_first(abc, "foo")

! abc = {1.235, "foo"}

Output:

-1

-1

4

2

3

0

array_remove_last(x,y[,prec])Returns the integer position of the last occurrence of value y that is found in the array xand removed, or returns -1 if unsuccessful. The ICCAP_ARRAY x will be updated to nolonger contain the last element found in the array to contain the value y on return. Ifvalue y is a double value, then the optional 3rd argument prec can be used to set what

Page 91: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

90

precision the function will use to search for the double value y in the array x for removal.For example:

abc="ICCAP_ARRAY[6]"

abc[0]="foo"

abc[1]=1.235

abc[2]=2.33

abc[3]="foo"

abc[4]=3

abc[5]=-10.23919

! abc = {"foo", 1.235, 2.33, "foo", 3, -10.23919}

print array_remove_last(abc, "unknown" )

! abc = {"foo", 1.235, 2.33, "foo", 3, -10.23919}

print array_remove_last(abc, "5")

! abc = {"foo", 1.235, 2.33, "foo", 3, -10.23919}

print array_remove_last(abc, "3")

! abc = {"foo", 1.235, 2.33, "foo", -10.23919}

print array_remove_last(abc, 2.33)

! abc = {"foo", 1.235, "foo", -10.23919}

print array_remove_last(abc, -10.239, 3)

! abc = {"foo", 1.235, "foo"}

print array_remove_last(abc, "foo")

! abc = {"foo", 1.235}

Output:

-1

-1

4

2

3

2

array_reorder (x,idxarr)Given an ICCAP_ARRAY x of values and an ICCAP_ARRAY idxarr of indices, this functionreorders the elements of the ICCAP_ARRAY x using the array of indices idxarr. Returns 0 ifarray was successfully reordered. For example:

abc="ICCAP_ARRAY[4]"

abc[0]=-4.23321

abc[1]=1.235

abc[2]=21

abc[3]=-10.23919

! abc = {-4.23321, 1.235, 21, -10.23919}

idxabc="ICCAP_ARRAY[4]"

idxabc[0]=2

idxabc[1]=3

idxabc[2]=0

idxabc[3]=1

print array_reorder(abc, idxabc)

! abc = {21, -10.23919, -4.23321, 1.235}

Output:

0

array_rsort_num (x, prec[, idxArr])Given an ICCAP_ARRAY x and no 3rd optional argument idxArr, this function will sort theICCAP_ARRAY x in descending order using the given double precision, specified by the 2ndargument prec. The precision will be used to compare the array elements' double valuesduring the sorting operation. If the 3rd optional argument idxArr is specified, then theICCAP_ARRAY x will not be sorted but instead the function will return idxArr as an

Page 92: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

91

ICCAP_ARRAY with an array of sorted indices. Returns 0 if successful. For example:

abc="ICCAP_ARRAY[4]"

abc[0]=-4.23321

abc[1]=1.235

abc[2]=21

abc[3]=-10.23919

! abc = {-4.23321, 1.235, 21, -10.23919}

print array_rsort_num(abc, 5)

! abc = {21, 1.2345, -4.23321, -10.23919}

abc2="ICCAP_ARRAY[4]"

abc2[0]=-4.23321

abc2[1]=1.235

abc2[2]=21

abc2[3]=-10.23919

! abc2 = {-4.23321, 1.235, 21, -10.23919}

idxabc2=""

! idxabc2 =

print array_rsort_num(abc2, 5, idxabc2)

! abc2 = {-4.23321, 1.235, 21, -10.23919}

! idxabc2 = {2, 1, 0, 3}

Output:

0

0

array_rsort_str (x[, idxArr])

Given an ICCAP_ARRAY x and no 2nd optional argument idxArr, this function sorts theICCAP_ARRAY x in descending order comparing the array elements' string values. If theoptional 2nd argument idxArr is specified, then the ICCAP_ARRAY x will not be sorted butinstead the function returns idxArr as an ICCAP_ARRAY with an array of sorted indices.Returns 0 if successful. For example:

abc="ICCAP_ARRAY[4]"

abc[0]="foo"

abc[1]="fee"

abc[2]="foo2"

abc[3]="faa"

! abc = {"foo", "fee", "foo2", "faa"}

print array_rsort_str(abc)

! abc = {"foo2", "foo", "fee", "faa"}

abc2="ICCAP_ARRAY[4]"

abc2[0]="foo"

abc2[1]="fee"

abc2[2]="foo2"

abc2[3]="faa"

! abc2 = {"foo", "fee", "foo2", "faa"}

idxabc2=""

! idxabc2 =

print array_rsort_str(abc2, idxabc2)

! abc2 = {"foo", "fee", "foo2", "faa"}

! idxabc2 = {2, 0, 1, 3}

Output:

0

0

array_sort_num (x, prec[, idxArr])

Given an ICCAP_ARRAY x and no 3rd optional argument idxArr, this function sorts theICCAP_ARRAY x in ascending order using the given double precision, specified by the 2nd

Page 93: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

92

argument prec. The precision will be used to compare the array elements' double valuesduring the sorting operation. If the 3rd optional argument idxArr is specified, then theICCAP_ARRAY x will not be sorted but instead the function returns idxArr as anICCAP_ARRAY with an array of sorted indices. Returns 0 if successful. For example:

abc="ICCAP_ARRAY[4]"

abc[0]=-4.23321

abc[1]=1.235

abc[2]=21

abc[3]=-10.23919

! abc = {-4.23321, 1.235, 21, -10.23919}

print array_sort_num(abc, 5)

! abc = {-10.23919, -4.23321, 1.2345, 21}

abc2="ICCAP_ARRAY[4]"

abc2[0]=-4.23321

abc2[1]=1.235

abc2[2]=21

abc2[3]=-10.23919

! abc2 = {-4.23321, 1.235, 21, -10.23919}

idxabc2=""

! idxabc2 =

print array_sort_num(abc2, 5, idxabc2)

! abc2 = {-4.23321, 1.235, 21, -10.23919}

! idxabc2 = {3, 0, 1, 2}

Output:

0

0

array_sort_str (x[, idxArr])

Given an ICCAP_ARRAY x and no 2nd optional argument idxArr, this function sorts theICCAP_ARRAY x in ascending order comparing the array elements' string values. If theoptional 2nd argument idxArr is specified, then the ICCAP_ARRAY x will not be sorted butinstead the function returns idxArr as an ICCAP_ARRAY with an array of sorted indices.Returns 0 if successful. For example:

abc="ICCAP_ARRAY[4]"

abc[0]="foo"

abc[1]="fee"

abc[2]="foo2"

abc[3]="faa"

! abc = {"foo", "fee", "foo2", "faa"}

print array_sort_str(abc)

! abc = {"faa", "fee", "foo", "foo2"}

abc2="ICCAP_ARRAY[4]"

abc2[0]="foo"

abc2[1]="fee"

abc2[2]="foo2"

abc2[3]="faa"

! abc2 = {"foo", "fee", "foo2", "faa"}

idxabc2=""

! idxabc2 =

print array_sort_str(abc2, idxabc2)

! abc2 = {"foo", "fee", "foo2", "faa"}

! idxabc2 = {3, 1, 0, 2}

Output:

0

0

array_swap (x, index1, index2)

Page 94: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

93

Given an ICCAP_ARRAY x, this function will swap the contents of two indexes. It isfunctionally equivalent to the following code but is more efficient:

tmp=x[index1]

x[index1]=x[index2]

x[index2]=tmp

array_swap() returns 0 if successful. An error dialog will abort the macro/transform if it isnot successful.

ascii$Converts ascii-coded characters into literal characters as entered into a text box.

Page 95: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

94

Built-in Functions (Starting withAlphabet C) chr$(x)Converts the integer x to its equivalent ASCII string character.

colsof(x)Returns an integer number of columns in a matrix, complex array of matrix data, or adata set x. For example:

complex def[4]

complex ghi.55[4]

print colsof(def)

print colsof(ghi)

Output:

1

5

complex_equal(x,y [,prec])Returns 1 if the complex_array or dataset x elements have the same complex values asthe corresponding elements of complex array or dataset y. Returns 0 if x and y are notequivalent. Use the 3rd optional argument prec to specify double precision whencomparing the x and y data arrays. For example:

complex def[5]

def[0]=-3.23

def[1]=1.000

def[2]=3+j*5

def[3]=2.3+j*1

def[4]=3+j*5

!Point Index R:common I:common

! 0 (1,1) -3.230000E+000 0.000000E+000

! 1 (1,1) 1.000000E+000 0.000000E+000

! 2 (1,1) 3.000000E+000 5.000000E+000

! 3 (1,1) 2.300000E+000 1.000000E+000

! 4 (1,1) 3.000000E+000 5.000000E+000

complex jkl[5]

jkl[0]=-3.23+j*6

jkl[1]=1.000+j*2

jkl[2]=3+j*5

jkl[3]=2.3+j*1

jkl[4]=3+j*5

!Point Index R:common I:common

! 0 (1,1) -3.230000E+000 6.000000E+000

! 1 (1,1) 1.000000E+000 2.000000E+000

! 2 (1,1) 3.000000E+000 5.000000E+000

! 3 (1,1) 2.300000E+000 1.000000E+000

! 4 (1,1) 3.000000E+000 5.000000E+000

x=complex_copy(def)

print complex_equal(def, x)

print complex_equal(def, jkl)

Output:

1

0

Page 96: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

95

complex_insert_at(x,y [,pos])Returns a new complex array or dataset with the data y inserted into a copy of the datasetor complex array x. If pos, the optional 3rd argument integer position is specified, the datay will be inserted at the index in the copy of the dataset or complex array specified by the xthat is returned. If the 3rd

argument pos is not specified, the data y will be appended to the end of the returned copyof the data set or complex array x. Only 1x1 matrix complex array data or datasets aresupported. The complex array or dataset x will not be modified by this function. Forexample:

complex def[2]

def[0]=1.000

def[1]=2.3+j*1

!Point Index R:common I:common

! 0 (1,1) 1.000000E+000 0.000000E+000

! 1 (1,1) 2.300000E+000 1.000000E+000

x=complex_insert_at(def, 3+j*5, 1)

!Point Index R:common I:common

! 0 (1,1) 1.000000E+000 0.000000E+000

! 1 (1,1) 3.000000E+000 5.000000E+000

! 2 (1,1) 2.300000E+000 1.000000E+000

y=complex_insert_at(x, 443.55)

!Point Index R:common I:common

! 0 (1,1) 1.000000E+000 0.000000E+000

! 1 (1,1) 3.000000E+000 5.000000E+000

! 2 (1,1) 2.300000E+000 1.000000E+000

! 3 (1,1) 4.435500E+002 0.000000E+000

z=complex_insert_at(y, "-3.23", 0)

!Point Index R:common I:common

! 0 (1,1) -3.230000E+000 0.000000E+000

! 1 (1,1) 1.000000E+000 0.000000E+000

! 2 (1,1) 3.000000E+000 5.000000E+000

! 3 (1,1) 2.300000E+000 1.000000E+000

! 4 (1,1) 4.435500E+002 0.000000E+000

complex_remove_all(x,y[,prec])Returns a copy of the dataset or complex array x with all occurrences of real value yremoved, or returns just a copy of the dataset or complex array x if value y was notfound. If value y is a double value, then the optional 3rd argument prec can be used toset what precision the function will use to search for the double value y in the magnitudereal data of the complex array or dataset x. For example:

complex def[5]

def[0]=-3.23

def[1]=1.000

def[2]=3+j*5

def[3]=2.3+j*1

def[4]=3+j*5

!Point Index R:common I:common

! 0 (1,1) -3.230000E+000 0.000000E+000

! 1 (1,1) 1.000000E+000 0.000000E+000

! 2 (1,1) 3.000000E+000 5.000000E+000

! 3 (1,1) 2.300000E+000 1.000000E+000

! 4 (1,1) 3.000000E+000 5.000000E+000

x=complex_remove_all(def, 3+j*5)

!Point Index R:common I:common

! 0 (1,1) -3.230000E+000 0.000000E+000

! 1 (1,1) 1.000000E+000 0.000000E+000

! 2 (1,1) 2.300000E+000 1.000000E+000

y=complex_remove_all(x, -3.23, 3)

!Point Index R:common I:common

! 0 (1,1) 1.000000E+000 0.000000E+000

! 1 (1,1) 2.300000E+000 1.000000E+000

z=complex_remove_all(y, "2.3")

Page 97: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

96

!Point Index R:common I:common

! 0 (1,1) 1.000000E+000 0.000000E+000

complex_remove_at(x,pos)Returns a copy of the dataset or complex array x with the data removed at position x inthe dataset or complex array. Only 1x1 matrix complex array data or datasets aresupported. The complex array or dataset x will not be modified by this function. Forexample:

complex def[4]

def[0]=-3.23

def[1]=1.000

def[2]=3+j*5

def[3]=2.3+j*1

!Point Index R:common I:common

! 0 (1,1) -3.230000E+000 0.000000E+000

! 1 (1,1) 1.000000E+000 0.000000E+000

! 2 (1,1) 3.000000E+000 5.000000E+000

! 3 (1,1) 2.300000E+000 1.000000E+000

x=complex_remove_at(def, 0)

!Point Index R:common I:common

! 0 (1,1) 1.000000E+000 0.000000E+000

! 1 (1,1) 3.000000E+000 5.000000E+000

! 2 (1,1) 2.300000E+000 1.000000E+000

y=complex_remove_at(x, 2)

!Point Index R:common I:common

! 0 (1,1) 1.000000E+000 0.000000E+000

! 1 (1,1) 3.000000E+000 5.000000E+000

z=complex_remove_at(y, 0)

!Point Index R:common I:common

! 1 (1,1) 3.000000E+000 5.000000E+000

complex_remove_first(x,y[,prec])Returns a copy of the dataset or complex array x with the first occurrence of real value yremoved, or returns just a copy of the dataset or complex array x if value y was notfound. If value y is a double value, then the optional 3rd argument prec can be used toset what precision the function will use to search for the double value y in the magnitudereal data of the complex array or dataset x. For example:

complex def[5]

def[0]=-3.23

def[1]=1.000

def[2]=3+j*5

def[3]=2.3+j*1

def[4]=3+j*5

!Point Index R:common I:common

! 0 (1,1) -3.230000E+000 0.000000E+000

! 1 (1,1) 1.000000E+000 0.000000E+000

! 2 (1,1) 3.000000E+000 5.000000E+000

! 3 (1,1) 2.300000E+000 1.000000E+000

! 4 (1,1) 3.000000E+000 5.000000E+000

x=complex_remove_first(def, 3+j*5)

!Point Index R:common I:common

! 0 (1,1) -3.230000E+000 0.000000E+000

! 1 (1,1) 1.000000E+000 0.000000E+000

! 2 (1,1) 2.300000E+000 1.000000E+000

! 3 (1,1) 3.000000E+000 5.000000E+000

y=complex_remove_first(x, -3.23, 3)

!Point Index R:common I:common

! 0 (1,1) 1.000000E+000 0.000000E+000

! 1 (1,1) 2.300000E+000 1.000000E+000

! 2 (1,1) 3.000000E+000 5.000000E+000

z=complex_remove_first(y, "2.3")

!Point Index R:common I:common

Page 98: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

97

! 0 (1,1) 1.000000E+000 0.000000E+000

! 1 (1,1) 3.000000E+000 5.000000E+000

a=complex_remove_first(z, 3)

!Point Index R:common I:common

! 0 (1,1) 1.000000E+000 0.000000E+000

complex_remove_last(x,y[,prec])Returns a copy of the dataset or complex array x with the last occurrence of real value yremoved, or returns just a copy of the dataset or complex array x if value y was notfound. If value y is a double value, then the optional 3rd argument prec can be used toset what precision the function will use to search for the double value y in the magnitudereal data of the complex array or dataset x. For example:

complex def[5]

def[0]=-3.23

def[1]=1.000

def[2]=3+j*5

def[3]=2.3+j*1

def[4]=3+j*5

!Point Index R:common I:common

! 0 (1,1) -3.230000E+000 0.000000E+000

! 1 (1,1) 1.000000E+000 0.000000E+000

! 2 (1,1) 3.000000E+000 5.000000E+000

! 3 (1,1) 2.300000E+000 1.000000E+000

! 4 (1,1) 3.000000E+000 5.000000E+000

x=complex_remove_last(def, 3+j*5)

!Point Index R:common I:common

! 0 (1,1) -3.230000E+000 0.000000E+000

! 1 (1,1) 1.000000E+000 0.000000E+000

! 2 (1,1) 3.000000E+000 5.000000E+000

! 3 (1,1) 2.300000E+000 1.000000E+000

y=complex_remove_last(x, -3.23, 3)

!Point Index R:common I:common

! 0 (1,1) 1.000000E+000 0.000000E+000

! 1 (1,1) 3.000000E+000 5.000000E+000

! 2 (1,1) 2.300000E+000 1.000000E+000

z=complex_remove_last(y, "2.3")

!Point Index R:common I:common

! 0 (1,1) 1.000000E+000 0.000000E+000

! 1 (1,1) 3.000000E+000 5.000000E+000

a=complex_remove_last(z, 3)

!Point Index R:common I:common

! 0 (1,1) 1.000000E+000 0.000000E+000

complex_reorder (x,idxarr)Given a complex array or dataset x and an ICCAP_ARRAY idxarr of indices, this functioncreates a copy of the dataset or complex array x and reorder the elements of the copieddata array using the array of indices idxarr, and then returns that reordered copy of thedata array x. For example:

complex def[5]

def[0]=-3.23

def[1]=1.000

def[2]=3+j*5

def[3]=2.3+j*1

def[4]=3+j*5

!Point Index R:common I:common

! 0 (1,1) -3.230000E+000 0.000000E+000

! 1 (1,1) 1.000000E+000 0.000000E+000

! 2 (1,1) 3.000000E+000 5.000000E+000

! 3 (1,1) 2.300000E+000 1.000000E+000

! 4 (1,1) 3.000000E+000 5.000000E+000

idxdef="ICCAP_ARRAY[5]"

idxdef[0]=4

idxdef[1]=3

Page 99: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

98

idxdef[2]=0

idxdef[3]=2

idxdef[4]=1

x=complex_reorder(def, idxdef)

!Point Index R:common I:common

! 0 (1,1) 3.000000E+000 5.000000E+000

! 1 (1,1) 2.300000E+000 1.000000E+000

! 2 (1,1) -3.230000E+000 0.000000E+000

! 3 (1,1) 3.000000E+000 5.000000E+000

! 4 (1,1) 1.000000E+000 0.000000E+000

complex_rsort (x,prec[,idxArr])Given a complex array or dataset x, this function creates a copy of the dataset or complexarray x, then sorts the elements in descending order, and then returns the sorted copy.The 2nd argument prec is used to specify the double precision to use when comparingelements during the sorting of the data array elements. The 3rd optional argument idxArrif specified, will be returned as an ICCAP_ARRAY of sorted integer indices. For example:

complex def[5]

def[0]=1.000

def[1]=-3.23

def[2]=3+j*5

def[3]=2.3+j*1

def[4]=3+j*5

!Point Index R:common I:common

! 0 (1,1) 1.000000E+000 0.000000E+000

! 1 (1,1) -3.230000E+000 0.000000E+000

! 2 (1,1) 3.000000E+000 5.000000E+000

! 3 (1,1) 2.300000E+000 1.000000E+000

! 4 (1,1) 3.000000E+000 5.000000E+000

x=complex_rsort(def,4)

!Point Index R:common I:common

! 0 (1,1) 3.000000E+000 5.000000E+000

! 1 (1,1) 3.000000E+000 5.000000E+000

! 2 (1,1) 2.300000E+000 1.000000E+000

! 3 (1,1) 1.000000E+000 0.000000E+000

! 4 (1,1) -3.230000E+000 0.000000E+000

idxdef=""

y=complex_rsort(def, 4, idxdef)

!Point Index R:common I:common

! 0 (1,1) 3.000000E+000 5.000000E+000

! 1 (1,1) 3.000000E+000 5.000000E+000

! 2 (1,1) 2.300000E+000 1.000000E+000

! 3 (1,1) 1.000000E+000 0.000000E+000

! 4 (1,1) -3.230000E+000 0.000000E+000

! idxdef = {2,4,3,0,1}

complex_sort (x,prec[,idxArr])Given a complex array or dataset x, this function creates a copy of the dataset or complexarray x, and sort the elements in ascending order, and then returns that sorted copy ofthe complex array or dataset x. The 2nd argument prec is used to specify the doubleprecision to use when comparing elements during the sorting of the data array elements.The 3 rd optional argument idxArr, if specified, will be returned as an ICCAP_ARRAY ofsorted integer indices. For example:

complex def[5]

def[0]=1.000

def[1]=-3.23

def[2]=3+j*5

def[3]=2.3+j*1

def[4]=3+j*5

!Point Index R:common I:common

! 0 (1,1) 1.000000E+000 0.000000E+000

Page 100: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

99

! 1 (1,1) -3.230000E+000 0.000000E+000

! 2 (1,1) 3.000000E+000 5.000000E+000

! 3 (1,1) 2.300000E+000 1.000000E+000

! 4 (1,1) 3.000000E+000 5.000000E+000

x=complex_sort(def,4)

!Point Index R:common I:common

! 0 (1,1) -3.230000E+000 0.000000E+000

! 1 (1,1) 1.000000E+000 0.000000E+000

! 2 (1,1) 2.300000E+000 1.000000E+000

! 3 (1,1) 3.000000E+000 5.000000E+000

! 4 (1,1) 3.000000E+000 5.000000E+000

idxdef=""

y=complex_sort(def, 4, idxdef)

!Point Index R:common I:common

! 0 (1,1) -3.230000E+000 0.000000E+000

! 1 (1,1) 1.000000E+000 0.000000E+000

! 2 (1,1) 2.300000E+000 1.000000E+000

! 3 (1,1) 3.000000E+000 5.000000E+000

! 4 (1,1) 3.000000E+000 5.000000E+000

! idxdef = {1, 0, 3, 2, 4}

cutstr(x,y[,delimiter])Returns the size of ICCAP_ARRAY y. Divides a string x into substrings, saving thesubstrings in ICCAP_ARRAY y, using either whitespace substrings (tabs, spaces, newlines)or an explicitly passed 3rd argument as a delimiter. The leading space will be ignoredwhen using the whitespace as a delimiter.

x="a b c"

print cutstr(x,y)

! y = {"a", "b", "c"}

x="a b c"

print cutstr(x,y)

! y = {"a", "b", "c"}

x="a,b,c"

print cutstr(x,y, ",")

! y = {"a", "b", "c"}

x="a,,b,c"

print cutstr(x,y, ",")

! y = {"a", "", "b", "c"}

x="aspambspamc"

print cutstr(x,y, "spam")

! y = {"a", "b", "c"}

Output :

3

3

3

4

3

Page 101: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

100

Built-in Functions (Starting fromAlphabet D) datasetEnables you to access the dataset referred to by a string. A second argument may bespecified which is a variable to receive any error string normally going to a red error box.

dimension_array(x,n1,n2,n3,...)Allocates a regular ICCAP_ARRAY of (n1 x n2 x n3 x ...) size to the variable x. No valuesreturned. x can be a string that indicates a variable (with quotes) or variable itself(without quotes).

The dimensioning process does not change the value of any preexisting elements. It onlyinsures that the requested dimensions exist. If you try to dimension a 3x3x3 array to a3x3 array, the function will not change the values of the 2nd dimension and they will allremain ICCAP_ARRAY[3] effectively leaving a 3x3x3 array after a call todimension_array(myarray,3,3). If you wish to completely redimension and possibly shrinkan array, you should first set it to "" (deleting the whole array) and then calldimension_array.

Example1:

! 3x2 array

dimension_array("abc",3,2)

Example2:

! 4x3x2 array

dimension_array(abc,4,3,2)

Page 102: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

101

Built-in Functions (Starting fromAlphabet E) expe is raised to the power specified by the argument.

Page 103: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

102

Built-in Functions (Starting fromAlphabet F) fix_path$Guarantees a path appropriate for the current architecture.

fix_path$(<path>)Returns a string based on the passed in <path>, which is either a filename or a directory.The returned string will be the same filename or directory converted to the localarchitecture.

On UNIX, this converts Windows directory separators '\' to UNIX directory separators '/'.On the PC, it does the opposite and also takes care of any cygwin path dependencies.

Since IC-CAP uses the cygwin shell to execute the PEL system() and system$()commands, certain calls have cygwin dependencies. For example, print system$("echo$HOME") may return something like /cygdrive/d/users/icuser, which does not have theWindows feel. Therefore, you may want to rewrite the PEL as follows:print fix_path$(system$("echo $HOME"))

which returns d:\users\icuser using the above example.

Page 104: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

103

Built-in Functions (Starting fromAlphabet G) get_user_region_names(x,y)Returns the size of ICCAP_ARRAY y. Returns a list of names for the user defined regions ofa plot (and a plot within a multiplot).

x = get_user_region_names("<Object>", y)

For a multiplot, specify the plot number in brackets after the object:

x = get_user_region_names("<Object>/Multiplot[1]", y)

Page 105: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

104

Built-in Functions (Starting fromAlphabet I) iccap_status_button_queue$Returns the string of IC-CAP/Status custom menu/icons selections that have been madesince the last call. See ???. Each character in the string represents one button press ormenu selection. If the string is empty ("") then no custom menus/buttons have beenpressed since it was last called. Each call to iccap_status_button_queue$ clears the queueat the same time.

imagExtracts the imaginary part of a data set, matrix, or complex number.

imaginaryExtracts the imaginary part of a data set, matrix, or complex number.

index_of(x,y,pos[,prec])Returns the integer index of the first element found starting at position pos that has thesame value as y in the ICCAP_ARRAY, dataset, or complex array x. If no elements arefound in the data array x, then -1 is returned. The 2nd argument y can be a string or adouble value. If value y is a double value, then the optional 4th argument prec can beused to set what precision the function will use to search for the element with the samedouble value y in the ICCAP_ARRAY, dataset, or complex array x. For example:

abc="ICCAP_ARRAY[6]"

abc[0]="foo"

abc[1]=1.235

abc[2]=2.33

abc[3]="foo"

abc[4]=3

abc[5]=-10.23919

! abc = {"foo", 1.235, 2.33, "foo", 3, -10.23919}

print "ICCAP_ARRAY output:"

print index_of(abc, "unknown", 0)

print index_of(abc, 3, 0)

print index_of(abc, 3, 5)

print index_of(abc, -10.24, 0, 3)

print index_of(abc, "foo", 0)

print index_of(abc, "foo", 1)

complex def[5]

def[0]=-3.23

def[1]=1.000

def[2]=3+j*5

def[3]=2.3+j*1

def[4]=3+j*5

!Point Index R:common I:common

! 0 (1,1) -3.230000E+000 0.000000E+000

! 1 (1,1) 1.000000E+000 0.000000E+000

! 2 (1,1) 3.000000E+000 5.000000E+000

! 3 (1,1) 2.300000E+000 1.000000E+000

! 4 (1,1) 3.000000E+000 5.000000E+000

print "Complex array output:"

print index_of(def, "2.3", 4)

print index_of(def, "2.3", 0)

print index_of(def, 3, 0, 4)

print index_of(def, 3, 3, 4)

Output:

Page 106: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

105

ICCAP_ARRAY output:

-1

4

-1

5

0

3

Complex array output:

-1

3

2

4

Page 107: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

106

Built-in Functions (Starting fromAlphabet L) last_index_of(x,y[,prec])Returns the integer index of the last element that has the same value as y in theICCAP_ARRAY, dataset, or complex array x. If no elements are found in the data array x,then -1 is returned. The 2nd argument y can be a string or a double value. If value y is adouble value, then the optional 3rd argument prec can be used to set what precision thefunction will use to search for the element with the same double value y in theICCAP_ARRAY, dataset, or complex array x. For example:

abc="ICCAP_ARRAY[6]"

abc[0]="foo"

abc[1]=1.235

abc[2]=2.33

abc[3]="foo"

abc[4]=3

abc[5]=-10.23919

! abc = {"foo", 1.235, 2.33, "foo", 3, -10.23919}

print "ICCAP_ARRAY output:"

print last_index_of(abc, "unknown")

print last_index_of(abc, 3)

print last_index_of(abc, -10.24, 3)

print last_index_of(abc, "foo")

complex def[5]

def[0]=-3.23

def[1]=1.000

def[2]=3+j*5

def[3]=2.3+j*1

def[4]=3+j*5

!Point Index R:common I:common

! 0 (1,1) -3.230000E+000 0.000000E+000

! 1 (1,1) 1.000000E+000 0.000000E+000

! 2 (1,1) 3.000000E+000 5.000000E+000

! 3 (1,1) 2.300000E+000 1.000000E+000

! 4 (1,1) 3.000000E+000 5.000000E+000

print "Complex array output:"

print last_index_of(def, 35.355, 4)

print last_index_of(def, "2.3")

print last_index_of(def, 3.0, 4)

print last_index_of(def, "3.00")

Output:

ICCAP_ARRAY output:

-1

4

5

3

Complex array output:

-1

3

4

4

logComputes log base e.

Page 108: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

107

log10 or lgtComputes log base 10.

lookup_instr_table_val orlookup_instr_table_val_evalEnables you to access the value of a field in an instrument options table. The firstargument is the path to the table. The second argument is the field in the table (see SetTable Field Value (prog) for syntax to specify the field name). An optional third argumentmay be specified which is a variable to receive any error string normally going to a rederror box. lookup_instr_table_val returns NUMPTS if NUMPTS is a variable in # of Points.lookup_instr_table_val_eval returns 100 (presuming NUMPTS evaluates to 100).

lookup_obj_attributeEnables you to access the state or attributes of a plot, or subplot of a multiplot. The firstargument is the object and the second argument is the keyword. The syntax is:X=lookup_obj_attribute("<Object>","Keyword")

For a Multiplot, specify the plot number in brackets after the object:X=lookup_obj_attribute("<Object>/Multiplot[N]","Keyword") ! Multiplot keyword

is case sensitive

For example:

X=lookup_obj_attribute("/my_model/my_dut/my_setup/my_multiplot/Multiplot[1]","UserSelectedRegion")

This example returns the coordinates of the white box that the user drew on the secondplot (index=1) of the Multiplot my_multiplot.

The following table lists supported keywords.

Page 109: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

108

Object Keyword Return Value

model POWindowOpen Int flag 0/1

plot POEnable Int flag 0/1

plot ErrorEnable Int flag 0/1

plot IsErrorRelative Int 1 is error is relative, 0 if error is absolute

plot ErrorRegion Data set array of 5 pointsX1,x2,y1,y2, colorColor always returns 3 (green)

plot UserRegion/<Name> Data set array of 5 pointsX1,x2,y1,y2, color

plot PORegionNumber Number of Plot Optimizer regions

plot PORegion[N] Dataset array of 4 pointsX1,x2,y1,y2

plot UserSelectedRegion(white box)

Dataset array of 6 pointsReturns the coordinate of the white box:X1,x1,y1,y2,z1,z2Where z1,z2 are the coordinates with respect to the Y2 axis

plot UserSelectedPoint Dataset array of 3 points

selected point in the datasetselected trace (0-8 with 8 being the Y2 trace)selected type:0 (transform)1(measured)2 (simulated)selected curve

plot NumHighlightedCurves Number of curves that were marked highlighted via PEL function:lookup_obj_attribute(plot_str&"/Trace[i]", "NumHighlightedCurves")( i is the index of the trace that belong to the plot "plot_str")

plot HighlightedCurveIndex The curve index of the highlighted curve that was marked highlightedvia PEL function:lookup_obj_attribute(plot_str&"/Trace [i]/Hicurve[j]","HighlightedCurveIndex")( i is the index of the trace that belong to the plot plot_str, j is the indexof the highlighted curve that belong to the trace plot_str&"/Trace[i]")

plot GraphicMouseState Returns 2 if a white box is selected

plot XAxisDisplayType -1 (Unknown) 0 (Linear), 1(Log) or 2 (dB)

plot YAxisDisplayType -1 (Unknown) 0 (Linear), 1(Log) or 2 (dB)

plot Y2AxisDisplayType -1 (Unknown) 0 (Linear), 1(Log) or 2 (dB)

Multiplotonly

SelectedPlot Returns selected plot

lookup_parEnables you to access the value of a parameter referenced by a string. A second argumentmay be specified which is a variable to receive any error string normally going to a rederror box.

lookup_table_val or lookup_table_val_evalEnables you to access the value of a field in an input, output, plot, parameter, oroptimizer table. The first argument is the path to the table. The second argument is thefield in the table (see Set Table Field Value (prog) for syntax to specify the field name). Anoptional third argument may be specified which is a variable to receive any error stringnormally going to a red error box. lookup_table_val returns NUMPTS if NUMPTS is avariable in # of Points. lookup_table_val_eval returns 100 (presuming NUMPTS evaluatesto 100).

lookup_varEnables you to access the value of a variable referenced by a string. A second argumentmay be specified which is a variable to receive any error string normally going to a red

Page 110: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

109

error box.

lwc$(x)Returns the lower case version of the string x. For example:print lwc$("Hello")

Output:

hello

Page 111: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

110

Builtin Functions (Starting fromAlphabet M) mag or magnitudeComputes the magnitude for a complex number, or for each complex number in a matrix,data set, or data set of matrices.

maxTakes any number of arguments, as in HP BASIC. The argument list can be a mixture ofscalars and data sets, and the function returns the maximum value found in any of them.This always returns a single real number, and only the real parts are considered. Ifmatrices are received, only the 1,1 points are considered.

mdata(expr)Returns the measured part of the argument expr.

minBehaves like max, but returns the minimum value.

Page 112: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

111

Built-in Functions (Starting fromAlphabet P) ph or phaseComputes the phase angle in radians for a complex number, or for each complex numberin a matrix, data set, or data set of matrices.

Page 113: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

112

Built-in Functions (Starting withAlphabet R) realExtracts the real part of a data set, matrix, or complex number.

rowsof(x)Returns an integer number of rows in a matrix, complex array of matrix data, or a dataset x. For example:

complex def[4]

complex ghi.55[4]

print rowsof(def)

print rowsof(ghi)

Output:

1

5

Page 114: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

113

Built-in Functions (Starting fromAlphabet S) sdata(expr)Returns the simulated part of the argument expr.

sizeReturns the number of points in a data set, which is an integer.

sizeof(x)Returns an integer number of elements in a variable ICCAP_ARRAY, or a complex array ofdata, or a data set. Returns 0 if x doesn't represent a data array or if the data array isempty or both. For example:

abc="ICCAP_ARRAY[5]"

abc[0]=1

abc[1]=2

abc[2]=3

abc[3]=3

abc[4]=12

complex def[4]

def[0]=1.000

def[1]=1+j*1

def[2]=5

def[3]=6

complex ghi.55[3]

x=1.354529

print sizeof(abc)

print sizeof(def)

print sizeof(ghi)

print sizeof(x)

Output:

5

4

3

0

sqrtSquare root function. Complex and negative quantities produce correct complex orimaginary results.

strlen(x)Returns the number of characters in the string x. For example:print strlen("Hello")

Output:

5

strpos(x,y)Returns the index of the first occurrence of substring str2 found in string str1. An optionalthird argument may be specified which is an integer starting position that should be

Page 115: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

114

greater than or equal to 1. The starting position can be used to specify the starting indexwithin the string str1 to start searching for substring str2. For example:

print strpos("Hello","ell")

print strpos("Hello","He")

print strpos("Hello","dog")

print strpos("Hello","l",1)

print strpos("Hello","l",4)

print strpos("Hello","l",5)

Output:

2

1

0

3

4

0

strrpos(str1,str2 [,endpos])Returns the index of the last occurrence of substring str2 found in string str1. An optionalthird argument may be specified which is an integer end position that should be greaterthan or equal to 1. The end position can be used to specify the last index within the stringstr1 to search for the last occurrence of substring str2, using the search range of index 1to endpos. For example:

print strrpos("Hello","ell")

print strrpos("Hello","He")

print strrpos("Hello","dog")

print strrpos("Hello","l",1)

print strrpos("Hello","l",4)

print strrpos("Hello","l",5)

Output:

2

1

0

0

4

4

substr$(x,start,stop)Extracts the substring from the start index to the stop index from the string x. The value"1" refers to the first character in the string. If stop is omitted, substr$ returns the stringfrom start to the end of the string. For example:

x="Hello"

print substr$(x,4)

print substr$(x,2,4)

Output:

lo

ell

sys_path$

Page 116: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

115

Guarantees a path appropriate for passing to the system$() or system() command.

sys_path$(<path>)Returns a string based on the passed in <path>, which is either a filename or a directory.The returned string will be the same filename or directory converted to the proper formatfor the system$() or system() function.

Since IC-CAP uses the cygwin shell to process the PEL system$ and system calls, PC stylepaths may not work properly when passed as arguments to system functions.

For example, if the user's response to

LINPUT "Enter a filename",path

print system$("ls -al " & path)

is:

foobar - the code functions properly./tmp/foobar - the code functions properly because IC-CAP insures /tmp and/var/tmp exist in the system call environment.d:foobar - the code does not function properly.

However, the following rewrite

LINPUT "Enter a filename",path

print system$("ls -al " & sys_path$(path))

insures that the system$() call actually sees /cygdrive/d/foobar even when the user typesd:foobar.

systemAccepts a string argument, which is a shell command to invoke. You can employ all validshell I/O redirection and other shell syntax within the string argument. It returns aninteger, which is the exit status of the shell. If the shell command generates output, it isprinted in the terminal window from which the IC-CAP program was started; refer tosystem$. On the PC, if a syntax error appears, turn on screen debug for additionalinformation.

system$Similar to system; it captures the command's output, instead of letting it go to theterminal window. Instead of returning an integer, it returns the output that the shellcommand generated. For example:

my_date$ = system$("date") ! get date

com$="echo "&my_date$&"\|cut -c 5-7"

month$ = system$(com$) ! substring 5-7

On the PC, if a syntax error appears, turn on screen debug for additional information.

Page 117: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

116

Built-in Functions (Starting fromAlphabet T) trim$(x,chars)Where x is a string and chars is a string containing characters to be trimmed from x. Thisfunction trims the unwanted characters from the beginning and end of the string. Theparameter for chars is optional. If chars is omitted, the default is to remove spaces fromthe beginning and end of the string. For example:

x=" stuff here "

print trim$(x)

y="////stuff here__//__//"

print trim$(y)

print trim$(y,"/_")

Output:

stuff here

////stuff here__//__//

stiff here

Page 118: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

117

Built-in Functions (Starting fromAlphabet U) upc$(x)Returns the string x with all upper case characters. For example:

print upc$("Hello")

Output:

HELLO

Page 119: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

118

Built-in Functions (Starting withAlphabet V) valGenerates a number, given a string representation of a simple (not expression) integer,floating point, or complex number. For example:

linput "give a number",x$

x = val(x$)

val$Generates a string, given a numeric expression. In conjunction with the & operator (stringconcatenation), it can be useful for formatting. The optional second argument can eitherbe an integer or a string.

If no optional argument is given, the conversion uses the %g printf conversion (seeprintf() man page for details). The number is converted with WORKING_PRECISIONdigits of precision. If WORKING_PRECISION is not set, 6 digits are used.If the second argument is an integer, then the integer is interpreted as the number ofdigits of precision to use in a %g printf() conversion (see printf() man page fordetails).If the second argument is %nnICFMT where nn are optional integers, then thenumber is converted to a string according to IC-CAP default conversion routine,which uses unit multipliers (e.g., 1.23e-12 is converted to 1.23p). The optional nnspecifies the number of digits of precision. If nn is less than 4, it is clamped to 4. Ifnn is omitted, then WORKING_PRECISION digits are used, if WORKING_PRECISIONis not defined, 4 digits will be used.If the second argument is any other string, it should contain exactly one of %e, %E,%g, %G, or %f. See the printf() man page for optional modifiers to these formatsthat specify the number of digits and spacing.

Examples:

x=1.23456789e-12

print val$(x,"%ICFMT") ! 1.235p (Assuming WORKING_PRECISION not set)

print val$(x,"%1ICFMT") ! 1.235p (clamped to 4)

print val$(x,"%8ICFMT") ! 1.2345679p (8 digits total)

print val$(x,"abc %ICFMT") ! abc ICFMT ('abc' on Linux) (uses printf syntax)

print val$(x,"%e") ! 1.234568e-012 (printf format ignores WORKING_PRECISION)

print val$(x,"%.3e") ! 1.235e-012 (specify 3 digits after decimal)

print val$(x,"The number is %+12.4g.")

!The number is +1.235e-012. (12 positions for entire number and +)

print val$(x) ! 1.23457E-012 (6 digits of precision by default)

print val$(x,7) ! 1.234568E-012

NoteReal and complex scalars and data sets are accepted by all functions with the following exceptions:system, system$, and val expect to receive string data, and val$ expects a scalar number.

Page 120: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

119

Built-in Functions (Starting fromAlphabet W) WHOAMIEnables you to access the name or type of a Macro or Transform.

X=WHOAMI()return the full path to the running macro or transform including the leading slash

Two keywords "Type" and "PartName" can be used in this function.

X=WHOAMI("Type")return "Macro" or "Transform"

X=WHOAMI("PartName")return just the macro or transform name

WHOISEnables you to access the name or type of a object or parent object.

return the full path of the object if only one object argument.X=WHOIS(("<Object>")

The first argument is the object and the second argument is the keyword.X=WHOIS(("<Object>","Keyword")

Keyword Return Value

Type return the type of object.

PartName return last part of the full path.

Parent return full path of the parent.

Parent PartName return last part of the full path of the parent.

Parent <NNN> return full path of the parent <NNN>.<NNN> could be the parent type, Model,DUT,Setup,GuiItem etc.for example, "Parent DUT".

Parent <NNN> PartName return last part of the full path of the parent <NNN>.

For example:Assume we have Model named "MyModel" owning a two DUT’s named DUT1 and DUT2,each own 2 setups SET1 and SET2 and each own 2 inputs, 2 outputs, 2 transforms and 2plots named IN1, IN2, OUT1,OUT2, TRANS1, TRANS2, PLOT1, and PLOT2.Assume the following calls are made from /MyModel/DUT1/SET1/TRANS1

X=whois(".") ! returns /MyModel/DUT1/SET1

X=whois("..") ! returns /MyModel/DUT1

X=whois("..","PartName") ! returns "DUT1"

X=whois("../../DUT2/SET2") ! returns /MyModel/DUT2/SET2

X=whois(".","Parent") ! returns "DUT1"

X=whois(".","Parent Model PartName") ! returns "MyModel"

X=whois(".","Type") ! returns "Setup"

X=whois("./IN1","Type") ! returns "Input"

X=whois("./OUT1","Type") ! returns "Output"

X=whois("./PLOT1","Type") ! returns "Plot"

Page 121: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

120

Main IC-CAP Functions Functions Index

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

The tables lists the available functions by category, as they appear in the program.

A

AHBT

AgilentHBT_ABCX_extract (prog) AgilentHBT_calculate_ccb (prog) AgilentHBT_calculate_rbb (prog)

AgilentHBT_CCMAX_extract (prog) AgilentHBT_CEMAX_extract (prog) AgilentHBT_CJC_extract (prog)

AgilentHBT_CJE_extract (prog) AgilentHBT_IS_NF_extract (prog) AgilentHBT_ISC_NC_extract(prog)

AgilentHBT_ISE_NE_extract (prog) AgilentHBT_ISH_NH_extract (prog) AgilentHBT_ISR_NR_extract(prog)

AgilentHBT_ISRH_NRH_extract(prog)

AgilentHBT_ITC_ITC2_extract(prog)

AgilentHBT_Param_Init (prog)

AgilentHBT_TFC0_extract (prog) AgilentHBT_VJC_extract (prog) AgilentHBT_VJE_extract (prog)

ATFT (obsolete)

HPTFTCV_model_cgd (prog) HPTFTDC_lin (prog) HPTFTDC_sat (prog)

HPTFTCV_model_cgs (prog) HPTFTDC_model_id (prog) HPTFT_param (prog)

B

Page 122: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

121

B2200

B2200_bias_card_enable (prog) B2200_bias_ch_enable (prog) B2200_bias_enable (prog)

B2200_bias_init (prog) B2200_close_interface (prog) B2200_connect (prog)

B2200_couple_enable (prog) B2200_couple_setup (prog) B2200_debug (prog)

B2200_disconnect_card (prog) B2200_GPIB_handler (prog) B2200_ground_card_enable(prog)

B2200_ground_enable (prog) B2200_ground_init (prog) B2200_ground _outch_enable(prog)

B2200_ground _unused_inputs (prog) B2200_init (prog) B2200_open_interface (prog)

BJT

BJTAC_high_freq (prog) BJTDC_rc (prog) BJTCV_stoc (prog)

BJTAC_rb_rbm_irb (prog) BJTDC_rcfb (prog) RBBcalc (prog)

BJTDC_fwd_gummel (prog) BJTDC_re (prog) H11corr (prog)

BJTDC_is_nf (prog) BJTDC_rev_gummel (prog) BJT_dc_model (prog)

BJTDC_nr (prog) BJTDC_vaf_var (prog) HFBJT_linear_ssmod_sim (prog)

HFBJT_linear_elem_extr (prog)

BPOPAMP

BPOPAMP_macro_model (prog)

BSIM1 (obsolete)

BSIM1DC_geom_indep (prog) BSIM1DC_sub (prog) BSIMCV_total_cap (prog)

BSIM1DC_lin_sat (prog)

BSIM2 (obsolete)

BSIM2DC_geom_indep (prog) BSIM2_save_dev_pars (prog) BSIM2_lin_plot (prog)

BSIM2DC_lin_sat (prog) BSIMCV_total_cap (prog)

BSIM3

BSIM3_set_opt (prog) BSIM3DC_sat_narrow (prog) BSIM3DC_vth (prog)

BSIM3DC_bulk_short (prog) BSIM3DC_sat_short (prog) BSIM3DC_vth_sim (prog)

BSIM3DC_lin_large (prog) BSIM3DC_sat_short2 (prog) BSIM3DC_vth_versus (prog)

BSIM3DC_lin_narrow (prog) BSIM3DC_sub_short (prog) BSIM3CVmodCBD (prog)

BSIM3DC_lin_short (prog) BSIM3DC_sub_short2 (prog) BSIM3CVmodCBS (prog)

BSIM3DC_lin_small (prog) BSIM3DC_model (prog) BSIM3CV_total_cap (prog)

BSIM3_check_par (prog) BSIM3_DC_vth (prog) BSIM3_DC_calculate (prog)

BSIM3_DC_get_parameter (prog) BSIM3_DC_calc_bin_parameter(prog)

BSIM4

BSIM4_check_par (prog) BSIM4_DC_get_parameter (prog)

BSIM4_DC_extr_A0_AGS_KETA (prog) BSIM4_set_opt (prog) BSIM4_DC_vth (prog)

BSIM450_DC_calculate (prog) BSIM4_DC_calc_bin_parameter(prog)

BSIM450_DC_vth (prog)

BSIMSOI4

BSIMSOI4_DC_vth (prog) BSIMSOI4_DC_calculate (prog) BSIMSOI4_DC_get_parameter(prog)

BSIMSOI4_DC_calc_bin_parameter(prog)

BSIMSOI4_check_par (prog) BSIMSOI4_set_opt (prog)

C

CORNER

CORNER_DC_vth (prog)

D

Page 123: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

122

Data Exchange

ICMSarray (prog) ICMSpin (prog) SPECSSpin (prog)

ICMSchar (prog) ICMSreal (prog) LINKarray (prog)

ICMSint (prog) ICMSstr (prog) LINKchar (prog)

LINKint (prog) LINKpin (prog) LINKreal (prog)

LINKstr (prog)

Data Export

icdb_add_comment (prog) icdb_close (prog) icdb_export_data (prog)

icdb_get_sweep_value (prog) icdb_open (prog) icdb_register_con_sweep (prog)

icdb_register_lin_sweep (prog) icdb_register_list_sweep (prog) icdbf_add_comment (prog)

icdbf_close (prog) icdbf_export_data (prog) icdbf_get_sweep_value (prog)

icdbf_open (prog) icdbf_register_con_sweep (prog) icdbf_register_lin_sweep (prog)

icdbf_register_list_sweep (prog) icdb_register_lsync_sweep (prog) icdbf_register_lsync_sweep (prog)

icdb_register_text_list_sweep (prog) icdbf_register_text_list_sweep(prog)

icdb_register_text_lsync_sweep(prog)

icdbf_register_text_lsync_sweep(prog)

icdb_get_sweep_index (prog) icdbf_get_sweep_index (prog)

Data Fit

fit_line (prog) autofit (prog) linfit (prog)

fit_line3 (prog) autofit3 (prog) linfit3 (prog)

circlefit (prog)

Diode

DIODEDCmod_ia (prog)

E

EEBJT

EEbjt2_Is_N (prog) EEbjt2_ce_dc_iv (prog) EEbjt2_ce_ss_elements (prog)

EEbjt2_extrinsic_ckt (prog) EEbjt2_mdl (prog) HFMOD_get_bias_size (prog)

HFMOD_get_freq_index (prog) HFMOD_get_freq_value (prog) HFMOD_remove_freq_dbl (prog)

HFMOD_remove_freq_mat (prog)

EEFET

EEfet3_ckt (prog) EEfet3_model_name (prog) EEfet3_Rs_delta_s (prog)

EEfet3_cs_dc_iv (prog) EEfet3_package (prog) EEfet3_s2ckt (prog)

EEfet3_lecp (prog) EEfet3_ResCheck (prog) EEfet3_spars (prog)

EEfet3_mdl (prog) EEfet3_Rs_delta_m (prog)

EEMOS (obsolete)

EEmos1_ckt (prog) EEmos1_mdl (prog) EEmos1_ResCheck (prog)

EEmos1_cs_dc_iv (prog) EEmos1_model_name (prog) EEmos1_s2ckt (prog)

EEmos1_lecp (prog) EEmos1_package (prog) EEmos1_spars (prog)

F

Flicker Noise

NOISE_1f_bjt_1Hz (prog) NOISE_1f_bjt_calc (prog) NOISE_1f_bjt_extract (prog)

NOISE_1f_force_bias (prog) NOISE_1f_get_Af (prog) NOISE_1f_get_Bf (prog)

NOISE_1f_get_Ef (prog) NOISE_1f_get_Kf (prog) NOISE_1f_mos_1Hz (prog)

NOISE_1f_set_Af (prog) NOISE_1f_set_Bf (prog) NOISE_1f_set_Ef (prog)

NOISE_1f_set_Kf (prog) NOISE_1f_stop_bias (prog)

G

Page 124: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

123

GAAS

GAASAC_cur (prog) GAASDC_lev1 (prog) GAASmod_cgd (prog)

GAASAC_l_and_r (prog) GAASDC_lev2 (prog) GAASmod_cgs (prog)

GAASAC_r_and_c (prog) GAASDC_rd (prog) GAASmod_id (prog)

GAASCV_cgs_cgd (prog) GAASDC_rs (prog) GAASmod_ig (prog)

GAASDC_cur1 (prog) GAASAC_calc_rc (prog) GAASAC_calc_rl (prog)

GAASDC_cur2 (prog)

General Math

RMSerror (prog) conjg (prog) log10 (prog)

TwoPort (prog) correlation (prog) mean (prog)

TwoPort2 (prog) cos (prog) random (prog)

abs (prog) cosh (prog) sin (prog)

acs (prog) derivative (prog) sinh (prog)

acsh (prog) derivative2 (prog) smooth3 (prog)

arg (prog) derivative3 (prog) equation (prog)

sqrt (prog) asn (prog) exp (prog)

tan (prog) asnh (prog) log (prog)

tanh (prog) atn (prog) floor (prog)

variance (prog) atnh (prog) integral0 (prog)

variance2 (prog) ceil (prog) integral3 (prog)

mem_diag (prog)

H

Page 125: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

124

HF MOS Level3 (obsolete)

HFMOS3_capas (prog) HFMOS3_paras (prog) HFMOS3_StoC (prog)

HFMOS3_lin_large (prog) HFMOS3_sat_short (prog) HFMOS3_StoZ (prog)

HFMOS3_lin_narrow (prog) HFMOS3_sub_large (prog) HFMOS3_modcap (prog)

HFMOS3_lin_short (prog) HFMOS3_total_cap (prog)

HiSIM2

HiSIM2_DC_vth (prog)

HiSIM_HV

HiSIM_HV_DC_vth (prog)

HPIB

HPIB_abort (prog) HPIB_open (prog) HPIB_spoll (prog)

HPIB_clear (prog) HPIB_read_reals (prog) HPIB_srq (prog)

HPIB_close (prog) HPIB_readnum (prog) HPIB_timeout (prog)

HPIB_command (prog) HPIB_readstr (prog) HPIB_write (prog)

HPIB_eoi (prog) HPIB_fwrite (prog) HPIB_read (prog)

HPMOS

HPMOSDC_lin_large (prog) HPMOSDC_lin_short (prog) HPMOS_process_pars (prog)

HPMOSDC_lin_narrow (prog) HPMOSDC_sat_short (prog)

HPRoot Diode

HPdiode_C (prog) HPdiode_S11i (prog) HPdiode_para_at_f (prog)

HPdiode_C2 (prog) HPdiode_S11r (prog) HPdiode_para_f (prog)

HPdiode_I (prog) HPdiode_V (prog) HPdiode_wr (prog)

HPdiode_Q (prog) HPdiode_data_acqu (prog) HPRoot_n (prog)

HPdiode_R (prog) HPdiode_mdl (prog) HPdiode_fgrt (prog)

HPdiode_fless (prog) HPdiode_iextr (prog)

HPRoot Fet

HPRoot_data_acqu (prog) HPRoot_Qd (prog) HPRoot_Y12r (prog)

HPRoot_FET (prog) HPRoot_Qg (prog) HPRoot_Y21i (prog)

HPRoot_initial (prog) HPRoot_Vd (prog) HPRoot_Y21r (prog)

HPRoot_parasitic (prog) HPRoot_Vg (prog) HPRoot_Y22i (prog)

HPRoot_Id (prog) HPRoot_Y11i (prog) HPRoot_Y22r (prog)

HPRoot_Idh (prog) HPRoot_Y11r (prog) HPRoot_FET_t (prog)

HPRoot_Ig (prog) HPRoot_Y12i (prog) HPRoot_fet_acqu (prog)

HPRoot_n (prog) HPRoot_para_cal (prog) HPRoot_wr (prog)

HPRoot Mos

HPRoot_Id (prog) HPRoot_Vd (prog) HPRoot_Y12r (prog)

HPRoot_Idh (prog) HPRoot_Vg (prog) HPRoot_Y21i (prog)

HPRoot_Ig (prog) HPRoot_Y11i (prog) HPRoot_Y21r (prog)

HPRoot_Qd (prog) HPRoot_Y11r (prog) HPRoot_Y22i (prog)

HPRoot_Qg (prog) HPRoot_Y12i (prog) HPRoot_Y22r (prog)

HPRoot_MOSFET (prog) HPRoot_mos_acqu (prog) HPRoot_mos_para (prog)

HPRoot_para_cal (prog)

J

JUNCAP

JUNCAP (prog) JUNCAP_TR (prog)

M

Page 126: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

125

MEXTRAM

MXT_I0 (prog) MEXTRAM_stoc (prog) MXT_cbc (prog)

MXT_cbe (prog) MXT_cj0 (prog) MXT_csc (prog)

MXT_forward_hfe (prog) MXT_forward_ic (prog) MXT_forward_vbe (prog)

MXT_ft (prog) MXT_VEF (prog) MXT_ic_vce (prog)

MXT_VER (prog) MXT_hard_sat_isub (prog) MXT_reverse_isub (prog)

MXT_jun_cap (prog) MXT_reverse_currents (prog) MXT_reverse_hfc (prog)

MXT_reverse_hfc_sub (prog) MXT_veaf_ib (prog) MXT_veaf_ic (prog)

MXT_vear_ie (prog) MXT_show_parms (prog)

MEXTRAM 503 (obsolete)

mxt_smooth (prog) mxt3t_cbc (prog) mxt3t_cbe (prog)

mxt3t_cj0 (prog) mxt3t_ft_ic (prog) mxt3t_ft_ic_new (prog)

mxt3t_fwd_early_ib (prog) mxt3t_fwd_early_ic (prog) mxt3t_fwd_gummel_hfe (prog)

mxt3t_fwd_gummel_ib (prog) mxt3t_fwd_gummel_ic (prog) mxt3t_fwd_gummel_vbe (prog)

mxt3t_i0 (prog) mxt3t_linear_range (prog) mxt3t_output_ic (prog)

mxt3t_output_vbe (prog) mxt3t_rev_early_ie (prog) mxt3t_rev_early_qb0_guess (prog)

mxt3t_rev_gummel_hfc (prog) mxt3t_rev_gummel_ib (prog) mxt3t_rev_gummel_ie (prog)

mxt4t_cbc (prog) mxt4t_cbe (prog) mxt4t_cj0 (prog)

mxt4t_csc (prog) mxt4t_ft_ic (prog) mxt4t_ft_ic_new (prog)

mxt4t_fwd_early_ib (prog) mxt4t_fwd_early_ic (prog) mxt4t_fwd_gummel_hfe (prog)

mxt4t_fwd_gummel_ib (prog) mxt4t_fwd_gummel_ic (prog) mxt4t_fwd_gummel_vbe (prog)

mxt4t_i0 (prog) mxt4t_linear_range (prog) mxt4t_output_ic (prog)

mxt4t_output_vbe (prog) mxt4t_rev_early_ie (prog) mxt4t_rev_early_qb0_guess (prog)

mxt4t_rev_gummel_hfc (prog) mxt4t_rev_gummel_hfc_sub (prog) mxt4t_rev_gummel_ib (prog)

mxt4t_rev_gummel_ie (prog) mxt4t_rev_gummel_is (prog)

MM9

MM9_LIN_EXT (prog) MM9_COPY (prog) MM9_SAVE_SPARS (prog)

MM9_SAT_EXT (prog) MM9_DATA (prog) MM9_SETUP (prog)

MM9_STH_EXT (prog) MM9_GEOMPAR (prog) MM9_TEMPPAR (prog)

MM9_WEAVAL_EXT (prog) MM9_GEOMSCAL (prog) MM9_TEMPSCAL (prog)

MM9 (prog) MM9_KEEP (prog)

MOS Level1

MOSmodel (prog) MOSmodel2 (prog)

MOS Level2

MOSCV_total_cap (prog) MOSDC_lev2_lin_short (prog) MOSCVmodCBS (prog)

MOSDC_lev2_lin_large (prog) MOSDC_lev2_sat_short (prog) MOSmodel (prog)

MOSDC_lev2_lin_narrow (prog) MOSCVmodCBD (prog) MOSmodel2 (prog)

MOS Level3

MOSCV_total_cap (prog) MOSDC_lev3_lin_short (prog) MOSCVmodCBS (prog)

MOSDC_lev3_lin_large (prog) MOSDC_lev3_sat_short (prog) MOSmodel2 (prog)

MOSDC_lev3_lin_narrow (prog) MOSCVmodCBD (prog)

MOS Level6

MOSCV_total_cap (prog) MOSDC_lev6_lin_narrow (prog) MOSCVmodCBD (prog)

MOSDC_lev6_lin_large (prog) MOSDC_lev6_lin_short (prog) MOSCVmodCBS (prog)

MOS Process

MOS_process_pars (prog)

O

Optimization

Optimize (prog)

P

Page 127: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

126

PEL

Program or Program2 (prog)

PN Capacitance

PNCAPsimu (prog)

PSP

PSP_DC_vth (prog) PSP_check_par (prog) PSP_DC_calc_bin_parameter (prog)

PSP_set_opt (prog)

PTFT (obsolete)

PTFTCV_cgd (prog) PTFTDC_lin (prog) PTFTDC_sat (prog)

PTFTCV_cgs (prog)

R

Random Functions

rand_flat (prog) rand_gauss (prog) rand_seed (prog)

Statistical Analysis

icstat_get_column (prog) icstat_deactivate (prog) icstat_set_text_cell (prog)

icstat_set_column (prog) icstat_attribute_2_parameter(prog)

icstat_open (prog)

icstat_num_columns (prog) icstat_parameter_2_attribute(prog)

icstat_write_to_status_window (prog)

icstat_num_rows (prog) icstat_analysis (prog) icstat_exit (prog)

icstat_get_cell (prog) icstat_correlation (prog) icstat_open_sdf_file (prog)

icstat_set_cell (prog) icstat_stat_summary (prog) icstat_close_sdf_file (prog)

icstat_num_deactivated (prog) icstat_factor_analysis (prog) icstat_save_sdf_file (prog)

icstat_num_filtered (prog) icstat_parametric_models (prog) icstat_to_partable (prog)

icstat_num_attributes (prog) icstat_equations (prog) icstat_from_partable (prog)

icstat_get_deactivated (prog) icstat_plot_graph (prog) icstat_set_param_column_labels(prog)

icstat_get_filtered_rows (prog) icstat_set_row (prog) iicstat_nonparametric_models (prog)

icstat_get_attribute_columns(prog)

icstat_get_row (prog) icstat_clear (prog)

icstat_activate (prog) icstat_get_text_cell (prog) icstat_delete (prog)

icstat_insert (prog)

S

Switching Matrix

Connect (prog) SWM_debug (prog) Wait (prog)

FNPort (prog) SWM_init (prog) HP5250_bias_card (prog)

HP5250_card_config (prog) HP5250_bias_channel (prog) HP5250_bias_init (prog)

HP5250_bias_setmode (prog) HP5250_compensate_cap (prog) HP5250_connect (prog)

HP5250_couple_enable (prog) HP5250_couple_setup (prog) HP5250_debug (prog)

HP5250_disconnect_card (prog) HP5250_init (prog) HP5250_show (prog)

K707_init (prog) K708a_init (prog) K70X_clear_setup (prog)

K70X_close_crosspoints (prog) K70X_config_trigger (prog) K70X_connect_sequence (prog)

K70X_copy_setup (prog) K70X_debug (prog) K70X_delete_setup (prog)

K70X_edit_setup (prog) K70X_init_interface (prog) K70X_open_crosspoints (prog)

K70X_trigger_disable (prog) K70X_trigger_enable (prog)

T

Target

TARGET_DC_vth (prog)

TRL Calibration

8753_TRL_Cal (prog) TRL_Cal (prog)

Page 128: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

127

U

USERC

USERC_init_param (prog) USERC_open (prog) USERC_sweep_start (prog)

USERC_avg_2 (prog) USERC_read_reals (prog) USERC_sweep_stepsize (prog)

USERC_avg_3 (prog) USERC_readnum (prog) USERC_sweep_stop (prog)

USERC_conjg (prog) USERC_readstr (prog) USERC_system (prog)

USERC_transpose (prog) USERC_seek (prog) USERC_tell (prog)

USERC_close (prog) USERC_set_param (prog) USERC_write (prog)

USERC_data_w_check (prog) USERC_size (prog) USERC_sweep_name (prog)

USERC_num_of_points (prog) USERC_set_param_quiet (prog) USERC_sweep_mode (prog)

USERC_get_object_name (prog)

Utility

check_error_log (prog) copy2output (prog) Package (prog)

dataset (prog) lookup_par (prog) lookup_var (prog)

ascii$ (prog) make_bool (prog) is_noise (prog)

is_constant (prog)

V

VBIC

VBIC_ac_solver (prog) VBIC_avc (prog) VBIC_cbc (prog)

VBIC_cbe (prog) VBIC_cj0 (prog) VBIC_clean_data (prog)

VBIC_csc (prog) VBIC_dc_approx (prog) VBIC_dci_solver (prog)

VBIC_dcv_solver (prog) VBIC_fg_currents (prog) VBIC_ibci_nci (prog)

VBIC_ibei_nei (prog) VBIC_ikf (prog) VBIC_stoc (prog)

VBIC_ikr (prog) VBIC_is_nf (prog) VBIC_isp_nfp (prog)

VBIC_nr (prog) VBIC_qcdepl (prog) VBIC_rcx (prog)

VBIC_rg_currents (prog) VBIC_vef_ver (prog)

W

Wafer Prober

Pdown (prog) Porig (prog) Prober_status (prog)

Phome (prog) Ppos (prog) Pscale (prog)

Pimove (prog) Prober_debug (prog) Pup (prog)

Pink (prog) Prober_init (prog) PB_bindex (prog)

Pmove (prog) Prober_reset (prog) PB_gsite_xy (prog)

PB_abort (prog) PB_bincode (prog) PB_msite_xy (prog)

PB_bindex_cr (prog) PB_index_cr (prog) PBench_CMD (prog)

PB_index (prog) PB_gindex_cr (prog) tis_p_down (prog)

tis_p_home (prog) tis_p_imove (prog) tis_p_ink (prog)

tis_p_move (prog) tis_p_orig (prog) tis_p_pos (prog)

tis_p_scale (prog) tis_p_up (prog) tis_prober_get_ba (prog)

tis_prober_get_name (prog) tis_prober_init (prog) tis_prober_read_sysconfig (prog)

tis_prober_reset (prog) tis_prober_status (prog)

Wafer Pro

WPro_lookup_info (prog) WPro_set_info (prog) stabilization_reached (prog)

extrapolate (prog)

Wire Functions

wirexfX (prog) wirexfY (prog) wirexfYX (prog)

wirexfXY (prog)

User Defined Functions

Page 129: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

128

Adding Functions to the Function Browser

This section describes six functions for adding the new function to the Function Browserand provides declarations for them. These IC-CAP functions (Functions for Adding a NewFunction to the Function Browser (prog)) make a pointer to the new function, as well ascounts indicating how many instances of each possible input type the function expects toreceive. For example, an extraction function may need to receive two data set inputs, zeroreal numbers, and four model parameters. The system stores the address of the function,and uses the counts to construct editors at run-time, when the function is selected for useby a transform. You can elect to receive data sets in the form of real arrays, complexarrays, or matrix arrays. You can also choose to run the function automatically when itsinputs change or to run it when the Extract command is executed for a setup.

NoteFor the following functions, you must use the funcptr argument as described; otherwise, a core dump orother erratic behavior may occur when IC-CAP calls the new function.

The arguments for these functions are defined as:

name A string (char*) containing the name for the new function as it shouldappear in the IC-CAP Function Browser

funcptr A function pointer that is the actual name of the new function asdefined in userc.c

ni An integer indicating the number of input data sets required by the newfunction

op An integer indicating the number of points in the output data set createdby the new function. This is often set to -1, which indicates that the number ofpoints returned by the function will be the same as the number of points in theOutputs within the current setup. A value of -2 indicates that the number ofpoints returned by the function will be the same as the number of points in thelargest data set passed to the function.

nvr An integer indicating the number of variables (real/complex numberarguments) required by the new function

npr An integer indicating the number of parameter names (or other strings)required by the new function

xfft An enumerated type used to set the type of the new function. A functioncan be an extraction, a math function, or a special function. An extraction isexecuted when you issue the Extract command for the Active setup or ActiveDUT and a math function is automatically executed if any of its inputs change. Aspecial function must always be executed manually. Refer to the description ofthe xffunc_type enum in xf_util.c.h for the available choices. The functions,add_double_c_func1, add_complex_c_func1, or add_matrix_c_func1 do notcontain this argument. If they are used to add the new function to the FunctionBrowser, the function is assumed to be a math function.

bdf This argument is reserved for future use. Always set it to 0.

After a function is installed in the Function Browser, a series of calls should be madeimmediately to provide labels for the data set expressions, numeric expressions, andparameter inputs that appear in the editor of any transform using the function. Forinformation about providing labels, refer to Labeling the Editor Input Fields (prog).

Functions for Adding a New Function to the Function Browser

Page 130: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

129

Function Definition

add_double_c_func1 Installs a user-defined function in the Function Browser. Funcptr should be the name ofa C function taking an argument list identical to average_double(). Refer to userc.c, forexamples of this function call.Syntax:void add_double_c_func1 ( /* char* name,

FUNCPTR_TYPE funcptr, int ni,int op, int

nvr, int npr */ );

add_double_c_func2 Installs a user-defined function in the Function Browser. Funcptr should be as inadd_double_c_func1. The type of the new function can be set with the xfft argument.The bdf argument is reserved for future use. Always set it to 0.Syntax:void add_double_c_func2 ( /* char* name,

FUNCPTR_TYPE funcptr, int ni, int op,

int nvr, int npr, xffunc_type xfft, int bdf */ );

add_complex_c_func1 Installs a user-defined function in the Function Browser. Funcptr should be the name ofa C function taking an argument list identical to cplx_conj(). Refer to userc.c forexamples of this function call.Syntax:void add_complex_c_func1 ( /* char*

name, FUNCPTR_TYPE funcptr, int ni, int

op, int nvr, int npr */);

add_complex_c_func2 Installs a user-defined function in the Function Browser. Funcptr should be as inadd_complex_c_func1. The type of the new function can be set with the xfftargument. The bdf argument is reserved for future use. Always set it to 0.Syntax:void add_complex_c_func2 ( /* char*

name, FUNCPTR TYPE funcptr, int ni, int

op, int nvr, int npr, xffunc type xfft, int bdf */ );

add_matrix_c_func1 Installs a user-defined function in the Function Browser. Data sets consisting ofcomplex matrices (s-parameter data) are supplied when this function is called.Declarations for the matrices can be found in userc.h. Funcptr should be the name of aC function taking an argument list identical to matrix_transpose(). Refer to userc.c foran example of this function call.Syntax:void add_matrix_c_func1 ( /* char* name,

FUNCPTR_TYPE funcptr, int ni, int op,

int nvr, int npr */ );

add_matrix_c_func2 Installs a user-defined function in the Function Browser. Funcptr should be as inadd_matrix_c_func1. The type of the new function can be set with the xfft argument.The bdf argument is reserved for future use. Always set it to 0.Syntax:void add_matrix_c_func2 ( /* char* name,

FUNCPTR TYPE funcptr, int ni, int op, int

nvr, int npr, xffunc type xfft, int bdf*/ );

Argument List Guidelines

The argument lists for new functions must agree with IC-CAP's requirements. Forexample, add_complex_c_func1() tells the system that a function such as cplx_conjexpects complex data set inputs, output array, and numeric variables. This is also thecase for cplx_conj().

As another example, add_double_c_func1() is used to tie in average_double(), whichexpects double data set inputs, output array, and numeric variables. New C functions, likecplx_conj() and average_double(), must be installed using the appropriate call, so that IC-CAP can invoke the function. Otherwise, core dumps can result.

Adding Function Descriptions to the Function Browser

By default, when you create a new function in IC-CAP, the function appears in the UserDefined category in the Function Browser dialog box. You can create dialog boxdocumentation for the function and/or place it in another category. The process consists oftwo basic steps:

Create a text file with the documentation

Page 131: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

130

Declare a variable to identify the location and name of the text file

To document and categorize user-defined functions:

Create a text file using any text editor.1.Create a record for each function using the following form:2.

<function_name>

"<group1>"[,"<group2>"]...

<multiline description>

-

<multiline list of extracted parameters>

where

<function_name> appears exactly (spelling/case) as you created it in IC-CAP

<"group1"> is the label of the category (new or existing) you want the functionto be listed under in the Function Browser. Note that additional groups areoptional. If you want a function to appear in more than one category, list eachcategory name, separated by commas.

<multiline description> is the text you want displayed in the Description field

- indicates the end of text for the Description field and beginning of text for theExtracted Parameters field

<multiline list of extracted parameters> is the list of parameters you wantdisplayed in the Extracted Parameters field (where applicable)

When creating each record observe the following guidelines:

Use an exclamation mark (!) as a comment symbol in column 1Use a single asterisk (*) on a line to indicate a record separator (no spaces allowed)Use a single hyphen (-) on a line to indicate the separation between text for theDescription field and text for the Extracted Parameters field (no spaces allowed)

NoteMultiple functions can be declared in a single file or in separate files.

To declare the variable identifying your function documentation:

Create the variable ICCAP_USER_FUNCTION_BROWSE_DATA in any of the following1.files:

$ICCAP_ROOT/iccap.cfg (for site-wide use)$HOME/.iccap (for individual use, all sessions).iccap in any startup directory (for individual use, particular session)The program searches the startup directory first, then $HOME, then theinstallation directory. For information on changing these files, refer to theInstallation manual.

Set the variable to the path and filename(s) of your function documentation file(s);2.for example:ICCAP_USER_FUNCTION_BROWSE_DATA = {$HOME}/my_func.txt

When listing multiple files, separate filenames by colons.Re-start IC-CAP. The program reads the listed files, in addition to the supplied3.function file, and display all functions in the Function Browser.

Page 132: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

131

Labeling the Editor Input Fields

This section describes the functions used for labeling the fields appearing in transformeditors. Also, custom functions and transforms may show appropriate labels to remind youof the types of arguments needed at run-time.

The following definitions are used in this section:

An input, or data set input, denotes a data set or an expression involving datasets.A numeric variable is a field in which a user can provide a real number or expression.A parameter is a field in which a user can provide the name of a model or DUTparameter, an arbitrary string expression (as is the case with the USERC_systemfunction), or the name of an IC-CAP system variable.

Labeling the Fields Functions

Function Definition

add_input_name Specifies a label appearing for a data set input field when a user-defined function isused in a transform. Refer to userc.c for examples of this call. This should be calledonce for each data set input required. The number of data set inputs required isspecified as ni in one of the calls described in Adding Functions to the Function Browser(prog). Limit the length of the name argument to 12 characters; otherwise it may betruncated when displayed by IC-CAP.Syntax:void add_input_name ( /* char* name */ );

add_variable_name Specifies a label appearing for a numeric variable field when a user-defined function isused in a transform. Refer to userc.c for examples of this call. This should be calledonce for each numeric variable required. The number of numeric variables required isspecified as nvr in one of the calls described in Adding Functions to the FunctionBrowser (prog). Limit the length of the name argument to 12 characters; otherwise itmay be truncated when displayed by IC-CAP.Syntax:void add_variable_name (/* char* name */ );

add_parameter_name Specifies a label appearing for a parameter field when a user-defined function is usedin a transform. Refer to userc.c for examples of this call. This should be called once foreach parameter required. The number of parameters required is specified as npr in oneof the calls described in Adding Functions to the Function Browser (prog). Limit thelength of the name argument to 12 characters; otherwise it may be truncated whendisplayed by IC-CAP.Syntax:void add_parameter_name (/* char* name */ );

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 isprovided, appear only in userc.c or userc.h. Each is described in the following tables.

Accessing Model and DUT Parameters Functions

Page 133: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

132

Function Definition

get_par_w_check Finds a parameter's value, given its name. The value is passed back via the double*second argument. Return values are:0 = parameter found-1 = parameter not foundSyntax:extern int get_par_w_check ( /* char

*param_name, double *return_data */ );

set_par_w_check Sets a parameter's value. The value is passed in via the double* second argument.Return values are:0 = parameter found-1 = parameter not foundSyntax:extern int set_par_w_check ( /* char

*param_name, double val */ );

set_par_w_check_ptr Sets a parameter's value. The value is passed in via the double* second argument. Thisis more suitable for FORTRAN calling than C, since the second argument is by address.Return values are:0 = parameter found-1 = parameter not foundSyntax:extern int set_par_w_check_ptr ( /* char

*param_name, double *val */ );

Accessing System Variables Functions

Function Definition

get_var_w_check Finds a system variable's value, given its name. The value is passed back via thedouble* second argument. Return values are:0 = system variable found-1 = system variable not foundSyntax:extern int get_var_w_check ( /* char

*variable_name, char *return_data */ );

get_var_str_w_check Finds a system variable's string value, given its name. The value is returned byreference in the second argument. A static area is used for the returned string, so copythe returned string if you want to save the value and intend to call this function again.Return values are:0 = system variable found-1 = system variable not foundSyntax:extern int get_var_str_w_check ( /* char

*variable_name, char **return_data */ );

set_var_w_check Sets a system variable's value. The value is passed in via the double second argument.Return values are:0 = system variable found-1 = system variable not foundSyntax:extern int set_var_w_check ( /* char

*variable_name, double val */ );

set_var_str_w_check Sets a system variable's value. The value is passed in via the char* second argument.This differs from the previous call in that the IC-CAP system variable is assigned astring rather than a numeric value. Return values are:0 = system variable found-1 = system variable not foundSyntax:extern int set_var_str_w_check ( /* char

variable_name, char val */ );

The following utilities compute values for parameters or system variables (which theabove two sections address separately). These functions also generate outputautomatically in the same style as the built-in IC-CAP extraction functions. Source forthese functions appears in userc.c

Accessing Parameters or System Variables Function

Page 134: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

133

Function Definition

get_par_or_var Finds a parameter's or a system variable's value, given its name. In a conflict, preference isgiven to the parameter over the system variable. The value is passed back via the double*second argument. Return values are:0 = parameter or system variable found-1 = parameter or system variable not foundSyntax:extern int get_par_or_var ( /* char

*parameter_name, double *return_data */);

set_par_or_var Sets a parameter's or a system variable's value. In a conflict, preference is given to theparameter over the system variable. The value is passed in via the double second argument.Return values are:0 = parameter or system variable found-1 = parameter or system variable not foundSyntax:extern int set_par_or_var ( /* char

*parameter_name, double val */ );

Routines are provided to read values from IC-CAP data sets and to obtain informationabout the sweeps present in the setup. You can write new data values onto existingoutputs and transforms.

Accessing Parameters or System Variables Functions

Function Definition

get_data_w_check Gets the value of a single point in an IC-CAP data set (an Input, Output, or transform). Acomplex number will be fetched from the IC-CAP data set and placed in data_fetched. Thedata 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 finalargument is the address of a 'complex' struct (see userc.h). An example is provided inxf_util.c.h. Return values are:0 = dataset is found, and msb, row, col, and index are all in range-1 = any error conditionSyntax:extern int get_data_w_check ( /* char*

dsname, char msb, int row, int col, int

index, complex* data_fetched */ );

set_data_w_check Sets the value of a single point in an IC-CAP Output or transform. Setting values in anInput is not supported, because IC-CAP computes and overwrites these automatically. Thedata set name is the first argument. The second argument should specify 'M' (measured)data, or 'S' (simulated). When 'B' (both) is specified, the complex number will be stored inboth the Measured and Simulated parts of the data set. The row and col arguments shouldbe 1,1 unless dealing with two-port data. The index argument can range from 0 to (size ofdataset -1). The final argument is the address of a 'complex' struct (see userc.h). Anexample 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 conditionSyntax:extern int set_data_w_check ( /* char*

dsname, char msb, int row, int col, int

index, complex* data_poked */ );

Advanced functions are available for querying about the inputs used in a setup. Consult/usr/iccap/src/xf_util.c.h for usage and examples of the following functions.

int get_num_of_points ( /* char* setup_path, int swp_order */);

double get_sweep_start ( /* char* setup_path, int swp_order */);

double get_sweep_stop ( /* char* setup_path, int swp_order */);

double get_sweep_stepsize ( /* char* setup_path,int swp_order */);

int get_num_of_curves ( /* char* setup_path */);

int get_points_per_curve ( /* char* setup_path */);

int get_max_sweep_order ( /* char* setup_path */);

int get_sweep_type ( /* char* setup_path, int sweep_order */);

int get_sweep_mode ( /* char* setup_path, int sweep_order */);

int get_log_sweep_dec_or_oct ( /* char* setup_path, int swp_order */);

Using a Dialog Box for User Input Functions

Page 135: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

134

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.Syntax: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.Syntax:int get_string ( /* char* prompt, char*

default_value, char** return_data */) ;

NoteA static area is used for the returned string. You should copy the returned string, or use it before callingthis function again.

Posting to the Error Box Functions

Function Definition

error_message Sends an error message to the system error box. The message should have "\n" at its endfor multiple messages.Syntax:void error_message ( /* char* msg */ );

standard_fail_msg Sends object name, function name, and msg to errbox in a standard format. Refer touserc.c, for the source to this function. The message should have "\n" at its end formultiple messages.Syntax:static void standard_fail_msg (/* char* msg */);

object_name Gets the name of the transform or Macro under which this function is running.Syntax:extern char* object_name ();

function_name Gets the name of the present user-defined function, as it appears in the Function Browser.Syntax:extern char* function_name ();

Calling Menu Functions

menu_func Permits your C functions to invoke IC-CAP menu selections. It behaves like the menu_funcstatement in PEL. However, this function accepts only 2 arguments, and does not provide theability for Anticipating Dialog Boxes that are provided by the menu_func call in PEL. It returns -1if the IC-CAP object does not exist or does not support the selected menu function name.Otherwise it returns 0, including when the menu function is found and executed but produceserrors. For additional information on calling menu functions, refer to Creating and Running Macros(prog).Syntax:int menu_func ( /* char* obj_name, char* func_name */);

8753_TRL_CalDeembed the raw measured data using measured data of TRL (thru-reflect-line)calibration standards. The function calculates and downloads the error coefficients to the8753. The reference plane is defined at the middle of the thru standard, or at the interfaceto the DUT when it is installed in the compatible carrier.

Page 136: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

135

Inputs:

FreqData:

Frequency Inputs

Thru: measured S-parameters of the Thru standard

Short: measured S-parameters of the Short standard

Line A: measured S-parameters of Line A standard

Line B: measured S-parameters of Line B standard

Line C: measured S-parameters of Line C standard

Freq 1 Trans: transition frequency Line A to Line B

Freq 1 Trans: transition frequency Line B to Line C

Outputs: None

absAbsolute value function (magnitude when input data is complex)

Input Arguments:

Data Sets: Input 1

Output: Real number, matrix, real array, or matrix array (depends on input argument)

Automatic Invocation:

On Data Set Input Change

acsInverse cosine in radians.

Input Arguments:

Data Sets: Input 1

Output: Complex number, matrix, complex array, or matrix array (depends on input argument)

Automatic Invocation: On Data Set Input Change

acshInverse hyperbolic cosine.

Input Arguments:

Data Sets: Input 1

Output: Complex number, matrix, complex array, or matrix array (depends on input argument)

Automatic Invocation: On Data Set Input Change

AgilentHBT_ABCX_extractThis function extracts model parameter ABCX.

InputArguments:

Variables: Emitter Area, Total Area

Parameters: Parameter(ABCX)

Extracts: ABCX

AgilentHBT_calculate_ccbThis function calculates Cbc in an alternative method from the specified Z-parameters.

Input Arguments:

Inputs: freq, Z11, Z12, Z21, Z22

Output: Complex data sets.

AgilentHBT_calculate_rbb

Page 137: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

136

This function calculates Rb in an alternative method from the specified H-parameters.

InputArguments:

Inputs: freq, H11, H12, H21, H22

Variables: Mode (0:ignore RE effect, 1:include RE effect)

Parameters: Parameter(RE)

Output: Complex data sets

AgilentHBT_CCMAX_extractThis function extracts model parameter CCMAX.

InputArguments:

Inputs: Vbc (as positive value), Cbc

Parameters: Parameter(CCMAX), Parameter(VJC)

Extracts: CCMAX

AgilentHBT_CEMAX_extractThis function extracts model parameter CEMAX.

InputArguments:

Inputs: Vbe, Cbe

Parameters: Parameter(CEMAX), Parameter(VJE)

Extracts: CEMAX

AgilentHBT_CJC_extractThis function extracts model parameter CJC.

InputArguments:

Inputs: Vbc (as positive value), Cbc

Parameters: Parameter(CJC), Parameter(CPBC)

Extracts: CJC

AgilentHBT_CJE_extractThis function extracts model parameter CJE.

InputArguments:

Inputs: Vbe, Cbe

Parameters: Parameter(CJE), Parameter(CPBE)

Extracts: CJE

AgilentHBT_IS_NF_extractThis function extracts model parameters IS, NF.

InputArguments:

Inputs: Vbe, Ic

Variables: X Low, X High, Y Low, Y High, TEMP

Parameters: Parameter(IS), Parameter(NF)

Extracts: IS, NF

Page 138: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

137

AgilentHBT_ISC_NC_extractThis function extracts model parameters ISC, NC.

InputArguments:

Inputs: Vcb (as positive value), Ib

Variables: X Low, X High, Y Low, Y High, TEMP

Parameters: Parameter(ISC), Parameter(NC)

Extracts: ISC, NC

AgilentHBT_ISE_NE_extractThis function extracts model parameters ISE, NE.

InputArguments:

Inputs: Vbe, Ib

Variables: X Low, X High, Y Low, Y High, TEMP

Parameters: Parameter(ISE), Parameter(NE)

Extracts: ISE, NE

AgilentHBT_ISH_NH_extractThis function extracts model parameters ISH, NH.

InputArguments:

Inputs: Vbe, Ib

Variables: X Low, X High, Y Low, Y High, TEMP

Parameters: Parameter(ISH), Parameter(NH)

Extracts: ISH, NH

AgilentHBT_ISR_NR_extractThis function extracts model parameters ISR, NR.

InputArguments:

Inputs: Vcb (as positive value), Ie

Variables: X Low, X High, Y Low, Y High, TEMP

Parameters: Parameter(ISR), Parameter(NR)

Extracts: ISR, NR

AgilentHBT_ISRH_NRH_extractThis function extracts model parameters ISRH, NRH.

InputArguments:

Inputs: Vcb (as positive value), Ib

Variables: X Low, X High, Y Low, Y High, TEMP

Parameters: Parameter(ISRH), Parameter(NRH)

Extracts: ISRH, NRH

AgilentHBT_ITC_ITC2_extractThis function extracts model parameters ITC, ITC2.

Page 139: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

138

InputArguments:

Inputs: Ic, Ft, Vc, Vb

Variables: X Low, X High, Y Low, Y High

Parameters: Parameter(ITC), Parameter(ITC2)

Extracts: ITC, ITC2

AgilentHBT_Param_InitThis function initializes the model parameters for the extraction.

InputArguments:

Variables: Emitter Width (W) [um]Emitter Length (L) [um]# of Emitter Fingers (NF)Total Area [um2]

Parameters: Parameter(hbt.TNOM)

Extracts: All Agilent-HBT model parameters

AgilentHBT_TFC0_extractThis function extracts model parameter TFC0.

InputArguments:

Inputs: Ic or Ic-1, Tau, Vc, Vb

Variables: X Low, X High, Y Low, Y High

Parameters: Parameter(TFC0)

Extracts: TFC0

AgilentHBT_VJC_extractThis function extracts model parameter VJC.

InputArguments:

Inputs: Vbc (as positive value), Cbc, Cdiff

Parameters: Parameter(VJC), Parameter(CJC), Parameter(CPBC)

Extracts: VJC

AgilentHBT_VJE_extractThis function extracts model parameter VJE.

InputArguments:

Inputs: Vbe, Cbe, Cdiff

Parameters: Parameter(VJE), Parameter(CJE), Parameter(CPBE)

Extracts: VJE

argArgument (phase angle), in radians, for a complex number.

Input Arguments:

Data Sets: Input 1

Output: Real number, matrix, real array, or matrix array (depends on input argument)

Automatic Invocation: On Data Set Input Change

Page 140: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

139

ascii$C onverts ascii-coded characters into literal characters as entered into a text box.

If certain characters are entered in a text box, they must be encoded so they arecompatible with the .mdl file format used in variable tables. These characters includedouble quotes (") and newlines (\n). Such characters may be entered in a GUI's edit boxand tracked by a variable table variable. IC-CAP must encode these characters beforestoring them in a .mdl file to avoid undesirable effects.

After the characters are encoded, they appear as encoded characters if you choose toprint them from the .mdl file to an output such as the Status window. To translate theencoding, call the function ascii$() in PEL and the string will be output exactly as it wastyped into the text box.

asnInverse sine in radians.

Input Arguments:

Data Sets: Input 1

Output: Complex number, matrix, complex array, or matrix array (depends on input argument)

Automatic Invocation: On Data Set Input Change

asnhInverse hyperbolic sine.

Input Arguments:

Data Sets: Input 1

Output: Complex number, matrix, complex array, or matrix array (depends on input argument)

Automatic Invocation: On Data Set Input Change

atnInverse tangent in radians.

Input Arguments:

Data Sets: Input 1

Output: Complex number, matrix, complex array, or matrix array (depends on input argument)

Automatic Invocation: On Data Set Input Change

atnhInverse hyperbolic tangent.

Input Arguments:

Data Sets: Input 1

Output: Complex number, matrix, complex array, or matrix array (depends on input argument)

Automatic Invocation: On Data Set Input Change

autofitPerforms an automatic line fit to a set of X and Y data sets. This function finds the largestregion of the line that fits with less than the specified error from the RMS limit field. Abuffer can be specified that removes a certain percentage of the data from each end of thecurve. This eliminates data points that may throw off the line fit. The percentages shouldbe specified out of 1. For example, 0.01 = 1%. If the OVERRIDE_LIMITS variable is TRUE,the limits can be specified manually with the X_LOW and X_HIGH variables, which can beset from the Plot menu.

Page 141: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

140

This function should only be used on data with a single sweep variable. A 3 point data set,containing slope and intercept data and the regression coefficient, is returned.

Input Arguments:

Data Sets: X Data, Y Data

Reals or Integers: RMS limit, Buffer

Output: Array of 2 points: slope then intercept

Automatic Invocation: None

Example PEL Statement: fit_data = autofit(-ve,log(ic.m),0.01,0.1)

autofit3Performs an automatic line fit to a set of X and Y data sets using a set of data whichdefines the second order sweep values just like Curve Data can be specified for plots.

This function finds the largest region of the line that fits with less than the specified errorfrom the RMS limit field. A buffer can be specified that removes a certain percentage ofthe data from each end of the curve. This eliminates data points that may throw off theline fit. The percentages should be specified out of 1. For example, 0.01 = 1%.

If the OVERRIDE_LIMITS variable is TRUE, the limits can be specified manually with theX_LOW and X_HIGH variables, which can be set from the Plot menu.

This function only acts on the first curve passed in.

B2200_bias_card_enableBias-enables all the output ports of the specified card. By default, all ports are bias-enabled after a reset.

Syntax

B2200_bias_card_enable(<addr>, <CardNumber>, <CardState>)

Where

<addr> is the GPIB address of the Mainframe (must be a positive number from1 to 30).<CardNumber> is 0(auto), 1, 2, 3, or 4.<CardState> is the card output port's state (allowed values are "ENABLE","DISABLE", "E", or "D").

B2200_bias_ch_enableBias-enables specific output ports in the channel list for the specified card. The input portsspecified in the channel list are ignored since the input port is always the Bias Input Port.By default, all the outputs are bias-enabled after a reset.

Syntax

B2200_bias_ch_enable(<addr>,<CardNumber>,<State>,<Channel list>)

Where

<addr> is the GPIB address of the Mainframe (must be a positive number from1 to 30).<CardNumber> is 0(auto), 1, 2, 3, or 4.<State> is the output port's state (allowed values are "ENABLE", "DISABLE","E", or "D")<Channel list> is the list of channels, known as connection routes. Examplechannel list: (@10102, 10203, 10305:10307)

Page 142: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

141

B2200_bias_enableEnables the bias mode for the specified card once Input Bias Port and Enabled Outputports are specified. When Bias Mode is ON, the Input Bias Port is connected to all BiasEnabled output ports that are not connected to any other input ports. Bias Disabled outputports are never connected to an Input Bias Port when Bias Mode is ON.

If another input port is disconnected from a bias enabled output port, this port isautomatically connected to the Input Bias Port.

If another input port is connected to a Bias Enabled output port, the output port isautomatically disconnected from the Bias Input Port. When Bias Mode is OFF, the InputBias Port is the same as the other ports.

Syntax

B2200_bias_enable(<addr>, <CardNumber>, <mode>)

Where

<addr> is the GPIB address of the Mainframe (must be a positive number from1 to 30).<CardNumber> is 0(auto), 1, 2, 3, or 4.<mode> is "On", "Off", "1", or "0".

B2200_bias_initSelects the Input Bias Port for the specified card. The Input Bias Port is the dedicated biasport.

Syntax

B2200_bias_init(<addr>, <CardNumber>, <InputBiasPort>)

Where

<addr> is the GPIB address of the Mainframe (must be a positive number from1 to 30).<CardNumber> is 0(auto), 1, 2, 3, or 4.<InputBiasPort> is 1 to 14 (numeric input) or -1 to disable bias port.

B2200_close_interfaceCloses the current interface, which was opened by calling B2200_open_interface().

B2200_connectConnects or disconnects specified channels. Bias Mode and coupling Mode are also takeninto account when a channel is closed or opened.

For example, in the list (@10102, 10203:10205), the following channels are connected ordisconnected on card 1. Input port 1 to output port 2. Input port 2 to output port 3 and 5.

Syntax

B2200_connect(<addr>,<Connect/Disconnect>,<ChannelList>)

Where

<addr> is the GPIB address of the Mainframe (must be a positive number from1 to 30).<Connect/Disconnect> is C or D.

Page 143: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

142

<ChannelList> is the list of connections to close.

B2200_couple_enableEnables or disables Couple Port mode. Couple Port mode allows synchronized connectionof two adjacent input ports to two adjacent output ports.

Syntax

B2200_couple_enable(<addr>, <CardNumber>, <Mode>)

Where

<addr> is the GPIB address of the Mainframe (must be a positive number from1 to 30).<CardNumber> is 0(auto), 1, 2, 3, or 4.<mode> is "On", "Off", "1", or "0".

B2200_couple_setupSelects the couple ports for Kelvin connections. At Reset, no input ports are coupled.

Syntax

B2200_couple_setup(<addr>,<CardNumber>,<ListOfCoupledPorts>)

Where

<addr> is the GPIB address of the Mainframe (must be a positive number from1 to 30).<CardNumber> is 0(auto), 1, 2, 3, or 4.<ListOfCoupledPorts> is the list of odd number input channels (e.g., "1, 3, 5"means coupled ports are 1-2, 3-4, 5-6).

B2200_debugPrints out all command strings sent to the instrument when set to 1. This flag is commonto all B2200A's on the bus, regardless of their GPIB address.

Syntax

B2200_debug(<flag>)

Where

<flag> is "1", "0", "Yes", or "No".

B2200_disconnect_cardOpens all relays or channels in the specified cards.

Syntax

B2200_disconnect_card(<addr>, <CardNumber>)

Where

<addr> is the GPIB address of the Mainframe (must be a positive number from1 to 30).<CardNumber> is 0(auto), 1, 2, 3, or 4.

B2200_GPIB_handlerReturns -1 if the interface has not been initialized (invalid handler). Returns a positive

Page 144: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

143

integer (handler) if the interface has been opened.

Returns the current interface handler. The function is provided as a utility function, whichenables you to write advanced PEL code to write and read data to the B2200A using theHPIB_write and HPIB_read functions. Initializing the handler using B2200_open_interfaceenables you to use B2200A's built-in driver functions as well as writing PEL code tosupport other features that are not currently supported by the built-in functions, all in thesame PEL code.

B2200_ground_card_enableEnables ground-enabling for all the output ports of the specified card. By default, all portsare ground-disabled.

Syntax

B2200_ground_card_enable(<addr>,<CardNumber>,<CardState>)

Where

<addr> is the GPIB address of the Mainframe (must be a positive number from1 to 30).<CardNumber> is 0(auto), 1, 2, 3, or 4.<CardState> is the card output port's state (allowed values are "ENABLE","DISABLE", "E", or "D").

B2200_ground_enableEnables the bias mode for the specified card. When Ground Mode is turned ON, the InputGround Port (default is 12) is connected to all the Ground Enabled input/output ports thathave not been connected to any other port. At Reset, Ground Mode is OFF. Ground Modecannot be turned ON when Bias Mode is ON.

See the Agilent B2200 User's Guide for additional comments and restrictions.

Syntax

B2200_ground_enable(<addr>, <CardNumber>, <mode>)

Where

<addr> is the GPIB address of the Mainframe (must be a positive number from1 to 30).<CardNumber> is 0(auto), 1, 2, 3, 4.<mode> is "On", "Off", "1", or "0".

B2200_ground_initSelects the input Ground Port for the specified card. For each card, you can specify thesame or a different Ground Port. By default, the input Ground Port is port 12. The groundport should be connected to 0 V output voltage. See the Agilent B2200 User's Guide fordetails.

Syntax

B2200_ground_init(<addr>,<CardNumber>,<InputGroundPort>)

Where

<addr> is the GPIB address of the Mainframe (must be a positive number from1 to 30).<CardNumber> is 0(auto), 1, 2, 3, or 4.<InputGroundPort> is 1 to 14 (numeric input) or -1 to disable ground port.

Page 145: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

144

B2200_ground _outch_enableGround-enables or ground-disables output ports. When Ground Mode is turned ON, theground-enabled output ports that have not been connected to any other input port areconnected to the input ground port. The input ports specified in channel lists are ignoredsince the input port is always the Input Ground Port. By default, all the outputs areground-disabled after a reset.

Syntax

B2200_ground _outch_enable(<addr>,<CardNumber>,<State>,<Channel list>)

Where

<addr> is the GPIB address of the Mainframe (must be a positive number from1 to 30).<CardNumber> is 0(auto), 1, 2, 3, or 4.<State> is the port's state (allowed values are "ENABLE", "DISABLE", "E", or"D").<Channel list> is the list of channels, known as connection routes. Examplechannel list: (@10102, 10203, 10305:10307)

B2200_ground _unused_inputsSpecifies the ground-enabled (or unused) input ports for the specified card. When GroundMode is turned ON, the ground-enabled input ports that have not been connected to anyother port are connected to the input Ground Port. By default, all the inputs are ground-disabled after a reset.

Syntax

B2200_ground _unused_inputs(<addr>,<CardNumber>,<Input Channels>)

Where

<addr> is the GPIB address of the Mainframe (must be a positive number from1 to 30).<CardNumber> is 0(auto), 1, 2, 3, 4.<Input Channels> is the list of input channels (e.g., "1, 2, 5"). Only input ports1 to 8 can be defined as unused (these are the input Kelvin Ports).

B2200_initMust be run first in the PEL program to initialize the instrument and set the configurationmode. When the instrument is in AUTO configuration mode and multiple plug-in cards areinstalled in the B2200 slots from slot 1 continuously, the installed cards are then treatedas one card (numbered 0). This function resets all the settings to factory default beforesetting the configuration mode.

This function also sets the default connection rule for the specified card. When theconnection rule is FREE (default mode), each input port can be connected to multipleoutput ports and each output port can be connected to multiple input ports. When theconnection is SINGLE, each input port can be connected to only one output. Connectionsequence specifies the open/close sequence of the relays when changing from an existingconnection to a new connection.

Syntax

B2200_init( <addr>, <cardNumber>, <config>, <connectionRule>,

<connectionSequence>)

Where

Page 146: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

145

<addr> is the GPIB address of the Mainframe (must be a positive number from1 to 30).<cardNumber> is 0(auto), 1, 2, 3, or 4.<config> is "AUTO" or "NORMAL" (string input).<connectionRule> is "FREE" or "SINGLE".<connectionSequence> is "NSEQ", "BBM", or "MBBR".

NSEQ (No SEQuence): Disconnect old route, connect new route. BBM (Break Before Make): Disconnect old route, wait, connect new route. MBBR (Make Before BReak): Connect new route, wait, disconnect old route.

B2200_open_interfaceOpens and initializes the GPIB interface and must be run first in the PEL program. Theinterface handler is saved in a static variable so that the interface will be shared by all theother B2200's function calls. You can drive multiple B2200 instruments as long as they areon the same interface bus (obviously, they must have different addresses).

Syntax

B2200_open_interface(<Interface Name>)

Where

<Interface Name> is the name of the GPIB interface.

BJT_dc_modelCalculates collector current (IC), base current (IB) or gain (BETA) versus terminalvoltages for a bipolar transistor using the UCB DC bipolar model. Set the Output field toIC, IB, or BETA. Use this function in place of an actual simulation for fast optimizations.The source code for this function is provided as an example in the userc.c file.

Input Arguments:

Data Sets: VC, VB, VE

Strings/Pars/Vars Output

Output: Array of real numbers; size determined by inputs

Automatic Invocation: None

BJTAC_high_freqStandard extraction for the UCB Bipolar model. Extracts AC parameters from a commonemitter measurement of H-parameters. Requires the following setup:

H versus Vbe, with Vce = 1V and 3V, and Freq constant.

The frequency value must be past the pole frequency of the device. Optimization can beused to tune the parameter values; typically, it should not be required.

Input Arguments:

Data Sets: Base Voltage, Frequency, Col Voltage, Sub Voltage, H-Par Output

Output: None

Extracts: TF, ITF, XTF, VTF, PTF

Automatic Invocation: By Extract menu function

BJTAC_rb_rbm_irbStandard extraction for the UCB Bipolar model. Extracts base resistance parameters froma common emitter measurement of H11. Requires the following setups:

Page 147: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

146

Ib versus Vbe, with Vce = constant

H11 versus Freq versus Vbe, with Vce = constant

Input Arguments:

Data Sets: IB Data, RBB Data

Output: None

Extracts: RB, RBM, IRB

Automatic Invocation: By Extract menu function

BJTCV_stocCalculates capacitance data from S-parameter data using the following equations:

Cbc(Vbc) = - imag(Y12)/(2*pi*freq)Cbe(Vbe) = imag(Y11)/(2*pi*freq) - Cbc(Vbc)

This allows base-collector and base-emitter capacitance to be calculated from networkanalyzer measurements. The output of this function can be used in place of actualcapacitance data to extract capacitance related parameters.

Input Arguments:

Data Sets: FREQ data, S data

Strings/Pars/Vars: Node (C/E)

Output: Array of real numbers; size determined by inputs

Automatic Invocation: On Data Set Input Change

BJTDC_fwd_gummelStandard extraction for the UCB Bipolar model. Extracts forward Gummel parameters fromforward Gummel plot measurements. Requires the following setup:

Ic and Ib versus Vbe, with Vcb = 0V.

The measured data should include high and low current roll-off effects in the gain. The Vbe

lower limit for extraction is automatically selected. If the OVERRIDE_LIMITS variable istrue, this limit can be specified manually with the X_LOW variable, which can be set fromthe Plot menu. Optimization can be used to tune the parameter values, but should nottypically be required.

Input Arguments:

Data Sets: Fwd VBE, Fwd IC, Fwd IB, Fwd Beta

Output: None

Extracts: ISE, NE, BF, IKF

Automatic Invocation: By Extract menu function

BJTDC_is_nfStandard extraction for the UCB Bipolar model. Extracts saturation current parametersfrom forward gummel plot measurements. Requires the following setup:

Ic and Ib versus Vbe, with Vcb = 0V.

The Vbe limits for extraction are automatically selected. If the OVERRIDE_LIMITS variable

is true, these limits can be specified manually with the X_LOW and X_HIGH variables,which can be set from the Plot menu. Optimization can be used to tune the parameter

Page 148: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

147

values, but should not typically be required.

Input Arguments:

Data Sets: Fwd VBE, Log10 Fwd IC

Output: None

Extracts: IS, NF

Automatic Invocation: By Extract menu function

BJTDC_nrStandard extraction for the UCB Bipolar model. Extracts NR from reverse Gummel Plotmeasurements. Requires the following setup:

Ie and Ib versus Vbc, with Veb = 0V.

The Vbc limits for extraction are automatically selected. If the OVERRIDE_LIMITS variable

is true, these limits can be specified manually with the X_LOW and X_HIGH variables,which can be set from the Plot menu. Optimization can be used to tune the parametervalue, but should not typically be required.

Input Arguments:

Data Sets: Rev VBC, Log10 Rev IE

Output: None

Extracts: NR

Automatic Invocation: By Extract menu function

BJTDC_rcStandard extraction for the UCB Bipolar model. Extracts collector resistance in thesaturation region. Requires the following setup:

Ic versus Vce, with Vbe = typical operating value.

Depending on the device, optimization to this and other DC measurements may berequired to tune the parameter value.

Input Arguments:

Data Sets: VC Data, IC Data

Output: None

Extracts: RC

Automatic Invocation: By Extract menu function

BJTDC_rcfbAlternate extraction for the UCB Bipolar model. Extracts collector resistance using theflyback technique. Requires the following setup:

Vec versus Ib, with the emitter floating.

Depending on the device, optimization to this and other DC measurements may berequired to tune the parameter value.

Page 149: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

148

Input Arguments:

Data Sets: IB Data, VE Data

Output: None

Extracts: RC

Automatic Invocation: By Extract menu function

BJTDC_reStandard extraction for the UCB Bipolar model. Extracts emitter resistance using theflyback technique. Requires the following setup:

Vce versus Ib, with the collector floating.

Depending on the device, optimization to this and other DC measurements may berequired to tune the parameter value.

Input Arguments:

Data Sets: IB Data, VC Data

Output: None

Extracts: RE

Automatic Invocation: By Extract menu function

BJTDC_rev_gummelStandard extraction for the UCB Bipolar model. Extracts reverse Gummel parameters fromreverse Gummel plot measurements. Requires the following setup:

Ie and Ib versus Vbc, with Veb = 0V.

The measured data should include high and low current roll-off effects in the gain. The Vbclower limit for extraction is automatically selected. If the OVERRIDE_LIMITS variable istrue, this limit can be specified manually with the X_LOW variable, which can be set fromthe Plot menu. Optimization can be used to tune the parameter values, but should nottypically be required.

Input Arguments:

Data Sets: Rev VBC, Rev IE, Rev IB, Rev Beta

Output: None

Extracts: ISC, NC, BR, IKR

Automatic Invocation: By Extract menu function

BJTDC_vaf_varStandard extraction for the UCB Bipolar model. Extracts forward and reverse earlyvoltages from common emitter and common collector curves. Requires the followingsetups:

Ic versus Vce versus Vbe.

Ie versus Vec versus Vbc.

The setups should have the same number of base voltage steps. The base voltages shouldbe chosen so that current levels correspond to the peak gain regions of the device. Nomore than 20 percent of the data should be in the saturation region. Optimization can beused to tune the parameter values, but should not typically be required. Optimization ofthese parameters should be performed only after extracting the complete DC model.

Page 150: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

149

Input Arguments:

Data Sets: Forward VC, Forward VB, Forward IC, Reverse VE, Reverse VB, Reverse IE

Output: None

Extracts: VAF, VAR

Automatic Invocation: By Extract menu function

BPOPAMP_macro_modelExtraction function for the Boyle-Pederson- Solomon-Cohn Opamp macromodel written inC code. (Refer to IEEE JSSC vol. SC-9, no. 6, Dec. 1974.) Extracts circuit element valuesfor a specified set of opamp performance measurements. The data set inputs to theextraction function may be from outputs of Setups that measure the specific opampperformance or from values known via other sources such as specifications on a datasheet. The real and integer inputs are not generally measurable and are taken from theknowledge of the design of the opamp being modeled. An expanded description of theinputs is given in parentheses where applicable.

Input Arguments:

Data Sets: Slew Rate +(V/uS), Slew Rate -(V/uS), Bias Current(Amps), Bias Offset(Amps), VoltOffset(Volts), Av(DM) (gain-no unit), BW(Hz), Excess Phase(radians), CMRR (dB),Rout(ohms), Rout-ac(ohms), Isc +(Amps), Isc -(Amps), Vout_max +(Volts), Vout_min -(Volts), Power Diss(Watts), Vcc supply(Volts), Vee supply(Volts)

Reals or Integers:

Nom. Q.IS(nominal input transistor saturation current), R2(mid-stage gain settingresistor), Comp. Cap.(compensation capacitance), Temp.(C), Inputs PNP?(=1 if inputstage uses pnps), Debug?(=1 print debug information during extraction)

Output: None

Extracts: NPN1.BF, NPN1.IS, NPN2.BF, NPN2.IS, C1, RC1, RC2, RE1, RE2, RE, CE, RP, GCM, GA,R2, C2, GB, RO2, RC, RO1, DMOD1.IS, DMOD2.IS, VC, VE, IEE

AutomaticInvocation:

By Extract menu function

BSIM1DC_geom_indepThis function is obsolete.

Generates the BSIM geometry independent parameters (all parameters scaled to channellength and width) from a device file generated either by the BSIM extraction routines inIC-CAP or from a compatible BSIM characterization system.

InputArguments:

None

Output: None

Extracts: VFB, LVFB, WVFB, PHI, LPHI, WPHI, K1, LK1, WK1, K2, LK2, WK2, ETA, LETA, WETA, MUZ,U1, LU1, WU1, DL, DW, X2E, LX2E, WX2E, X3D, LX3E, WX3E, X2MZ, LX2MZ, WX2MZ, MUS,LMUS, WMUS, X2MS, LX2MS, WX2MS, X3MS, LX3MS, WX3MS, X2U0, LX2U0, WX2U0, X2U1,LX2U1, WX2U1, X3U1, LX3U1, WX3U1If subthreshold parameters are extracted, the following geometry independent parameters arealso extracted: N0, LN0, WN0, NB, LNB, WNB, ND, LND, WND

AutomaticInvocation:

By Extract menu function

BSIM1DC_lin_satThis function is obsolete.

Extracts the linear and saturation region parameters of the BSIM model using Id versusVg curves for a single device.

Page 151: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

150

Input Arguments:

Data Sets: Gate V, Bulk V, Drain V, Drain I

Output: None

Extracts: The linear region parameters: VFB, PHI, K1, K2, U0, X2U0.The saturation region parameters: ETA, MUZ, U1, X2MZ, X2E, X3E, X2U1, MUS, X2MS,X3MS, X3U1.

AutomaticInvocation:

By Extract menu function

BSIM1DC_subThis function is obsolete.

Extracts the BSIM subthreshold parameters for a single device using 4 Id versus Vg

curves.

Input Arguments:

Data Sets: Gate V, Bulk V, Drain V, Drain I 1, Drain I 2, Drain I 3, Drain I 4

Output: None

Extracts: N0, NB, ND

Automatic Invocation: By Extract menu function

BSIM2_lin_plotThis function is obsolete.

Acquires specified parameter value data versus 1/W or 1/L and displays plot.

Input Arguments:

Data Sets: Input an output data set with both measured and simulated data types set

Strings/Pars/Vars: Parameter name of parameter to be plotted against 1/W or 1/L, Sort Key - W or L

Output: Array of real numbers; size determined by inputs

Automatic Invocation: None

BSIM2_save_dev_parsThis function is obsolete.

Appends the set of BSIM2 extracted parameters for a single device to the device file in theuser's home directory.

Input Arguments: None

Output: None

Automatic Invocation: By Extract menu function

BSIM2DC_geom_indepThis function is obsolete.

Generates the BSIM2 geometry independent parameters (all parameters scaled to channellength and width) from a device file generated by the BSIM2 extraction routines in IC-CAPor from a compatible BSIM2 characterization system.

Page 152: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

151

InputArguments:

None

Output: None

Extracts: VFB, LVFB, WVFB, PHI, LPHI, WPHI, K1, LK1, WK1, K2, LK2, WK2, ETA0, LETA0, WETA0, MU0,DL, DW, UA0, LUA0, WUA0, U10, LU10, WU10, MU0B, LMU0B, WMU0B, ETAB, LETAB, WETAB,UB0, LUB0, WUB0, UAB, LUAB, WUAB, U1B, LU1B, WU1B, MUS0, LMUS0, WMUS0, MUSB,LMUSB, WMUSB, UBB, LUBB, WUBB, U1D, LU1D, WU1D, N0, LN0, WN0, NB, LNB, WNB, ND,LND, WND, MU20, LMU20, WMU20,MU2B, LMU2B, WMU2B, MU2G, LMU2G, WMU2G, MU30,LMU30, WMU30, MU3B, LMU3B, WMU3B, MU3G, LMU3G, WMU3G, MU40, LMU40, WMU40,MU4B, LMU4B, WMU4B, MU4G, LMU4G, WMU4G, VOF0, LVOF0, WVOF0, VOFB, LVOFB, WVOFB,VOFD, LVOFD, WVOFD, AI0, LAI0, WAI0, AIB, LAIB, WAIB, BI0, LBI0, WBI0, BIB, LBIB, WBIB,VGHIGH, LVGHIGH, WVGHIGH, VGLOW, LVGLOW, WVGLOW

AutomaticInvocation:

By Extract menu function

BSIM2DC_lin_satThis function is obsolete.

Extracts the linear, saturation, and subthreshold region parameters of the BSIM2 modelusing 2 families of Id versus Vg curves for a single device. Also extracts the output

resistance parameters of the BSIM2 model using 2 families of Id versus Vd curves for a

single device.

Input Arguments:

Data Sets: Gate V, Bulk V, Drain V, Drain I vs Vg, Drain I vs Vd

Output: None

Extracts: The linear region parameters: VFB, PHI, K1, K2, MU0, MU0B, UA0, UAB, UB0, UBB,VGHIGH, VGLOW.The saturation region parameters: MUS0, MUSB, U10, U1B, ETA0, ETAB, VOF0, VOFD,VOFB.The subthreshold region parameters: N0, NB, ND.The output resistance parameters: MU20, MU2B, MU2G, MU30, MU3B, MU3G, MU40,MU4B, MU4G, AI0, AIB, BI0, BIB, U1D

AutomaticInvocation:

By Extract menu function

BSIM3_calculateCalculates the drain current of the BSIM3v3.2 model and different internal states of themodel for the given terminal voltages vd, vg, vs, and vb. The type of internal state, forexample, the drain source resistance rds can be selected by the select output flag. Insome cases it is necessary to use a measured value for the threshold voltage instead ofthe calculated. Use the select input flag to select measured or calculated. If this is notequal to zero, then the value in value input is used for vth instead of the calculated one.

Page 153: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

152

InputArguments:

Variables: vd Drain voltagevg Gate voltagevs Source voltagevb Bulk voltageLength (L) Gate lengthWidth (W) Gate widthselect input (if 1 use value input for Vth)value input (value input for Vth if select input = 1)

Parameters: None

Output: Value to calculate or failure indicatoroutput[0] = lx;output[1] = wx;output[2] = vbseff;output[3] = vt0;output[4] = nonlat;output[5] = dvtx;output[6] = dvtx_w;output[7] = k3w0;output[8] = eta_vd;output[9] = vth;output[10] = vgsteff;output[11] = abulk;output[12] = ueff;output[13] = rds;output[14] = vdsat;output[15] = vdseff;output[16] = idlin;output[17] = idr;output[18] = vasat;output[19] = vaclm;output[20] = vadiblc;output[21] = inv_vascbe;output[22] = va; output[23] = idout;

Extracts: Nothing

BSIM3_check_parChecks whether a model parameter is in a predefined range. The range information forthis parameter must be given in a variable in the referenced path. The range informationis stored in a string in the following format:

range_A0

>-1 0 10 -

| | | |___ upper error condition ({operator(<,<=), value}{-)}

| | |______ upper optimization boundary

| |___________ lower optimization boundary

|______________ lower error condition ({operator(>,>=), value}{-)}

InputArguments:

Variables: Actual value of parameter to check

Parameters: Parameter name Path to parameter range definition

Output: Flag for correct operation:0: parameter is in specified range-1: parameter is outside specified range-2: error during function execution (e.g., variable 'range_xx' not found)

Example call inPEL:

check =

BSIM3_check_par(prwg,"PRWG","/BSIM3_DC_CV/Extraction_configuration/Boundaries")

BSIM3_DC_calc_bin_parameterThis function calculates from the input the 4 binning parameters P0, PL, PW, and PP. If thecalculation is done correctly, outputs[0] will return 0. Otherwise, outputs[0] will result in anegative number. In such a case, the error will be printed in detail in the output window.

Page 154: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

153

InputArguments:

Inputs: Array with 4 parameters P1 .. P4 of the bin cornersArray with 4 gate lengths L1 .. L4 of the bin cornersArray with 4 gate widths W1 .. W4 of the bin cornersArray with 4 values for the number of gate fingers NF1 .. NF4 of the bin cornersParameter set (get with 'BSIM3_DC_get_parameter()')

Output: Array containing error condition and binning parametersoutputs[0] = error condition (0=o.k., any other number indicates an error)outputs[1] = P0outputs[2] = PLoutputs[3] = PWoutputs[4] = PP

Extracts: Binning parameters P0, PL, PW, PP

Example call in PEL:

complex l[4]

complex w[4]

:

l[0]= 1u

:

par = BSIM3_DC_get_parameter()

bin_par = BSIM3_DC_calc_bin_parameter(p, l, w, par)

BSIM3_DC_calculateCalculates the drain current of the BSIM3v3.2 model and different internal states of themodel for the given terminal voltages vd, vg, vs, and vb. The type of internal state, forexample, the drain source resistance rds can be selected by the select output flag. Insome cases, it is necessary to use a measured value for the threshold voltage instead ofthe calculated. Use the select input flag to select measured or calculated. If this is notequal to zero, then the value in value input is used for vth instead of the calculated one.

InputArguments:

Variables: vd Drain voltagevg Gate voltagevs Source voltagevb Bulk voltageLength (L) Gate lengthWidth (W) Gate widthselect input (if 1 use value input for Vth)value input (value input for Vth if select input = 1)

Output: Vector with BSIM4 internal states for the given DC bias point. By setting debug = 1, thisvector is printed with explanations:0. leff1. weff2. -3. -4. dl5. dws6. vtm07. eg08. ni9. vbi10. vbc11. xdep012. xdep13. cdep14. cox15. -16. -17. lt018. lt19. ltw20. phi

Page 155: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

154

21. phis22. VFB23. -24. vgsteff25. vbseff26. vdseff27. vth028. -29. -30. pocket implant =nonlat31. narrow channel effect = k3w032. short channel effect = dvtx33. small channel effect = dvtx_w34. high vds effect = eta_vd35. vth36. -37. abulk38. litl39. ueff40. esat41. rds42. -43. -44. vdsat45. ids0 (without resistance)46. idsr (with resistance)47. vasat48. vaclm49. va50. -51. -52. vadibl53. inv_vascbe54. ids (with output resistance)55. -56. n57. -58. actual version

Example call inPEL:

erg = BSIM3_DC_calculate(par, point_vd, point_vg, 0, point_vb, MAIN.L, MAIN.W,

0, 0, TEMP, TYPE, 0)

BSIM3_DC_get_parameterThis function loads all BSIM3 model parameters from the actual model parameter set andchecks them for consistency. Without finding errors, the function gives back an array withmodel parameters in a given order.

Output: Array of BSIM3 model parameters in the following order:

error = outputs[0]; ! in case of an! error during the parameter check! error would be set to 1e-99LEVEL = outputs[1];VERSION = outputs[2];MOBMOD = outputs[3];TOX = outputs[4]TOXM = outputs[5]XJ = outputs[6]NCH = outputs[7]NGATE = outputs[8]RSH = outputs[9]VTH0 = outputs[10]K1 = outputs[11]K2 = outputs[12]K3 = outputs[13]K3B = outputs[14]W0 = outputs[15]NLX = outputs[16]VBM = outputs[17]DVT0 = outputs[18]DVT1 = outputs[19]DVT2 = outputs[20]

Page 156: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

155

DVT0W = outputs[21]DVT1W = outputs[22]DVT2W = outputs[23]U0 = outputs[24]UA = outputs[25]UB = outputs[26]UC = outputs[27]VSAT = outputs[28]A0 = outputs[29]AGS = outputs[30]B0 = outputs[31]B1 = outputs[32]KETA = outputs[33]A1 = outputs[34]A2 = outputs[35]WINT = outputs[36]LINT = outputs[37]DWG = outputs[38]DWB = outputs[39]VOFF = outputs[40]NFACTOR = outputs[41]ETA0 = outputs[42]ETAB = outputs[43]DSUB = outputs[44]CIT = outputs[45]CDSC = outputs[46]CDSCB = outputs[47]CDSCD = outputs[48]PCLM = outputs[49]PDIBLC1 = outputs[50]PDIBLC2 = outputs[51]PDIBLCB = outputs[52]DROUT = outputs[53]PSCBE1 = outputs[54]PSCBE2 = outputs[55]PVAG = outputs[56]DELTA = outputs[57]RDSW = outputs[58]PRWG = outputs[59]PRWB = outputs[60]WR = outputs[61]ALPHA0 = outputs[62]ALPHA1 = outputs[63]BETA0 = outputs[64]TNOM = outputs[65]UTE = outputs[66]KT1 = outputs[67]KT1L = outputs[68]KT2 = outputs[69]UA1 = outputs[70]UB1 = outputs[71]UC1 = outputs[72]AT = outputs[73]PRT = outputs[74]WL = outputs[75]WLN = outputs[76]WW = outputs[77]WWN = outputs[78]WWL = outputs[79]LL = outputs[80]LLN = outputs[81]LW = outputs[82]LWN = outputs[83]LWL = outputs[84]WLC = outputs[85]WWC = outputs[86]WWLC = outputs[87]BINUNIT = outputs[88]

Example call in PEL: par = BSIM3_DC_get_parameter()

BSIM3_DC_vth

Page 157: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

156

Picks up 1 single sweep curve of id=f(vg) of a specified setup and extracts the thresholdvoltage vth. The setup is specified by the parameters path to vd, ... etc. This makes iteasier to call the function with variable inputs inside the PEL programs.

The 'Flag' variable is used to define certain conditions, for example, the extraction of vthfor the large device that does not need to calculate all the early voltage values.

Input Arguments:

Input: parameter set (get with 'BSIM3_DC_get_parameter()')

Variables: Length (L)Width (W)Flag for extraction options flag: 0 Large device @ low vds 1 Short and small device @ low vds 2 Short and small device @ high vds 3 A constant reference current Idref = ID_REF_VTH*W/L is used where ID_REF_VTH is a model variable.# of curveTemperature (Degree C)Type (1=NMOS, -1=PMOS)Debug (1: show internal states of the function 0: )

Parameters: path to setup vd vg vb id type id

Output: Value vth or failure indicator

Extracts: Vth (1e99 indicates error)

Example call inPEL:

erg = BSIM3_DC_vth(par, MAIN.L, MAIN.W, flag, i, TEMP, TYPE, 0, ".",

"vd","vg","vb","id","M")

BSIM3_errorThis function takes a set of measured and simulated data and calculates the error betweensimulation and measurement in the specified range (xmin, xmax, ymin, ymax). The erroris given back as output. In addition, the maximum error and the root mean square (RMS)error are given back through an IC-CAP system variable.

Input Arguments:

Inputs: x-coordinate valuesmeasured y-coordinate valuessimulated y-coordinate values

Variables: x_minx_maxy_miny_max

Parameters: IC-CAP Variable to write MAX_ERRORIC-CAP Variable to write RMS_ERROR

Output: error in the specified range, all other points of the output = 0

Example call in PEL: error = BSIM3_error(vg,id.m,id.s,0,3,0,1e-6,"MAX_ERROR","RMS_ERROR")

BSIM3_set_optThe function accepts a list of model parameters, separated by blanks (e.g., "A0 AGSKETA") and searches the range information for these parameters in the range<PARAMETER>_ variables in the referenced path.

After analyzing the range information for each parameter, the variables min<PARAMETER>_ and max<PARAMETER>_ in the local setup/DUT are set. These variablescan be used as upper/lower limit in an optimizer call.

The range information is stored in a string in the following format:

range_A0

>-1 0 10 -

| | | |___ upper error condition ({operator(<,<=), value}{-)}

Page 158: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

157

| | |______ upper optimization boundary

| |___________ lower optimization boundary

|______________ lower error condition ({operator(>,>=), value}{-)}

Input Arguments:

Parameters: Parameter names, separated by blanks Path to parameter range definition

Output: Flag for correct operation: 0: everything is ok -1: error during function execution (e.g., variable 'range_xx' not found)

Example call in PEL: erg = BSIM3_set_opt("RDSW PRWG PRWB","Extraction_configuration/Boundaries")

BSIM3_toolkit_vthPicks up 1 single sweep curve of id=f(vg) of a specified setup and extracts the thresholdvoltage vth. The setup is specified by the parameters path to vd and so on. This makes iteasier to call the function with variable inputs inside the PEL programs.

The Flag variable is used to define certain conditions. For example, the extraction of vthfor the large device, which does not need to calculate all the early voltage values.

Inputarguments

Variables: Length (L)Width (W)Flag for extraction options flag: 0 Large device q low vds 1 Short and small device @ low vds 2 Short and small device @ high vds # of curve

Parameters: path to setup, vd, vg, vb, id, type id

Output: Value vth or failure indicator

Extracts: Vth (1e99 indicates error)

BSIM3CV_total_capExtracts the total PN junction capacitance parameters from the bottom and sidewall forthe BSIM3 model. Requires C-V measurement on 2 different geometries. The firstmeasurement should be on a device in which the bottom capacitance dominates. Thesecond measurement should be on a device in which the sidewall capacitance dominates.

Extracts: CJ, MJ, CJSW, MJSW, PB

BSIM3CVmodCBDBSIM3 Bulk to Drain Capacitance model. Calculates CBD from the input voltage.

BSIM3CVmodCBSBSIM3 Bulk to Source Capacitance model. Calculates CBS from the input voltage.

BSIM3DC_bulk_shortStandard extraction for the BSIM 3 model. Extracts substrate current parameters using Ibversus Vg measured on a set of devices with a large and fixed width and different length.

Extracts: ALPHA0, BETA0

BSIM3DC_lin_largeStandard extraction for the BSIM 3 model. Extracts linear region parameters using Id

versus Vg measured on a large device.

Extracts: VTH0, K1, K2, U0, UA, UB, UC, VOFF

BSIM3DC_lin_narrow

Page 159: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

158

Standard extraction for the BSIM 3 model. Extracts width effect parameters using Idversus Vg measured on a set of devices with a large and fixed length and different width.

Extracts: K3, W0, K3B, WINT, DWB

BSIM3DC_lin_shortStandard extraction for the BSIM 3 model. Extracts length effect parameters using Id

versus Vg measured on a set of devices with a large and fixed width and different length.

Extracts: DVT0, DVT1, DVT2, LINT, RDSW, NLX, PRWB

BSIM3DC_lin_smallStandard extraction for the BSIM 3 model. Extracts small effect parameters using Idversus Vg measured on a set of devices with a short and fixed length and different width.

Extracts: WR, DVT0W, DVT1W, DVT2W

BSIM3DC_modelUCB BSIM3 MOS model. Calculates Id, Gd, Rout, or Ib from voltages.

BSIM3DC_sat_narrowStandard extraction for the BSIM 3 model. Extracts saturation parameters using Id versusVd measured on a set of devices with a large and fixed length and different width.

Extracts: B0, B1

BSIM3DC_sat_shortStandard extraction for the BSIM 3 model. Extracts saturation and output resistanceparameters using Id versus Vd measured on a set of devices with a large and fixed width

and different length.

Extracts: A0, A1, A2, DROUT, VSAT, PCLM, PDIBLC1, PDIBLC2, PSCBE1, PSCBE2, PVAG

BSIM3DC_sat_short2Standard extraction for the BSIM 3 model. Extracts saturation parameters using Id versus

Vd measured on a set of devices with a large and fixed width and different length.

Extracts: KETA, PDIBLCB

BSIM3DC_sub_shortStandard extraction for the BSIM 3 model. Extracts subthreshold parameters using Idversus Vg measured on a set of devices with a large and fixed width and different length.

Extracts: CDSC, CDSCB, NFACTOR

BSIM3DC_sub_short2Standard extraction for the BSIM 3 model. Extracts subthreshold parameters at high drainvoltage using Id versus Vg measured on a set of devices with a large and fixed width and

Page 160: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

159

different length.

Extracts: ETA0, ETAB, CDSCD

BSIM3DC_vthCalculates the threshold voltage from Id versus Vg measurements.

BSIM3DC_vth_simCalculates the threshold voltage from the model parameters.

BSIM3DC_vth_versusAcquires threshold voltage data versus length or width to display in plot.

BSIM4_check_parChecks whether a model parameter is in a predefined range. The range information forthis parameter must be given in a variable in the referenced path. The range informationis stored in a string in the following format:

range_A0

>-1 0 10 -

| | | |___ upper error condition ({operator(<,<=), value}{-)}

| | |______ upper optimization boundary

| |___________ lower optimization boundary

|______________ lower error condition ({operator(>,>=), value}{-)}

InputArguments:

Variables: Actual value of parameter to check

Parameters: Parameter name Path to parameter range definition

Output: Flag for correct operation:0: parameter is in specified range-1: parameter is outside specified range-2: error during function execution (e.g. variable 'range_xx' not found)

Example call inPEL:

check =

BSIM4_check_par(prwg,"PRWG","/BSIM4_DC_CV/Extraction_configuration/Boundaries")

BSIM4_DC_calc_bin_parameterThis function calculates from the input the 4 binning parameters P0, PL, PW, and PP. If thecalculation is done correctly, outputs[0] will return 0. Otherwise, outputs[0] will result in anegative number. In such a case, the error will be printed in detail in the output window.

InputArguments:

Inputs: Array with 4 parameters P1 .. P4 of the bin cornersArray with 4 gate lengths L1 .. L4 of the bin cornersArray with 4 gate widths W1 .. W4 of the bin cornersArray with 4 values for the number of gate fingersNF1 .. NF4 of the bin cornersParameter set (get with 'BSIM4_DC_get_parameter()')

Output: Array containing error condition and binning parametersoutputs[0] = error condition (0=o.k., any other number indicates an error)outputs[1] = P0outputs[2] = PLoutputs[3] = PWoutputs[4] = PP

Extracts: Binning parameters P0, PL, PW, PW

Example call in PEL:

complex l[4]

complex w[4]

Page 161: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

160

:

l[0]= 1u

:

par = BSIM4_DC_get_parameter()

bin_par = BSIM4_DC_calc_bin_parameter(p, l, w, nf, par)

BSIM4_DC_calculateCalculates the drain current of the BSIM4.2.0 model and different internal states of themodel for the given terminal voltages vd, vg, vs, and vb. The type of internal state, forexample, the drain source resistance rds can be selected by the select output flag. Insome cases, it is necessary to use a measured value for the threshold voltage instead ofthe calculated. Use the select input flag to select measured or calculated. If this is notequal to zero, then the value in value input is used for vth instead of the calculated one.

InputArguments:

Input: Parameter set (get with 'BSIM4_DC_get_parameter()')

Variables: vd Drain voltagevg Gate voltagevs Source voltagevb Bulk voltageLength (L) Gate lengthWidth (W) Gate widthNumber fingers (NF) Number of gate fingersselect input (if 1 use value input for Vth)value input (value input for Vth if select input = 1)

Output: Vector with BSIM4 internal states for the given DC bias point.By setting debug = 1, this vector is printed with explanations:0. leff1. weff2. weffs3. weffcj4. dl5. dws6. vtm07. eg08. ni9. vbi10. vbc11. xdep012. xdep13. cdep14. coxe15. coxp16. coxeff17. lt018. lt19. ltw20. phi21. phis22. VFB23. vgse24. vgsteff25. vbseff26. vdseff27. vth028. bulk effect k1 = term[0]29. bulk effect k2 = term[1]30. pocket implant = term[2]31. narrow channel effect = term[3]32. short channel effect = term[4]33. small channel effect = term[5]34. high vds effect = term[6]35. vth36. f_doping37. abulk38. litl39. ueff

Page 162: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

161

40. esat41. rds42. rd43. rs44. vdsat45. ids0 (without resistance)46. idsr (with resistance)47. vasat48. vaclm49. va50. cclm51. vadits52. vadibl53. inv_vascbe54. ids (with output resistance)55. vth_dits56. n57. vfbsd58. actual version

Example call inPEL:

erg = BSIM4_DC_calculate(par, point_vd, point_vg, 0, point_vb, MAIN.L, MAIN.W,

MAIN.NF, 0, 0, TEMP, TYPE, 0)

BSIM4_DC_extr_A0_AGS_KETAExtract model parameters A0, AGS, KETA from the measurement:

id = f(Vgs) @ diff. Vbs @ high Vds

from a transistor with large and wide gate length.

Input Arguments:

Input: parameter set (get with 'BSIM4_DC_get_parameter()')

Variables: Length (L)Width (W)Number fingers (NF)Temperature (Degree C)Type (1=NMOS, -1=PMOS)Debug (1: show internal states of the function 0: )

Parameters: path to setupvdvgvbidtype id

Output: Value of: output[0] = a0 output[1] = ags output[2] = ketaIn the case of an error, all 3 outputs are set to 1e99

Extracts: A0, AGS, KETA

Example call inPEL:

erg = BSIM4_DC_extr_A0_AGS_KETA(par, MAIN.L, MAIN.W, MAIN.NF, TEMP, TYPE,

0,".","vd","vg","vb","id")

BSIM4_DC_get_parameterThis function loads all BSIM4 model parameters from the actual model parameter set andchecks them for consistency. Without finding errors, the function gives back an array withmodel parameters in a given order.

Output: Array of BSIM4 model parameters in the following order:

error = outputs[0]; ! in case of an! error during the parameter check! error would be set to 1e-99LEVEL = outputs[1];VERSION = outputs[2];MOBMOD = outputs[3];RDSMOD = outputs[4];

Page 163: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

162

IGCMOD = outputs[5];IGBMOD = outputs[6];GEOMOD = outputs[7];EPSROX = outputs[8];TOXE = outputs[9];TOXP = outputs[10];TOXM = outputs[11];DTOX = outputs[12];XJ = outputs[13];NDEP = outputs[14];NGATE = outputs[15];NSD = outputs[16];XT = outputs[17];RSH = outputs[18];RSHG = outputs[19];VTH0 = outputs[20];PHIN = outputs[21];K1 = outputs[22];K2 = outputs[23];K3 = outputs[24];K3B = outputs[25];W0 = outputs[26];LPE0 = outputs[27];LPEB = outputs[28];VBM = outputs[29];DVT0 = outputs[30];DVT1 = outputs[31];DVT2 = outputs[32];DVTP0 = outputs[33];DVTP1 = outputs[34];DVT0W = outputs[35];DVT1W = outputs[36];DVT2W = outputs[37];U0 = outputs[38];UA = outputs[39];UB = outputs[40];UC = outputs[41];EU = outputs[42];VSAT = outputs[43];A0 = outputs[44];AGS = outputs[45];B0 = outputs[46];B1 = outputs[47];KETA = outputs[48];A1 = outputs[49];A2 = outputs[50];WINT = outputs[51];LINT = outputs[52];DWG = outputs[53];DWB = outputs[54];VOFF = outputs[55];VOFFL = outputs[56];MINV = outputs[57];NFACTOR = outputs[58];ETA0 = outputs[59];ETAB = outputs[60];DSUB = outputs[61];CIT = outputs[62];CDSC = outputs[63];CDSCB = outputs[64];CDSCD = outputs[65];PCLM = outputs[66];PDIBLC1 = outputs[67];PDIBLC2 = outputs[68];PDIBLCB = outputs[69];DROUT = outputs[70];PSCBE1 = outputs[71];PSCBE2 = outputs[72];PVAG = outputs[73];DELTA = outputs[74];FPROUT = outputs[75];PDITS = outputs[76];PDITSL = outputs[77];

Page 164: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

163

PDITSD = outputs[78];RDSW = outputs[79];RDSWMIN = outputs[80];RDW = outputs[81];RDWMIN = outputs[82];RSW = outputs[83];RSWMIN = outputs[84];PRWG = outputs[85];PRWB = outputs[86];WR = outputs[87];ALPHA0 = outputs[88];ALPHA1 = outputs[89];BETA0 = outputs[90];AGIDL = outputs[91];BGIDL = outputs[92];CGIDL = outputs[93];EGIDL = outputs[94];AIGBACC = outputs[95];BIGBACC = outputs[96];CIGBACC = outputs[97];NIGBACC = outputs[98];AIGBINV = outputs[99];BIGBINV = outputs[100];CIGBINV = outputs[101];EIGBINV = outputs[102];NIGBINV = outputs[103];AIGC = outputs[104];BIGC = outputs[105];CIGC = outputs[106];AIGSD = outputs[107];BIGSD = outputs[108];CIGSD = outputs[109];DLCIG = outputs[110];NIGC = outputs[111];POXEDGE = outputs[112];PIGCD = outputs[113];NTOX = outputs[114];TOXREF = outputs[115];DWJ = outputs[116];TNOM = outputs[117];UTE = outputs[118];KT1 = outputs[119];KT1L = outputs[120];KT2 = outputs[121];UA1 = outputs[122];UB1 = outputs[123];UC1 = outputs[124];AT = outputs[125];PRT = outputs[126];WL = outputs[127];WLN = outputs[128];WW = outputs[129];WWN = outputs[130];WWL = outputs[131];LL = outputs[132];LLN = outputs[133];LW = outputs[134];LWN = outputs[135];LWL = outputs[136];WLC = outputs[137];WWC = outputs[138];WWLC = outputs[139];XL = outputs[140];XW = outputs[141];BINUNIT = outputs[142];LAMBDA = outputs[143];VTL = outputs[144];XN = outputs[145];LC = outputs[146];SAREF = outputs[147];SBREF = outputs[148];WLOD = outputs[149];

Page 165: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

164

KU0 = outputs[150];KVSAT = outputs[151];TKU0 = outputs[152];LKU0 = outputs[153];WKU0 = outputs[154];PKU0 = outputs[155];LLODKU0 = outputs[156];WLODKU0 = outputs[157];KVTH0 = outputs[158];LKVTH0 = outputs[159];WKVTH0 = outputs[160];PKVTH0 = outputs[161];LLODVTH = outputs[162];WLODVTH = outputs[163];STK2 = outputs[164];LODK2 = outputs[165];STETA0 = outputs[166];LODETA0 = outputs[167];TEMPMOD = outputs[168];UD = outputs[169];UP = outputs[170];LP = outputs[171];UD1 = outputs[172];TVFBSDOFF = outputs[173];TVOFF = outputs[174];WEB = outputs[175];WEC = outputs[176];KVTH0WE = outputs[177];K2WE = outputs[178];KU0WE = outputs[179];SCREF = outputs[180];WPEMOD = outputs[181];

Example call in PEL: par = BSIM4_DC_get_parameter()

BSIM4_DC_vthPicks up 1 single sweep curve of id=f(vg) of a specified setup and extracts the thresholdvoltage vth. The setup is specified by the parameters path to vd, ... etc. This makes iteasier to call the function with variable inputs inside the PEL programs.

The 'Flag' variable is used to define certain conditions, for example, the extraction of vthfor the large device that does not need to calculate all the early voltage values.

Input Arguments:

Input: parameter set (get with 'BSIM4_DC_get_parameter()')

Variables: Length (L)Width (W)Flag for extraction options flag: 0 Large device @ low vds 1 Short and small device @ low vds 2 Short and small device @ high vds 3 A constant reference current Idref = ID_REF_VTH*W/L is used where ID_REF_VTH is a model variable.# of curveNumber fingers (NF)Temperature (Degree C)Type (1=NMOS, -1=PMOS)Debug (1: show internal states of the function 0: nothing)

Parameters: path to setupvdvgvbidtype id

Output: Value vth or failure indicator

Extracts: Vth (1e99 indicates error)

Example call inPEL:

erg = BSIM4_DC_vth(par, MAIN.L, MAIN.W, flag, i, MAIN.NF, TEMP, TYPE, 0, ".",

"vd","vg","vb","id","M")

Page 166: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

165

BSIM4_errorThis function takes a set of measured and simulated data and calculates the error betweensimulation and measurement in the specified range (xmin, xmax, ymin, ymax). The erroris given back as output. In addition, the maximum error and the root mean square (RMS)error are given back through an IC-CAP system variable.

Input Arguments:

Inputs: x-coordinate valuesmeasured y-coordinate valuessimulated y-coordinate values

Variables: x_minx_maxy_miny_max

Parameters: IC-CAP Variable to write MAX_ERRORIC-CAP Variable to write RMS_ERROR

Output: error in the specified range, all other points of the output = 0

Example call in PEL: error = BSIM4_error(vg,id.m,id.s,0,3,0,1e-6,"MAX_ERROR","RMS_ERROR")

BSIM4_set_optThe function accepts a list of model parameters, separated by blanks (e.g., "A0 AGSKETA") and searches the range information for these parameters in the range<PARAMETER>_ variables in the referenced path.

After analyzing the range information for each parameter, the variables min<PARAMETER>_ and max<PARAMETER>_ in the local setup/DUT are set. These variablescan be used as upper/lower limit in an optimizer call.

The range information is stored in a string in the following format:

range_A0

>-1 0 10 -

| | | |___ upper error condition ({operator(<,<=), value}{-)}

| | |______ upper optimization boundary

| |___________ lower optimization boundary

|______________ lower error condition ({operator(>,>=), value}{-)}

Input Arguments:

Parameters: Parameter names, separated by blanksPath to parameter range definition

Output: Flag for correct operation:0: everything is ok-1: error during function execution (e.g., variable 'range_xx' not found)

Example call in PEL: erg = BSIM4_set_opt("RDSW PRWG PRWB", "Extraction_configuration/Boundaries")

BSIM430_DC_calculateCalculates the drain current of the BSIM4.3.0 model and different internal states of themodel for the given terminal voltages vd, vg, vs and vb. The type of internal state, forexample, the drain source resistance rds can be selected by the select output flag. Insome cases, it is necessary to use a measured value for the threshold voltage instead ofthe calculated. Use the select input flag to select measured or calculated. If this is notequal to zero, then the value in value input is used for vth instead of the calculated one.

Inputarguments:

Input: Parameter set (get with 'BSIM4_DC_get_parameter()')

Variables: vd Drain voltagevg Gate voltagevs Source voltagevb Bulk voltage

Page 167: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

166

Length (L) Gate lengthWidth (W) Gate widthSA Distance between OD edge to poly from one sideSB Distance between OD edge to poly from other sideSD Distance between neighboring fingersNumber fingers (NF) Number of gate fingersselect input (if 1 use value input for Vth)value input (value input for Vth if select input = 1)

Parameters: -

Output: Vector with BSIM4 internal states for the given DC bias point.By setting debug = 1, this vector is printed with explanations:0. leff1. weff2. weffs3. weffcj4. dl5. dws6. vtm07. eg08. ni9. vbi10. vbc11. xdep012. xdep13. cdep14. coxe15. coxp16. coxeff17. lt018. lt19. ltw20. phi21. phis22. VFB23. vgse24. vgsteff25. vbseff26. vdseff27. vth028. bulk effect k1 = term[0]29. bulk effect k2 = term[1]30. pocket implant = term[2]31. narrow channel effect = term[3]32. short channel effect = term[4]33. small channel effect = term[5]34. high vds effect = term[6]35. vth36. f_doping37. abulk38. litl39. ueff40. esat41. rds42. rd43. rs44. vdsat45. ids0 (without resistance)46. idsr (with resistance)47. vasat48. vaclm49. va50. cclm51. vadits52. vadibl53. inv_vascbe54. ids (with output resistance)55 vth_dits56. n57. vfbsd58. actual version

Example call in erg = BSIM430_DC_calculate(par, point_vd, point_vg, 0, point_vb, MAIN.L, MAIN.W,

Page 168: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

167

PEL: MAIN.NF, MAIN.SA, MAIN.SB, MAIN.SD, 0, 0, TEMP, TYPE, 0)

BSIM430_DC_vthPicks up one single sweep curve of id=f(vg) of a specified setup and extracts the thresholdvoltage Vth. The setup is specified by the parameters path to vd, ... etc. This functionshould only be used with model versions BSIM4.3 and higher.

InputArguments:

Input: Parameter set (get with 'BSIM4_DC_get_parameter()')

Variables: Length(L)Width (W)Number fingers (NF)SASBSDFlag for extraction options flag: 0 Large device @ low vds 1 Short and small device @ low vds 2 Short and small device @ high vds 3 A constant reference currentIdref = ID_REF_VTH*W/L is usedReference current ID_REF_VTH for extraction options 3# of curveTemperature (Degree C)Type (1=NMOS, -1=PMOS)Debug (1: show internal states of the function 0: nothing)

Parameters: path to setup vd vg vb id type id

Output: Value vth or failure indicator

Extracts: Vth (1e99 indicates error)

Example call inPEL:

erg = BSIM430_DC_vth(par, MAIN.L, MAIN.W, MAIN.NF, MAIN.SA, MAIN.SB, MAIN.SD,

flag, ID_REF_VHT, i, TEMP, TYPE, 0, ".", "vd","vg","vb","id","M")

BSIM450_DC_calculateCalculates the drain current of the BSIM4.3.0 model and different internal states of themodel for the given terminal voltages vd, vg, vs and vb. The type of internal state, e.g.the drain source resistance rds can be selected by the select output flag. In some cases, itis necessary to use a measured value for the threshold voltage instead of the calculated.Use the select input flag to select measured or calculated. If this is not equal to zero, thenthe value in value input is used for vth instead of the calculated one.

InputArguments:

Input: Parameter set (get with 'BSIM4_DC_get_parameter()')

Variables: vd Drain voltagevg Gate voltagevs Source voltagevb Bulk voltageLength (L) Gate lengthWidth (W) Gate widthSA Distance between OD edge to poly from one sideSB Distance between OD edge to poly from other sideSD Distance between neighboring fingersSCA Integral of the first distribution function for scattered well dopantSCB Integral of the second distribution function for scattered well dopantSCC Integral of the third distribution function for scattered well dopantSC Distance to a single well edgeNumber fingers (NF) Number of gate fingers select input (if 1 use value input for Vth)value input (value input for Vth if select input = 1)

Parameters:

-

Output: Vector with BSIM4 internal states for the given DC bias point.By setting debug = 1, this vector is printed with explanations:0. leff

Page 169: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

168

1. weff2. weffs3. weffcj4. dl5. dws6. vtm07. eg08. ni9. vbi10. vbc11. xdep012. xdep13. cdep14. coxe15. coxp16. coxeff17. lt018. lt19. ltw20. phi21. phis22. VFB23. vgse24. vgsteff25. vbseff26. vdseff27. vth028. bulk effect k1 = term[0]29. bulk effect k2 = term[1]30. pocket implant = term[2]31. narrow channel effect = term[3]32. short channel effect = term[4]33. small channel effect = term[5]34. high vds effect = term[6]35. vth36. f_doping37. abulk38. litl39. ueff40. esat41. rds42. rd43. rs44. vdsat45. ids0 (without resistance)46. idsr (with resistance)47. vasat48. vaclm49. va50. cclm51. vadits52. vadibl53. inv_vascbe54. ids (with output resistance)55 vth_dits56. n57. vfbsd58. actual version

Example call inPEL:

erg = BSIM450_DC_calculate(par, point_vd, point_vg, 0, point_vb, MAIN.L, MAIN.W,

MAIN.NF, MAIN.SA, MAIN.SB, MAIN.SD, MAIN.SCA, MAIN.SCB, MAIN.SCC, MAIN.SC, 0, 0,

TEMP, TYPE, 0)

BSIM450_DC_vthPicks up one single sweep curve of id=f(vg) of a specified setup and extracts the thresholdvoltage Vth . The setup is specified by the parameters path to vd, ... etc. This functionshould only be used with model versions BSIM4.5 and higher.

Page 170: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

169

InputArguments:

Input: Parameter set (get with 'BSIM4_DC_get_parameter()')

Variables: Length(L)Width (W)Number fingers (NF)SASBSDSCASCBSCCSCFlag for extraction options flag: 0 Large device @ low vds 1 Short and small device @ low vds 2 Short and small device @ high vds 3 A constant reference current Idref = ID_REF_VTH*W/L is used 4 A constant reference current Idref = ID_REF_VTH*(W-2*Delta W)/(L-2*Delta L)Reference current ID_REF_VTH for extraction options 3,4Delta L (one side) for extraction options 4Delta W (one side) for extraction options 4# of curveTemperature (Degree C)Type (1=NMOS, -1=PMOS)Debug (1: show internal states of the function 0: nothing)

Parameters: path to setup vd vg vb id type id

Output: Value vth or failure indicator

Extracts: Vth (1e99 indicates error)

Example call inPEL:

erg = BSIM450_DC_vth(par, MAIN.L, MAIN.W, MAIN.NF, MAIN.SA, MAIN.SB, MAIN.SD,

MAIN.SC, MAIN.SCA, MAIN.SCB, MAIN.SCC, flag, i, TEMP, TYPE, 0, ".",

"vd","vg","vb","id","M")

BSIMCV_total_capThis function is obsolete.

Extracts the total PN junction capacitance parameters from the bottom and sidewall forthe BSIM1 and BSIM2 models. Requires C-V measurement on 2 different geometries. Thefirst measurement should be on a device in which the bottom capacitance dominates. Thesecond measurement should be on a device in which the sidewall capacitance dominates.

Input Arguments:

Data Sets: Cap 1, Cap 2, Junction V

Reals or Integers: Cap 1 Area, Cap 1 Perim, Cap 2 Area, Cap 2 Perim

Output: None

Extracts: CJ, MJ, CJSW, MJSW, PB

Automatic Invocation: By Extract menu function

BSIMSOI4_check_parThis function checks whether a model parameter is in a predefined range. The rangeinformation for this parameters must be given in a variable in thereferenced path. The range information is stored in a string in the following format:

range_A0 >-1 0 10 -

| | | |___ upper error condition ({operator(<,<=), value}{-)}

| | |______ upper optimization boundary

| |___________ lower optimization boundary

|_______________ lower error condition ({operator(>,>=), value}{-)}

Page 171: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

170

InputArguments:

Inputs: -

Variables: Actual value of parameter to check

Parameters: Parameter name

Path to parameter range definition

Modelname

Version Number

Options

Output: Flag for correct operation:0: parameter is in specified range-1: parameter is outside specified range-2: error during function execution (e.g. variable 'range_xx' not found)

Example callin PEL:

BSIMSOI4_check_par(prwg,"PRWG","/BSIMSOI4_DC_CV/Extraction_configuration/Boundaries")

BSIMSOI4_DC_calc_bin_parameterThis function calculates from the input the four binning parameters P0, PL, PW and PP. Ifthe calculation is done correctly, outputs[0] will return 0.Otherwise, outputs[0] will result in a negative number. In such a case, the error will beprinted in detail in the output window.

InputArguments:

Inputs: Array with 4 parameters P1 .. P4 of the bin cornersArray with 4 gate lengths L1 .. L4 of the bin cornersArray with 4 gate widths W1 .. W4 of the bin cornersArray with 4 values for the number of gate fingers NF1 .. NF4 of the bin cornersParameter set (get with 'BSIMSOI4_DC_get_parameter()')

Variables: -

Parameters: ModelnameVersion NumberOptions

Output: Array containing error condition and binning parametersoutputs[0] = error condition (0=o.k., any other number indicates an error)outputs[1] = P0outputs[2] = PLoutputs[3] = PWoutputs[4] = PP

Extracts: Binning parameters P0, PL, PW, PW

Example call in PEL:

complex l[4]

complex w[4]

:

l[0]= 1u

:

par = BSIMSOI4_DC_get_parameter(val$(Modelname),val$(VersionNo),"")

bin_par = BSIMSOI4_DC_calc_bin_parameter(p, l, w, nf, par, val$(Modelname),val$(VersionNo),"")

BSIMSOI4_DC_calculateCalculates the drain current of the BSIMSOI4 model and different internal states of themodel for the given terminal voltages vd, vg, vs and vb. The typeof internal state, for example, the drain source resistance rds can be selected by theselect output flag.

In some cases it is necessary to use a measured value for the threshold voltage instead ofthe calculated. This can be told the function by the select input flag.If this is not equal to zero, then the value in value input is used for _vth) instead of thecalculated one.

Page 172: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

171

InputArguments:

Input: Parameter set (get with 'BSIMSOI4_DC_get_parameter()')

Variables: vd Drain voltagevg Gate voltagevs Source voltagevb Bulk voltageLength (L) Gate lengthWidth (W) Gate widthNumber fingers (NF) Number of gate fingersselect input (if 1 use value input for Vth)value input (value input for Vth if select input = 1)

Parameters: ModelnameVersion NumberOptions

Output: Vector with BSIMSOI4 internal states for the given DC bias point.By setting DEBUG = 1, this vector is printed with explanations:0. leff1. weff2.3.4. dl5. dws6. vtm07. eg08. ni9. vbi10.11. xdep012. xdep13. cdep14. cox15.16. coxeff17. lt018. lt19. ltw20. phi21. phis22. VFB23. vgse24. vgsteff25. vbseff26. vdseff27. vth028. bulk effect k1 = term[0]29. bulk effect k2 = term[1]30. pocket implant = term[2]31. narrow channel effect = term[3]32. small channel effect = term[4]33. short channel effect = term[5]34. high vds effect = term[6]35. vth36. f_doping37. abulk38. litl39. ueff40. esat41. rds42. rd43. rs44. vdsat45. ids0 (ohne Widerstand)46. idsr (mit Widerstand)47. vasat48. vaclm49. va50. cclm51. vadits52. vadibl

Page 173: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

172

53.54. ids55. vth_dits56. n57.58. actual version

Example call inPEL:

erg = BSIMSOI4_DC_calculate(par, point_vd, point_vg, 0, point_vb, point_ve,

MAIN.L, MAIN.W, 0, 0, TEMP, TYPE, val$(Modelname),val$(VersionNo),"")

BSIMSOI4_DC_get_parameterThis function loads all BSIMSOI4 model parameters from the actual model parameter setand checks them on their consistency.Without finding errors, the function gives back an array with model parameters in a givenorder.

Input Arguments:

Parameters: ModelnameVersion NumberOptions

Output: Array of BSIMSOI4 model parameters in the following order

error = outputs[0]; ! in case of an! error during the parameter check! error would be set to 1e-99LEVEL = outputs[1]VERSION = outputs[2]MOBMOD = outputs[3]TOX = outputs[4]TOXM = outputs[5]XJ = outputs[6]NCH = outputs[7]NGATE = outputs[8]RSH = outputs[9]VTH0 = outputs[10]K1 = outputs[11]K2 = outputs[12]K3 = outputs[13]K3B = outputs[14]W0 = outputs[15]NLX = outputs[16]KETAS = outputs[17]DVT0 = outputs[18]DVT1 = outputs[19]DVT2 = outputs[20]DVT0W = outputs[21]DVT1W = outputs[22]DVT2W = outputs[23]U0 = outputs[24]UA = outputs[25]UB = outputs[26]UC = outputs[27]VSAT = outputs[28]A0 = outputs[29]AGS = outputs[30]B0 = outputs[31]B1 = outputs[32]KETA = outputs[33]A1 = outputs[34]A2 = outputs[35]WINT = outputs[36]LINT = outputs[37]DWG = outputs[38]DWB = outputs[39]VOFF = outputs[40]NFACTOR = outputs[41]ETA0 = outputs[42]ETAB = outputs[43]DSUB = outputs[44]CIT = outputs[45]CDSC = outputs[46]

Page 174: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

173

CDSCB = outputs[47]CDSCD = outputs[48]PCLM = outputs[49]PDIBLC1 = outputs[50]PDIBLC2 = outputs[51]PDIBLCB = outputs[52]DROUT = outputs[53]K1W1 = outputs[54]K1W2 = outputs[55]PVAG = outputs[56]DELTA = outputs[57]RDSW = outputs[58]PRWG = outputs[59]PRWB = outputs[60]WR = outputs[61]ALPHA0 = outputs[62]DWBC = outputs[63]BETA0 = outputs[64]TNOM = outputs[65]UTE = outputs[66]KT1 = outputs[67]KT1L = outputs[68]KT2 = outputs[69]UA1 = outputs[70]UB1 = outputs[71]UC1 = outputs[72]AT = outputs[73]PRT = outputs[74]WL = outputs[75]WLN = outputs[76]WW = outputs[77]WWN = outputs[78]WWL = outputs[79]LL = outputs[80]LLN = outputs[81]LW = outputs[82]LWN = outputs[83]LWL = outputs[84]WLC = outputs[85]WWC = outputs[86]WWLC = outputs[87]BINUNIT = outputs[88]

Example call in PEL: BSIMSOI4_DC_get_parameter(val$(Modelname),val$(VersionNo),"")

BSIMSOI4_DC_vthThe function picks up one single sweep curve of id=f(vg) of a specified setup and extractsthe threshold voltage vth. The setup is specified by the parameters path to vd and so on.This makes it easier to call the function with variable inputs inside the PEL programs.

The Flag variable is used to define certain conditions, for example, the extraction of vthfor the large which does not need to calculate all the early voltages.

Page 175: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

174

Input Arguments:

Variable Length (L) Total gate width (W) Number fingers (NF) Flag for extraction options flag: 1 Fixed Id(Vth) = Idref*L/W 2 Fixed Id(Vth) = Idref*NF*((W/NF)-2*Delta_W)/(L-2*Delta_L) Reference current Idref for extraction options Delta L (one side) Delta W (one side) # of curve Type (1=NMOS, -1=PMOS)

Parameters: path to setupvdvgvbidtype id (M,S)ModelnameVersion NumberOptions

Output: Value vth or failure indicator

Automatic Invocation: Vth (1e99 indicates error)

BSIMSOI4_set_optThe function accepts a list of model parameters, separated by blanks (for example, A0AGS KETA) and searches the range information for these parameters in therange_<PARAMETER> variables in the referenced path.

After analyzing the range information for each parameter, the variablesmin_<PARAMETER> and max_<PARAMETER> in the local setup/DUT are set. Thesevariables can be used as upper/lower limit in an optimizer call.

The range information is stored in a string in the following format:

range_A0 >-1 0 10 -

| | | |___ upper error condition ({operator(<,<=), value}{-)}

| | |______ upper optimization boundary

| |___________ lower optimization boundary

|_______________ lower error condition ({operator(>,>=), value}{-)}

Input Arguments:

Input: -

Variables: -

Parameters: Parameter names, separated by blanksPath to parameter range definitionModelnameVersion NumberOptions

Output: Flag for correct operation:0: everything is ok-1: error during function execution (e.g., variable 'range_xx' not found)

Example call in PEL: erg = BSIMSOI4_set_opt("RDSW PRWG PRWB","Extraction_configuration/Boundaries")

ceilReturns the smallest integer not less than the given value.

Input Arguments:

Reals: Number

Output: Single real

Automatic Invocation: On Input Change

check_error_log

Page 176: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

175

Checks the .icerrlog file to see if any error messages were logged during the execution ofthe previous function. The log file can be viewed using any text editor (or in a terminalwindow using more .icerrlog ). Note: the .icerrlog file is cleared each time you start IC-CAP.

Input Arguments:

Strings/Pars/Vars: mpme

Output: Returns 0 if no errors; non-zero if errors are logged.

Automatic Invocation: MANUAL

PEL Example x = check_error_log()

circlefitPerforms a circlefit on a set of complex data centered on the REAL axis. Returns a 2 pointdata set containing the center and radius. If the OVERRIDE_LIMITS variable is TRUE, thelimits can be specified manually with the X_LOW and X_HIGH variables. These limits willalways apply to the first Sweep in the Setup.

Input Arguments:

Data Sets: Input

Reals or Integers: Step Number (0 is first)

Output: Array of 2 points: center then radius

Automatic Invocation: None

circlefit3Performs a circlefit on a set of complex data centered on the REAL axis. Returns a twopoint data set containing the center and radius.

If the OVERRIDE_LIMITS variable is TRUE, the limits can be specified manually with theX_LOW and X_HIGH variables. The secondargument to this function defines the Curve Data as can be specified in plots. The finalargument (integer) defines which curve to act on.

This function acts only on a single curve of data.

conjgComplex conjugate function.

Input Arguments:

Data Sets: Input 1

Output: Complex number, matrix, complex array, or matrix array (depends on input argument)

Automatic Invocation: On Data Set Input Change

ConnectSwitching matrix function. Used to connect or disconnect the specified port and pin.Initialize the switching matrix with SWM_init before this function. For more informationregarding this function, refer to External Matrix Driver User Functions (meas).

Input Arguments:

Reals or Integers: Port Addr, Pin Number

Output: Single number with exit status.

Automatic Invocation: None

copy2outputCopies the input data set to a measured or simulated output data set.

Page 177: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

176

CORNER_DC_vthThe function picks up one single sweep curve of id=f(vg) of a specified setup and extractsthe threshold voltage vth. The setup is specified by the parameters path to vd and so on.This makes it easier to call the function with variable inputs inside the PEL programs.

The Flag variable is used to define certain conditions, for example, the extraction of vthfor the large which does not need to calculate all the early voltages.

Input Arguments:

Variable Length (L) Total gate width (W) Number fingers (NF) Flag for extraction options flag: 1 Fixed Id(Vth) = Idref*L/W 2 Fixed Id(Vth) = Idref*NF*((W/NF)-2*Delta_W)/(L-2*Delta_L) Reference current Idref for extraction options Delta L (one side) Delta W (one side) # of curve Type (1=NMOS, -1=PMOS)

Parameters: path to setupvdvgvbidtype id (M,S)ModelnameVersion NumberOptions

Output: Value vth or failure indicator

Automatic Invocation: Vth (1e99 indicates error)

correlationCalculates the correlation coefficient for 1 data set versus another, at a particular curve(step number). Indicates the degree to which the 2 data sets share a linear dependence.

Input Arguments:

Data Sets: Input 1, Input 2

Reals or Integers: Step Number (0 is first)

Output: single value in the interval [-1,1]

Automatic Invocation: On Data Set Input Change

cosCosine of an angle in radians.

Input Arguments:

Data Sets: Input 1

Output: Complex number, matrix, complex array, or matrix array (depends on input argument)

Automatic Invocation: On Data Set Input Change

coshHyperbolic cosine.

Input Arguments:

Data Sets: Input 1

Output: Complex number, matrix, complex array, or matrix array (depends on input argument)

Automatic Invocation: On Data Set Input Change

Page 178: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

177

datasetEnables you to access the dataset referred to by a string. A second argument may bespecified that is a variable to receive any error string normally going to a red error box.

Example:

x=dataset("/npn/dc/fgummel/vb")

print x[4]

x=dataset("/npn/dc/fgummel/badname",errstr)

if errstr<>"" then print errstr

If you try to run a transform that uses the dataset() function, a warning message appearsin the Status window. The message appears since you are creating a transform thatdepends on data in another output or transform. However, each time you run thetransform, you could depend on a different set of data because the argument to dataset()is only known at run-time and could change each time you run the transform.

IC-CAP can't track this dependency as it does all other dependencies. Since it can't trackthe dependency, it cannot automatically execute the transform, and it sends the warningmessage to the Status window.

To prevent the error message from appearing, you can set up a transform that does notrequire automatic updating when the argument in dataset() is updated. If automaticupdating is not needed, you can suppress the warning by prepending the word quiet tothe dataset() argument as shown in this example:

x=dataset("quiet "&mydata)

where mydata is the string containing the name of the data you want to access.

derivativeThis function has been deprecated. Use the derivative2 function instead for calculatingderivatives.

Calculates the derivative of data set Y relative to data set X. The order can be specified. A3-point numerical derivative formula is used, except for the endpoints, where a 2-pointformula is used.

Input Arguments:

Data Sets: X Data, Y Data

Reals or Integers: Order

Output: Array of real numbers; size determined by number of points in setup

Automatic Invocation: On Data Set Input Change

derivative2Calculates the derivative of data set Y relative to data set X. The order can be specified.The number of points per sweep can be specified. If number of points per sweep is set to0, then the data is assumed to be a single curve. If number of points per sweep is set to -1, then the function will act as the same derivative function, requiring the local setup todetermine the number of points per curve. If number of points is >=0 then the functionmay be called on any arbitrary sets of data of the same size, even from a macro.

A 3-point numerical derivative formula is used, except for the endpoints, where a 2-pointformula is used.

Page 179: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

178

Input Arguments:

Data Sets: X Data, Y Data

Reals or Integers: Order, Points per sweep

Output: Array of real numbers; size determined by inputs

Automatic Invocation: On Data Set Input Change

derivative3Calculates the derivative of data set Y relative to data set X using specified curve data.The order can be specified. A three-point numerical derivativeformula is used, except for the endpoints, where a two-point formula is used.

Input Arguments:

Data Sets: X Data, Y Data, Curve Data

Reals or Integers: Order

Output: Array of real numbers; size determined by number of points in setup

Automatic Invocation: On Data Set Input Change

DIODEDCmod_ia Given the forward diode voltage, the anode current is calculated according to the UCBdiode model.

Input Arguments:

Data Sets: Diode V

Output: Array of real numbers; size determined by inputs

Automatic Invocation: None

EEbjt2_ce_dc_ivSolves for the dependent terminal characteristic (current or voltage) at the input or outputport given any combination of independent variables.

Usage: EEbjt2_ce_dc_iv(<Port 1 Input>, <Port 2 Input>, <Port 1 Mode>, <Port 2 Mode>,<Output Port>)

Input Arguments:

<Port 1 Input> Current or voltage dataset for port 1

<Port 2 Input> Current or voltage dataset for port 2

<Port 1 Mode> Port 1 mode, "V" for voltage or "I" for current

<Port 2 Mode> Port 2 mode, "V" for voltage or "I" for current

<Output Port> Port number for output dataset ("1" or "2")

Example PELstatement:

icf_gummel = EEbjt2_ce_dc_iv(vb, vc, "V", "V", "2")

EEbjt2_ce_ss_elementsComputes the intrinsic conductance, transconductance, capacitance or transcapacitance atthe input or output port of the bjt2 model.

Page 180: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

179

Usage: EEbjt2_ce_ss_elements(<Port 1 Input>, <Port 2 Input>, <Port 1 Mode>, <Port 2Mode>, <Element Name>)

Input Arguments:

<Port 1 Input> Current or voltage dataset for port 1

<Port 2 Input> Current or voltage dataset for port 2

<Port 1 Mode> Port 1 mode, "V" for voltage or "I" for current

<Port 2 Mode> Port 2 mode, "V" for voltage or "I" for current

<ElementName>

Desired linear conductance ("G11", "G12", "G21", "G22") or capacitance ("C11", "C12","C21", "C22")

Example PELstatement:

g11 = EEbjt2_ce_ss_elements(ibase, vce, "I", "V", "G11")

EEbjt2_extrinsic_cktEmbeds the effect of the extrinsic elements onto s-parameter data, or de-embeds theeffect of the extrinsic elements from s-parameter data. Resistances and inductances areseries elements separated by the shunt capacitances Cxbc, Cxbe and Cxce. If the input s-parameter dataset is of the same size as the frequency dataset in the referenced setup,then it is assumed that the s-parameters vary over the frequencies specified and thesefrequencies will be used in the embedding or de-embedding operation. In this case, the<Frequency> parameter is not used. If however, the input s-parameter dataset has a sizewhich differs from that of the frequency dataset in the referenced setup, the data points isassumed to be at a single frequency. This frequency value is specified by the<Frequency> parameter.

Usage: EEbjt2_extrinsic_ckt(<S-pars>, <de-embed ?>, <Frequency>, <Setup path>, <Lb>,<Lc>, <Le>, <Cxbc>, <Cxbe>, <Cxce>, <Rb>, <Rc>, <Re>)

Input Arguments:

<S-pars> S-parameter dataset name to be embedded or de-embedded

<de_embed ?>

Controls whether the function embeds ("no") or de-embeds ("yes")

<Frequency> Variable containing the frequency value of the s-parameter data

<Setup path> Variable containing the setup path of the frequency dataset

<Lb> Parameter for base inductance

<Lc> Parameter for collector inductance

<Le> Parameter for emitter inductance

<Cxbc> Parameter for base-collector capacitance

<Cxbe> Parameter for base-emitter capacitance

<Cxce> Parameter for collector-emitter capacitance

<Rb> Parameter for base resistance

<Rc> Parameter for collector resistance

<Re> Parameter for emitter resistance

Example PELstatement:

s_mod = EEbjt2_extrinsic_ckt(s_mod_int, "no", FREQ_CAP, PATH, Lb, Lc, Le, C1,

C2, C3, Rb, Rc, Re)

EEbjt2_Is_NExtracts saturation current and ideality factor for diodes or Gummel-Poon type BJTs. Forextraction of Gummel-Poon collector currents, the value of the early voltage can be input.For standard diodes or Gummel-Poon base currents, a large value for <Fwd/Rev Va>should be used so as to remove this effect from the extraction.

Page 181: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

180

Usage: EEbjt2_Is_N(<Vj>, <Ij>, <Fwd/Rev Is>, <Fwd/Rev N>, <Fwd/Rev Va>, <Vmin>,<Vmax>)

InputArguments:

<Vj> Input dataset containing voltage data

<Ij> Input dataset containing current data

<Fwd/RevIs>

Model parameter to be assigned the extracted Is value

<Fwd/Rev N> Model parameter to be assigned the extracted N value

<Fwd/Rev Va> Parameter or variable that contains the early voltage value

<Vmin> Variable that contains the minimum voltage value of data to be used in the extraction

<Vmax> Variable that contains the maximum voltage value of data to be used in the extraction

EEbjt2_mdlSaves model parameters to a Series IV formatted file.

Usage: EEbjt2_mdl(<Mdl File Name>)

Input Arguments:

<Mdl File Name> The file name that will contain the "MDIF" formatted data

Example PEL statement: dummy_result = EEbjt2_mdl("generic_bjt.txt")

EEfet3_cktReturns the value of the selected linear equivalent circuit element.

Usage: EEfet3_ckt(Vg, Vd, <ckt_par_name>)

Vg and Vd are data sets that contain the bias conditions where the linear equivalent circuitis computed. The desired equivalent circuit element name is supplied in the thirdparameter as a text string. Equivalent circuit element names are: cgs, cgd, cds, ris, rid,gm and gds. The conductances gma and gds are AC values and should be compared withthose extracted from S-parameter data.

PEL example that returns the computed requested element value.

Cgs_data = EEfet3_ckt(Vg, Vd, "cgs")

Cgd_data = EEfet3_ckt(Vg, Vd, "cgd")

Cds_data = EEfet3_ckt(Vg, Vd, "cds")

Ris_data = EEfet3_ckt(Vg, Vd, "ris")

Rid_data = EEfet3_ckt(Vg, Vd, "rid")

Gm_data = EEfet3_ckt(Vg, Vd, "gm")

Tau_data = EEfet3_ckt(Vg, Vd, "tau")

Gds_data = EEfet3_ckt(Vg, Vd, "gds")

EEfet3_cs_dc_ivComputes the model's common source bias response.Usage: EEfet3_cs_dc_iv (Data_port_1, Data_port_2, Mode_port_1, Mode_port_2,response_port)

This function returns a data set containing the bias response at the port specified by thefifth parameter (response_port). The first 2 parameters are data sets that contain the biasconditions forced at the respective ports. The next 2 parameters are strings that indicatewhether current "I" or voltage "V" is being forced. The fifth parameter is an index thatspecifies which port's (1 or 2) bias response will be contained in the data set returned.

PEL Example:

Ids = EEfet3_cs_dc_iv(Vg, Vd, "V", "V", 2)

Page 182: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

181

Igs = EEfet3_cs_dc_iv(Vg, Vd, "V", "V", 1)

Vds = EEfet3_cs_dc_iv(Vg, Id, "V", "I", 2)

Vgs = EEfet3_cs_dc_iv(Ig, Vd, "I", "V", 1)

EEfet3_lecpReturns the requested linear equivalent circuit parameter value extracted from measuredS-parameter data.

Usage: EEfet3_lecp (Vg, Vd, <ckt_par_name>)

This function is used in conjunction with EEfet3_s2ckt() to extract and display linearequivalent circuit parameters from measured S-parameter data. EEfet3_s2ckt does theextraction of linear equivalent circuit parameters from measured S-parameters and storesthem internally to ICCAP. EEfet3_lecp retrieves the linear equivalent circuit parametervalues. The specific element returned is requested by the string in the third field of thefunction call. Valid equivalent circuit element names are cgs, cdg, cds, ris, rid, gm, andgds. An error condition will be flagged if a bias condition is specified in EEfet3_lecp thatwas not in the data stored by a previous call to EEfet3_s2ckt.

PEL example that returns the computed requested element value.

Cgs_data = EEfet3_lecp(Vg, Vd, "cgs")

Cgd_data = EEfet3_lecp(Vg, Vd, "cgd")

Cds_data = EEfet3_lecp(Vg, Vd, "cds")

Ris_data = EEfet3_lecp(Vg, Vd, "ris")

Rid_data = EEfet3_lecp(Vg, Vd, "rid")

Gm_data = EEfet3_lecp(Vg, Vd, "gm")

Tau_data = EEfet3_lecp(Vg, Vd, "tau")

Gds_data = EEfet3_lecp(Vg, Vd, "gds")

EEfet3_mdlSaves model parameters to a Series IV formatted file.

Usage: EEfet3_mdl("file_name.txt")

This function returns no data or result code. Upon execution, an "MDIF" formatted datafile containing the existing set of model parameters is written to the current workingdirectory.

PEL example that saves a data file that can be read by Series IV simulators.

dummy_result = EEfet3_mdl("MRF_901.par")

EEfet3_model_nameA utility function that copies the model name into the variable passed in as the argument.

Usage: EEfet3_model_name(variable):

Since PEL only has direct access to the relative path name of local transforms andvariables, this function parses out the model's "root" name and copies it as a string to thevariable specified as the argument. After execution, the argument variable will contain astring containing the model name.

Note: This function can be used with any model file; it is not restricted to EEfet3.

PEL example that copies the model name into the variable "MyName."

dummy_result = EEfet3_modle_name(MyName)

Page 183: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

182

EEfet3_packageA utility function that can either "embed or de-embed" the effects of a package from S-parameter data provided as input. The resultant set of S-parameters is returned as a dataset with the same frequency and bias conditions as the input S-parameter data set.

Usage: Efet3_package(S_parameter_data_set, embed/deembed_flag, Rg, Rd, Rs, Lg, Ld, Ls, Cxgs, Cxds,Cxgd, Z0_gate, length, effective_velocity, Z0_drain, length, effective_velocity, Z0_source, length,effective_velocity)

This function either embeds or de-embeds the S-parameters provided as input. Thepackage topology used here is a very simple series shunt representation of a component'spackage. The elements represented in the argument list work from the intrinsic device tothe outside wall of the package. The bond wire and contact resistances are represented bythe arguments: Rg, Rd, Rs, Lg, Ld, Ls. The arguments Rg and Lg are the input port's(gate) series inductance and resistance. Rs and Ls are the common lead's inductance andresistance. Rd and Ld are the output lead's contact resistance and bond inductance.

Three shunt capacitances are next and represent stray capacitance of the package. Cxgsis connected from the outside of the series impedances from gate-to-source nodes justdescribed. Cxgd is connected from the outside of the series impedance from the gate todrain nodes just described. Cxds is connected from the outside of the series impedancefrom drain to source as just described.

The final series elements of the package model are transmission lines. Z0_gate, lengthand effective velocity describe the input transmission line connected at the gate terminalof the package to the modified gate node just outlined above. Z0_drain, length andeffective velocity describe the output transmission line connected at the drain terminal ofthe package to the modified drain node just outlined above. There is no common leadtransmission line in this package model.

Because you must use the same values for each of these arguments in many places in theIC-CAP model file, this function is constructed to use model variables as arguments. First:create 1 variable, in the model variable table, for each of the function arguments (thusmaking it global to the entire model in use). Then use the variables each time the functionis used. In this manner you can ensure that the same values are being used to embed themodel as were extracted from measurements.

The first argument is the data set upon which the function will operate. The secondargument is a text string or variable containing a text string "embed" or "deembed." Thefunction will operate on the input data set as indicated by the second argument.

PEL example that de-embeds a package from a measurement:s_intrinsic = EEfet3_package(measured_s, "deembed", Rin,Rout, Rcommon, Lin,

Lout, Lcommon, Cx_InToCommon, CxInToOut,CxOutToCommon, Z0_in, L_in, Evel,

Z0_out, L_out, Evel)

EEfet3_ResCheckVerifies and adjusts variables that are used to control swept measurements.Usage: EEfet3_ResCheck(Start, Stop, Number_of_Points, resolution)

Each argument of EEfet3_ResCheck is a model variable. These variables are used inDUT/Setups to control measurements. Each type of measurement equipment hasresolution limitations. Start, stop, and step size must be within the equipment's resolutionbefore a measurement can be successful. For example, the HP/Agilent 4142 cannotresolve voltages with greater accuracy than 1 millivolt. There are several conditions thatmust be accounted for to guarantee proper control of the measurement equipment in use.

The following sequence of steps should be followed to ensure that equipment limitationsare not violated. First, the start value is rounded to a "resolvable" measurement value asspecified by the argument "resolution." The end point is then rounded. The step size is

Page 184: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

183

then calculated [step = (stop-start) / points] and rounded to the proper resolution. Theend point is then re-computed and adjusted to exactly fit the number of steps requested[stop = start + step * points]. Because of this adjustment, you may see the "stop" pointchange after this function is called. The last case is where the step size is below theminimum resolution. In this case, the step size is set to the minimum resolution and thestarting point is placed that number of points away and the number of points is adjusted.The "resolution" argument is the only value that will not change upon execution of thisfunction.

PEL Example:

dummy_result = EEfet3ResCheck(Vstart, Vstop, NumPoints, v_res)

EEfet3_Rs_delta_mReturns a data set that contains the change in measured Vgs when very specific biascurrents are forced at the gate and drain terminals. †

Usage: EEfet3_Rs_delta_m (Ig, Id, Vg, Vd)

Vgs is measured at 2 values of Ids while Igs is swept. Ids is chosen such that Vds is onthe order of 2 tenths of a volt (the FET must be in the region of linear operation). Igs isfifty to one hundred times smaller than Ids. The change in Vgs is then proportional to Rs.

The expressions for the change in Vgs are a complicated function of Rs. Since theseexpressions cannot be solved for Rs directly, optimization is used to find a value of Rs thatmakes measured and simulated values of delta Vgs match.

PEL Example:

Delta_Vgs = EEfet3_Rs_delta_m(Ig,Id,Vg,Vd)

† This method of extracting Rs is based on: "New Method to Measure the Source andDrain Resistance of the GaAs MESFET" Long Yang and Steven Long, IEEE Electron DeviceLetters Vol EDL-7 No. 2, February 1986.

EEfet3_Rs_delta_sReturns a data set that contains the change in simulated Vgs given the same biasconditions specified when EEfet3_Rs_delta_m was extracted. †

Usage: EEfet3_Rs_delta_s (Ig, Id, Vg, Vd)

This simulation function for delta Vgs uses EEfet3 model parameters Rs and N, the gatediode's emission coefficient. Since these expressions cannot be solved for Rs directly,optimization is used to find a value of Rs that makes measured and simulated values ofdelta Vgs match. Note that N must be accurately determined before this method ofextracting Rs can be successful.

PEL Example:

Delta_Vgs_Simulated = EEfet3_Rs_delta_s(Ig,Id,Vg,Vd)

† This method of extracting Rs is based on: "New Method to Measure the Source andDrain Resistance of the GaAs MESFET" Long Yang and Steven Long, IEEE Electron DeviceLetters Vol EDL-7 No. 2, February 1986.

EEfet3_s2cktConverts S-parameters to a table of linear equivalent circuit element values.

Page 185: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

184

Usage: EEfet3_ s2ckt (S_parameter, Frequency, Vg, Vd, Conductance_Frequency, Capacitance_Frequency,Delay_Frequency)

This function returns a data set containing S-parameters computed from a linearequivalent circuit model. Element values for the linear equivalent circuit model areextracted from the input S-parameter data set. The table of element values for the linearequivalent circuit model are stored internally to IC-CAP and can be accessed usingEEfet3_lecp(). In this manner, you can both examine how well the linear equivalent circuitmodel fits measured S-parameter data over frequency and see how the element valuesbehave over bias.

The reason for this 2-step process is that each IC-CAP function can only return a data setof the same type and dimension as the input data set. In the first step (EEfet3_s2ckt) S-parameters are input (over frequency and bias) and a computed set of S-parameters isreturned (over frequency and bias). The values of the linear equivalent circuit modelextracted are saved in a special internal structure. The second step is to create aDUT/Setup that only sweeps bias, not frequency. The function EEfet3_lecp is then used toaccess the internal data structure and return the linear equivalent circuit element valuerequested. The output is then of the same type and array size as the bias range. Elementvalues can then be plotted against bias.

PEL Example:

computed_s_parameters = EEfet3_s2ckt(s_data, freq, Vg, Vd, FG, FC, Ftau)

and in another DUT/Setup the next function recalls Cgs saved

Cgs_data = EEfet3_lecp(Vg, Vd, "cgs")

EEfet3_sparsComputes modeled S-parameters based on the current set of model parameters.

Usage: EEfet3_ spars (measured_S_parameter_data_set, Frequency, Vg, Vd)

Computes the bias-dependent model's intrinsic S-parameters at each bias and frequencyspecified. The S-parameter data set used as an input is only for the purpose of definingthe type and quantity of data this function will supply as an output. Typical use would becomparing the computed set of S-parameters to a set of measured data and using thatmeasured data as the S-parameter data set supplied as input to this function

PEL Example:

computed_s_parameters = EEfet3_spars(s_data, freq, Vg, Vd)

EEmos1_cktThis function is obsolete.

Returns the value of the selected linear equivalent circuit element

Usage: EEmos1_ckt(Vg, Vd, <ckt_par_name>)

Vg and Vd are data sets that contain the bias conditions where the linear equivalent circuitis computed. The desired equivalent circuit element name is supplied in the thirdparameter as a text string. Equivalent circuit element names are: cgs, cgd, cds, ris, rid,gm and gds. The conductances gma and gds are AC values and should be compared withthose extracted from S-parameter data.

PEL example that returns the computed requested element value.

Cgs_data = EEmos1_ckt(Vg, Vd, "cgs")

Page 186: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

185

Cgd_data = EEmos1_ckt(Vg, Vd, "cgd")

Cds_data = EEmos1_ckt(Vg, Vd, "cds")

Ris_data = EEmos1_ckt(Vg, Vd, "ris")

Rid_data = EEmos1_ckt(Vg, Vd, "rid")

Gm_data = EEmos1_ckt(Vg, Vd, "gm")

Tau_data = EEmos1_ckt(Vg, Vd, "tau")

Gds_data = EEmos1_ckt(Vg, Vd, "gds")

EEmos1_cs_dc_ivThis function is obsolete.

Computes the model's common source bias response.

Usage: EEmos1_cs_dc_iv (Data_port_1, Data_port_2, Mode_port_1, Mode_port_2,response_port)

This function returns a data set containing the bias response at the port specified by thefifth parameter (response_port). The first 2 parameters are data sets that contain the biasconditions forced at the respective ports. The next 2 parameters are strings that indicatewhether current "I" or voltage "V" is being forced. The fifth parameter is an index thatspecifies which port's (1 or 2) bias response will be contained in the data set returned.

PEL Example:

Ids = EEmos1_cs_dc_iv\(Vg, Vd, "V", "V", 2\)

Igs = EEmos1_cs_dc_iv\(Vg, Vd, "V", "V", 1\)

Vds = EEmos1_cs_dc_iv\(Vg, Id, "V", "I", 2\)

Vgs = EEmos1_cs_dc_iv\(Ig, Vd, "I", "V", 1\)

EEmos1_lecpThis function is obsolete.

Returns the requested linear equivalent circuit parameter value extracted from measuredS-parameter data.

Usage: EEmos1_lecp (Vg, Vd, <ckt_par_name>)

This function is used in conjunction with EEmos1_s2ckt() to extract and display linearequivalent circuit parameters from measured S-parameter data. EEmos1_s2ckt does theextraction of linear equivalent circuit parameters from measured S-parameters and storesthem internally to ICCAP. EEmos1_lecp retrieves the linear equivalent circuit parametervalues. The specific element returned is requested by the string in the third field of thefunction call. Valid equivalent circuit element names are cgs, cdg, cds, ris, rid, gm, andgds. An error condition will be flagged if a bias condition is specified in EEmos1_lecp thatwas not in the data stored by a previous call to EEmos1_s2ckt.

PEL example that returns the computed requested element value.

Cgs_data = EEmos1_lecp(Vg, Vd, "cgs")

Cgd_data = EEmos1_lecp(Vg, Vd, "cgd")

Cds_data = EEmos1_lecp(Vg, Vd, "cds")

Ris_data = EEmos1_lecp(Vg, Vd, "ris")

Rid_data = EEmos1_lecp(Vg, Vd, "rid")

Gm_data = EEmos1_lecp(Vg, Vd, "gm")

Tau_data = EEmos1_lecp(Vg, Vd, "tau")

Gds_data = EEmos1_lecp(Vg, Vd, "gds")

EEmos1_mdl

Page 187: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

186

This function is obsolete.

Saves model parameters to a Series IV formatted file.

Usage: EEmos1_mdl("file_name.txt")

This function returns no data or result code. Upon execution, an "MDIF" formatted datafile containing the existing set of model parameters is written to the current workingdirectory.

PEL example that saves a data file that can be read by Series IV simulators.

dummy_result = EEmos1_mdl("MRF_901.par")

EEmos1_model_nameThis function is obsolete.

A utility function that copies the model name into the variable passed in as the argument.

Usage: EEmos1_model_name(variable):

Since PEL only has direct access to the relative path name of local transforms andvariables, this function parses out the model's "root" name and copies it as a string to thevariable specified as the argument. After execution, the argument variable will contain astring containing the model name.

Note: This function can be used with any model file; it is not restricted to EEmos1.

PEL example that copies the model name into the variable "MyName."

dummy_result = EEmos1_modle_name(MyName)

EEmos1_packageThis function is obsolete.

A utility function that can either "embed or de-embed" the effects of a package from S-parameter data provided as input. The resultant set of S-parameters is returned as a dataset with the same frequency and bias conditions as the input S-parameter data set.

Usage: Efet3_package(S_parameter_data_set, embed/deembed_flag, Rg, Rd, Rs, Lg, Ld, Ls, Cxgs, Cxds,Cxgd, Z0_gate, length, effective_velocity, Z0_drain, length, effective_velocity)

This function either embeds or de-embeds the S-parameters provided as input. Thepackage topology used here is a very simple series shunt representation of a component'spackage. The elements represented in the argument list work from the intrinsic device tothe outside wall of the package. The bond wire and contact resistances are represented bythe arguments: Rg, Rd, Rs, Lg, Ld, Ls. The arguments Rg and Lg are the input port's(gate) series inductance and resistance. Rs and Ls are the common lead's inductance andresistance. Rd and Ld are the output lead's contact resistance and bond inductance.

Three shunt capacitances are next and represent stray capacitance of the package. Cxgsis connected from the outside of the series impedances from gate-to-source nodes justdescribed. Cxgd is connected from the outside of the series impedance from the gate todrain nodes just described. Cxds is connected from the outside of the series impedancefrom drain to source as just described.

The final series elements of the package model are transmission lines. Z0_gate, lengthand effective velocity describe the input transmission line connected at the gate terminalof the package to the modified gate node just outlined above. Z0_drain, length andeffective velocity describe the output transmission line connected at the drain terminal ofthe package to the modified drain node just outlined above. There is no common lead

Page 188: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

187

transmission line in this package model.

Because you must use the same values for each of these arguments in many places in theIC-CAP model file, this function is constructed to use model variables as arguments. First:create 1 variable, in the model variable table, for each of the function arguments (thusmaking it global to the entire model in use). Then use the variables each time the functionis used. In this manner you can ensure that the same values are being used to embed themodel as were extracted from measurements.

The first argument is the data set upon which the function will operate. The secondargument is a text string or variable containing a text string "embed" or "deembed." Thefunction will operate on the input data set as indicated by the second argument.

PEL example that de-embeds a package from a measurement:

s_intrinsic = EEmos1_package(measured_s, "deembed", Rin,Rout, Rcommon, Lin,

Lout, Lcommon, Cx_InToCommon, CxInToOut,CxOutToCommon, Z0_in, L_in, Evel,

Z0_out, L_out, Evel)

EEmos1_ResCheckThis function is obsolete.

Verifies and adjusts variables that are used to control swept measurements.

Usage: EEmos1_ResCheck(Start, Stop, Number_of_Points, resolution)

Each argument of EEmos1_ResCheck is a model variable. These variables are used inDUT/Setups to control measurements. Each type of measurement equipment hasresolution limitations. Start, stop, and step size must be within the equipment's resolutionbefore a measurement can be successful. For example, the HP/Agilent 4142 cannotresolve voltages with greater accuracy than 1 millivolt. There are several conditions thatmust be accounted for to guarantee proper control of the measurement equipment in use.

The following sequence of steps should be followed to ensure that equipment limitationsare not violated. First, the start value is rounded to a "resolvable" measurement value asspecified by the argument "resolution." The end point is then rounded. The step size isthen calculated [step = (stop-start) / points] and rounded to the proper resolution. Theend point is then re-computed and adjusted to exactly fit the number of steps requested[stop = start + step * points]. Because of this adjustment, you may see the "stop" pointchange after this function is called. The last case is where the step size is below theminimum resolution. In this case, the step size is set to the minimum resolution and thestarting point is placed that number of points away and the number of points is adjusted.The "resolution" argument is the only value that will not change upon execution of thisfunction.

PEL Example:

dummy_result = EEmos1ResCheck(Vstart, Vstop, NumPoints, v_res)

EEmos1_s2cktThis function is obsolete.

Converts S-parameters to a table of linear equivalent circuit element values.

Usage: EEmos1_ s2ckt (S_parameter, Frequency, Vg, Vd, Conductance_Frequency,Capacitance_Frequency, Delay_Frequency)

This function returns a data set containing S-parameters computed from a linearequivalent circuit model. Element values for the linear equivalent circuit model areextracted from the input S-parameter data set. The table of element values for the linear

Page 189: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

188

equivalent circuit model are stored internally to IC-CAP and can be accessed usingEEmos1_lecp(). In this manner, you can both examine how well the linear equivalentcircuit model fits measured S-parameter data over frequency and see how the elementvalues behave over bias.

The reason for this 2-step process is that each IC-CAP function can only return a data setof the same type and dimension as the input data set. In the first step (EEmos1_s2ckt) S-parameters are input (over frequency and bias) and a computed set of S-parameters isreturned (over frequency and bias). The values of the linear equivalent circuit modelextracted are saved in a special internal structure. The second step is to create aDUT/Setup that only sweeps bias, not frequency. The function EEmos1_lecp is then usedto access the internal data structure and return the linear equivalent circuit element valuerequested. The output is then of the same type and array size as the bias range. Elementvalues can then be plotted against bias.

PEL Example:

computed_s_parameters = EEmos1_s2ckt(s_data, freq, Vg, Vd, FG, FC, Ftau)

and in another DUT/Setup the next function recalls Cgs saved

Cgs_data = EEmos1_lecp(Vg, Vd, "cgs")

EEmos1_sparsThis function is obsolete.

Computes modeled S-parameters based on the current set of model parameters.

Usage: EEmos1_ spars (measured_S_parameter_data_set, Frequency, Vg, Vd)

Computes the bias-dependent model's intrinsic S-parameters at each bias and frequencyspecified. The S-parameter data set used as an input is only for the purpose of definingthe type and quantity of data this function will supply as an output. Typical use would becomparing the computed set of S-parameters to a set of measured data and using thatmeasured data as the S-parameter data set supplied as input to this function

PEL Example:

computed_s_parameters = EEmos1_spars(s_data, freq, Vg, Vd)

equationUses the Parameter Extraction Language interpreter to evaluate an expression andproduce a data set. This function is rarely needed, since arithmetic expressions aredirectly accepted in plot definitions and in the input fields to all of the other functionslisted here.

Input Arguments:

Data Sets: Input (must be IC-CAP recognized data names and not strings in quote marks)

Output: Complex number, matrix, complex array, or matrix array (depends on input argument)

Automatic Invocation: On Data Set Input Change

expThe arithmetic exponential function; the inverse of the function log.

Input Arguments:

Data Sets: Input 1

Output: Complex number, matrix, complex array, or matrix array (depends on input argument)

Automatic Invocation: On Data Set Input Change

Page 190: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

189

extrapolateThis function is used to calculate an extrapolated value for a dataset.

Syntax: extrapolate(<DataSetOut>, <DataSetSw1>, <DataSetSw2>, <Sw1Val>, <Sw2Val>,<ErrorMsg>)

Where:DataSetOut is the dependent output dataset for independent sweep input datasets DataSetSw1and DataSetSw2.DataSetSw1 is the defined sweep 1 datasetDataSetSw2 is the defined sweep 2 datasetSw1Val Sweep1 value used to compute extrapolated output dataset valueSw2Val Sweep2 value used to compute extrapolated output dataset valueErrorMsg If the function fails, an error message is written in this defined setup or model variable.

Output: Extrapolated Output data

Examples: IDON = extrapolate(id.m, vd.m, vg.m, VDD, VDD, “ErrorMsg”)

fit_lineCalculates and returns a least-squares fitted line. Accepts an X data set followed by a Ydata set. If the Y data has multiple curves (steps), fit_line yields multiple fitted lines, 1 foreach curve. Use linfit for the slope and intercept, rather than a plottable data set. If theOVERRIDE_LIMITS variable is TRUE, the limits can be specified manually with the X_LOWand X_HIGH variables, which can be set from the Plot menu. Note: the imaginary part ofthe input data sets is disregarded.

Input Arguments:

Data Sets: X Data, Y Data

Output: Array of real numbers; size determined by inputs

Automatic Invocation: On Data Set Input Change

fit_line3Calculates and returns a least-squares fitted line. Accepts an X data set followed by a Ydata set, followed by a curve data set. The curvedataset defines the 2nd order sweep for the X data and is used to define the curves.

If the Y data has multiple curves (steps), fit_line yields multiple fitted lines, one for eachcurve. Use linfit for the slope andintercept, rather than a plottable data set.

If the OVERRIDE_LIMITS variable is TRUE, the limits can be specified manually with theX_LOW and X_HIGH variables, which can be setfrom the Plot menu.

The imaginary part of the input data sets is disregarded.

floorReturns the largest integer not greater than the given value.

Input Arguments:

Reals: Number

Output: Single real

Automatic Invocation: On Input Change

FNPortSwitching matrix function. Returns the port address for the specified port number. Theport address is used by the Connect function. For more information regarding thisfunction, refer to External Matrix Driver User Functions (meas) for more information.

Page 191: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

190

Input Arguments:

Reals or Integers: Port Number

Output: Single number with exit status

Automatic Invocation: None

GAASAC_calc_rcCalculates capacitance and AC parameters from S-parameter measurements. Requires thefollowing setup:

S versus Freq, with Vds and Vgs = typical operating values

If S-parameter data from the parasitic_r_l setup is supplied as an input, this data isconverted to Z-parameters and subtracted before calculating the intrinsic values for Zds.

This function can be used to plot the data that is used for extraction in theGAASAC_r_and_c function. Output is a complex array that is controlled by the Mode input.Valid modes are:

GS - RGS in real array, CGS in complex arrayGD - RGD, CGDDS - RDS, CDSA5 - TAU, A5G0 - CGS0, CGD0GM - YGM

Input Arguments:

Data Sets: F Swp, S Parameters, VG, VD, S Pars RL

Strings/Pars/Vars: Mode

Output: Array of complex numbers; size determined by inputs

Automatic Invocation: On Data Set Input Change

GAASAC_calc_rlCalculates inductances and resistances from an S-parameter measurement made at asingle bias. Requires the following setup:

S versus Freq, with high Vgs and Vds = 0

Determine the bias point by measuring the device with the gate strongly forward biased.Typically, Vd = Vs = 0 with Vg positive. Ig should be more than 100 mA/mm, with Id

approximately equal to Ig/2 at a typical operating frequency. This function can be used toplot the resistance and inductance data that is used for extraction in the GAASAC_l_and_rfunction. Output is in the form of Z data for the G, D, or S Node. If IG is specified as aninput, the dynamic resistance is subtracted during the calculation of RG. If Deembed isTRUE, the bond inductance and pad capacitance are used in the calculation of resistanceand inductance.

Input Arguments:

Data Sets: F Swp, S Parameters, IG

Strings/Pars/Vars: Deembed, Node

Output: Array of complex numbers; size determined by inputs

Automatic Invocation: On Data Set Input Change

GAASAC_curStandard extraction for the Curtice GaAs model. Extracts the capacitance and AC

Page 192: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

191

parameters from S-parameter measurements. Requires the following setup:

S versus Freq, with Vds and Vgs = typical operating values

If the variables LINEAR_CGS, LINEAR_CGD, or CONSTANT_TAU are true, CGS, CGD, orTAU are extracted, respectively. Depending on the device, optimization may be requiredto tune the parameter values.

Input Arguments:

Data Sets: Frequency, Gate V, Drain V, S Par Output

Output: None

Extracts: LD, LG, LS, RD, RG, RS

Automatic Invocation: By Extract menu function

GAASAC_l_and_rStandard extraction for the UCB and Curtice GaAs models. Extracts inductances andresistances from an S-parameter measurement made at a single bias. Requires thefollowing setup:

S versus Freq, with high Vgs and Vds = 0

Determine the bias point by measuring the device with the gate strongly forward biased.Typically, Vd = Vs = 0 with Vg positive. Ig should be more than 100 mA/mm, with Id

approximately equal to Ig/2 at a typical operating frequency. The frequency can be eitherconstant or swept. The extracted parameter values are averaged over a frequency rangespecified by the X_LOW and X_HIGH variables, which can be set from the Plot menu. Ifthese variables are not set, the entire frequency range is used. If IG is specified as aninput, the dynamic resistance is subtracted during the calculation of RG. If Deembed istrue, the bond inductance and pad capacitance are used in the calculation of resistanceand inductance. Optimization can be used to tune the parameter values, but should nottypically be required.

Input Arguments:

Data Sets: Const F Swp, S Parameters, IG

Strings/Pars/Vars: Deembed

Output: None

Extracts: LD, LG, LS, RD, RG, RS

Automatic Invocation: By Extract menu function

GAASAC_r_and_cAlternate AC extraction for the UCB and Curtice GaAs models. Extracts the capacitanceand AC parameters from S-parameter measurements. Requires the following Setup:

S versus Freq, with Vds and Vgs = typical operating values.

The extracted parameter values are averaged over a frequency range specified by theX_LOW and X_HIGH variables, which can be set from the Plot menu. If these variables arenot set, the entire frequency range is used. For the Curtice model, if the variablesLINEAR_CGS, LINEAR_CGD, or CONSTANT_TAU are TRUE, CGS, CGD, or TAU areextracted, respectively. Also for the Curtice Model, the parameters CGDN, RGDN, and RDSare extracted if they are defined as either parameters or variables. If CGDN is defined,then both CGD and CGDO are set to 0. For the UCB model, CDS is extracted if it is definedas a parameter or variable. For both models, YGM_MAG and YGM_PHASE are extracted ifthey are defined as variables. If S-parameter data from the parasitic_r_l Setup is suppliedas an input, this data is converted to Z- parameters and subtracted before calculating theintrinsic values for Zds. Depending on the device, optimization may be required to tune

Page 193: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

192

the parameter values.

Input Arguments:

Data Sets: F Swp, S Parameters, VG, VD, S Pars RL

Output: None

Extracts: Curtice:CGSO, CGDO, CDS, RIN, A5Optionally - CGS, CGD, TAU, CGDN, RGDN, RDS, YGM_MAG, YGM_PHASE UCB: CGS,CGDOptionally - CDS, YGM_MAG, YGM_PHASE

AutomaticInvocation:

By Extract menu function

GAASCV_cgs_cgdStandard extraction for the UCB GaAs model. Extracts junction capacitances from S-parameter data measured with VGS and VDS held constant. Requires the following Setup:

S versus Freq, with Vds and Vgs = typical operating values.

Optimization can be used to tune the parameter values, but should not typically berequired.

Input Arguments:

Data Sets: Freq Sweep, Const Vgs Sw, Const Vds Sw, S Par Output

Output: None

Extracts: CGD, CGS

Automatic Invocation: By Extract menu function

GAASDC_cur1Standard extraction for the Curtice GaAs model. Extracts the threshold parameters fromDC measurements. Requires the following Setup:

Id versus Vgs, with high Vds.

Depending on the device, optimization may be required to tune the parameter values. Theoptimization should not include too much of the pinch-off region.

Input Arguments:

Data Sets: Gate V, Drain V, Drain I

Output: None

Extracts: Level 1: VTOLevel 2: A0, A1, A2, A3

Automatic Invocation: By Extract menu function

GAASDC_cur2Standard extraction for the Curtice GaAs model. Extracts the linear and saturationparameters from DC measurements. Requires the following Setup:

Id versus Vds versus Vgs.

Optimization is typically required to tune the parameter values.

Page 194: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

193

Input Arguments:

Data Sets: Drain V, Gate V, Drain I

Output: None

Extracts: Level 1: BETA, LAMBDA, ALPHALevel 2: BETA, GAMMA

Automatic Invocation: By Extract menu function

GAASDC_lev1Standard extraction for the UCB and Curtice GaAs models. Extracts diode (and optionallyresistance) parameters from DC measurements. Requires the following Setups:

Ig versus Vg, with Vd = 0 and S floating.Ig versus Vg, with Vd less than 50 mV.Ig versus Vg, with Vs = 0 and D floating.

The Vg limits for the diode parameter extraction are automatically selected. If theOVERRIDE_LIMITS variable is TRUE, these limits can be specified manually with theX_LOW and X_HIGH variables, which can be set from the Plot menu. Omit the resistanceextraction (useful if resistances were extracted using GAASAC_l_and_r) by specifying onlythe first Setup of the 3 listed above. Optimization can be used to tune the parametervalues, but should not typically be required.

Input Arguments:

Data Sets: VG (S Flt), IG (S Flt), VG (low Vds), VD (low Vds), ID (low Vds), VG (D Flt), IG (D Flt)

Output: None

Extracts: UCB: PB, IS, XN Curtice: VBI, IS, N Optionally: RD, RS

Automatic Invocation: By Extract menu function

GAASDC_lev2Standard extraction for the UCB GaAs model. Extracts the drain current parameters fromDC measurements. Requires the following setups:

Id versus Vd versus Vg Id versus Vg, with Vd = constant

Depending on the device, the following parameters may require optimization: VTO, BETA,ALPHA, LAMBDA over Id versus Vd. VTO, BETA, B over Id versus Vg.

Input Arguments:

Data Sets: IdVg VG, IdVg VD, IdVg ID, IdVg IG, IdVd VD, IdVd VG, IdVd ID, IdVd IG

Output: None

Extracts: VTO, BETA, ALPHA, LAMBDA, B

Automatic Invocation: By Extract menu function

GAASDC_rdDC RD extraction for the UCB and Curtice GaAs models. Requires the following setup:

Vsd versus Ig, with the source floating and the drain grounded

This extraction can be used to extract RD when AC measurements are not available, or toverify the value extracted from the GAASAC_l_and_r function.

Page 195: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

194

Input Arguments:

Data Sets: IG, VS

Output: None

Extracts: RD

Automatic Invocation: By Extract menu function

GAASDC_rsDC RS extraction for the UCB and Curtice GaAs models. Requires the following setup:

Vds versus Ig, with the drain floating and the source grounded

This extraction can be used to extract RS when AC measurements are not available, or toverify the value extracted from the GAASAC_l_and_r function.

Input Arguments:

Data Sets: IG, VD

Output: None

Extracts: RS

Automatic Invocation: By Extract menu function

GAASmod_cgdGiven the drain, gate, and source voltages, calculates gate-drain capacitance according tothe UCB GaAs model.

Input Arguments:

Data Sets: Drain V, Gate V, Source V

Output: Array of real numbers; size determined by inputs

Automatic Invocation: None

GAASmod_cgsGiven the drain, gate, and source voltages, calculates gate-source capacitance accordingto the UCB GaAs model.

Input Arguments:

Data Sets: Drain V, Gate V, Source V

Output: Array of real numbers; size determined by inputs

Automatic Invocation: None

GAASmod_idGiven the drain, gate, and source voltages, calculates drain current according to the UCBGaAs model.

Input Arguments:

Data Sets: Drain V, Gate V, Source V

Output: Array of real numbers; size determined by inputs

Automatic Invocation: None

GAASmod_igGiven the drain, gate, and source voltages, calculates gate current according to the UCBGaAs model.

Page 196: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

195

Input Arguments:

Data Sets: Drain V, Gate V, Source V

Output: Array of real numbers; size determined by inputs

Automatic Invocation: None

H11corrProduces an input impedance curve corrected for the effects of base to collectorfeedthrough impedance. The corrected output is used as input to the RBBcalc functiondescribed below.

Input Arguments:

Datasets: FREQ, VB, VC, H11

Output: Array of complex numbers; size determined by inputs

Automatic Invocation: On Dataset Input Change

HFBJT_linear_elem_extrNo documentation available at this time.

HFBJT_linear_ssmod_simNo documentation available at this time.

HFMOD_get_bias_sizeFinds the number of bias points in a data set. For sweeps that don't include a frequencysweep, this is the same as the total number of points in the dataset.

Usage: HFMOD_get_bias_size(<Dataset name>, <Setup path>)

Input Arguments:

<Dataset name> Name if dataset to be checked

<Setup path> Variable containing path of dataset

Example PEL statement: data_size = HFMOD_get_bias_size("s", PATH)

HFMOD_get_freq_indexFinds the array index of the frequency point nearest to (>=) the specified frequencyvalue.

Usage: HFMOD_get_freq_index(<Setup path>, <Freq value>)

Input Arguments:

<Setup path> Variable containing path of dataset

<Freq value> Variable containing frequency value

Example PEL statement: index_freq_cap = HFMOD_get_freq_index(PATH, FREQ_CAP)

HFMOD_get_freq_valueFinds a specific frequency value, given an index value.

Usage: HFMOD_get_freq_value(<Setup path>, <Freq index>)

Input Arguments:

<Setup path> Variable containing path of dataset

<Freq index> Variable containing frequency index

Example PEL statement: freq_cap = HFMOD_get_freq_value(PATH, index_freq_cap)

HFMOD_remove_freq_dblReduces a matrix of bias and frequency dependent data (type double) down to a biasdependent matrix only.

Page 197: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

196

Usage: HFMOD_remove_freq_dbl(<Input double>, <Dataset name>, <Setup path>)

Input Arguments:

<Input double> Dummy input matrix (must be dimensioned to desired size of output matrix)

<Dataset name> Name of dataset to be reduced

<Setup path> Variable containing path of dataset to be reduced

HFMOD_remove_freq_matReduces a complex matrix of bias and frequency dependent 2-port parameters down to abias dependent matrix only.

Usage: HFMOD_remove_freq_mat(<Input matrix>, <Freq Index>, <Dataset name>, <Setuppath>)

Input Arguments:

<Input matrix> Dummy input matrix (must be dimensioned to desired size of output matrix)

<Freq Index> Variable containing frequency index of desired frequency point

<Dataset name> Name of dataset to be reduced

<Setup path> Variable containing path of dataset to be reduced

Example PELstatement:

s_cond = HFMOD_remove_freq_mat(dummy_mat, INDEX_FREQ_CAP,"s", PATH)

HFMOS3_capasThis function is obsolete.

Extracts the overlap capacitances CGSO and CGDO and the oxide thickness TOX from thecapacitance data.

Extracts: CGDO, CGSO, TOX

HFMOS3_lin_largeThis function is obsolete.

Standard extraction for the HF MOS Level 3 model. Extracts classical Level 3 parameters,using Id versus Vg data from a large device.

Extracts: VTO, NSUB, UO, THETA, DELTA, RDS

HFMOS3_lin_narrowThis function is obsolete.

Standard extraction for the HF MOS Level 3 model. Extracts Level 3 width parameters,using Id versus Vg data from a narrow device.

Extracts: WD, DELTA

HFMOS3_lin_shortThis function is obsolete.

Standard extraction for the HF MOS Level 3 model. Extracts Level 3 length effectparameters, using Id versus Vg data from a short device.

Extracts: XJ, LD, RDS

HFMOS3_modcapThis function is obsolete.

Page 198: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

197

Calculates the Gate-Source and Gate-Drain capacitances according to the Meyer model orBulk-Drain junction capacitance according to the UCB MOS model.

HFMOS3_parasThis function is obsolete.

Extracts gate, drain and source parasitic resistances and inductances from the impedancedata.

Extracts: RS, RD, RG, LSS, LDD, LGG

HFMOS3_sat_shortThis function is obsolete.

Standard extraction for the HF MOS Level 3 model. Extracts Level 3 saturationparameters, using Id versus Vd data from a short device.

Extracts: VMAX, KAPPA

HFMOS3_StoCThis function is obsolete.

This function calculates capacitance data from S-parameter data, allowing gate-source,gate-drain, and junction capacitances to be calculated from network analyzermeasurements. The output of this function can be used in place of actual capacitance datato extract capacitance related parameters.

HFMOS3_StoZThis function is obsolete.

This function calculates impedance data from S-parameter data, allowing gate, drain, andsource impedances to be calculated from network analyzer measurements. The output ofthis function can be used in place of actual impedance data to extract the parasiticsparameters.

HFMOS3_sub_largeThis function is obsolete.

Standard extraction for the HF MOS Level 3 model. Extracts Level 3 subthresholdparameters, using Id versus Vg data from a large device. Initializes ETA for later

optimization.

Extracts: NFS, ETA

HFMOS3_total_capThis function is obsolete.

Extracts the total PN junction capacitance parameters from the bottom and sidewall.Requires C-V measurement on 2 different geometries. The first measurement should beon a device in which the bottom capacitance dominates. The second measurement shouldbe on a device in which the sidewall capacitance dominates.

Extracts: CJ, MJ, CJSW, MJSW, PB

HiSIM2_DC_vth

Page 199: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

198

The function picks up one single sweep curve of id=f(vg) of a specified setup and extractsthe threshold voltage vth. The setup is specified by the parameters path to vd, ... etc. Thismakes it easier to call the function with variable inputs inside the PEL programs.

The Flag variable is used to define certain conditions, for example, the extraction of vthfor the large, which does not need to calculate all the early voltage values.

Input arguments:

Variables: Length (L)Total gate width (W)Number fingers (NF)Flag for extraction options flag: 1 Fixed Id(Vth) = Idref*L/W 2 Fixed Id(Vth) = Idref*NF*((W/NF)-2*Delta_W)/(L-2*Delta_L)Reference current Idref for extraction optionsDelta L (one side)Delta W (one side)# of curveType (1=NMOS, -1=PMOS)Debug (1: show internal states of the function 0: nothing)

Parameters: path to setupvdvgvbidtype id (M,S)version

Output: Value vth or failure indicator

Extracts: Vth (1e99 indicates error)

HiSIM_HV_DC_vthThe function picks up one single sweep curve of id=f(vg) of a specified setup and extractsthe threshold voltage vth. The setup is specified by the parameters path to vd, ... etc. Thismakes it easier to call the function with variable inputs inside the PEL programs.

The Flag variable is used to define certain conditions, e.g., the extraction of vth for thelarge, which does not need to calculate all the early voltage values.

Input Arguments:

Variables: Length (L)Total gate width (W)Number fingers (NF)Flag for extraction options flag: 1 Fixed Id(Vth) =Idref*L/W 2 Fixed Id(Vth) =Idref*NF* ((W/NF)-2*Delta_W)/(L-2*Delta_L)Reference current Idref for extraction optionsDelta L (one side)Delta W (one side)# of curveType (1=NMOS, -1=PMOS)Debug (1: show internal states of the function 0: nothing)

Parameters: path to setupvdvgvbidtype id (M,S)version

Output: Value vth or failure indicator

Extracts: Vth (1e99 indicates error)

HP5250_bias_cardHP 5250A Switching Matrix function. Bias-enables all the output ports for the specifiedcard.

Page 200: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

199

Syntax

HP5250_bias_card(CardNumber, "CardState")

Where

CardNumber specifies the card (allowed values 0-4, 0 = auto configurationmode).

CardState is the card's state (allowed values are ENABLE/DISABLE or E/D).

HP5250_bias_channelHP 5250A Switching Matrix function. Bias-enables the specified output ports in the channellist. Note that the input ports are ignored since the input port is always the Bias InputPort.

Syntax

HP5250_bias_channel ("State", "Channel list")

Where

State is the output port's state (allowed values are ENABLE/DISABLE or E/D).

Channel list is the list of channels, known as connection routes. Examplechannel list: (@10102, 10203, 10305:10307)

HP5250_bias_initHP 5250A Switching Matrix function. Selects the bias port. When using the HP E5255Acard, the Input Bias Port is the dedicated bias port; however, for the HP E5252A the InputBias Port must be selected using this function.

Syntax

HP5250_bias_init(CardNumber, InputBiasPort)

Where

Card Number specifies the card (allowed values 0-4, 0 = auto configurationmode)

InputBiasPort specifies the input bias port number (allowed values are 1-10)

HP5250_bias_setmodeHP 5250A Switching Matrix function. Enables the bias mode for the specified card onceInput Bias Port and Enabled Output ports have been specified.

Syntax

HP5250_bias_setmode (CardNumber, "BiasMode")

Where

CardNumber specifies the card (allowed values 0-4, 0 = auto configurationmode).

BiasMode sets the bias mode on or off (allowed values are ON/OFF or 1/0).

When Bias Mode is ON, the Input Bias Port is connected to all the Bias Enabled output

Page 201: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

200

ports that are not connected to any other input ports. Bias Disabled output ports arenever connected to an Input Bias Port when Bias Mode is ON.

If another input port is disconnected from a bias enabled output port, this port isautomatically connected to the Input Bias Port.If another input port is connected to a Bias Enabled output port, the output port isautomatically disconnected from the Bias Input port.

When Bias Mode is OFF, the Input Bias Port is the same as the other ports.

HP5250_card_configHP 5250A Switching Matrix function. Changes the default configuration for the specifiedcard. When the connection rule is FREE (default mode), each input port can be connectedto multiple output ports and each output port can be connected to multiple input ports.When the connection is SINGLE, each input port can be connected to only 1 output.Connection sequence specifies the open/close sequence of the relays when changing froman existing connection to a new connection.

Syntax

HP5250_card_config (CardNumber, "ConnRule", "ConnSequence")

Where

CardNumber specifies the card (0 for AUTO configuration mode)

ConnRule is FREE/SINGLE (default is FREE)

ConnSequence is NSEQ/BBM/MBBR (default is BBM)

NSEQ (No SEQuence): Disconnect old route, connect new route.BBM (Break Before Make): Disconnect old route, wait, connect new route.MBBR (Make Before BReak): Connect new route, wait, disconnect old route.

HP5250_compensate_capHP 5250A Switching Matrix function. Equivalent to IC-CAP C routine for the HP BASICcapacitance compensation routine called Ccompen_5250 supplied with the HP 5250A. Itreturns a 2 by 1 matrix (2 rows, 1 column) defined as follows:

output.11 represents compensated capacitance data [F].

output.21 represents compensated conductance data [S].

Syntax

HP5250_compensate_cap (RawCap, RawCond, Freq, HPTriaxLength,

UserTriaxLengthHigh, UserTriaxLengthLow, UserCoaxLengthHigh, UserCoaxLengthLow)

Where

RawCap is Input Dataset containing raw capacitance data [F]

RawCond is the Input Dataset containing raw conductance data [S]

Freq is the measured frequency [Hz]

HPTriaxLength is the Triax Cable Length [m]

UserTriaxLengthHigh is the user Triax Cable Length (High) [m]

Page 202: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

201

UserTriaxLengthLow is the user Triax Cable Length (Low) [m]

UserCoaxLengthHigh is the user Coax Cable Length (High) [m]

UserCoaxLengthLow is the user Coax Cable Length (Low) [m]

HP5250_connectHP 5250A Switching Matrix function. Connects or disconnects specified channels. Note thatBias Mode and/or coupling Mode are also taken into account when a channel is closed oropened.

Syntax

HP5250_connect ("Action", "Channel list")

Where

Action connects or disconnects channels (allowed values are C and D).

Channel list is the list of connection routes to be switched.

Example: In the list (@10102, 10203:10205), the following channels areconnected or disconnected on card 1:

Input port 1 to output port 2.Input port 2 to output port 3, 4, and 5.

HP5250_couple_enableHP 5250A Switching Matrix function. Enables couple port mode. Couple port allowssynchronized connection of 2 adjacent input ports to 2 adjacent output ports.

Syntax

HP5250_couple_enable (CardNumber, "CoupleState")

Where

CardNumber specifies the card (allowed values 0-4, 0 = auto configurationmode).

CoupleState is the coupled state (allowed values are ON/OFF or 1/0).

HP5250_couple_setupHP 5250A Switching Matrix function. Sets up couple ports for making kelvin connections.

Syntax

HP5250_couple_setup (CardNumber, "InputPorts")

Where

CardNumber specifies the card (allowed values 0-4, 0 = auto configurationmode).

InputPorts is the list of coupled ports. Example: In the list "1,3,5,7,9" thecoupled ports are 1-2, 3-4, 5-6, 7-8, 9-10

HP5250_debugHP 5250A Switching Matrix function. Used only for debugging. When the debug flag is setto 1, all the functions print out all the command strings that are sent to the instruments.

Page 203: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

202

Set flag using the values 1 or 0, or use YES or NO.

Syntax

HP5250_debug(<flag>)

HP5250_disconnect_cardHP 5250A Switching Matrix function. Opens all relays or channels in the specified cards.

Syntax

HP5250_disconnect_card (CardNumber)

Where

CardNumber specifies the card (allowed values 0-4, 0 = auto configurationmode).

HP5250_initHP 5250A Switching Matrix function. Must be run first to initialize the instrument with theaddress and interface. Using this transform the configuration mode can be set to AUTO.When the instrument is in AUTO configuration mode the same type of card must beinstalled in the HP 5250 slots from slot 1 continuously. The installed cards are thentreated as 1 card (numbered 0).

Syntax

HP5250_init (BusAddress, "Interface", "Configuration")

Where

BusAddress is interface bus address (default is 22)

"Interface" is interface name (default is hpib)

"Configuration" is AUTO/NORMAL A/N (default is NORMAL)

HP5250_showHP 5250A Switching Matrix function. Has no inputs. Returns to the standard output(screen or file) the following data about the instrument status:

Instrument Name

Instrument Configuration (AUTO/NORMAL).

The following information is output for each card installed in the instrument (card 0 if theinstrument is in auto configuration mode):

Connection mode

Connection sequence

Input Bias Port

Enabled Output Bias Ports

Bias Sate (ON/OFF)

Coupled Input Ports (only lower number is listed, e.g., "3,5" means ports 3 and4 are coupled)

Page 204: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

203

Couple Port Mode (ON/OFF)

Connection Matrix Inputs(10)xOutputs(12,24,36, or48).

HPdiode_CProduces an array of data that contains the high-frequency intrinsic capacitance atmeasured bias points for the Agilent Root Diode model.

Output: Array of real numbers; size determined by the setup

Automatic Invocation: None

HPdiode_C2Produces an array of data that contains the high-frequency intrinsic capacitance atmeasured bias points for the Agilent Root Diode model.

Output Array of real numbers; size determined by the setup.

HPdiode_data_acquExtraction function for acquiring data for the Agilent Root Diode model. Adaptively takesdata throughout the safe operating range of the device.

Input Arguments:

Reals or Integers: Vmax, Vmin, Max step, Min step, Noise level, Eps

Automatic Invocation: By Extract menu function

HPdiode_fgrtNo documentation available at this time.

HPdiode_flessNo documentation available at this time.

HPdiode_IProduces an array of data that contains the current values at measured bias points for theAgilent Root Diode model.

Output Array of real numbers; size determined by the setup.

HPdiode_iextrNo documentation available at this time.

HPdiode_mdlExtraction function for generating the Agilent Root Diode model.

Input Arguments:

Reals or Integers: LowBound V, HighBound V, Extraction f

Extracts: Generates the model function and look-up table

Automatic Invocation: By Extract menu function

HPdiode_para_at_fCalculates parasitics at the specified frequency for the Agilent Root Diode model.

Page 205: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

204

Input Arguments:

Reals orIntegers:

Extraction f

Extracts: cac, cag, ccg, R, L_tot

HPdiode_para_fExtracts parasitic elements and writes them to the Para.data file.

Input Arguments:

Datasets: Freq, S param, I

Reals or Integers: Ideality

Output: None

HPdiode_QProduces an array of data that contains the charge values at measured bias points for theAgilent Root Diode model.

Output Array of real numbers; size determined by the setup.

HPdiode_RProduces an array of data that contains the intrinsic resistance at measured bias points forthe Agilent Root Diode model.

Output Array of real numbers; size determined by the setup.

HPdiode_S11iProduces an array of data that contains the imaginary part of S11 at measured bias pointsfor the Agilent Root Diode model.

Output Array of real numbers; size determined by the setup.

HPdiode_S11rProduces an array of data that contains the real part of S11 at measured bias points forthe Agilent Root Diode model.

Output Array of real numbers, size determined by the setup.

HPdiode_VProduces an array of data that contains the voltage values at measured bias points for theAgilent Root Diode model.

HPdiode_wrWrites the inputs to the Measured.data file.

InputArguments:

Datasets: Freq, S param, I, V

HPIB_abortBreaks GPIB communication and resets the bus.

Page 206: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

205

Input Arguments:

Reals or Integers: File descriptor returned from HPIB_open (prog)()

Output: 0 for success, -1 for error.

Automatic Invocation: None

Example PEL Statement:

x = HPIB_abort(file_num)

HPIB_clearSends a Device Clear command to an instrument.

Input Arguments:

Reals or Integers: File descriptor returned from HPIB_open (prog)(), target GPIB address.

Output: 0 for success, -1 for error.

Automatic Invocation: None

Example PEL Statement:

x = HPIB_clear(file_num, 16)

HPIB_closeTerminates GPIB communication and releases resources.

Input Arguments:

Reals or Integers: File descriptor returned from HPIB_open (prog)().

Output: 0 for success, -1 for error.

Automatic Invocation: None

Example PEL Statement:

x = HPIB_close(file_num)

HPIB_commandSends a single GPIB command byte on the bus.

Input Arguments:

Reals or Integers: File descriptor returned from HPIB_open (prog)(), command byte.

Output: 0 for success, -1 for error.

Automatic Invocation: None

Example PEL Statement:x = HPIB_command(file_num, 20) ! DCL

HPIB_eoiEnables or disables if eoi is sent with last byte transmitted.

Usage: HPIB_eio(EID,eoiFlag)

InputArguments:

EID Specifies the descriptor returned from HPIB_open (prog)()

eoiFlag 0 for disable, 1 for enable

Output: 0 for success, -1 for error

HPIB_fwriteFormatted write to GPIB. Writes a variety of formats to the designated instrument.

Page 207: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

206

Usage: HPIB_fwrite (prog)(EID,Address,numBytes,numericalData,convertChar)

InputArguments:

EID Specifies the descriptor returned from HPIB_open (prog)()

Address Specifies the address of the instrument

numBytes Specifies how many bytes to read from the bus

numericalData Specifies the number to be written out

convertChar Specifies how to interpret the bytes as follows:"F" Must request numBytes=4 or numBytes=8 Numerical data will be converted to asingle or double precision number and sent across the bus."I" Must request numBytes=2 or numBytes=4 Numerical data will be converted to a 2'scomplement number of the specified size and sent across the bus.

Output: 0 for success, -1 for error

HPIB_openInitiates GPIB communication and reserves resources. Instrument control through GPIBshould use this function family to be portable across platforms. Defined in userc_io.c.

Input Arguments:

Reals or Integers: Interface file name. Refer to Measurement (meas).

Output: File descriptor.

Automatic Invocation: None

Example PEL Statement: file_num = HPIB_open("hpib") ! for s700

file_num = HPIB_open("/dev/gpib0") ! for Sun

HPIB_readReads a variety of formats from the designated instrument.

Usage: HPIB_read(EID,Address,numBytes,Format,Variable)

InputArguments:

EID Specifies the descriptor returned from HPIB_open (prog)()

Address Specifies the address of the instrument

numBytes Specifies how many bytes to read from the bus

Format Specifies how to interpret the bytes as follows:"A" Return an ASCII string less than or equal to numBytes in length (depending on EOI andNull characters read.) Allow for a terminator in your numBytes length, but this terminator willbe stripped from the return."F" Must request numBytes=4 or numBytes=8 Result will be these bytes interpreted as anormal ordered single or double precision number."I" Must request numBytes=2 or numBytes=4 Result will be these bytes interpreted as anormal ordered 2's complement integer."C" Must request numBytes=1. Result will be this byte interpreted as a normal orderedunsigned integer."H" Interprets a string of characters as a hexadecimal number and outputs the decimalequivalent. NumBytes may be any length. Hexadecimal interpretation will continue until a nonhexadecimal character or NULL byte is encountered. hexadecimal character set [0-9, a-f, A-F]."O" Interprets a string of characters as an octal number and outputs the decimal equivalent.NumBytes may be any length. Octal interpretation will continue until a non-octal character orNULL byte is encountered. octal character set [0-7].

Variable Specifies the name of a variable in a variable table will receive the read data.

Output: 0 for success, -1 for error

HPIB_read_realsThis function was obsoleted and replaced by HPIB_read (prog).

Reads multiple real numbers from a designated instrument.

Page 208: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

207

Input Arguments:

Reals orIntegers:

File descriptor returned from HPIB_open (prog)(), target GPIB address, an optional scanf()format to pick up a real number. If the format is blank, "%lf" is used.

Output: Array of real numbers.

AutomaticInvocation:

None

Example PELStatement:

x = HPIB_read_reals(file_num, 16, "%lf\n")

HPIB_readnumThis function was obsoleted and replaced by HPIB_read (prog).

Reads a single real number from a designated instrument.

Input Arguments:

Reals or Integers: File descriptor returned from HPIB_open (prog)(), target GPIB address, an optionalscanf() format to pick up a real number. If the format is blank, "%lf" is used.

Output: a real number (the value 9.99998E+37 means an error occurred).

Automatic Invocation: None

Example PELStatement:

data = HPIB_readnum(file_num, 16, "")

HPIB_readstrThis function was obsoleted and replaced by HPIB_read (prog).

Reads a single character string from a designated instrument.

Input Arguments:

Reals or Integers: File descriptor returned from HPIB_open (prog)(), target GPIB address, an optionalscanf() format to pick up a real number, a variable name that receives the characterstring. If the format is blank, "%[^\r\n]*" is used to exclude CR/LF.

Output: 0 for success, -1 for error.

AutomaticInvocation:

None

Example PELStatement:

x = HPIB_readstr(file_num, 16, "%s\n", "IC-CAP_variable")

HPIB_spollReads a status byte from a designated instrument.

Input Arguments:

Reals or Integers: File descriptor returned from HPIB_open (prog)(), target GPIB address.

Output: status byte (real number)

Automatic Invocation: None

Example PEL Statement: status = HPIB_spoll(file_num, 16)

HPIB_srqTests if SRQ line of the bus is True or False.

Input Arguments:

Reals or Integers: File descriptor returned from HPIB_open (prog)().

Output: 1 for True, 0 for False, -1 for error

Automatic Invocation: None

Example PEL Statement: srq = HPIB_srq(file_num)

HPIB_timeout

Page 209: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

208

Sets the GPIB timeout.

Input Arguments:

Reals or Integers: File descriptor returned from HPIB_open (prog)(), timeout in seconds.

Output: 0 for success, -1 for error

Automatic Invocation: None

Example PEL Statement: x = HPIB_timeout(file_num, 10) ! timeout on 10 sec

HPIB_writeThis function was obsoleted and replaced by HPIB_fwrite (prog).

Sends a character string to a designated instrument.

Input Arguments:

Reals or Integers: File descriptor returned from HPIB_open (prog)(), target GPIB address, a characterstring to be sent that allows normal C escapes.

Output: 0 for success, -1 for error

Automatic Invocation: None

Example PELStatement:

x = HPIB_write(file_num, 16, "*IDN?\n")

HPMOS_process_parsAllows specification of initial values for the Agilent MOS process related parameters LD,RS, RSH, TOX, WD, and XJ. The drain resistance RD is set equal to the specified value ofRS.

Input Arguments:

Data Sets: Lateral Diffusion, Source Resistance, Sheet Resistance, Oxide Thickness, WidthReduction

Output: None

Extracts: (not applicable)

AutomaticInvocation:

By Extract menu function

HPMOSDC_lin_largeStandard extraction for the Agilent MOS model. Extracts classical parameters using Idversus Vg measured on a large device.

Input Arguments:

Data Sets: Gate V, Bulk V, Drain V, Drain I

Output: None

Extracts: VTO, NSUB, UO, VNORM

Automatic Invocation: By Extract menu function

HPMOSDC_lin_narrowStandard extraction for the Agilent MOS model. Extracts width effect parameters using Idversus Vg measured on a narrow device.

Input Arguments:

Data Sets: Gate V, Bulk V, Drain V, Drain I

Output: None

Extracts: WD, VWFF, WFF

Automatic Invocation: By Extract menu function

Page 210: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

209

HPMOSDC_lin_shortStandard extraction for the Agilent MOS model. Extracts length effect parameters using Idversus Vg measured on a short device.

Input Arguments:

Data Sets: Gate V, Bulk V, Drain V, Drain I

Output: None

Extracts: LD, VDFF, LFF

Automatic Invocation: By Extract menu function

HPMOSDC_sat_shortStandard extraction for the Agilent MOS model. Extracts saturation parameters using Idversus Vd measured on a short device.

Input Arguments:

Data Sets: Gate V, Bulk V, Drain V, DrainI

Output: None

Extracts: ETRA, ECRIT, DESAT

Automatic Invocation: By Extract menu function

HPRoot_data_acquExtraction function for acquiring data for the Agilent Root model. Adaptively takes datathroughout the safe operating range of the device.

Input Arguments: None

Output: None

Automatic Invocation: By Extract menu function

HPRoot_FETExtraction function for generating the Agilent Root FET model.

Input Arguments: None

Output: None

Extracts: Generates the model functions and look-up table.

Automatic Invocation: By Extract menu function

HPRoot_fet_acquExtraction function for acquiring data for the Agilent Root FET model. Adaptively takesdata throughout the safe operating range of the device.

Input Arguments:

Reals or Integers: Power level, I_Brk, I_Fwd, Min Vd, Max Vd, Min Vg, Max Vg, Min step, Max step, Vp,Delta, Vdiode. Eps, Noise thresh, SMU Compl

Output: None

AutomaticInvocation:

By Extract menu function

HPRoot_FET_tExtraction function for generating the Agilent Root FET model.

Page 211: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

210

Input Arguments:

Reals or Integers: vd_start, vg_start, t_dispersion

Extracts: Generates the model function and look-up table

Automatic Invocation: By Extract menu function

HPRoot_IdProduces array of data that contains the drain current values at measured bias points forAgilent Root FET model.

Input Arguments: None

Output: Array of real numbers; size determined by setup

Automatic Invocation:

None

HPRoot_IdhProduces array of data that contains the high frequency current values at measured biaspoints for Agilent Root FET model.

Input Arguments: None

Output: Array of real numbers; size determined by setup

Automatic Invocation: None

HPRoot_IgProduces array of data that contains the gate current values at measured bias points forAgilent Root FET model.

Input Arguments: None

Output: Array of real numbers; size determined by setup

Automatic Invocation: None

HPRoot_initialInitializes plots displayed with the Agilent Root FET model.

Input Arguments: None

Output: None

Automatic Invocation: By Extract menu function

HPRoot_mos_acquExtraction function for acquiring data for the Agilent Root MOSFET model. Adaptively takesdata throughout the safe operating range of the device.

Input Arguments:

Reals or Integers: Power level, I Breakdown, Min Vd, Max Vd, Min Vg, Max Vg, Min step, Max step, Vth,Delta, Eps, Noise thresh, SMU Compl

AutomaticInvocation:

By Extract menu function

HPRoot_mos_paraCalculates Z matrix from S parameter input and extracts the parasitic elements for theAgilent Root MOS model.

Page 212: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

211

Input Arguments:

Data Sets: S param, Freq

Strings/Pars/Vars:

Mode (Z/EXTR)

Output: Matrix array, size determined by inputs

HPRoot_MOSFETExtraction function for generating the Agilent Root FET model.

Input Arguments:

Reals or Integers: vd_start, vg_start, t_dispersion

Extracts: Generates the model function and look-up table

Automatic Invocation: By Extract menu function

HPRoot_nExtracts the ideality parameter for the Agilent Root FET and Agilent Root Diode models.

Input Arguments:

Data Sets: V, N array

Reals or Integers: LowBound V, HighBound V, Max

Output: None

Extracts: N

Automatic Invocation: None

HPRoot_para_calCalculates the parasitic elements of a device for the Agilent Root FET and Agilent RootMOS models.

Input Arguments:

Strings/Pars/Vars: Mode ( Mesfet / Mosfet)

Extracts: Rg, Rs, Rd, Lg_tot, Ls_tot, Ld_tot

Automatic Invocation: None

HPRoot_parasiticMeasures the parasitic elements of a device for the Agilent Root FET model.

Input Arguments: None

Output: None

Extracts: The parasitic resistors Rs, Rd, and Rg, and the parasitic inductors Ls_tot, Ld_tot, andLg_tot.

Automatic Invocation: By Extract menu function

HPRoot_QdProduces array of data that contains the drain charge values at measured bias points forAgilent Root FET model.

Input Arguments: None

Output: Array of real numbers; size determined by setup

Automatic Invocation: None

HPRoot_QgProduces array of data that contains the gate charge values at measured bias points forAgilent Root FET model.

Page 213: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

212

Input Arguments: None

Output: Array of real numbers; size determined by setup

Automatic Invocation: None

HPRoot_VdProduces array of data that contains the drain voltage values of the bias distribution of thewhole operating range of the device for Agilent Root FET model.

Input Arguments: None

Output: Array of real numbers; size determined by setup

Automatic Invocation: None

HPRoot_VgProduces array of data that contains the gate voltage values of the bias distribution of thewhole operating range of the device for Agilent Root FET model.

Input Arguments: None

Output: Array of real numbers; size determined by setup

Automatic Invocation: None

HPRoot_wrReads measured parasitic data and extracted frequency and calculates parasiticresistances, inductances and computes the intrinsic matrix Zp and Yp for linear AC de-

embedding.

Input Arguments:

Data Sets: Freq, S param, IG, ID, VG, VD

Strings/Pars/Vars: Mode ( s/p )

HPRoot_Y11iProduces array of data that contains the imaginary part of Y11 at measured bias points for

Agilent Root FET model.

Input Arguments: None

Output: Array of real numbers; size determined by setup

Automatic Invocation: None

HPRoot_Y11rProduces array of data that contains the real part of Y11 at measured bias points for

Agilent Root FET model.

Input Arguments: None

Output: Array of real numbers; size determined by setup

Automatic Invocation: None

HPRoot_Y12iProduces array of data that contains the imaginary part of Y12 at measured bias points for

Agilent Root FET model.

Input Arguments: None

Output: Array of real numbers; size determined by setup

Automatic Invocation: None

Page 214: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

213

HPRoot_Y12rProduces array of data that contains the real part of Y12 at measured bias points for

Agilent Root FET model.

Input Arguments: None

Output: Array of real numbers; size determined by setup

Automatic Invocation: None

HPRoot_Y21iProduces array of data that contains the imaginary part of Y21 at measured bias points for

Agilent Root FET model.

Input Arguments: None

Output: Array of real numbers; size determined by setup

Automatic Invocation: None

HPRoot_Y21rProduces array of data that contains the real part of Y21 at measured bias points for

Agilent Root FET model.

Input Arguments: None

Output: Array of real numbers; size determined by setup

Automatic Invocation:

None

HPRoot_Y22iProduces array of data that contains the imaginary part of Y22 at measured bias points for

Agilent Root FET model.

Input Arguments: None

Output: Array of real numbers; size determined by setup

Automatic Invocation: None

HPRoot_Y22rProduces array of data that contains the real part of Y22 at measured bias points for

Agilent Root FET model.

Input Arguments: None

Output: Array of real numbers; size determined by setup

Automatic Invocation: None

HPTFTCV_model_cgdThis function is obsolete.

Agilent A-Si:H TFT Gate to Drain Capacitance model. Calculates Cgd from voltages.

Input Arguments:

Data Sets: Drain V, Gate V, Source V

Output: Gate to Drain C

Automatic Invocation: None

Page 215: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

214

HPTFTCV_model_cgdThis function is obsolete.

Agilent A-Si:H TFT Gate to Drain Capacitance model. Calculates Cgd from voltages.

Input Arguments:

Data Sets: Drain V, Gate V, Source V

Output: Gate to Drain C

Automatic Invocation: None

HPTFTCV_model_cgsThis function is obsolete.

Agilent A-Si:H TFT Gate to Source Capacitance model. Calculates Cgs from voltages.

Input Arguments:

Data Sets: Drain V, Gate V, Source V

Output: Gate to Source C

Automatic Invocation: None

HPTFTDC_linThis function is obsolete.

Standard extraction for the Agilent a-Si TFT model. Extracts linear region parametersusing Id versus Vg measured on a-Si TFT device.

Input Arguments:

Data Sets: Drain V, Gate V, Source V, Drain I

Output: None

Extracts: VTO, UO, PHI, THETA, NFS, GO

Automatic Invocation: By Extract menu function

HPTFTDC_model_idThis function is obsolete.

Agilent A-Si:H TFT DC model. Calculates Id from voltages.

Input Arguments:

Data Sets: Drain V, Gate V, Source V

Output: Drain I

Automatic Invocation: None

HPTFTDC_satThis function is obsolete.

Standard extraction for the Agilent A-Si:H TFT model. Extracts saturation regionparameters using Id versus Vd measured on a-Si:H TFT device.

Input Arguments:

Data Sets: Drain V, Gate V, Source V, Drain I

Output: None

Extracts: VMAX, ETA

Automatic Invocation: By Extract menu function

Page 216: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

215

icdb_add_commentWrites an arbitrary comment string to the opened file.

Syntax

x=icdb_add_comment(strVal)

Where

strVal is an arbitrary string.The return value (x) is undefined.

icdb_closeCloses a file that has been opened with icdb_open.

Syntax

x=icdb_close()

Where

The return value (x) is not defined.

icdb_export_dataExports the measured or simulated data from the specified setup to the opened file.Header information containing current information about the values of the registeredsweep parameters is automatically appended to the file.

Syntax

x=icdb_export_data(setupName,dataType)

Where

setupName is a string giving a proper path to the setup that contains data to export.

dataType exports simulated data if dataType is "S". Exports measured data for any other value,but "M" recommended.

The return value (x) is undefined.

icdb_get_sweep_indexReturns the index in the ICCAP_ARRAY associated the specified user sweep at any point inthe export loop.

Syntax

curVal=icdb_get_sweep_index(index,swpName)

Where

index is the point number requested

swpName is the name of the registered sweep

icdb_get_sweep_valueReturns the current value of the specified user sweep at any point in the export loop.

Syntax

Page 217: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

216

curVal=icdb_get_sweep_value(index,swpName)

Where

index is the point number requested

swpName is the name of the registered sweep

icdb_openOpens a file for exporting measured data in IC-CAP's data management file format(.mdm).

Syntax

x=icdb_open(filename)

Where

filename is a string pointing at the MDM file to be opened.

The return value (x) is not defined.

icdb_register_con_sweepCreates a CON type sweep of an arbitrary parameter in the exported file. Intendedprimarily to create sweeps of parameters that cannot be swept during a measurement.Returns the total number of points in all the registered sweeps.

Syntax

numPts=icdb_register_con_sweep(conValue,swpName)

Where

conValue is the constant value to use for this con sweep

swpName is the name of the 'User Input' as it will appear in the MDM file, or how it will bereferenced when reading the MDM back in

icdb_register_lin_sweepCreates a LIN type sweep of an arbitrary parameter in the exported file. Intendedprimarily to create sweeps of parameters that cannot be swept during a measurement.Returns the total number of points in all the registered sweeps.

Syntax

numPts=icdb_register_lin_sweep(swpOrder,start,stop,numSwpPts,swpName)

Where

swpOrder is the sweep order for the registered sweep

start is the start value for the linear sweep

stop is the stopping value for the linear sweep

numSwpPts is the number of points for this sweep

swpName is the name of the 'User Input' as it will appear in the MDM file, or how it will bereferenced when reading the MDM back in

icdb_register_list_sweepCreates a LIST type sweep of an arbitrary parameter in the exported file. Intendedprimarily to create sweeps of parameters that cannot be swept during a measurement.Returns the total number of points in all the registered sweeps.

Page 218: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

217

Syntax

numPts=icdb_register_list_sweep(swpOrder,swpName,arrayName)

Where

swpOrder is the sweep order for the registered sweep

swpName is the name of the 'User Input' as it will appear in the MDM file, or how it will bereferenced when reading the MDM back in

arrayName is a string naming a variable in a Variable table that has been set to anICCAP_ARRAY[]. This array declares the points that will be used for the list sweep.

icdb_register_lsync_sweepCreates an LSYNC type sweep of an arbitrary parameter in the exported file. Intendedprimarily to create sweeps of parameters that cannot be swept during a measurement.Returns the total number of points in all registered sweeps.

Syntax

numPts=icdb_register_lsync_sweep(swpName,masterSweepName,arrayName)

Where

swpName is the name of the 'User Input' as it will appear in the MDM file, or how it willbe referenced when reading the MDM back in.

masterSweepName is the name of a previously registered sweep to which this sweep will besynchronized.

arrayName is a string naming a variable in a Variable table that has been set to anICCAP_ARRAY[]. This array declares the points that will be used for the listsweep. This array should have the same number of points as the alreadyregistered Master Sweep.

icdb_register_text_list_sweepCreates a TLIST type sweep of an arbitrary parameter in the exported file. Intendedprimarily to create sweeps of parameters that cannot be swept during a measurement.Returns the total number of points in all the registered sweeps.

Syntax

numPts=icdb_register_text_list_sweep(swpOrder,swpName,arrayName)

Where

swpOrder is the sweep order for the registered sweep

swpName is the name of the 'User Input' as it will appear in the MDM file, or how it will bereferenced when reading the MDM back in

arrayName is a string naming a variable in a Variable table that has been set to anICCAP_ARRAY[]. This array declares the string values that will be used for the textlist sweep.

icdb_register_text_lsync_sweepCreates an TLSYNC type sweep of an arbitrary parameter in the exported file. Intendedprimarily to create sweeps of parameters that cannot be swept during a measurement.Returns the total number of points in all registered sweeps.

Syntax

numPts=icdb_register_text_lsync_sweep(swpName,masterSweepName,arrayName)

Page 219: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

218

Where

swpName is the name of the 'User Input' as it will appear in the MDM file, or how it willbe referenced when reading the MDM back in.

masterSweepName is the name of a previously registered sweep to which this sweep will besynchronized.

arrayName is a string naming a variable in a Variable table that has been set to anICCAP_ARRAY[]. This array declares the string values that will be used forthe text lsync sweep. This array should have the same number of points asthe already registered Master Sweep.

icdbf_add_commentWrites an arbitrary comment string to the opened file.

Syntax

x=icdbf_add_comment(fNum,strVal)

Where

fNum is the number returned from an icdbf_open() call.

strVal is an arbitrary string.

The return value (x) is undefined.

icdbf_closeCloses a file that has been opened with icdbf_open.

Syntax

x=icdbf_close(fNum)

Where

fNum is the number returned from an icdbf_open() call.

The return value (x) is not defined.

icdbf_export_dataExports the measured or simulated data from the specified setup to the opened file.Header information containing current information about the values of the registeredsweep parameters is automatically appended to the file.

Syntax

x=icdbf_export_data(fNum,setupName,dataType)

Where

fNum is the number returned from an icdbf_open() call.

setupName is a string giving a proper path to the setup that contains data to export.

dataType exports simulated data if dataType is "S". Exports measured data for any other value,but "M" recommended.

The return value (x) is undefined.

icdbf_get_sweep_indexReturns the index in the ICCAP_ARRAY associated the specified user sweep at any point inthe export loop.

Syntax

Page 220: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

219

curVal=icdbf_get_sweep_index(fNum,index,swpName)

Where

fNum is the number returned from an icdbf_open() call.

index is the point number requested

swpName is the name of the registered sweep

icdbf_get_sweep_valueReturns the current value of the specified user sweep at any point in the export loop.

Syntax

curVal=icdbf_get_sweep_value(fNum,index,swpName)

Where

fNum is the number returned from an icdbf_open() call.

index is the point number requested

swpName is the name of the registered sweep

icdbf_openOpens a file for exporting measured data in IC-CAP's data management file format(.mdm).

Syntax

fNum=icdbf_open(filename)

Where

filename is a string pointing at the MDM file to be opened

The return value (fNum) is a unique number associated with this file. Thisnumber is valid during the current run of PEL or until icdbf_close is called.

icdbf_register_con_sweepCreates a CON type sweep of an arbitrary parameter in the exported file. Intendedprimarily to create sweeps of parameters that cannot be swept during a measurement.Returns the total number of points in all the registered sweeps.

Syntax

numPts=icdbf_register_lin_sweep(fNum,conValue,swpName)

Where

fNum is the number returned from an icdbf_open() call

conValue is the constant value to use for this con sweep

swpName is the name of the 'User Input' as it will appear in the MDM file, or how it will bereferenced when reading the MDM back in

icdbf_register_lin_sweepCreates a LIN type sweep of an arbitrary parameter in the exported file. Intendedprimarily to create sweeps of parameters that cannot be swept during a measurement.Returns the total number of points in all the registered sweeps.

Syntax

Page 221: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

220

numPts=icdbf_register_lin_sweep(fNum,swpOrder,start,stop,numSwpPts,swpName)

Where

fNum is the number returned from an icdbf_open() call

swpOrder is the sweep order for the registered sweep

start is the start value for the linear sweep

stop is the stopping value for the linear sweep

numSwpPts is the number of points for this sweep

swpName is the name of the 'User Input' as it will appear in the MDM file, or how it will bereferenced when reading the MDM back in

icdbf_register_list_sweepCreates a LIST type sweep of an arbitrary parameter in the exported file. Intendedprimarily to create sweeps of parameters that cannot be swept during a measurement.Returns the total number of points in all the registered sweeps.

Syntax

numPts=icdbf_register_list_sweep(fNum,swpOrder,swpName,arrayName)

Where

fNum is the number returned from an icdbf_open() call

swpOrder is the sweep order for the registered sweep

swpName is the name of the 'User Input' as it will appear in the MDM file, or how it will bereferenced when reading the MDM back in

arrayName is a string naming a variable in a Variable table that has been set to anICCAP_ARRAY[]. This array declares the points that will be used for the list sweep

icdbf_register_lsync_sweepCreates an LSYNC type sweep of an arbitrary parameter in the exported file. Intendedprimarily to create sweeps of parameters that cannot be swept during a measurement.Returns the total number of points in all the registered sweeps.

Syntax

numPts=icdbf_register_lsync_sweep(fNum,swpName,masterSweepName,arrayName)

Where

fNum is the number returned from an icdbf_open() call

swpName is the name of the 'User Input' as it will appear in the MDM file, or how it willbe referenced when reading the MDM back in

masterSweepName is the name of a previously registered sweep to which this sweep will besynchronized

arrayName is a string naming a variable in a Variable table that has been set to anICCAP_ARRAY[]. This array declares the points that will be used for the listsweep. This array should have the same number of points as the alreadyregistered Master Sweep.

icdbf_register_text_list_sweepCreates a TLIST type sweep of an arbitrary parameter in the exported file. Intendedprimarily to create sweeps of parameters that cannot be swept during a measurement.Returns the total number of points in all the registered sweeps.

Syntax

Page 222: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

221

numPts=icdbf_register_text_list_sweep(fNum,swpOrder,swpName,arrayName)

Where

fNum is the number returned from an icdbf_open() call

swpOrder is the sweep order for the registered sweep

swpName is the name of the 'User Input' as it will appear in the MDM file, or how it will bereferenced when reading the MDM back in

arrayName is a string naming a variable in a Variable table that has been set to anICCAP_ARRAY[]. This array declares the string values that will be used for the textlist sweep

icdbf_register_text_lsync_sweepCreates an TLSYNC type sweep of an arbitrary parameter in the exported file. Intendedprimarily to create sweeps of parameters that cannot be swept during a measurement.Returns the total number of points in all the registered sweeps.

Syntax

numPts=icdbf_register_text_lsync_sweep(fNum,swpName,masterSweepName,arrayName)

Where

fNum is the number returned from an icdbf_open() call

swpName is the name of the 'User Input' as it will appear in the MDM file, or how it willbe referenced when reading the MDM back in

masterSweepName is the name of a previously registered sweep to which this sweep will besynchronized

arrayName is a string naming a variable in a Variable table that has been set to anICCAP_ARRAY[]. This array declares the string values that will be used forthe text lsync sweep. This array should have the same number of points asthe already registered Master Sweep.

ICMSarrayReturns an array result from an IC-CAP Macro algorithm to the IC-MS result array duringtest execution. This function is used internally by IC-MS and should never be calleddirectly by the user.

Input Arguments:

Data Sets: Array Result

Reals or Integers: Array Size, Result Data Index

Output: None

Automatic Invocation: None

ICMScharReturns a single character result from an IC-CAP Macro algorithm to the IC-MS resultarray during test execution. This function is used internally by IC-MS and should never becalled directly by the user.

Input Arguments:

Reals or Integers: Result Data Index

Strings/Pars/Vars: Character Result

Output: None

Automatic Invocation: None

ICMSintReturns an integer result from an IC-CAP Macro algorithm to the IC-MS result array during

Page 223: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

222

test execution. This function is used internally by IC-MS and should never be calleddirectly by the user.

Input Arguments:

Reals or Integers: Integer Result, Result Data Index

Output: None

Automatic Invocation: None

ICMSpinUsed in an IC-CAP Macro to determine the matrix connections of the device under test.ICMSpin returns the matrix pin number that corresponds to a specified terminal index onthe device. This function only returns valid data when IC-MS test execution is running.Refer to the IC-MS User's Manual for more information on using ICMSpin.

Input Arguments:

Reals or Integers: Terminal Index

Output: Matrix pin number corresponding to the specified device terminal index

Automatic Invocation: None

Example PEL Statement: pin_num = ICMSpin(1)

ICMSrealReturns a floating point result from an IC-CAP Macro algorithm to the IC-MS result arrayduring test execution. This function is used internally by IC-MS and should never be calleddirectly by the user.

Input Arguments:

Reals or Integers: Real Result, Result Data Index

Output: None

Automatic Invocation: None

ICMSstrReturns a character string result from an IC-CAP Macro algorithm to the IC-MS resultarray during test execution. This function is used internally by IC-MS and should never becalled directly by the user.

Input Arguments:

Result Data Index: String Result

Output: None

Automatic Invocation: None

icstat_activateActivates a deactivated row or column in the PARAMETERS spreadsheet.

Synopsis: icstat_activate(<Number>, <Mode>)

Arguments:

Number:

Row or column number to be activated

Mode: "ROW" or "COLUMN"

Example: retVal = icstat_activate(4, "ROW")

return

icstat_analysisEmulates the Analysis command on the Analysis menu. This function generates the "activedata" that is, data devoid of the attribute, deactivated, filtered and constant valuescolumn. Displays the results in the ANALYSIS spreadsheet.

Page 224: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

223

Synopsis: icstat_analysis()

Arguments: NONE

Example: retVal = icstat_analysis()

return

icstat_attribute_2_parameterChanges the Attribute column to a Parameters column in the PARAMETERS spreadsheet.

Synopsis: icstat_attribute_2_parameter (<Number>)

Arguments: Number: attribute column number to be changed to parameter type

Example: retVal = icstat_attribute_2_parameter(4)

return

icstat_clearClears rows or columns in the PARAMETERS spreadsheet.

Synopsis: icstat_clear(<Start>, <Number>, <Mode>)

Arguments:

Start Row/Columnnumber

Row or column from which to clear

Number of rows/columns Number of rows/columns to be cleared

Mode: "ROW" or "COLUMN"

Example: retVal = icstat_clear(4, 4, "ROW") ! Clears 4 rows from the 4th row

onward

return

icstat_close_sdf_fileCloses the SDF file.

Synopsis: icstat_close_sdf_file(<Filename>)

Arguments:

Filename: Name of the SDF file to close.

Example: retVal = icstat_close_sdf_file ("/tmp/examples/icstat/bsim3.sdf")

return

icstat_correlationEmulates the Correlation command on the Analysis menu. This function generates thecorrelation matrix from the data in the PARAMETERS spreadsheet. Displays the results inthe CORRELATION spreadsheet.

Synopsis: icstat_correlation()

Argument: NONE

Example: retVal = icstat_correlation()

return

icstat_deactivateDeactivates an activated row or column in the PARAMETERS spreadsheet.

Page 225: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

224

Synopsis: icstat_deactivate(<Number>, <Mode>)

InputArguments:

Number: Row or column number to be deactivated

Mode: "ROW" or "COLUMN"

Example: retVal = icstat_deactivate(4, "ROW")

return

icstat_deleteDeletes rows or columns in the PARAMETERS spreadsheet.

Synopsis: icstat_delete(<Start>, <Number>, <Mode>)

Arguments:

Start Row/Columnnumber

Row or column from which to delete

Number of rows/columns Number of rows/columns to be deleted

Mode: "ROW" or "COLUMN"

Example: retVal = icstat_delete(4, 4, "ROW") ! Deletes 4 rows from the 4th row

onward

return

icstat_equationsEmulates the Equations command on the Analysis menu. This function either generatesthe equations from the factors or the parameters. The results are displayed in therespective spreadsheets: FACTOR EQUATIONS or PARAMETER EQUATIONS.

Synopsis: icstat_equations(<Type>)

Arguments:

Type: Either FACTORS or DOMINANT

Example: retVal = icstat_equations("FACTORS")

return

icstat_exitExits the Statistical Analysis program.

Synopsis: icstat_exit()

Arguments: None

Example: retVal = icstat_exit()

return

icstat_factor_analysisEmulates the Factor Analysis command on the Analysis menu. This function performs thefactor analysis. The results are displayed in the FACTOR LOADINGS and PARAMETERVARIANCE spreadsheets.

Page 226: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

225

Synopsis: icstat_factor_analysis(<Number-of-factors>, <Method-index>, <Rotation-Index>,<Maximum Iterations>, <Maximum Steps>, <Convergence Iteration>,<Convergence - 2nd derivative>

Arguments:

Number of factors: Number of factors

Method Index: 0 = Principal Component 1 = Principal Factor 2 = Unweighted Least Squares

Rotation Index: 0 = Varimax 1 = Quartimax 2 = Equamax 3 = None

Maximum Iterations: Maximum number of iterations (default = 30)

Maximum Steps: Maximum number of steps (default = 8)

Convergence Iteration: Convergence criterion iterations (default = 0.0001)

Convergence 2ndderivative

Convergence criterion 2nd derivative (default = 0.1)

Example: retVal = icstat_factor_analysis(8, 0, 0, 30, 8, 0.0001, 0.1)

return

icstat_from_partableUpdates the PARAMETERS spreadsheet with values from the Parameters table. If aparticular spreadsheet parameter is not found in the Parameters table or the Parameterstable parameter is not found in the spreadsheet, then the value is not updated.

Synopsis: icstat_from_partable(<Number>, <Path>, <From Parameter Table>)

Arguments:

Number: Row number to get the data from

Path: The name of the model or DUT from which you want to get parameters. Specify<"model_name"> to get parameters from the Model Parameters table; specify<"model_name/DUT_name"> to get parameters from the DUT Parameters table. (To specify thecurrent DUT, "." is sufficient.)

From: Specify 1 of the following parameter tables from which to get the data: "MODEL PARAMETERS","DUT PARAMETERS" If left blank, "MODEL PARAMETERS" is used.

Example: retVal = icstat_from_partable(2, "/CGaas1", "MODEL PARAMETERS")

return

icstat_get_attribute_columnsReturns an array of attribute column numbers in the PARAMETERS spreadsheet.

Synopsis: icstat_get_attribute_columns(<input-array>)

Arguments:

Input: Array containing the values to be returned

Example: arrSize = icstat_num_attributes()

complex colArr[arrSize]

retArr = icstat_get_attribute_columns(colArr)

PRINT retArr

icstat_get_cellReturns the values in the cell. If the cell contains text, a 0 is returned. Note: To get cellswith text, use the icstat_get_text_cell function. To get values from a large number ofcells, use icstat_get_column or icstat_get_row.

Page 227: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

226

Synopsis: icstat_get_cell(<row-number>, <column-number>, <Spreadsheet-name>)

Arguments:

Row Number: Integer

Column Number: Integer

Spreadsheet Name: One of the Spreadsheet Names

Spreadsheet Names: PARAMETERS, ANALYSIS, STATSUMM, CORRELATION, FACTOR LOADINGS,PARAMETER VARIANCE, FACTOR EQUATIONS, PARAMETER EQUATIONS, PARAMETRIC,NON PARAMETRIC

Example: rCell = icstat_get_cell(8, 8, "PARAMETERS")

PRINT rCell

return

icstat_get_columnReturns the values in the column. If the cell contains text, a 0 is returned. Typically thefirst column for any spreadsheet is of string type. For the PARAMETERS spreadsheet, thevalues returned include the deactivated and filtered cells.

Synopsis: icstat_get_column(<Input-array>, <Column number>, <Spreadsheet Name>)

Arguments:

Input: Array for the returned value

Column Number: Integer

Spreadsheet Name: One of the Spreadsheet Names

Spreadsheet Names: PARAMETERS, ANALYSIS, STATSUMM, CORRELATION, FACTOR LOADINGS,PARAMETER VARIANCE, FACTOR EQUATIONS, PARAMETER EQUATIONS, PARAMETRIC,NON PARAMETRIC

Example: arrSize = icstat_num_rows("PARAMETERS")

complex colArr[arrSize]

retArr = icstat_get_column(colArr, 7, "PARAMETERS")

PRINT retArr

icstat_get_deactivatedReturns an array of deactivated rows or columns in the PARAMETERS spreadsheet.

Synopsis: icstat_get_deactivated(<input-array>, <Mode>)

Arguments:

Input: Array containing the values to be returned

Mode: "ROW" or "COLUMN"

Example: arrSize = icstat_num_deactivated("ROW")

complex rowArr[arrSize]

retArr = icstat_get_deactivated(rowArr, "ROW")

PRINT retArr

icstat_get_filtered_rowsReturns an array of filtered rows in the PARAMETERS spreadsheet.

Synopsis: icstat_get_filtered_rows (<input-array>)

Arguments:

Input: Array containing the values to be returned

Example: arrSize = icstat_num_filtered()

complex rowArr[arrSize]

retArr = icstat_get_filtered_rows(rowArr)

PRINT retArr

icstat_get_rowReturns the values in the row. If any cells contain text, a 0 is returned. Typically the firstcolumn for any spreadsheet contain labels, that is, text. For the PARAMETERSspreadsheet, the first several columns could be attribute parameters that is, text. The

Page 228: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

227

function excludes the cells in these columns, and returns only real values.

Synopsis: icstat_get_row(<Input-array>, <Number>, <Spreadsheet Name>)

Arguments:

Input: Array for the returned value

Row Number Integer

Spreadsheet Name: One of the Spreadsheet Names

Spreadsheet Names: PARAMETERS, ANALYSIS, STATSUMM, CORRELATION, FACTOR LOADINGS,PARAMETER VARIANCE, FACTOR EQUATIONS, PARAMETER EQUATIONS, PARAMETRIC,NON PARAMETRIC

Example: iNumAttribs = icstat_num_attributes()

iNumCols = icstat_num_columns("PARAMETERS")

iNumCells = iNumCols - iNumAttribs

complex rowArr[iNumCells]

retArr = icstat_get_row(rowArr, 4, "PARAMETERS")

PRINT retArr

icstat_get_text_cellGets the text in the specified cell and sets the referenced variable with the text.

Synopsis: icstat_get_text_cell(<Row-Number>, <Column-Number>, <Spreadsheet Name>,<Variable Name>)

Arguments:

Row Number Integer

Column Number: Integer

Spreadsheet Name: One of the Spreadsheet Names

Variable Name: Variable name from the variable table

Spreadsheet Names: PARAMETERS, ANALYSIS, STATSUMM, CORRELATION, FACTOR LOADINGS,PARAMETER VARIANCE, FACTOR EQUATIONS, PARAMETER EQUATIONS, PARAMETRIC,NON PARAMETRIC

Example: sString = "Hi, I am a string"

dummy = icstat_set_text_cell(2, 1, sString)

dummy = icstat_get_text_cell(2, 2, "PARAMETERS", "CELLVAL")

PRINT CELLVAL

return

icstat_insertInsert rows or columns in the PARAMETERS spreadsheet.

Synopsis: icstat_insert(<Start>, <Number>, <Mode>)

Arguments:

Start Row/Columnnumber

Row or column from which to insert

Number of rows/columns Number of rows/columns to be inserted

Mode "ROW" or "COLUMN"

Example: retVal = icstat_insert(4, 4, "ROW") ! Inserts 4 rows from the 4th row

onward.

return

icstat_nonparametric_modelsEmulates the non-parametric analysis function.

Page 229: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

228

Synopsis: icstat_nonparametric_models(<Boundary Points>, <% Enclosed>, , <DensityEstimator %>, <Distance Metric>)

Arguments:

Number of Boundary Points: Number of boundary models (integer)

Percent Enclosed: Integer

Diversity Oversampling: Real number

Density Estimator %: Integer

Distance Metric: "EUCLIDEAN" or "L_1" or "L_INFINITY"

Example: retVal = icstat_open()

retVal = icstat_open_sdf_file ("/tmp/examples/icstat/bsim3.sdf")

retVal = icstat_nonparametric_models(8, 80, 2, 98, "EUCLIDEAN")

return

icstat_num_attributesReturns the number of attribute columns in the PARAMETERS spreadsheet.

Synopsis: icstat_num_attributes()

Argument: None

Example: iNumAttrCols = icstat_num_attributes()

PRINT iNumAttrCols

icstat_num_columnsReturns the number of columns in the spreadsheet. For the PARAMETERS spreadsheet,that includes the attribute and deactivated columns.

Synopsis: icstat_num_columns(<Spreadsheet -name>)

Argument:

Spreadsheet Name: One of the Spreadsheet Names

Spreadsheet Names: PARAMETERS, ANALYSIS, STATSUMM, CORRELATION, FACTOR LOADINGS,PARAMETER VARIANCE, FACTOR EQUATIONS, PARAMETER EQUATIONS, PARAMETRIC,NON PARAMETRIC

Example: iNumCols = icstat_num_columns("PARAMETERS")

PRINT iNumCols

icstat_num_deactivatedReturns the number of deactivated rows or columns in the PARAMETERS spreadsheet.

Synopsis: icstat_num_deactivated(<mode>)

Argument:

Mode: "ROW" or "COLUMN"

Example: iNumDeactRows = icstat_num_deactivated("ROW")

PRINT iNumDeactRows

icstat_num_filteredReturns the number of filtered rows in the PARAMETERS spreadsheet.

Synopsis: icstat_num_filtered(<mode>)

Argument: None

Example: iNumFilteredRows = icstat_num_filtered()

PRINT iNumFilteredRows

icstat_num_rowsReturns the number of rows in the spreadsheet, excluding the Label row (which is usuallyR1). For the PARAMETERS spreadsheet, it includes the filtered and deactivated rows.

Page 230: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

229

Synopsis: icstat_num_rows(<Spreadsheet -name>)

Argument:

Spreadsheet Name: One of the Spreadsheet Names

Spreadsheet Names: PARAMETERS, ANALYSIS, STATSUMM, CORRELATION, FACTOR LOADINGS,PARAMETER VARIANCE, FACTOR EQUATIONS, PARAMETER EQUATIONS, PARAMETRIC,NON PARAMETRIC

Example: iNumRows = icstat_num_rows("PARAMETERS")

PRINT iNumRows

icstat_openOpens the Statistical Analysis window.

Synopsis: icstat_open()

Argument: None

Example: retVal = icstat_open()

return

icstat_open_sdf_fileOpens the SDF file.

Synopsis: icstat_open_sdf_file(<Filename>)

Arguments:

Filename: name of the SDF file to open.

Example: retVal = icstat_open_sdf_file ("/tmp/examples/icstat/bsim3.sdf")

return

icstat_parameter_2_attributeChanges the Parameters column to an Attribute column in the PARAMETERS spreadsheet.

Synopsis: icstat_parameter_2_attribute (<Number>)

Argument: parameters column number to be changed to attribute type

Example: retVal = icstat_parameter_2_attribute(4)

return

icstat_parametric_modelsEmulates the Parametric Models command on the Analysis menu. This function eitherperforms the Monte Carlo, corner or boundary modeling analysis. The results aredisplayed in the PARAMETRIC spreadsheet.

Synopsis: icstat_parametric_models(<Number Models/Sigma>, <Type>)

Arguments:

# Models/Sigma: If Monte Carlo analysis, the value represents the number of Models. If CORNER orBOUNDARY, the value is the +/-sigma.

Type: One of MONTE CARLO, CORNER or BOUNDARY

Example: retVal = icstat_parametric_models(200, "MONTE CARLO")

return

icstat_plot_graphEmulates the Plot Graph command on the Graph menu. For the HISTOGRAM or CDF,multiple graphs can be plotted with a single call. For the scatter plot, only 1 graph can beplotted. The scatter plot requires the column numbers of 2 parameters that are to beplotted.

Page 231: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

230

Synopsis: icstat_plot_graph

Arguments:

Input: Array of column numbers to plot

Spreadsheet Name: One of the Spreadsheet Names

Plot Type: HISTOGRAM, CDF or SCATTER

Spreadsheet Names: PARAMETERS, PARAMETRIC

Example: complex colArr[2]

colArr[0] = 7

colArr[1] = 9

retVal = icstat_plot_graph(colArr, "PARAMETERS", "SCATTER")

retVal = icstat_plot_graph(colArr, "PARAMETERS", "HISTOGRAM")

retVal = icstat_plot_graph(colArr, "PARAMETERS", "CDF")

return

icstat_save_sdf_fileSaves the data in the PARAMETERS, CORRELATION, FACTOR LOADINGS, PARAMETERVARIANCE, FACTOR EQUATIONS and PARAMETER EQUATIONS analysis spreadsheets tothe named SDF file.

Synopsis: icstat_save_sdf_file(<Filename>, <Options>)

Arguments:

Filename: Name of the SDF file to save the data.

Options: comma separated value TRUE|FALSE for the spreadsheets. For example: TRUE, TRUE, FALSE,FALSE, FALSE, FALSE

Example: retVal = icstat_open()

sFileName = "/tmp/examples/icstat/bsim3.sdf"

retVal = icstat_open_sdf_file(sFileName)

retVal = icstat_save_sdf_file(sFileName, "TRUE, FALSE, FALSE, FALSE, FALSE, FALSE")

retVal = icstat_close()

return

icstat_set_cellSets the value of the particular cell in the PARAMETERS spreadsheet. Note: To set valuesin a large number of cells, use icstat_set_column (prog) or icstat_set_row (prog).

Synopsis: icstat_set_cell(<number>, <row-number>, <column-number>)

Arguments:

Input: Value to set

Row Number: Integer

Column Number: Integer

Example: rVal = 0.6

dummy = icstat_set_cell(rVal, 8, 8)

return

icstat_set_columnUpdates the real values in the particular column of the PARAMETERS spreadsheet withnew values. The first row (R1), which is usually the label row, is not updated.

Page 232: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

231

Synopsis: icstat_set_column(<Input-array>, <Column number>, <Mode>)

Arguments:

Input: Array containing the values to be set

ColumnNumber:

Integer

Mode: Mode for updating the spreadsheet column "INSERT" inserts a new column "OVERWRITE"overwrites the existing values

Example: arrSize = icstat_num_rows("PARAMETERS")

complex colArr[arrSize]

retArr = icstat_get_column(colArr, 9, "PARAMETERS")

dummy = icstat_set_column(retArr, 8, "OVERWRITE")

return

icstat_set_param_column_labelsUpdates the PARAMETERS spreadsheet column labels with parameter names from theParameters table.

Synopsis: icstat_set_param_column_labels( <Path>, <From Parameter Table>)

Arguments:

Path: The name of the model or DUT from which you want to get parameter names. Specify<"model_name"> to get parameters from the Model Parameters table; specify<"model_name/DUT_name"> to get parameters from the DUT Parameters table. (To specify thecurrent DUT, "." is sufficient.)

From: Specify 1 of the following parameter tables from which to get the data: "MODEL PARAMETERS","DUT PARAMETERS". If left blank, "MODEL PARAMETERS" is used.

Example: retVal = icstat_set_param_column_labels("/CGaas1", "MODEL PARAMETERS")

return

icstat_set_rowUpdates the real values in the specified row of the PARAMETERS spreadsheet with newvalues. The cells in the attribute columns (the first several columns), which typicallycontain text, are not updated. To update the cells in the attribute columns, use theicstat_set_text_cell (prog) function.

Synopsis: icstat_set_row(<Input-array>, <Number>, <Mode>)

Arguments:

Input: Array containing the values to be set

Row Number: Integer

Mode: Mode for updating the spreadsheet row "INSERT" inserts a new row "OVERWRITE" overwritesthe existing values

Example: iNumAttribs = icstat_num_attributes()

iNumCols = icstat_num_columns("PARAMETERS")

iNumCells = iNumCols - iNumAttribs complex rowArr[iNumCells]

retArr = icstat_get_row(rowArr, 4, "PARAMETERS")

PRINT retArr

! set the 5th row

dummy = icstat_set_row(retArr, 4, "INSERT")

return

icstat_set_text_cellSets the particular cell in the PARAMETERS spreadsheet with the text in the PARAMETERSspreadsheet.

Page 233: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

232

Synopsis: icstat_set_text_cell(<Row-Number>, <Column-Number>, <Text>)

Arguments:

Row Number: Integer

Column Number: Integer

Text: Value to be set in the cell

Example: sString = "Hi, I am a string"

retVal = icstat_set_text_cell(2, 1, sString)

retVal = icstat_get_text_cell(2, 2, "PARAMETERS", "CELLVAL")

PRINT CELLVAL

return

icstat_stat_summaryEmulates the Statistical Summary command on the Analysis menu. This functiongenerates the statistical summary from the data in the PARAMETERS spreadsheet.Displays the results in the STATSUMM spreadsheet.

Synopsis: icstat_stat_summary()

Argument: None

Example: retVal = icstat_stat_summary()

return

icstat_to_partableUpdates the Parameters table with the corresponding parameter value from thespreadsheet. If a particular spreadsheet parameter is not found in the Parameters table orthe Parameters table parameter is not found in the spreadsheet, then the value is notupdated.

Synopsis: icstat_to_partable(<Row_Number>, <Path>, <From Spreadsheet Name>, <To ParameterTable>)

Arguments:

Row Number: Row number to get the data from

Path: The name of the model or DUT you want to update. Specify <"model_name"> to update theModel Parameters table; specify <"model_name/DUT_name"> to update the DUT Parameterstable. (To specify the current DUT, "." is sufficient.)

From: Specify 1 of the following parameter tables from which to get the data: PARAMETERS,ANALYSIS, PARAMETRIC, NON PARAMETRIC

To: Specify 1 of the following parameter tables to update: "MODEL PARAMETERS", "DUTPARAMETERS"

Example: retVal = icstat_to_partable(4, "/CGaas1", "PARAMETERS", "MODEL PARAMETERS")

return

icstat_write_to_status_windowWrites the input message to the Statistical Analysis Status window.

Synopsis: icstat_write_to_status_window (<Text>)

Arguments:

Message Text: Text to write to the Statistical Analysis Status window.

Example: sString = "Setting row number 1"

retVal = icstat_write_to_status_window(sString)

return

integral0Returns an integral of the given Y data set against the X data set using a simple trapezoidalgorithm. The Y data set should not cross the zero point. If the Y data set has multiplecurves, use integral3. Defined in userc.c.

Page 234: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

233

Input Arguments:

Data Sets: X Data, Y Data

Output: Single real

Automatic Invocation: On Data Set Input Change

integral3Returns an integral of the given Y data set against the X data set using a simple trapezoidalgorithm. Each curve is reported separately in the Output array. A zero cross is allowedby interpolation. Defined in userc.c.

Input Arguments:

Data Sets: X Data, Y Data

Output: Real array

Automatic Invocation: On Data Set Input Change

is_constantThe function detects if data in a dataset is constant.

Syntax: is_constant(<dataset>)

Where:<dataset> is any scalar dataset (INPUT, OUTPUT, or Transform data)

Output: 1 if data is constant else 0

Examples: ret = is_constant(vb)

is_noiseThe function detects if the data in a dataset describes a coherent signal orjust random noise. The function looks at the slope between data points anddetermines the data is noise if the data changes from anegative to positive slope or postive to negative slope greater thanone third the number of points in the dataset. The dataset must contain 5or more points.

Syntax: is_noise(<dataset>)

Where:<dataset> is any scalar dataset (INPUT, OUTPUT, or Transform data) with5 or more points.

Output: 1 if data is noise or dataset has less than 5 points else 0

Examples: ret = is_noise(Ic.M)

JUNCAPPhilips JUNCAP (Junction Capacitance) Model. Calculates the currents and capacitancesfrom voltages.

Input Arguments:

Data Sets: Anode V, Cathode V

Strings/Pars/Vars: Output ( I / IB / IS / IG / C / CB / CS / CG / Q / QB / QS / QG )

Output: Array of complex, size determined by inputs

Extracts: N/A

JUNCAP_TRAllows the reference temperature of the model TR in the JUNCAP model to be modified.

K70X_clear_setupKeithley 707 Switch Matrix function. Clears setup (opens all relays).

Page 235: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

234

Syntax

int ret = K70X_clear_setup(MatrixGPIBAddr, Setup)

Where

MatrixGPIBAddr is the GPIB address of the matrix.

Setup is the setup to be cleared (all crosspoints are opened). SetUp can be a memorysetup or the actual relays configuration. 0 <= SetUp < 100

Examples: ret = K70X_clear_setup(6, 0) opens all relays in the actual matrixconfiguration.ret = K70X_clear_setup(6, 1) opens all relays in the memory setup number 2.

K70X_close_crosspointsKeithley 707 Switch Matrix function. Closes crosspoints in the matrix.

Syntax

int ret = K70X_close_crosspoints(MatrixGPIBAddr, CrosspointList)

Where

MatrixGPIBAddr is the GPIB address of the matrix.

CrosspointList is the list of the crosspoint to be close (string).

Example: ret = K70X_close_crosspoints(6, "A1,C12") opens the crosspoints specified inthe list in the current edited setup specified by the K70X_edit_setup function.

K70X_config_triggerKeithley 707 Switch Matrix function. Configures trigger.

Syntax

int ret = K70X_config_trigger(MatrixGPIBAddr, TriggerEdge,

TriggerSource)

Where

MatrixGPIBAddr is the GPIB address of the matrix.

TriggerEdge = "+" or "-"

TriggerSource with possible configurations: "TALK" "GET" "X" "EXT" "MAN"

Example: ret = K70X_config_trigger(6, "+", "EXT") sets the switch matrix to executewhen receiving a positive edge from an external trigger. See 70X manual for amore detailed explanation about triggering the matrix.

K70X_connect_sequenceKeithley 707 Switch Matrix function. Sets the connection rule and the row connectionsequence.

Syntax

int ret = K70X_connect_sequence(MatrixGPIBAddr, ConnectionRule,

RowConnectionSequence)

Where

Page 236: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

235

MatrixGPIBAddr is the GPIB address of the matrix.

ConnectionRule is the break before Make "BM" or "MB".

RowConnectionSequence is the byte row enable. Ex.: "11110011".

Example: ret = K70X_connect_sequence(6,"BM","11110011")

K70X_copy_setupKeithley 707 Switch Matrix function. Copy setup into a new memory or actual location.

Syntax

int ret = K70X_copy_setup(MatrixGPIBAddr, Source, Destination)

Where

MatrixGPIBAddr is the GPIB address of the matrix

Source is the setup to be copied from.

Destination is the setup to be copied to.

Example: ret = K70X_copy_setup (6, 3, 0) copies the memory setup 3 into the setup 0(actual matrix configuration). In other words, it executes setup 3.

K70X_debugKeithley 707 Switch Matrix function. Sets debug flag on or off. When the debug mode ison, the functions will print debug information in the Warning/Error window.

Syntax

int ret = K70X_debug(Debugflag)

Where

DebugFlag = 1/0 (Default is 0)

K70X_delete_setupKeithley 707 Switch Matrix function. Deletes setup from memory.

Syntax

int ret = K70X_delete_setup(MatrixGPIBAddr, MemSetup)

Where

MatrixGPIBAddr is the GPIB address of the matrix.

MemSetup is the memory setup to be deleted. 1< MemSetup < 100

Example: ret = K70X_delete_setup(6, 3) deletes memory setup number 3.

K70X_edit_setupKeithley 707 Switch Matrix function. Sets the setup number to be edited with the followingclose and open commands. Note that setup number 0 represents the matrix actualconfiguration while Setup 1 to 100 represents memory setups.

Syntax

int ret = K70X_edit_setup(MatrixGPIBAddr, SetUp)

Where

Page 237: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

236

MatrixGPIBAddr is the GPIB address of the matrix.

SetUp is number of the setup to edit with the next close and open commands.

Example: ret = K70X_edit_setup(6, 1) sets to edit the memory setup number 1.

K70X_init_interfaceKeithley 708a and 707 Switch Matrix function. Initialize the interface card or lan. It mustbe executed prior to any other Keithley transform.

Syntax

int ret = K70X_init_interface(InterfaceName)

Where

InterfaceName is the hardware interface.

Examples: ret = K70X_init_interface("hpib")

ret = K70X_init_interface("gpib0")

ret = K70X_init_interface("lan[xx.xx.xx.xx]:hpib")

K70X_open_crosspointsKeithley 707 Switch Matrix function. Opens crosspoints in the matrix.

Syntax

int ret = K70X_open_crosspoints(MatrixGPIBAddr, CrosspointList)

Where

MatrixGPIBAddr is the GPIB address of the matrix.

CrosspointList is a list of the crosspoint to be open (string).

Example: ret = K70X_open_crosspoints(6, "A1,C12,D1") opens the crosspoints specifiedin the list in the current edited setup specified by the K70X_edit_setup function.

K70X_trigger_disableKeithley 707 Switch Matrix function. Disables trigger.

Syntax

int ret = K70X_trigger_disable(MatrixGPIBAddr)

Where

MatrixGPIBAddr is the GPIB address of the matrix.

Example: ret = K70X_trigger_disable(6)

K70X_trigger_enableKeithley 707 Switch Matrix function. Enables trigger.

Syntax

int ret = K70X_trigger_enable(MatrixGPIBAddr)

Where

MatrixGPIBAddr is the GPIB address of the matrix.

Example: ret = K70X_trigger_enable(6)

Page 238: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

237

K707_initKeithley 707 Switch Matrix function. Initialize the 707 matrix. Do not use this functionwith the 708a matrix.

Syntax

ret = K707_init(MatrixGPIBAddr)

Where

MatrixGPIBAddr is the GPIB address of the matrix.

Examples: ret = K707_init(6) // Init matrix at address 6

K708a_init

Keithley 708a Switch Matrix function. Initialize the 708a matrix. Do not use this functionwith the 707 matrix.

Syntax

int ret = K708a_init(MatrixGPIBAddr)

Where

MatrixGPIBAddr is the GPIB address of the matrix

Examples: ret = K708a_init(6) // Init matrix at address 6

linfitFits a line to a specified curve (step) in a dataset (X versus Y). Returns a 3 point datasetthat defines slope, intercept and regression coefficient. The index of steps starts at 0. Ifthe OVERRIDE_LIMITS variable is TRUE, the limits can be specified manually with theX_LOW and X_HIGH variables, which can be set from the Plot menu. (Use the fit_linefunction to enable plotting of the dataset, rather than the slope and intercept.)

Input Arguments:

Datasets: X Data, Y Data

Reals or Integers: Step Number (0 is first)

Output: Array of 2 points: slope then intercept

Automatic Invocation: None

Example PEL Statement: fit_data = linfit(vc,ic.m,0)

linfit3linfit3(X, Y, curve, step)

Fits a line to a specified curve (step) in a data set (X versus Y ) with defined Curve Data(curve).

Returns a three point data set that defines slope, intercept and regression coefficient. Theindex of steps starts at 0.

If the OVERRIDE_LIMITS variable is TRUE, the limits can be specified manually with theX_LOW and X_HIGH variables, which can be setfrom the Plot menu (use the fit_line function for a plottable data set, rather than the slopeand intercept).

LINKarray

Page 239: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

238

Returns an array result from an IC-CAP Macro algorithm to an IPC Link program duringlinked mode execution. This function is used internally by IPC Link programs and shouldnever be called directly when using IC-CAP interactively.

Input Arguments:

Data Sets: Array Result

Reals or Integers: Array Size, Result Data Index

Output: None

Automatic Invocation: None

LINKcharReturns a single character result from an IC-CAP Macro algorithm to an IPC Link programduring linked mode execution. This function is used internally by IPC Link programs andshould never be called directly when using IC-CAP interactively.

Input Arguments:

Reals or Integers: Result Data Index

Strings/Pars/Vars: Character Result

Output: None

Automatic Invocation: None

LINKintReturns an integer result from an IC-CAP Macro algorithm to an IPC Link program duringlinked mode execution. This function is used internally by IPC Link programs and shouldnever be called directly when using IC-CAP interactively.

Input Arguments:

Reals or Integers: Integer Result, Result Data Index

Output: None

Automatic Invocation: None

LINKpinUsed in an IC-CAP Macro to determine the matrix connections of the device under test.LINKpin returns the matrix pin number that corresponds to a specified terminal index onthe device. This function only returns valid data when an IPC Link program has provided apin mapping.

Input Arguments:

Reals or Integers: Terminal Index

Output: Matrix pin number corresponding to the specified device terminal index

Automatic Invocation: None

Example PEL Statement: pin_num = LINKpin(1)

LINKrealReturns a floating point result from an IC-CAP Macro algorithm to an IPC Link programduring linked mode execution. This function is used internally by IPC Link programs andshould never be called directly when using IC-CAP interactively.

Input Arguments:

Reals or Integers: Real Result, Result Data Index

Output: None

Automatic Invocation: None

LINKstr

Page 240: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

239

Used to return a character string result from an IC-CAP Macro algorithm to an IPC Linkprogram during linked mode execution. This function is used internally by IPC Linkprograms and should never be called directly when using IC-CAP interactively.

Input Arguments:

Result Data Index: String Result

Output: None

Automatic Invocation: None

logNatural logarithm.

Input Arguments:

Datasets: Input 1

Output: Complex number, matrix, complex array, or matrix array (depends on input argument)

Automatic Invocation: On Dataset Input Change

log10Base 10 logarithm.

Input Arguments:

Datasets: Input 1

Output: Complex number, matrix, complex array, or matrix array (depends on input argument)

Automatic Invocation: On Dataset Input Change

lookup_parEnables you to access the value of a parameter referenced by a string. A second argumentmay be specified that is a variable to receive any error string normally going to a red errorbox.

Examples

Looking up value for model parameter:

x=lookup_par("/npn.IS")

Looking up value for DUT parameter:

x=lookup_par("/NPN/dc.rgate")

Checking existence of parameter:

x=lookup_par("nonexistantparam",errstr)

if errstr<>"" then print errstr

lookup_varEnables you to access the value of a variable referenced by a string. A second argumentmay be specified that is a variable to receive any error string normally going to a red errorbox.

Examples

Looking up value for model variable:x=lookup_var("/npn/SIMULATOR")

Looking up value for DUT variable:x=lookup_var("/NPN/dc/TEMP")

Page 241: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

240

Looking up value for Setup variable:x=lookup_var("/NPN/dc/fgummel/Vdmax")

Checking existence of variable:

x=lookup_var("nonexistantvar",errstr)

if errstr<>"" then print errstr

make_boolThe function will set the specified setup variable to TRUE or FALSE value depending on the

input argument string. If the input argument string starts with T, t, Y, y or 1, then thespecified setup variable value is set to TRUE, else it is set to FALSE. If the setup variableto set does not exist, an error will be displayed in the IC-CAP Status window.

Syntax: make_bool(<arg1>,<arg2>)

Where:arg1 is any string.arg2 is an IC-CAP variable.

Output: 1 if variable set successfully otherwise 0

Examples: ret = make_bool(“T”, “Result”) ! Sets variable Result =TRUE

meanCalculates the arithmetic mean of a dataset. Returns a single value. Adequate for a real orcomplex dataset, but if a dataset of matrices is received, only the 1,1 data is considered.A dataset specification like S.21 is adequate, since this is a dataset of complex numbers.

Input Arguments:

Datasets: Input 1

Output: Single real or complex number

Automatic Invocation: On Dataset Input Change

mem_diagThis function is reserved for factory use; it is used in memory utilization regression tests,as part of the IC-CAP quality assurance process.

Output: A 12-point data set containing memory utilization statistics

Automatic Invocation: None

MEXTRAM_stocMextram model version: 504

This function calculates capacitance data from S-parameter data, allowing base-collectorand base-emitter capacitance to be calculated from network analyzer measurements. Theoutput of this function can be used in place of actual capacitance data to extractcapacitance-related parameters.

Page 242: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

241

InputArguments:

FREQ data Frequency

S data s-parameter data (de-embedded)

Node (C/E/S) Code to indicate type of extraction:

E base-emitter capacitanceC base-collector capacitanceS substrate-collector capacitance

Output: Capacitance versus frequency data

Extracts: Nothing

MM9Calculates Id, Is, or Ib from voltages.

Input Arguments:

Data Sets: Drain V, Gate V, Bulk V, Source V

Strings/Pars/Vars: Output (D/S/B)

Output: Drain I/Source I/Bulk I - array of complex, size determined by inputs

Extracts: None

MM9_COPYCopies an input array to a measured or simulated output dataset.

Input Arguments:

Data Sets: Copy from (Dataset Name)

Strings/Pars/Vars: Copy to (Dataset Name) M or S

Output: None

MM9_DATAEnables printing of the data measured for quick extraction.

InputArguments:

"" or "<filename>"

Example: x = MM9_DATA("")

orx = MM9_DATA("mm9_print")

If no argument is supplied, the data will be printed to the Status window. If a filename issupplied, the data will be appended to that file.

MM9_GEOMPARUpdates the simulated values of the miniset parameters in the setups extract/par_vs_L,extract/par_vs_W, and extract/par_vs_R in the MOS Model 9.

MM9_GEOMSCALDetermines a first guess for the maxiset parameters of a MOS Model 9 by regression.

MM9_KEEPAccepts an input array and copies it directly to the transform output.

InputArguments:

Data Sets: Keep array (Dataset name)

Output: Array of complex, size determined by inputs

MM9_LIN_EXT

Page 243: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

242

Extracts the linear region parameters for the MOS Model 9.

InputArguments:

None

Extracts: VTO, KO, K, VSBX, BET, THE1, THE2

MM9_SAT_EXTExtracts the saturation region parameters for the MOS Model 9.

InputArguments:

None

Extracts: THE3, GAM1, ETADS, ALP, VP

MM9_SAVE_SPARSSaves the MOS Model 9 parameters of a single device (miniset) to a file.

MM9_SETUPAllows you to specify the setups for the MOS Model 9 parameter extraction.

MM9_STH_EXTExtracts the subthreshold region parameters for the MOS Model 9.

InputArguments:

None

Extracts: GAMOO, MO, ZET1, VSBT

MM9_TEMPPARUpdates the simulated values of the miniset parameters in the setups extract/par_vs_T inthe MOS Model 9.

MM9_TEMPSCALDetermines a first guess for the maxiset temperature parameters of a MOS Model 9 byregression.

MM9_WEAVAL_EXTExtracts the weak avalanche region (substrate current) parameters for the MOS Model 9.

InputArguments:

None

Extracts: A1, A2, A3

MOS_process_parsAllows you to specify initial values for the MOS process related parameters LD, RS, RSH,TOX, WD, and XJ. The drain resistance RD is set equal to the specified value of RS.

Input Arguments:

Data Sets: Lateral Diffusion, Source Resistance, Sheet Resistance, Oxide Thickness, WidthReduction, Junction Depth

Output: None

Extracts: (not applicable)

AutomaticInvocation:

By Extract menu function

MOSCV_total_capExtracts the total PN junction capacitance parameters from the bottom and sidewall.

Page 244: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

243

Requires C-V measurement on 2 different geometries. The first measurement should beon a device in which the bottom capacitance dominates. The second measurement shouldbe on a device in which the sidewall capacitance dominates.

Input Arguments:

Data Sets: Cap 1, Cap 2, Junction V

Reals or Integers: Cap 1 Area, Cap 1 Perim, Cap 2 Area, Cap 2 Perim

Output: None

Extracts: CJ, MJ, CJSW, MJSW, PB

Automatic Invocation: By Extract menu function

MOSCVmodCBDCalculates the Bulk-Drain junction capacitance according to the UCB MOS model.

Input Arguments:

Data Sets: Junction V

Output: Array of complex; size determined by inputs

Automatic Invocation: None

MOSCVmodCBSCalculates the Bulk-Source junction capacitance according to the UCB MOS model.

Input Arguments:

Data Sets: Junction V

Output: Array of complex; size determined by inputs

Automatic Invocation: None

MOSDC_lev2_lin_largeStandard extraction for the UCB MOS model. Extracts classical Level 2 parameters, using Idversus Vg data from a large device. Initializes the parameter NFS for later optimization.

Input Arguments:

Data Sets: Gate V, Bulk V, Drain V, Drain I

Output: None

Extracts: VTO, NSUB, UO, UEXP, VMAX

Automatic Invocation: By Extract menu function

MOSDC_lev2_lin_narrowStandard extraction for the UCB MOS model. Extracts Level 2 width parameters, using Idversus Vg data from a narrow device.

Input Arguments:

Data Sets: Gate V, Bulk V, Drain V, Drain I

Output: None

Extracts: WD, DELTA

Automatic Invocation: By Extract menu function

MOSDC_lev2_lin_shortStandard extraction for the UCB MOS model. Extracts Level 2 length effect parameters,using Id versus Vg data from a short-channel device.

Page 245: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

244

Input Arguments:

Data Sets: Gate V, Bulk V, Drain V, Drain I

Output: None

Extracts: XJ, LD

Automatic Invocation: By Extract menu function

MOSDC_lev2_sat_shortStandard extraction for the UCB MOS model. Extracts Level 2 saturation parameters,using Id versus Vd data from a short-channel device.

Input Arguments:

Data Sets: Gate V, Bulk V, Drain V, Drain I

Output: None

Extracts: VMAX, NEFF

Automatic Invocation: By Extract menu function

MOSDC_lev3_lin_largeStandard extraction for the UCB MOS Level 3 model. Extracts classical Level 3 parameters,using Id versus Vg data from a large device. Initializes the parameter NFS for later

optimization.

Input Arguments:

Data Sets: Gate V, Bulk V, Drain V, Drain I

Output: None

Extracts: VTO, NSUB, UO, THETA, VMAX

Automatic Invocation: By Extract menu function

MOSDC_lev3_lin_narrowStandard extraction for the UCB MOS Level 3 model. Extracts Level 3 width parameters,using Id versus Vg data from a narrow device.

Input Arguments:

Data Sets: Gate V, Bulk V, Drain V, Drain I

Output: None

Extracts: WD, DELTA

Automatic Invocation: By Extract menu function

MOSDC_lev3_lin_shortStandard extraction for the UCB MOS Level 3 model. Extracts Level 3 length effectparameters, using Id versus Vg data from a short device.

Input Arguments:

Data Sets: Gate V, Bulk V, Drain V, Drain I

Output: None

Extracts: RS, RD, LD, XJ

Automatic Invocation: By Extract menu function

MOSDC_lev3_sat_shortStandard extraction for the UCB MOS Level 3 model. Extracts Level 3 saturationparameters, using Id versus Vd data from a short device.

Page 246: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

245

Input Arguments:

Data Sets: Gate V, Bulk V, Drain V, Drain I

Output: None

Extracts: VMAX, KAPPA, ETA

Automatic Invocation: By Extract menu function

MOSDC_lev6_lin_largeStandard extraction for the HSPICE MOS Level 6 model. Extracts classical Level 6parameters, using Id versus Vg data from a large device. Initializes the parameter NFS for

later optimization.

Input Arguments:

Data Sets: Gate V, Bulk V, Drain V, Drain I

Output: None

Extracts: PHI, VT, LGAMMA, GAMMA, VBO, LAMBDA, UB, NFS

Automatic Invocation: By Extract menu function

MOSDC_lev6_lin_narrowStandard extraction for the HSPICE MOS Level 6 model. Extracts Level 6 widthparameters, using Id versus Vg data from a narrow device.

Input Arguments:

Data Sets: Gate V, Bulk V, Drain V, Drain I

Output: None

Extracts: NWM, WDEL, DELTA

Automatic Invocation: By Extract menu function

MOSDC_lev6_lin_shortStandard extraction for the HSPICE MOS Level 6 model. Extracts Level 6 length effectparameters, using Id versus Vg data from a short device.

Input Arguments:

Data Sets: Gate V, Bulk V, Drain V, Drain I

Output: None

Extracts: SCM, XJ, LDEL

Automatic Invocation: By Extract menu function

MOSmodelSimple, level 1 UCB MOS model. Calculates Id from voltages.

Input Arguments:

Data Sets: Drain V, Gate V, Bulk V, Source V

Output: Array of complex; size determined by inputs

Automatic Invocation: None

MOSmodel2Complete UCB MOS model, containing levels 1, 2, and 3. Calculates Id from voltages.

Page 247: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

246

Input Arguments:

Data Sets: Drain V, Gate V, Bulk V, Source V

Output: Array of complex; size determined by inputs

Automatic Invocation: None

mxt3t_cbcThis function is obsolete.

This function calculates Cbc verses base collector junction voltage.

InputArguments:

Vbc Vbc Voltage (V)

Output: Cbc

mxt3t_cbeThis function is obsolete.

This function calculates Cbe verses base emitter junction voltage.

InputArguments:

Vbe Vbe Voltage (V)

Output: Cbe

mxt3t_cj0This function is obsolete.

This function extracts the zero-bias junction capacitance, Cje0, or Cjc0 depending onwhich Output mode is selected: E/C/S.

InputArguments:

Junction Voltage VJunction Capacitance CJunction: E, C

Output: Cje or Cjc depending on Junction argument

mxt3t_ft_icThis function is obsolete.

This function calculates FT given Ic, Vbe, and Vce.

NoteThis function does not describe Ft when quasi saturation kicks in. Use mxt3t_ft_ic_new (prog) instead.

InputArguments:

Ic Collector Current (A)

Vbe Base Emitter Voltage (V)

Vce Vce Voltage (V)

Output: Ft

mxt3t_ft_ic_newThis function is obsolete.

This function calculates FT given Ic, Vbe, and Vce.

Page 248: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

247

NoteThis new function now includes quasi but not heavy saturation.

InputArguments:

Ic Collector Current (A)

Vbe Base Emitter Voltage (V)

Vce Vce Voltage (V)

Output: Ft

mxt3t_fwd_early_ibThis function is obsolete.

This function calculates the fwd early base current for a 3 terminal device given Vcb andIc.

InputArguments:

Vcb Vcb Voltage (V)

ic Ic current (A)

Output: Forward Early base current

mxt3t_fwd_early_icThis function is obsolete.

This function calculates the fwd early collector current for a 3 terminal device given Vbeand Vbc.

InputArguments:

Vbe Vbe Voltage (V)

Vbc Vbc Voltage (V)

Output: Forward Early collector current.

mxt3t_fwd_gummel_hfeThis function is obsolete.

This function calculates forward gummel HFE for a 3 terminal device given Vbe, Vbc, andIc. The HFE limit input limits HFE to the value entered. This is used to limit HFE in theregion outside of the function's applicable range.

Input Arguments:

Vbe Vbe Voltage (V)

Vbc Vbc Voltage (V)

Ic Collector Current (A)

HFE Limit Maximum HFE to bedisplayed.

Output: Forward Gummel HFE

mxt3t_fwd_gummel_ibThis function is obsolete.

This function calculates the forward gummel base current for a 3 terminal device givenVbe, Vbc, and Ic.

Page 249: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

248

Input Arguments:

Vbe Vbe Voltage (V)

Vbc Vbc Voltage (V)

Ic Collector Current (A)

Output: Forward Gummel Base current

mxt3t_fwd_gummel_icThis function is obsolete.

This function calculates forward gummel collector current for a 3 terminal device givenVbe, Vbc.

InputArguments:

Vbe Vbe Voltage (V)

Vbc Vbc Voltage (V)

Output: Forward Gummel Collector current

mxt3t_fwd_gummel_vbeThis function is obsolete.

This function calculates forward gummel base-emitter voltage for a 3 terminal devicegiven Ib and Ic.

InputArguments:

ib Base current (A)

Ic Collector current (A)

Output: Forward Gummel Vbe

mxt3t_i0This function is obsolete.

This function extracts either IE0, IC0 or IB0 depending on which Output mode is selected:E/C/B. The function requires a terminal current as input. This transform was written tomake the subsequent optimizations, which require either IE0, IB0 or IC0, more robust.Sometimes the optimizer would have trouble converging to a proper solution if thesecurrents were too far from their final values.

Input Arguments:

I Data (A)

Output: E, C, B

Output: IE0, IC0, IB0 depending on Output Argument

mxt3t_linear_rangeThis function is obsolete.

This function calculates the 2nd derivative of a dataset. It enables the user to see wherethe data is linear. This is useful in determining the valid range of mextram functions.

Page 250: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

249

Input Arguments:

Y Data unitless

X Data unitless (must be uniform steps)

Smooth Points number of points on either side of data point to be use for smoothing. 0 = disable

Smooth Iter number of iterations that smoothing algorithm is performed on data. 0 = disable

Log Data ? Log the data before the smoothing or derivative functions are applied

Output: 2nd derivative of the Y data

mxt3t_output_icThis function is obsolete.

This function calculates collector current output characteristics given Vce, Ic, Ib, and Vb. Itis intended to model the quasi-saturation region of the transistor.

InputArguments:

Vce Vce Voltage (V)

Ic Collector Current (A)

Ib Base Current (A)

Vb Base Voltage (V)

Output: Collector Current

mxt3t_output_vbeThis function is obsolete.

This function calculates base-emitter voltage Vce, Ic, Ib, and Vb. It is used to estimate thethermal resistance of the device.

InputArguments:

Vce Vce Voltage (V)

Ic Collector Current (A)

Ib Base Current (A)

Vb Base Voltage (V)

Output: Base Emitter Voltage

mxt3t_rev_early_ieThis function is obsolete.

This function calculates the reverse early emitter current for a 3 terminal device given Vbeand Vbc.

InputArguments:

Vbe Vbe Voltage (V)

Vbc Vbc Voltage (V)

Output: Reverse Early emitter current

mxt3t_rev_early_qb0_guessThis function is obsolete.

This function calculates QBO based on the following formula:

QBO = IE0*(1-XCJE)*CJE*(dvbe/die @ vbe=0)

The function requires ie and vbe as inputs and the model parameters mex.CJE, mex.XCJE

Page 251: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

250

and the model variable IE0.

This transform was written for 2 reasons: (1) the optimization used to determine its finalvalue can get lost if the initial value is way off; (2) The value of QBO is used to determinethe initial values of other parameters. Therefore, the more accurate the value of QBO themore accurate these other parameters will be.

InputArguments:

Vbe Vbe Voltage (V)

Ie Emitter Current (A)

Output: QB0

mxt3t_rev_gummel_hfcThis function is obsolete.

This function calculates the reverse gummel HFC for a 3 terminal device given Vbe, Vbc,and Ie.

InputArguments:

Vbe Vbe Voltage (V)

Vbc Vbc Voltage (V)

Ie Emitter Current (A)

Output: Reverse Gummel HFC

mxt3t_rev_gummel_ibThis function is obsolete.

This function calculates the reverse gummel base current for a 3 terminal device givenVbe, Vbc, and Ie.

InputArguments:

Vbe Vbe Voltage (V)

Vbc Vbc Voltage (V)

Ie Emitter Current (A)

Output: Reverse Gummel Base current

mxt3t_rev_gummel_ieThis function is obsolete.

This function calculates the reverse gummel emitter current for a 3 terminal device givenVbe, Vbc, and Ie.

InputArguments:

Vbe Vbe Voltage (V)

Vbc Vbc Voltage (V)

Ie Emitter Current (A)

Output: Reverse Gummel Emitter current

mxt4t_cbcThis function is obsolete.

This function calculates Cbc verses base collector junction voltage.

Page 252: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

251

InputArguments:

Vbc Vbc Voltage (V)

Output: Cbc

mxt4t_cbeThis function is obsolete.

This function calculates Cbe verses base emitter junction voltage.

InputArguments:

Vbe Vbe Voltage (V)

Output: Cbe

mxt4t_cj0This function is obsolete.

This function extracts the zero-bias junction capacitance, Cje0, Cjc0 or Cjs0 depending onwhich Output mode is selected: E/C/S.

Input Arguments:

Junction Voltage V

Junction CapacitanceC

Junction: E, C, S

Output: Cje, Cjc, or Cjs depending on Junction argument

mxt4t_cscThis function is obsolete.

This function calculates Csc verses collector junction voltage.

InputArguments:

Vsc Vsc Voltage (V)

Output: Csc

mxt4t_ft_icThis function is obsolete.

This function calculates FT given Ic, Vbe, and Vce.

NoteThis function does not describe Ft when quasi saturation kicks in. Use mxt4t_ft_ic_new instead.

InputArguments:

Ic Collector Current (A)

Vbe Base Emitter Voltage (V)

Vce Vce Voltage (V)

Output: Ft

mxt4t_ft_ic_newThis function is obsolete.

Page 253: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

252

This function calculates FT given Ic, Vbe, and Vce.

NoteThis new function now includes quasi but not heavy saturation.

InputArguments:

Ic Collector Current (A)

Vbe Base Emitter Voltage (V)

Vce Vce Voltage (V)

Output: Ft

mxt4t_fwd_early_ibThis function is obsolete.

This function calculates the fwd early base current for a 4 terminal device given Vcb andIc.

InputArguments:

Vcb Vcb Voltage (V)

Ic Ic current (A)

Output: Forward Early base current

mxt4t_fwd_early_icThis function is obsolete.

This function calculates the fwd early collector current for a 4 terminal device given Vbeand Vbc.

InputArguments:

Vbe Vbe Voltage (V)

Vbc Vbc Voltage (V)

Output: Forward Early collector current

mxt4t_fwd_gummel_hfeThis function is obsolete.

This function calculates forward gummel HFE for a 4 terminal device given Vbe, Vbc, andIc. The HFE limit input limits HFE to the value entered. This is used to limit HFE in theregion outside of the function's applicable range.

Input Arguments:

Vbe Vbe Voltage (V)

Vbc Vbc Voltage (V)

Ic Collector Current (A)

HFE Limit Maximum HFE to be displayed.

Output: Forward Gummel HFE

mxt4t_fwd_gummel_ibThis function is obsolete.

This function calculates the forward gummel base current for a 4 terminal device givenVbe, Vbc, and Ic.

Page 254: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

253

InputArguments:

Vbe Vbe Voltage (V)

Vbc Vbc Voltage (V)

Ic Collector Current (A)

Output: Forward Gummel Base current

mxt4t_fwd_gummel_icThis function is obsolete.

This function calculates forward gummel collector current for a 4 terminal device givenVbe and Vbc.

InputArguments:

Vbe Vbe Voltage (V)

Vbc Vbc Voltage (V)

Output: Forward Gummel Collector current

mxt4t_fwd_gummel_vbeThis function is obsolete.

This function calculates forward gummel base-emitter voltage for a 4 terminal devicegiven Ib and Ic.

InputArguments:

Ib Base current (A)

Ic Collector Current (A)

Output: Forward Gummel Vbe

mxt4t_i0This function is obsolete.

This function extracts either IE0, IC0 or IB0 depending on which Output mode is selected:E/C/B. The function requires a terminal current as input. This transform was written tomake the subsequent optimizations, which require either IE0, IB0 or IC0, more robust.Sometimes the optimizer would have trouble converging to a proper solution if thesecurrents were too far from their final values.

Input Arguments:

I Data (A)

Output: E, C, B

Output: IE0, IC0, IB0 depending on Output Argument

mxt4t_linear_rangeThis function is obsolete.

This function calculates the 2nd derivative of a dataset. It enables the user to see wherethe data is linear. This is useful in determining the valid range of mextram functions.

Page 255: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

254

Input Arguments:

Y Data unitless

X Data unitless (must be uniform steps)

Smooth Points number of points on either side of data point to be use for smoothing. 0 = disable

Smooth Iter number of iterations that smoothing algorithm is performed on data. 0 = disable

Log Data ? Log the data before the smoothing or derivative functions are applied

Output: 2nd derivative of the Y Data.

mxt4t_output_icThis function is obsolete.

This function calculates collector current output characteristics given Vce, Ic, Ib, and Vb. Itis intended to model the quasi-saturation region of the transistor.

InputArguments:

Vce Vce Voltage (V)

Ic Collector Current (A)

Ib Base Current (A)

Vb Base Voltage (V)

Output: Collector Current

mxt4t_output_vbeThis function is obsolete.

This function calculates base-emitter voltage Vce, Ic, Ib, and Vb. It is used to estimate thethermal resistance of the device.

InputArguments:

Vce Vce Voltage (V)

Ic Collector Current (A)

Ib Base Current (A)

Vb Base Voltage (V)

Output: Base Emitter Voltage

mxt4t_rev_early_ieThis function is obsolete.

This function calculates the reverse early emitter current for a 4 terminal device given Vbeand Vbc.

InputArguments:

Vbe Vbe Voltage (V)

Vbc Vbc Voltage (V)

Output: Reverse Early emitter current

mxt4t_rev_early_qb0_guessThis function is obsolete.

This function calculates QBO based on the following formula:

QBO = IE0*(1-XCJE)*CJE*(dvbe/die @ vbe=0)

The function requires ie and vbe as inputs and the model parameters mex.CJE, mex.XCJE

Page 256: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

255

and the model variable IE0.

This transform was written for 2 reasons: (1) the optimization used to determine its finalvalue can get lost if the initial value is way off; (2) The value of QBO is used to determinethe initial values of other parameters. Therefore, the more accurate the value of QBO themore accurate these other parameters will be.

InputArguments:

Vbe Vbe Voltage (V)

Ie Emitter Current (A)

Output: QB0

mxt4t_rev_gummel_hfcThis function is obsolete.

This function calculates the reverse gummel HFC for a 4 terminal device given Vbe, Vbc,and Ie.

Input Arguments:

Vbe Vbe Voltage (V)

Vbc Vbc Voltage (V)

Ic Emitter Current (A)

Substrate (Y/N) Y -> Includes ibSub when Calculating hfc.N -> Excludes ibSub when Calculating hfc.

Output: Reverse Gummel HFC

mxt4t_rev_gummel_hfc_subThis function is obsolete.

This function calculates the HFC of the parasitic substrate transistor for a 4 terminaldevice given Vbe and Vbc.

InputArguments:

Vbe Vbe Voltage (V)

Vbc Vbc Voltage (V)

Output: Reverse Gummel substrate HFC.

mxt4t_rev_gummel_ibThis function is obsolete.

This function calculates the reverse gummel base current for a 4 terminal device givenVbe, Vbc, and Ie.

InputArguments:

Vbe Vbe Voltage (V)

Vbc Vbc Voltage (V)

Ie Emitter Current (A)

Output: Reverse Gummel Base current.

mxt4t_rev_gummel_ieThis function is obsolete.

This function calculates the reverse gummel emitter current for a 4 terminal device given

Page 257: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

256

Vbe, Vbc, and Ie.

InputArguments:

Vbe Vbe Voltage (V)

Vbc Vbc Voltage (V)

Ie Emitter Current (A)

Output: Reverse Gummel Emitter current.

mxt4t_rev_gummel_is

This function is obsolete.

This function calculates the reverse gummel substrate current for a 4 terminal devicegiven Vbe, Vbc, and Ie.

InputArguments:

Vbe Vbe Voltage (V)

Vbc Vbc Voltage (V)

Ie Emitter Current (A)

Output: Reverse Gummel substrate current.

MXT_cbcMextram model version: 504

This function calculates the total base-collector depletion capacitance Cbc vs. bias givenvbc.

Inputs:

VBC:

base-collector voltage

Output: calculated total base-collector capacitance.

See Philips Report NL-UR 2001/801, section 2.5.2 for more details.

MXT_cbeMextram model version: 504

This function calculates the total base-emitter depletion capacitance Cbe vs. bias givenvbe.

Inputs:

VBE:

base-emitter voltage

Output: calculated total base-emitter depletion capacitance.

See Philips Report NL-UR 2001/801, section 2.5.1 for more details.

MXT_cj0Mextram model version: 504

This function extracts the zero-bias junction capacitance, Cje0, Cjc0 or Cjs0 depending onwhich Output mode is selected: E/C/S. The total bias range needs to include V = 0 V, butit is not necessary that one of the Vj value is indeed zero.

See Philips Report NL-UR 2001/801, sections 2.5.1-2.5.3 for more details.

MXT_cscMextram model version: 504

Page 258: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

257

This function calculates the total substrate-collector depletion capacitance Csc vs. biasgiven vsc.

Inputs:

VSC:

substrate-collector voltage

Output: calculated total substrate-collector depletion capacitance.

See Philips Report NL-UR 2001/801, section 2.5.3 for more details.

MXT_forward_hfeMextram model version: 504

This function calculates hfe given veb,vcb and ic.m. When the MODEL variableMXT_AUTO_RANGE is set to the value 1.0 the transform will use the measured collectorcurrent to determine the upper limit for extracting the parameters: BF, IBF and MLF. Thislimit is determined by the onset of high-injection. The function is used in thedc_gummel/Forward setup to extract the non ideal base current parameters IBF, MLF andthe forward current gain BF.

Inputs:

VEB: emitter-base voltage.

VCB:

collector-base voltage (it should be constant)

IC: measured collector current

Output: forward current gain Ic//Ib

See Philips Report NL-UR 2001/801, section 2.5.8 for more details.

MXT_forward_icMextram model version: 504

This function calculates ic given veb and vcb. When the MODEL variableMXT_AUTO_RANGE is set to the value 1.0 this transform will also require ic.m as an input.The transform uses the measured collector current to determine the upper limit forextracting the parameter: IS. This limit is set by the onset of high-injection. The functionis used to extract IS in the setup dc_gummel/Forward.

Inputs:

VEB:

emitter-base voltage.

VCB:

collector-base voltage (this should be constant in a forward gummel plot )

IC: measured collector current (used for auto-ranging)

Output: calculated ideal forward collector current (DO NOT include series resistances, high injection, quasi-sat etc.)

See Philips Report NL-UR 2001/801, section 2.5.7 for more details.

MXT_forward_vbeMextram model version: 504

This function calculates vbe given vcb, ic.m and ib.m. When the MODEL variableMXT_AUTO_RANGE is set to the value 1.0, the transform will also require veb (ve-vb) asan input. The transform is used to optimize RE in the setup dc_gummel/Forward.

Page 259: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

258

Inputs:

IC: measured collector current.

IB: measured base current.

VEB:

external measured Veb (used for auto-ranging only)

Output: external voltage Vbe.

See Philips Report NL-UR 2001/801, section 2.5.9 for more details.

MXT_ftMextram model version: 504

This function calculates the cut-off frequency fT as a function of Ic, Vbe and Vce. Thefunction is used to extract the transit time parameters as well as several other highcurrent parameters.

Inputs:

IC: measured collector current.

VBE:

base-emitter voltage.

VCE:

collector-emitter voltage.

Output: calculated fT.

See Philips Report NL-UR 2001/801, section 2.6 for more details.

MXT_hard_sat_isubMextram model version: 504

This function calculates the substrate current in hard saturation. It is used in thededicated setup dc_paras/Rc_active to extract the parameter RCC.

Inputs:

VBC:

base-collector voltage.

IC: measured collector current.

IB: measured base current.

Output: calculated substrate current in hard saturation.

See Philips Report NL-UR 2001/801, section 2.5.10 for more details.

MXT_I0Mextram model version: 504

This function extracts either IE0, IC0, or IB0 depending on which Output mode isselected: E/C/B. The function requires a terminal current as input. This transform uses thearray of current data Idata and takes the first value at index 0. The I0 value can be usedin the forward-Early and reverse-Early measurements to get a first estimate of the currentoffset. The subsequent optimizations, which require either IE0, IB0 or IC0, provide morerobust results. Sometimes the optimizer will have trouble converging to a proper solutionif these currents are too far from their final values.

Inputs:

Idata: dataset with current data

Choice ofoutputs:

E/C/B

Output: Sets the value of the model variables IE0,IC0 or IB0

See Philips Report NL-UR 2001/801, section 2.5.4-2.5.6 for more details.

MXT_ic_vce

Page 260: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

259

Mextram model version: 504

This function calculates the collector current or the base emitter voltage (depending onthe selected Output) as function of the voltage difference Vce and the base current Ib. Icis used to correct for series resistances. Vbe and Is are used for setting initial values inthe calculation and for auto-ranging.

NoteAuto-ranging is always ON for this function, regardless of the value of the variable MXT_AUTO_RANGE.

The function is used to extract the model variable RTH (thermal resistance) and severalother parameters in combination with the MXT_ft transform. RTH along with Ic and Vceare used to calculate a new simulation temperature. To remove RTH's influence on thesimulation temperature, set RTH to zero.

Inputs:

VCE: collector-emitter voltage.

IB: measured base current.

IC: measured collector current.

VBE: base-emitter voltage.

ISUB: measured substrate current.

Output [i/v]: choice of collector current (i) or base-emitter voltage (v)

Avalanche[y/n]:

Yes/No flag.

Output: calculated collector current or base-emitter voltage.

See Philips Report NL-UR 2001/801, section 2.6 for more details.

MXT_jun_capMextram model version: 504

This function calculates Cbe, Cbc, or Csc vs junction voltage given vbe, vbc, or vsc. Thisfunction combines the functionalities of the 3 functions: MXT_cbe, MXT_cbc, MXT_csc.

Input Arguments:

VJUN junction voltage: vbe, vbc, or vsc

OUTPUT: E/C/S Code to indicate which junction to calculate E (default)Cbe: requires vbe as VJUN input CCbc: requires vbc as VJUN input SCsc: requires vsc as VJUN input

Output: junction capacitance vs junction voltage data

MXT_reverse_currentsMextram model version: 504

Selecting Output=B calculates ib given vbc, vbe and ie. When the MODEL variableMXT_AUTO_RANGE is set to the value 1.0, the transform will use the measured emittercurrent to determine the lower limit for extracting the parameters: XEXT and IKS. Thislimit is set by the onset of high-injection.

Selecting Output=S calculates is given vbc, vbe and ie. When the MODEL variableMXT_AUTO_RANGE is set to the value 1.0, the transform will use the measured emittercurrent to determine the lower limit for extracting the parameters: XEXT and IKS. Thislimit is set by the onset of high-injection.

Selecting Output=E calculates ie given vbc, vbe and ie. When the MODEL variableMXT_AUTO_RANGE is set to the value 1.0, the transform will use the measured emittercurrent to determine the lower limit for extracting the parameters: XEXT and IKS. Thislimit is set by the onset of high-injection.

Page 261: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

260

Inputs:

VBC: base-collector voltage.

VBE: base-emitter voltage.

IE: measured emitter current (for auto-ranging only)

Output[E/B/S]:

select: E for emitter current B for base current S for substrate current

Output: calculated reverse current (emitter/base or substrate).

See Philips Report NL-UR 2001/801, section 2.6.7 for more details.

MXT_reverse_hfcMextram model version: 504

This function calculates HFC (ie/ib) given veb, vcb and ie.m. When the MODEL variableMXT_AUTO_RANGE is set to the value 1.0, the transform uses the measured emittercurrent to determine the upper limit for extracting the parameter BR, IBR, VLR. This limitis set by the onset of high-injection. This transform has an additional input: substrate(y/n). This is used to calculate the reverse beta with or without the addition of thesubstrate current.

Inputs:

VCB: collector-base voltage.

VEB: emitter-base voltage.

IE: measured emitter current (for auto-ranging only)

I Substrate [Y/N]: yes or no field.

Output: calculated reverse current gain Hfc= Ie/Ib = Ie/(Iex+Ib3+Isub)

See Philips Report NL-UR 2001/801, section 2.5.12 for more details.

MXT_reverse_hfc_subMextram model version: 504

This function calculates the substrate to emitter current gain: HFCsub (-ie/is) given veband vcb. The function is used in the setup dc_gummel/Reverse to extract the parameterISS. When the MODEL variable MXT_AUTO_RANGE is set to the value 1.0, the transformwill require 2 additional inputs: emitter and substrate currents (ie) & (is). The transformuses the measured emitter & substrate currents to determine the upper limit forextracting the parameter ISS. This limit is set by the onset of high-injection in both theemitter and substrate currents.

Inputs:

VEB: emitter-base voltage.

VCB:

collector-base voltage.

IE: measured emitter current

IS: measured substrate current.

Output: calculated substrate to emitter current gain Ie//Isub

See Philips Report NL-UR 2001/801, section 2.5.11 for more details.

MXT_reverse_isubMextram model version: 504

This function calculates the substrate current for low reverse conditions. It can be used toextract the parameter ISS, however Philips recommends another method (see section2.5.11).

Page 262: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

261

Inputs:

VBC:

base-collector voltage (positive as transistor reverse biased)

IS: measured Is (used for auto-ranging only)

Output: calculated substrate current Isub = ISS*(exp(Bbc/VT)-1) where VT is the thermal voltage.

See Philips Report NL-UR 2001/801, section 2.5.11 for more details.

MXT_show_parmsMextram model version: 504

This function prints all the Mextram parameters at the actual ambient temperature set bythe variable TEMP. The functions will use these parameters in their calculations.

See Philips Report NL-UR 2001/801, section 5.1.1 for more details.

mxt_smoothThis function is obsolete.

This function performs a smoothing function on the data.

Input Arguments:

Y Data unitless

Smooth Points number of points on either side of data point to be use for smoothing. 0 = disable

Smooth Iter number of iterations that smoothing algorithm is performed on data. 0 = disable

Output: Smoothed data

MXT_veaf_ibMextram model version: 504

This function calculates the base current in a forward early measurement. It is used in thesetup dc_early_avl/Fwd_early to extract the avalanche parameters VAVL and WAVL.

Inputs:

VCB: collector-base voltage.

IC: measured collector current.

the function uses the model variable IB0

Output: calculated base current

See Philips Report NL-UR 2001/801, section 2.5.4 for more details.

MXT_veaf_icMextram model version: 504

This function calculates forward current ic given vcb, veb and the model variable IC0.When the MODEL variable MXT_AUTO_RANGE is set to the value 1.0, the transform willrequire one additional input: base current ib. The transform uses the measured basecurrent to determine the onset of weak avalanche breakdown. This sets the upper limit ofthe optimization, opt_Veaf.

Inputs:

VCB: collector-base voltage.

VEB: emitter-base voltage (this should be constant).

IB: measured base current, used for autorange only.

the function uses the model variable IC0

Output: calculated collector current Ic (transistor forward bias)

See Philips Report NL-UR 2001/801, section 2.5.6 for more details.

Page 263: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

262

MXT_vear_ieMextram model version: 504

This function calculates ie when the base emitter junction is reversed biased, and the basecollector junction is forward biased. Vcb is assumed to be constant. The function is used inthe setup dc_early_avl/Rev_early to extract the parameter VER.

Inputs:

VEB: emitter-base voltage.

VCB: collector-base voltage (it should be constant and > 0).

the function uses the model variable IE0.

Output: emitter current Ie (transistor reverse biased)

See Philips Report NL-UR 2001/801, section 2.5.5 for more details.

MXT_VEFMextram model version: 504

This function calculates a starting value for the parameter VEF. The Model Parameter list isupdated and the extracted value is printed in the status window. To extract VEF, run thistransform first and then optimization opt_VEF in the setup dc_early_avl/Fwd_early.

Input Argument:

VCB: collector-base voltage.

IC: measured collector current

See Philips Report NL-UR 2001/801, section 2.5.6 for more details.

MXT_VERMextram model version: 504

This function calculates a starting value for the parameter VER. The Model Parameter listis updated and the extracted value is printed in the status window. To extract VER, runthis transform first and then optimization opt_VER in the setup dc_early_avl/Rev_early.

Input Argument:

VCB: collector-base voltage.

IC: measured collector current

See Philips Report NL-UR 2001/801, section 2.5.5 for more details.

NOISE_1f_bjt_1HzFor each noise trace this function calculates the 1 Hz intercept point by calculating theaverage noise in the specified frequency range. The frequency range can be specified byusing the variables X_LOW and X_HIGH. If N is the number of noise traces, the functionreturns an output dataset of size N filled with the N intercept points (one for each trace).

Inputs:

Frequency: Frequency point dataset. Size: N*freqpoints.

Noise at constant Vc: dataset containing the noise for the N traces. Size: N*freqpoints

Output: Dataset filled with the N 1Hz interception points. Size: N.

Examples:

This transform is used during 1/f noise parameters extraction for bipolar devices. Seemodel file examples/model_files/noise/1_f_toolkit/bjt_1f_noise.mdl. The transform is usedin the setup modeling/extract.

NOISE_1f_bjt_calc

Page 264: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

263

This function calculates the current noise density at the device output (collector) given thefrequency range, the device current gain Beta, the base current and the parameters Afand Kf listed in the Parameters table. The Noise is calculated as follows:

<Sic>= Kf * (ib^Af)/f * Beta^2

If N is the number of traces (number of DC bias points) the inputs are defined as follows:

Inputs:

Beta: Dc current gain dataset. Size: N

frequency: Frequency point dataset. Size: N*freqpoints.

BaseCurrent:

Base current dataset. Size: N.

Output: Dataset filled with the calculated noise. Size: N*freqpoints.

Examples:This transform is used during 1/f noise parameters extraction for bipolar devices. Seemodel file examples/model_files/noise/1_f_toolkit/bjt_1f_noise.mdl. The transform is usedin the setup modeling/extract.

NOISE_1f_bjt_extractThis function extracts the parameters Af and Kf. If N is the number of noise traces at agiven Vc, inputs and output are as follows:

Inputs:

Beta: Dc current gain dataset. Size: N.

Ic noise 1 Hz: 1 Hz intercept dataset. Size: N.

BaseCurrent:

base current at each bias point. Size: N.

Output: Return a dataset of size N with the calculated 1 Hz values using the extracted Af and Kf.

Extracts: Af, Kf

Examples:

This transform is used during 1/f noise parameters extraction for bipolar devices. Seemodel file examples/model_files/noise/1_f_toolkit/bjt_1f_noise.mdl. The transform is usedin the setup modeling/extract.

NOISE_1f_force_biasThis function forces a current or a voltage from the specified unit of a 4142B or 4156B/C.

NoteThe instrument will continue to force the bias until the function NOISE_1f_stop_bias is called.

Variables:

GPIB Address: instrument address.

Compliance: voltage or current compliance.

Value: voltage or current value to be forced.

Parameters:

Bias source: specify DC Bias Source Type (4142/4156).

GPIB Interface: interface name.

Unit Slot (4142) or SMU (4156)

Force Current (I) or Voltage (V).

Examples:

ret = NOISE_1f_force_bias(29, 2, 25e-6, "4142", "hpib", "2", "I")

This forces 25 μA of current from unit source on slot 2 of the 4142 at address 29. Theinterface name is "hpib" and the voltage compliance is 2 V.

Page 265: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

264

This transform is used during 1/f noise parameters extraction for bipolar and MOS devices.See model file examples/model_files/noise/1_f_toolkit/bjt_1f_noise.mdl. The transform isused in the setup measure/Noise. It is called by the GUI interface function btMeasurelocated in the setup GuiDriver/MeasureNoise.

NOISE_1f_get_AfThis function returns the value of the parameter Af/AF/af stored in the parameter list.

Syntaxx = NOISE_1f_get_Af()

NOISE_1f_get_BfThis function returns the value of the parameter Bf/BF/bf stored in the parameter list.

Syntax

x = NOISE_1f_get_Bf()

NOISE_1f_get_EfThis function returns the value of the parameter Ef/EF/Ef stored in the parameter list.

Syntax

x = NOISE_1f_get_Ef()

NOISE_1f_get_KfThis function returns the value of the parameter Kf/KF/kf stored in the parameter list.

Syntax

x = NOISE_1f_get_Kf()

NOISE_1f_mos_1HzFor each noise trace this function calculates the 1 Hz intercept point by calculating theaverage noise in the specified frequency range. The frequency range can be specified byusing the variables X_LOW and X_HIGH. If N is the number of noise traces, the functionreturns an output dataset of size N filled with the N intercept points (one for each trace).

Inputs:

Frequency: Frequency point dataset. Size: N*freqpoints.

Noise at constantVd:

dataset containing the noise for the N traces. Size: N*freqpoints

Output: Dataset filled with the N 1Hz interception points. Size: N.

Examples:

This transform is used during 1/f noise parameters extraction for MOS devices. See modelfile examples/model_files/noise/1_f_toolkit/mos_1f_noise.mdl. The transform is used inthe setup modeling/extract.

NOISE_1f_set_AfThis function sets the value of the parameter Af/AF/af in the parameter list.

Syntax

NOISE_1f_set_Af(value)

NOISE_1f_set_Bf

Page 266: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

265

This function sets the value of the parameter Bf/BF/bf in the parameter list.

Syntax

NOISE_1f_set_Bf(value)

NOISE_1f_set_EfThis function sets the value of the parameter Ef/EF/ef in the parameter list.

Syntax

NOISE_1f_set_Ef(value)

NOISE_1f_set_KfThis function sets the value of the parameter Kf/KF/kf in the parameter list.

Syntax

NOISE_1f_set_Kf(value)

NOISE_1f_stop_biasThis function stops the bias from the specified DC source. It is used in conjunction withthe NOISE_1f_force_bias.

Variables:

GPIB Address: instrument address.

Parameters:

Bias source: specify DC Bias Source Type (4142/4156).

GPIB Interface: interface name.

Unit Slot (4142) orSMU (4156).

Examples: ret = NOISE_1f_force_bias(29, "4142", "hpib", "2") the SMU unit at slot 2 of

the 4142 at address 29 will stop any voltage or current bias.

This transform is used during 1/f noise parameters extraction for bipolar and MOS devices.See model file examples/model_files/noise/1_f_toolkit/bjt_1f_noise.mdl. The transform isused in the setup measure/Noise. It is called by the GUI interface function btMeasurelocated in the setup GuiDriver/MeasureNoise.

PackageA utility function that can either "embed or de-embed" the effects of a package from S-parameter data provided as input. The resultant set of S-parameters is returned as a dataset with the same frequency and bias conditions as the input S-parameter data set.

UsagePackage

(S_parameter_data_set, embed/dEEmbed_flag, Z1, D1, L1a, L1b, L1m, C1m, C1, C12, Z3, D3,L3, Z2, D2, L2a, L2b, L2m, C2m, C2)

The package topology used here is a very simple series shunt representation of acomponent's package. This package is more general purpose than EEfet3_package,EEbjt2_package, or EEmos1_package. Each port of this package has a transmission linethat represents the package lead frame. Then a "T" network is defined on the input andoutput (port 1 and 2) that represents bond wires and can be used to model simplematching networks used in some pre-matched devices. This network is not included on thecommon lead. So working from the outside edge of the package's input port (port 1) thereis an ideal transmission line (Z1, D1), followed by the bonding/matching network.

L1a + L1b represent the bond inductance of the input port. The inductance is split into 2parts. In a pre-matched device L1a is the bond inductance from the lead frame of port 1to the shunt matching capacitor (modeled by L1m, C1m). L1b would be the bond wirefrom the top of the matching capacitor to the gate/base of the transistor. C1, C12, and C2

Page 267: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

266

are fringing capacitors that encircle the intrinsic device (usually small values 20-30ff).

In the case of a transistor with no pre-matching, L1m, C1m and L1b would be set to zero.The "common" node of the input matching capacitor C1m and the output matchingcapacitor C2m is where transmission line and bond inductance of the common leadjoin.The intrinsic S-parameters used as input/output are connected at the "internal" sideof L1b, L2b and L3.The output port (port 2) is an exact duplication of the input port. Thetransmission line (Z2, D2) represents the lead frame. The output matching/ bondingnetwork is modeled with L2a, L2b and L2m, C2m.

All 3 of the transmission lines are ideal lines modeled with a characteristic impedance andlength. The length is in units of meters.

Because you must use the same values for each of these arguments in many places in theIC-CAP model file, this function is constructed to use model variables as arguments. First:create 1 variable, in the model variable table, for each of the function arguments (thusmaking it global to the entire model in use). Then use the variables each time the functionis used. In this manner you can ensure that the same values are being used to embed themodel as were extracted from measurements.

The first argument is the data set upon which the function will operate. The secondargument is a text string or variable containing a text string "embed" or "de-embed." Thefunction will operate on the input data set as indicated by the second argument.

PEL example that de-embeds a package from a measurement (based on first defining thefollowing variables in the system variable table):

flag ="deembed"

Z1 = 50 D1 = 250e-6

L1a = 0.9e-9 L1b = 0 L1m = 0

C1m = 0 C1 = 20e-15 C12 = 20e-15

Z3 = 50 D3 = 0 L3 = 0.15e-9

Z2 = 25 D2 = 500e-6

L2a = 0.33e-9

L2b = 0 L2m = 0 C2m = 0

s_intrinsic = Package(meas_spars, flag, Z1, D1, L1a, L1b, L1m, C1m, C1, C12,

Z3, D3, L3, Z2, D2, L2a, L2b, L2m, C2m,)

PB_abortKarl Suss Prober function. Returns prober to local mode.

InputArguments:

None

Output: Array of 3 values:output[0]= 0 if command succeeded, else returns error code.output[1]= Column of current die location, else returns -999.999output[2]= Row of current die location, else returns -999.999

Example: result = PB_abort()

PB_bincodeKarl Suss Prober function. Sets the Bincode of the current die location.

Input Arguments:

Reals orIntegers:

binvalue

Output: Single value output[0]= 0 if command succeeded, else returns error code.

Example: result=PB_bincode(binvalue)

PB_bindex

Page 268: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

267

Karl Suss Prober function. Sets the Bincode of the current die location, then steps (index)to the next testable die location (as defined by the pbench wafer map).

Input Arguments:

Reals orIntegers:

bin value

Output: Array of 3 valuesoutput[0]= 0 if command succeeded, else returns error code.output[1]= Column of new die location, else returns -999.999output[2]= Row of new die location, else returns -999.999

Example: result=PB_bindex(binvalue)

PB_bindex_crKarl Suss Prober function. Sets the Bincode of the current die location, then moves theprober to the absolute column and row location specified.

Input Arguments:

Reals orIntegers:

bin value, column value, row value

Output: Array of 3 valuesoutput[0]= 0 if command succeeded, else returns error code.output[1]= Column of new die location, else returns -999.999output[2]= Row of new die location, else returns -999.999

Example: result=PB_bindex_cr(binvalue,column,row)

PB_gindex_crKarl Suss Prober function. Return the current die index location from the wafer map.

InputArguments:

None

Output: Array of 4 valuesoutput[0]= column (die) if command succeeded, else returns error code.output[1]= row (die)output[2]= X location (from home, absolute)output[3]= Y location (from home, absolute)

Example: result=PB_gindex_cr()

PB_gsite_xyKarl Suss Prober function. Return the x and y location (in tenths of microns) of the currentsubsite.

InputArguments:

None

Output: Array of 2 valuesoutput[0]= Subsite x valueoutput[1]= Subsite y value

Example: result=PB_gindex_xy()

PB_indexKarl Suss Prober function. Steps (index) to the next testable die location (as defined bythe pbench wafer map).

InputArguments:

None

Output: Array of 3 valuesoutput[0]= 0 if command succeeded, else returns error code.output[1]= Column of new die location, else returns -999.999output[2]= Row of new die location, else returns -999.999

Example: result = PB_index()

Page 269: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

268

PB_index_crKarl Suss Prober function. Moves the prober to the absolute column and row locationspecified.

Input Arguments:

Reals or Integer: Column value, Row value

Output: Array of 3 valuesoutput[0]= 0 if command succeeded, else returns error code.output[1]= Column of new die location, else returns -999.999output[2]= Row of new die location, else returns -999.999

Example: result=PB_index_cr(column,row)

PB_msite_xyKarl Suss Prober function. Moves the prober to subsite location x, y (in tenths of microns).

Input Arguments:

Reals or Integer: x value, y value

Output: Output: Array of 3 valuesoutput[0]= 0 if command succeeded, else returns error code.output[1]= Subsite x coordinate, else returns -999.999output[2]= Subsite y coordinate, else returns -999.999

Example: result=PB_msite_xy(x,y)

PBench_CMDKarl Suss Prober function. Sends a user-specified command to the prober.

InputArguments:

String: Arbitrary string name to identify calling function Suss Prober command

Output: output[0]= 0 if command succeeded, else returns error code.

Example: result=PBench_CMD("Myfunction", "StepNextDie")

PdownWafer prober function. Lowers the chuck of the wafer prober. For more informationregarding this function, refer to External Prober User Functions (meas).

Input Arguments: None

Output: Single number with exit status

Automatic Invocation: None

PhomeWafer prober function. Used for loading a wafer onto the chuck and moving it to the homeposition. For more information regarding this function, refer to External Prober UserFunctions (meas).

Input Arguments: None

Output: Single number with exit status

Automatic Invocation: None

PimoveWafer prober function. Moves the chuck a relative increment from its current position. Formore information regarding this function, refer to External Prober User Functions (meas).

Page 270: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

269

Input Arguments:

Reals or Integers: X Delta, Y Delta

Output: Single number with exit status

Automatic Invocation: None

PinkWafer prober function. Calls the inker function of the prober if it is supported. For moreinformation regarding this function, refer to External Prober User Functions (meas).

Input Arguments:

Reals or Integers: Inker Num

Output: Single number with exit status

Automatic Invocation: None

PmoveWafer prober function. Moves the chuck to an absolute position. For more informationregarding this function, refer to External Prober User Functions (meas).

Input Arguments:

Reals or Integers: X Position, Y Position

Output: Single number with exit status

Automatic Invocation: None

PNCAPsimuCalculates P-N Junction capacitance versus voltage. Can be used as a quick simulation.The proper parameter names must be specified as inputs.

Input Arguments:

Data Sets: Junction V

Reals orIntegers:

CJ Param, VJ Param, MJ Param

Output: Array of real numbers; size determined by inputs

PorigWafer prober function. Defines the current X & Y position of the chuck. Must be calledbefore calling the Pmove (prog) or Pimove (prog) functions. For more informationregarding this function, refer to External Prober User Functions (meas).

Input Arguments:

Reals or Integers: X Origin, Y Origin

Output: Single number with exit status

Automatic Invocation: None

PposWafer prober function. Returns the current X & Y position of the chuck. For moreinformation regarding this function, refer to External Prober User Functions (meas).

Input Arguments: None

Output: Array of 2 points: x and y

Automatic Invocation: None

Prober_debugWafer prober function. Used to turn the debug and macro stop (on error) flags on and off.For more information regarding this function, refer to External Prober User Functions

Page 271: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

270

(meas).

Input Arguments:

Reals or Integers: Debug Flag, Stop Flag

Output: Single number with exit status

Automatic Invocation: None

Prober_initWafer prober function. Initializes the prober for use. This function must be called beforeany other prober functions are used in the Macro. For more information regarding thisfunction, refer to External Prober User Functions (meas).

Input Arguments:

Reals or Integers Bus Address, Orientation

Strings/Pars/Vars Prober Type, Device File

Output: Single number with exit status

Automatic Invocation: None

Prober_resetWafer prober function. Sends a device clear command to the prober. For more informationregarding this function, refer to External Prober User Functions (meas).

Input Arguments: None

Output: Single number with exit status

Automatic Invocation: None

Prober_statusWafer prober function. Sends a query to the prober to obtain the Remote/Local controlstate and the edge sensor contact state. The prober should be initialized with Prober_init(prog) before this function. For more information regarding this function, refer to ExternalProber User Functions (meas).

Input Arguments: None

Output: Array of 3 points: x and y and z

Automatic Invocation: None

Program or Program2The Program2 function is the recommended way to define a program in IC-CAP'sParameter Extraction Language over the older Program function. Program2 providesimproved function argument/parameter management and improves access to IC-CAPvariables.

Both Program and Program2 functions provide a text editor in which a program can bewritten in IC-CAP's Parameter Extraction Language to carry out simple or complicatedcomputations. When a RETURN statement is used, the computed results are available foruse in Plots, other Transforms, and table elements throughout IC-CAP. Both functions canalso execute most IC-CAP menu functions using an iccap_func call. Both functions alsoprovides features enabling users to write custom extraction routines and assign new Modelparameter values.

Refer to Parameter Extraction Language (prog), and Using Transforms and Functions(prog) for more information.

If GET_INT, GET_REAL, GET_STRING or LINPUT is used in a Program or Macro to passparameters, all GET_INT statements should be located immediately at the start of theProgram or Macro along with any other GET_INT, GET_REAL, GET_STRING or LINPUT

Page 272: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

271

statements. Once any other ICCAP_FUNC statement is invoked, the list of anticipatedarguments is reset, thereby removing all the extra arguments from the callingICCAP_FUNC statement. The Program2 function does not have these limitations.

The statement GET_DATASET can be used to redirect passed Program2 functionparameter dataset arguments to local variables of a Program2 function. GET_DATASET isnot supported with Program or Macro functions-it is only currently supported with theProgram2 function.

If GET_INT, GET_REAL, GET_STRING or LINPUT statements are used in a Program orMacro to pass parameters, those input statements search the passed parameter list untilthey find a valid passed parameter argument of the expected type. In the Program2function, the GET_DATASET, GET_INT, GET_REAL, GET_STRING or LINPUT statements willonly try to evaluate the next available passed function parameter as a value of theexpected type, and will error out if the next passed function parameter is not able to beevaluated as a value of the expected type.

In the Program2 function, all variables are automatically treated as local variables unlessthose variables are first explicitly declared as global variables using the GLOBAL_VARstatement. Before using a variable from a variable table in Program2, you should declarethe variable as global with the GLOBAL_VAR statement. In Program and Macro functions,all variables can be resolved globally or locally without needing to explicitly specify whichvariables are global using the GLOBAL_VAR statement.

InputArguments:

None (input statements and data are supplied interactively into a dedicated text editor)

Output: Complex array or matrix array. Size and type depends on the arguments to a RETURNstatement in program text. The size will be 1 if return data is returned by a RETURN_VALUEstatement. In the absence of an appropriate RETURN statement there is no output data set.

Extracts: Both functions permit the extraction of any combination of Model parameters, DUTparameters, and IC-CAP system variables.

AutomaticInvocation:

For both functions, several possibilities exist

If a program uses the RETURN statement to generate a data set, and 1 of the datasets used within the program changes (due to a simulation, for example), then theprogram is automatically invoked, so that its returned data set is refreshed.If a program assigns new values to Model or DUT parameters, then the program isconsidered an extraction function, and Automatic Invocation occurs when the Extractcommand is issued for the associated Setup or DUT.

These rules are mutually exclusive, and the second one takes higherprecedence. When neither rule is satisfied, no Automatic Invocation occurs.Some statements allow direct control over these rules, for example,UPDATE_MANUAL. For more information, refer to Automatic TransformExecution (prog).

PscaleWafer prober function. Defines the X & Y stepping dimensions used by the Pmove (prog)and Pimove (prog) functions. For more information regarding this function, refer toExternal Prober User Functions (meas).

Input Arguments:

Reals or Integers: X Size [um], Y Size [um]

Output: Single number with exit status

Automatic Invocation: None

PSP_check_parChecks whether a model parameter is in a predefined range. The range information forthis parameters must be given in a variable in the referenced path. The range informationis stored in a string in the following format:

Page 273: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

272

range_A0 >-1 0 10 -

| | | |___ upper error condition ({operator(<,<=), value}{-)}

| | |______ upper optimization boundary

| |___________ lower optimization boundary

|_______________ lower error condition ({operator(>,>=), value}{-)}

InputArguments:

Variables: Actual value of parameter to check

Parameters: Parameter namePath to parameter range definition

Output: Flag for correct operation:0: parameter is in specified range-1: parameter is outside specified range-2: error during function execution (e.g., variable 'range_xx' not found)

PSP_DC_calc_bin_parameterCalculates from the input the four binning parameters P0, PL, PW and PP. If the calculationis done correctly, outputs[0] will return 0. Otherwise, outputs[0] will result in a negativenumber. In such a case, the error will be printed in detail in the output window.

InputArguments:

Inputs: Array with 4 parameters P1 .. P4 of the bin cornersArray with 4 gate lengths L1 .. L4 of the bin cornersArray with 4 gate widths W1 .. W4 of the bin corners

Variables: PSP binning type

Output: Array containing error condition and binning parametersoutputs[0] = error condition (0=OK, any other number indicates an error)outputs[1] = P0<par>, e.g. POVFBoutputs[2] = PL<par>, e.g. PLVFBoutputs[3] = PW<par>, e.g. PWVFBoutputs[4] = PLW<par>, e.g. PLWVFB

Extracts: Binning parameters P0<par>, PL<par>, PW<par>, PLW<par>

PSP_DC_vthPicks up one single sweep curve of id=f(vg) of a specified setup and extracts the thresholdvoltage vth. The setup is specified by the parameters path to vd, ... etc. This makes iteasier to call the function with variable inputs inside the PEL programs.

The 'Flag' variable is used to define certain conditions, for example, the extraction of vthfor the large device that does not need to calculate all the early voltage values.

Page 274: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

273

InputArguments:

Variables: Length (L)Total gate width (W)Number fingers (NF)Flag for extraction options flag: 1 Fixed Id(Vth) = Idref*L/W 2 Fixed Id(Vth) = Idref*NF*((W/NF)-2*Delta_W)/(L-2*Delta_L)

Reference current Idref for extraction optionsDelta L (one side)Delta W (one side)# of curveType (1=NMOS, -1=PMOS)Debug (1: show internal states of the function 0: nothing)

Parameters: path to setupvdvgvbidtype id (M,S)version

Output: Value vth or failure indicator

Extracts: Vth (1e99 indicates error)

PSP_set_optAccepts a list of model parameters, separated by blanks and searches the rangeinformation for these parameters in the range_<PARAMETER> variables in the referencedpath.

After analyzing the range information for each parameter, the variablesmin_<PARAMETER> and max_<PARAMETER> in the local setup/DUT are set. Thesevariables can be used as upper/lower limit in an optimizer call.

The range information is stored in a string in the following format:

range_A0 >-1 0 10 -

| | | |___ upper error condition ({operator(<,<=), value}{-)}

| | |_______ upper optimization boundary

| |___________ lower optimization boundary

|________________ lower error condition ({operator(>,>=), value}{-)}

Input Arguments:

Parameters: Parameter names, separated by blanks Path to parameter range definition

Output: Flag for correct operation: 0: everything is ok -1: error during function execution (e.g., variable 'range_xx' not found)

Example call in PEL: erg = PSP_set_opt("RDSW PRWG PRWB","Extraction_configuration/Boundaries")

PTFTCV_cgdThis function is obsolete.

Standard extraction for the UCB p-Si TFT model. Extracts p-Si TFT gate-to-drain overlapcapacitance and a transition parameter.

Input Arguments:

Data Sets: Gate-Drain V, Source-Drain V, Gate-Drain C

Output: None

Extracts: CGDO, ACGD

Automatic Invocation: By Extract menu function

PTFTCV_cgs

Page 275: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

274

This function is obsolete.

Standard extraction for the UCB p-Si TFT model. Extracts p-Si TFT gate-to-source overlapcapacitance and transition parameters.

Input Arguments:

Data Sets: Gate-Source V, Drain-Source V, Gate-Source C

Output: None

Extracts: CGSO, ACGS, VGTRANLC, VGTRANHC

Automatic Invocation: By Extract menu function

PTFTDC_linThis function is obsolete.

Standard extraction for the p-Si TFT model. Extracts linear region parameters using Idversus Vg data measured on a p-Si TFT device.

Input Arguments:

Data Sets: Drain V, Gate V, Source V, Drain I

Output: None

Extracts: VTO, U0, U1, U2, U3, U4, SUBSLOPE, VOFF, THERMALI, VGTRANL, VGTRANH, GIDLA,GIDLB

AutomaticInvocation:

By Extract menu function

PTFTDC_satThis function is obsolete.

Standard extraction for the p-Si TFT model. Extracts saturation region parameters usingId versus Vd data measured on a p-Si TFT device.

Input Arguments:

Data Sets: Drain V, Gate V, Source V, Drain I

Output: None

Extracts: VMAX, L2, PHITA, S1, S2

Automatic Invocation: By Extract menu function

PupWafer prober function. Moves up the chuck of the wafer prober. For more informationregarding this function, refer to External Prober User Functions (meas).

Input Arguments: None

Output: Single number with exit status

Automatic Invocation: None

rand_flatReturns a single random number generated for each call between 0.0 and 1.0 inclusive.Use rand_seed() to set a seed value. This is a 32-bit random number generator of Parkand Miller with Bays-Durham shuffle to exclude serial correlations. The period is largerthan 1E08.

Input Arguments: None

Output: Single real number

Automatic Invocation: None

Page 276: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

275

Example PEL code:

! create 100 random numbers between

! lower bound and upper bound

! ex. 100 random real numbers from 1.0 to 10.0

complex num[100]

! sets a varying random seed for all successive calls

! to rand_flat()

x=rand_seed(val(system$("date +%s")))

lowerbound=1.0

upperbound=10.0

i=0

while i<100

num[i]=rand_flat()*(upperbound-lowerbound)+lowerbound

i=i+1

endwhile

To view an example of the random functions used in a setup to generate randomnumbers, view the random_example.mdl example discussed in Random Numbers(Example) (prog).

rand_gaussReturns a random number generated for each call that follows a normal distribution withthe given mean and sigma values. Use rand_seed() to set a seed value. This is a 32-bitrandom number generator of Park and Miller with Bays-Durham shuffle to exclude serialcorrelations. The period is larger than 1E08.

Input Arguments:

Reals or Integers: Mean, Sigma

Output: Single real number

Automatic Invocation: None

Example PEL code:

! Creates 100 random numbers within a

! gaussian distribution with a mean of

! approximately 5 and a standard deviation

! of approximately 1

complex num[100]

! sets a varying random seed for all successive calls

! to rand_gauss(...)

x=rand_seed(val(system$("date +%s")))

i=0

while i<100

num[i]=rand_gauss(5,1)

i=i+1

endwhile

To view an example of the random functions used in a setup to generate randomnumbers, view the random_example.mdl example discussed in Random Numbers(Example) (prog).

rand_seedSets a seed for the internal random number generator that has the initial seed of 3300.The rand_seed(seed) function should be used to set the seed for the internal randomnumber generator for all successive calls to the rand_flat() or rand_gauss() functions. Thisis a 32-bit random number generator of Park and Miller with Bays-Durham shuffle toexclude serial correlations. The period is larger than 1E08.

Page 277: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

276

Input Arguments:

Reals or Integers: Seed (must not be zero)

Output: None

Automatic Invocation: None

Example:

Using a specific/fixed seed value with rand_flat() or rand_gauss().You can input a fixed seed value for the rand_seed(seed) function.For example:

x=rand_seed(42)

y1=rand_flat() or y1=rand_gauss(gaussMean, gaussSigma)

y2=rand_flat() or y2=rand_gauss(gaussMean, gaussSigma)

where y1 will equal a first random number and y2 will equal a second randomnumber and y1 may not necessarily equal y2.If you set the same fixed seed value again and call rand_flat() or rand_gauss (gaussMean, gaussSigma) again.For example:

x= rand_seed(42)

y1=rand_flat() or y1=rand_gauss(gaussMean, gaussSigma)

x= rand_seed(42)

y2=rand_flat() or y2=rand_gauss(gaussMean, gaussSigma)

where y1 == y2 since the seed was set to the same fixed seed before each call.Since rand_flat() or rand_gauss() return a single random number, each time you callrand_seed(42) beforehand you will get the same single random number.

Generating a varying seed value based on the current time with random().Instead of using the same fixed seed number each time to generate a random number,another approach would be to create a varying real number seed out of the current time.For example:

x = rand_seed(val(system$("date + %s")))

y1 = rand_flat() or y1 = rand_gauss(gaussMean, gaussSigma)

y2 = rand_flat() or y2 = rand_gauss(gaussMean, gaussSigma)

where y1 will equal a first random number and y2 will equal a second random number andy1 may not necessarily equal y2.If you were to call rand_seed(val(system$("date + %s"))) again later before another callto rand_flat() or rand_gauss(…) the random seed value would have been set differentlyeach time so the calls to rand_flat() or rand_gauss() would still return different randomvalues.

x= rand_seed(val(system$("date + %s")))

y1=rand_flat() or y1=rand_gauss(gaussMean, gaussSigma)

x= rand_seed(val(system$("date + %s")))

y2=rand_flat() or y2=rand_gauss(gaussMean, gaussSigma)

where y1 will equal a first random number and y2 will equal a second random number andy1 may not necessarily equal y2.To view an example of the random functions being used in a Setup to generate randomnumbers, view the random_example.mdl example discussed in Random Numbers(Example) (prog).

randomCreates a data set of random numbers with values between 0 and 1. This function isbased on the underlying C code for srand48 and rand48. This function will return a dataset

Page 278: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

277

of 'N' numbers where N is the size defined by the current Setup's input sweeps. Thisfunction is referred to data in an IC-CAP DUT Setup that includes a defined input set thatevaluates to a specific number of points.

Input Arguments:

Reals or Integers: Seed

Output: Array of real numbers; size determined by setup

Automatic Invocation: On Data Set Input Change

Example:

Using a specific/fixed seed value with random(seed).

You can call the random(seed) function with a specific seed value.For example: random(49)Also, if the IC-CAP DUT Setup in which you are calling the IC-CAP "random" function(transform is defined in your DUT Setup's Extract/Optimize tab) has 100 points inyour DUT Setup's Measure/Simulate tab, then the result of running the random(seed)function will also evaluate to 100 numbers in the resulting random number dataset.However, each time you call the random(49) function, you'll get the same 100random numbers because they're all starting with the same seed number (examplerandom(49) has seed = 49).Generating a varying seed value based on the current time with random(seed).Instead of using the same seed number all the time to generate a random number,another approach would be to create a varying real number seed out of the currenttime.For example: random(val(system$("date +%s")))To view an example of the random functions being used in a Setup to generaterandom numbers, view the random_example.mdl example discussed in RandomNumbers (Example) (prog).

RBBcalcUsed in extraction of base resistance parameters for the UCB Bipolar model. CalculatesRBB from corrected H11 measurements generated with the H11corr function describedabove. A circle fit is performed on the complex data to extrapolate the high frequency realaxis intercepts.

Input Arguments:

Data Sets: H11

Output: Array of complex numbers; size determined by inputs

Automatic Invocation: On Data Set Input Change

Example PEL Statement: rbbcalc_data = RBBcalc(H11)

RMSerrorCalculates the RMS error between 2 data sets. The error of the second input is calculatedwith respect to the first input. Returns the error in percent or magnitude. Threeformulations are available depending on the value of the third argument labeled % ErrFlag.

Input Arguments:

Data Sets: Input 1, Input 2

Reals or Integers: % Err Flag

Output: Single real number

Automatic Invocation: On Data Set Input Change

Example PEL Statement: percent_error = RMSerror(ic.m,ic.s,1)

If 0 is passed as the third argument, the absolute value of the difference between the twodatasets is returned.

Page 279: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

278

If 1 or 2 is passed as the third argument, a relative (or percent) error is calculated. For avalue of 1, the error of the second input is calculated with respect to the first input foreach point. If any values in the first dataset are 0, the function returns an error.

For a value of 2, the same formulation used by the Levenberg-Marquardt optimizer isused. This is also a relative (or percent) error calculation, but the formulation takes theerror relative to the larger of the two data set values on a point by point basis. Thisformulation always returns a value.

Where

sim i = the ith simulated data point

meas i = the ith measured data point

N = the total number of data points

sinSine of an angle in radians.

Input Arguments:

Data Sets: Input 1

Output: Complex number, matrix, complex array, or matrix array (depends on input argument)

Automatic Invocation: On Data Set Input Change

sinhHyperbolic sine.

Input Arguments:

Data Sets: Input 1

Output: Complex number, matrix, complex array, or matrix array (depends on input argument)

Automatic Invocation: On Data Set Input Change

smooth3Returns 3-point running average of the Input data set. End points of each curve are notaffected. Defined in userc.c.

Input Arguments:

Data Sets: Input

Output: Complex array or matrix array (depends on input argument)

Automatic Invocation: On Data Set Input Change

SPECSSpin

Page 280: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

279

Used in an IC-CAP Macro to determine the matrix connections of the device under test.ICMSpin returns the matrix pin number that corresponds to a specified terminal index onthe device. This function only returns valid data when IC-MS test execution is running.Refer to the IC-MS User's Manual for more information on using ICMSpin.

Input Arguments:

Reals or Integers: Terminal Index

Output: Matrix pin number corresponding to the specified device terminal index

Automatic Invocation: None

Example PEL Statement: pin_num = ICMSpin(1)

sqrtSquare root function. Note that sqrt(-1) correctly produces an imaginary result.

Input Arguments:

Data Sets: Input 1

Output: Complex number, matrix, complex array, or matrix array (depends on input argument)

Automatic Invocation: On Data Set Input Change

stabilization_reachedThis function is used to check stability of DC current data of a 4 terminal device. Stabilityis reached by calculating the variance of last 4 points of each of the terminal currents andcomparing to user specified.

Syntax: stabilization_reached(<array1>,<array2>,<array3>,<array4>,<index>,<time>,<criteria>,<varname>)

Where:array[1-4]: Temporary IC-CAP arrays to hold the terminal current datasetsindex: Variable integer index starting at zero to number of data points dataset arraytime: User specified delay time to wait between checks for stabilitycriteria: User specified stability criteria (% variance)varname: IC-CAP variable which will be set to True if stablity is reached or False if stability is notreached

Output: 0 if error occurs, else 1

Examples: IStabRes = stabilization_reached(IDMeasTab, IGMeasTab, ISMeasTab, IBMeasTab, VAL$(Ind),VAL$(StabTime), VAL$(StabCrit), "IsStable")

SWM_debugSwitching matrix function. Turns the debug flag on and off. For more informationregarding this function, refer to External Matrix Driver User Functions (meas).

Input Arguments:

Reals or Integers: Debug Flag

Output: Single number with exit status

Automatic Invocation: None

SWM_initSwitching matrix function. Initializes the switching matrix and clears all port and pinconnections. This must be called before any other switching matrix functions are used inthe Macro. For more information regarding this function, refer to External Matrix DriverUser Functions (meas).

Input Arguments:

Reals or Integers: Block 1 Addr, Block 2 Addr

Strings/Pars/Vars: Matrix Type, Device File

Output: Single number with exit status

Automatic Invocation: None

Page 281: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

280

tanTangent of an angle in radians.

Input Arguments:

Data Sets: Input 1

Output: Complex number, matrix, complex array, or matrix array (depends on input argument)

Automatic Invocation: On Data Set Input Change

tanhHyperbolic tangent.

Input Arguments:

Data Sets: Input 1

Output: Complex number, matrix, complex array, or matrix array (depends on input argument)

Automatic Invocation: On Data Set Input Change

TARGET_DC_vthPicks up one single sweep curve of id=f(vg) of a specified setup and extracts the thresholdvoltage vth. The setup is specified by the parameters path to vd, and so on. This makes iteasier to call the function with variable inputs inside the PEL programs.

The Flag variable defines certain conditions, for example, the extraction of vth for thelarge, which does not need to calculate all the early voltages.

Input Arguments:

Variable Length (L) Total gate width (W) Number fingers (NF) Flag for extraction options flag: 1 Fixed Id(Vth) = Idref*L/W 2 Fixed Id(Vth) = Idref*NF* ((W/NF)-2*Delta_W)/ (L-2*Delta_L) Reference current Idref for extraction options Delta L (one side) Delta W (one side) # of curve Type (1=NMOS, -1=PMOS) Debug (1: show internal states of the function 0: nothing)

Parameters: path to setupvdvgvbidtype id (M,S)version

Output: Value vth or failure indicator

Automatic Invocation: Vth (1e99 indicates error)

tis_p_downHP 4071A wafer prober function. Lowers the chuck of the wafer prober.

tis_p_homeHP 4071A wafer prober function. Used for loading a wafer onto the chuck and moving it tothe home position.

tis_p_imove

Page 282: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

281

HP 4071A wafer prober function. Moves the chuck a relative increment from its currentposition.

tis_p_inkHP 4071A wafer prober function. Calls the inker function of the prober if it is supported.

tis_p_moveHP 4071A wafer prober function. Moves the chuck to an absolute position.

tis_p_origHP 4071A wafer prober function. Defines the current X & Y position of the chuck. Must becalled before calling the tis_p_move (prog) or tis_p_imove (prog) functions.

tis_p_posHP 4071A wafer prober function. Returns the current X & Y position of the chuck.

tis_p_scaleHP 4071A wafer prober function. Defines the X and Y stepping dimensions that are usedby the tis_p_move (prog) and tis_p_imove (prog) functions.

tis_p_upHP 4071A wafer prober function. Moves up the chuck of the wafer prober.

tis_prober_get_baHP 4071A wafer prober function. No Help Available.

tis_prober_get_nameHP 4071A wafer prober function. No Help Available.

tis_prober_initHP 4071A wafer prober function. Initializes the prober for use. This function must becalled before any other prober functions are used in the Macro.

tis_prober_read_sysconfigHP 4071A wafer prober function. No Help Available.

tis_prober_resetHP 4071A wafer prober function. Sends a device clear command to the prober.

tis_prober_statusHP 4071A wafer prober function. Sends a query to the prober to obtain the Remote/Localcontrol state and the edge sensor contact state. The prober should be initialized withtis_prober_init (prog) before this function.

TRL_CalDeembed the raw measured data using measured data of TRL (thru-reflect-line)calibration standards. The function calculates the error coefficients and returns thecorrected S-parameters data. The reference plane is defined at the middle of the thrustandard, or at the interface to the DUT when it is installed in the compatible carrier.

Page 283: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

282

Inputs:

Freq Data: S data: Thru: Short: Line A: Line B: Line C: Freq 1 Trans: Freq 2 Trans:

Frequency InputsRaw (uncalibrated) S-parametersmeasured S-parameters of the Thru standardmeasured S-parameters of the Short standardmeasured S-parameters of Line A standardmeasured S-parameters of Line B standardmeasured S-parameters of Line C standardtransition frequency Line A to Line Btransition frequency Line B to Line C

Output: Corrected (calibrated) S-parameters data

TwoPortConverts the data in a data set from one 2-port parameter type (S, Y, H, Z, K, A) toanother. Enter the name of the data set that is to be converted, the old 2-port type, andthe new 2-port type. Use K for Cascaded Scattering Matrix and A for ABCD Matrix. Note:TWOPORT does not read TWOPORT_Z0 at execution time, only at measurement andsimulation time.

Input Arguments:

Data Sets: Input

Strings/Pars/Vars: From [SYHZKA], To [SYHZKA]

Output: Matrix array; size determined by inputs

Automatic Invocation: On Data Set Input Change

Example PEL Statement: h_dataset = TwoPort(s_dataset,"S","H")

TwoPort2Same as TwoPort function except the characteristic impedance, Z0, is an input parameter.This allows execution-time conversion of 2-port data to a new Z0.

Input Arguments:

Data Sets: Input

Reals or Integers: Z0

Strings/Pars/Vars: From (SYHZKA) To (SYHZKA)

Output: Matrix array; size determined by inputs

Automatic Invocation: On Data Set Input Change

Example PEL Statement: h_dataset = TwoPort2(s_dataset,75,"S","H")

USERC_avg_2Averages 2 DC data sets, point-by-point. Provided as an example of a math functionimplemented in User C code. The source code is in $ICCAP_ROOT/src/userc.c.

Input Arguments:

Data Sets: Data 1, Data 2

Output: Array of real numbers; size determined by inputs

Automatic Invocation: On Data Set Input Change

USERC_avg_3Averages 3 DC data sets, point-by-point. Provided as an example of a math functionimplemented in User C code. The source code is in $ICCAP_ROOT/src/userc.c.

Input Arguments:

Data Sets: Data 1, Data 2, Data 3

Output: Array of real numbers; size determined by inputs

Automatic Invocation: On Data Set Input Change

Page 284: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

283

USERC_closeCloses an open file. See USERC_open for essential additional information about thisfunction.

Input Arguments:

Reals or Integers: File Descriptor (generated by earlier USERC_open call)

Output: 0 or -1 (-1 indicates an error)

Automatic Invocation: None

USERC_conjgProduces the conjugate of the input data set. This function is similar to the functionnamed conjg, but is provided as an example of a User C math function manipulatingcomplex numbers. The source code is in $ICCAP_ROOT/src/userc.c.

Input Arguments:

Data Sets: Cplx DS

Output: Complex number or array of complex numbers; size determined by inputs

Automatic Invocation: On Data Set Input Change

USERC_data_w_checkReturns a complex number designated by a name, row, and column. Example of C libraryfunction data_w_check() in userc.c.

Input Arguments:

Reals or Integers: Row, Col, Index, Data Set name, Type

Output: A single complex number.

Automatic Invocation: None

USERC_get_object_nameIf the variable name exists, returns the name of the calling Transform or Macro. Note thatthe leading / in the name is not returned.

Syntax

USERC_get_object_name(<varname>)

Where

<varname> is a string naming a variable in the variable table within the scopeof the caller. This variable returns the names of the calling Transform or Macro.

Examples:

If macro /npn/tester contains the following line:

x=USERC_get_object_name("objname")

And if objname is in the Model Variables or system variables, then it returns npn/tester.

If Transform /npn/dc/fgummel/tester contains the following line:

x=USERC_get_object_name("xformName")

And if xformName exists in the Setup Variables, DUT Variables, Model Variables, orSystem Variables, then it returns npn/dc/fgummel/tester.

Page 285: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

284

USERC_init_paramDemonstrates in C code how to assign a value to a model parameter, a DUT parameter, oran IC-CAP system variable. Demonstrates use of the User C utility function namedset_par_or_var(). The source code is in the set_param function in$ICCAP_ROOT/src/userc.c.

Input Arguments:

Reals or Integers: New Value

Strings/Pars/Vars: Parameter to set (this should be the name of a model parameter, a DUT parameter, oran IC-CAP system variable)

Output: None

Extracts: N/A

Automatic Invocation: By Extract menu function

USERC_num_of_pointsReturns the number of points for a given sweep. Example of C library functionget_num_of_points() in userc.c.

Input Arguments:

Reals or Integers: Sweep order, Sweep path

Output: A positive real number, or -1 for error.

Automatic Invocation: None

Example PEL Statement: nop = USERC_num_of_points(1, "")

! A blank path is current Setup

USERC_openAccesses a disk file for reading, writing or both. For instrument control, use HPIB_open(prog)() and related HPIB functions. This function can be used in conjunction withUSERC_readnum (prog), USERC_readstr (prog), USERC_read_reals (prog), USERC_seek(prog), USERC_tell (prog), USERC_write (prog), and USERC_close (prog) to perform I/Ooperations. A more complete description of these functions and examples of their use inperforming I/O operations with disk files are available in User C Functions (prog). Thesource code for these functions is provided in $ICCAP_ROOT/src/userc_io.c.

Input Arguments:

Strings/Pars/Vars: Filename, Access Mode

Output: -1 on failure, or else a positive integer file designator that you should save to usewith the other User C I/O functions mentioned in the description.

Automatic Invocation: None

Example PELStatement:

file_num = USERC_open("datafile","r") ! read access

USERC_read_realsOpens a file, reads and returns an array of real numbers, and closes the file. For additionalinformation about this function, see User C Functions (prog).

Input Arguments:

Strings/Pars/Vars: Filename

Output: Array of real numbers, with size determined by the Setup

Automatic Invocation: None

Example PEL Statement: data_array = USERC_read_reals("datafile")

USERC_readnumReads 1 real number from an open file, 1.0E6, for example. See USERC_open (prog) foressential additional information about this function.

Page 286: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

285

Input Arguments:

Reals or Integers: File Descriptor (generated by earlier USERC_open call), Device File Flag

Strings/Pars/Vars: Scanf Format

Output: a real number (the value 9.99998E+37 means an error occurred)

Automatic Invocation: None

Example PEL Statement: VTO = USERC_readnum(file_num,0,"VTO = %lf")

USERC_readstrReads a string from an open file and sets the specified IC-CAP variable equal to it. SeeUSERC_open for essential additional information about this function.

Input Arguments:

Reals or Integers: File Descriptor (generated by earlier USERC_open call), Device File Flag (use 1 ifreading from an instrument driver device file, 0 if reading from an ASCII file)

Strings/Pars/Vars: Scanf Format, Var Name

Output: 0 on success, or -1 on failure

Automatic Invocation: None

Example PELStatement:

! read and set SIMULATOR name from a file

read_result = USERC_readstr(file_num,0,"%s", IC-CAP_variable)

USERC_seekGoes to a particular byte offset in an open file. See USERC_open (prog) for essentialadditional information about this function.

Input Arguments:

Reals or Integers: File Descriptor (generated by earlier USERC_open (prog) call), Offset Value, OffsetType

Output: 0 on success, or -1 on failure

Automatic Invocation: None

USERC_set_paramSets the parameter specified by the second argument to the value of the first argument.

Input Arguments:

Data Sets: None

Reals or Integers: Value of the parameter

Strings/Pars/Vars: Name of the parameter to set

Output: None

Automatic Invocation: MANUAL

Example PEL Statement: x = USERC_set_param(100,NPN,BF)

USERC_set_param_quietSet the value of a parameter or variable referenced by a string. Unlike USERC_set_param(prog)(), this version makes no output to the status window.

Example PEL Statement: x=USERC_set_param_quiet(1e-15,"/npn/IS")

USERC_sizeReturns the array size of the data set whose name is given by a string.

Page 287: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

286

Input Arguments:

Strings/Pars/Vars: Data Set name

Output: A positive real number.

Automatic Invocation: None

Example PEL Statement: data_size = USERC_size("id")

USERC_sweep_modeReturns the sweep mode for the input with sweep order N.

Usage: x=USERC_sweep_mode(N, <path>)

Returns: 0 for V 1 for I 2 for T 3 for F 4 for P 5 for U 6 for W

Extracts: Example C library function of get_sweep_mode() in userc.c. Use USERC_num_of_points (prog)() tocheck the existence of a sweep.

USERC_sweep_nameReturns a sweep name through a variable. Example C library function ofget_sweep_name() in userc.c. Use USERC_num_of_points (prog)() to check the existenceof a sweep.

Input Arguments:

Strings/Pars/Vars: Sweep order, Sweep path, Variable name

Output: 0 for success, -1 for error

Automatic Invocation: None

Example PEL Statement: x = USERC_sweep_name(1, "/npn/dc/fearly", "first_sweep")

USERC_sweep_startReturns a sweep start value. Example C library function of get_sweep_start() in userc.c.Use USERC_num_of_points (prog)() to check the existence of a sweep.

Input Arguments:

Strings/Pars/Vars: Sweep order, Sweep path

Output: 0 for error

Automatic Invocation: None

Example PEL Statement: x = USERC_sweep_start(1, "/npn/dc/fearly")

USERC_sweep_stepsizeReturns a (LIN) sweep step value. Example C library function of get_sweep_stepsize() inuserc.c. Use USERC_num_of_points (prog)() to check the existence of a sweep.

Input Arguments:

Strings/Pars/Vars: Sweep order, Sweep path

Output: 0 for error

Automatic Invocation: None

Example PEL Statement: x = USERC_sweep_stepsize(1, "/npn/dc/fearly")

USERC_sweep_stopReturns a sweep stop value. Example C library function of get_sweep_stop() in userc.c.Use USERC_num_of_points (prog)() to check the existence of a sweep.

Page 288: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

287

Input Arguments:

Strings/Pars/Vars: Sweep order, Sweep path

Output: 0 for error.

Automatic Invocation: None

Example PEL Statement: x = USERC_sweep_stop(1, "") ! within current Setup

USERC_systemDemonstrates the invocation of an operating system command from User C code.

Input Arguments:

Strings/Pars/Vars: operating system command

Output: Single number with exit status of the operating system command

Automatic Invocation: None

USERC_tellTells current byte offset in an open file. See USERC_open (prog) for essential additionalinformation about this function.

Input Arguments:

Reals or Integers: File Descriptor (generated by earlier USERC_open call)

Output: -1 on error, or else current byte offset into file

Automatic Invocation: None

USERC_transposeReturns a data set of matrices, in which each of the input data set's matrices has beentransposed. Provided as an example of a matrix math function implemented in User Ccode. The source code is in $ICCAP_ROOT/src/userc.c.

Input Arguments:

Data Sets: Matrix DS

Output: Matrix or matrix array; size determined by inputs

Automatic Invocation: On Data Set Input Change

USERC_writePrints any string expression into an open file, in ASCII. (To convert a number to a stringexpression, refer to the VAL$ function described in the Built-in Functions (prog). Refer toUSERC_open (prog) for additional essential information about this function.)

Input Arguments:

Reals or Integers: File Descriptor (generated by USERC_open call), Device File Flag

Strings/Pars/Vars: String to Write

Output: 0 or -1 (-1 indicates an error)

Automatic Invocation: None

Example PEL Statement: write_result = USERC_write(file_num,0,"VTO="&VAL$(VTO))

varianceCalculates the statistical variance of a data set based on the equation: variance = sum /(num_pts) where 'sum' is the sum of squared deviation and 'num_pts' is the number ofdata points. Adequate for a real or complex data set, but if a data set of matrices isreceived, only the 1,1 data is considered. A data set specification like S.21 is adequate,since this is a data set of complex numbers.

Page 289: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

288

Input Arguments:

Data Sets: Input 1

Output: Single real or complex number

Automatic Invocation: On Data Set Input Change

variance2Calculates the statistical variance of a data set based on the equation: variance = sum /(num_pts-1) where 'sum' is the sum of squared deviation and 'num_pts' is the number ofdata points. Adequate for a real or complex data set, but if a data set of matrices isreceived, only the 1,1 data is considered. A data set specification like S.21 is adequate,since this is a data set of complex numbers.

Input Arguments:

Data Sets: Input 1

Output: Single real or complex number

Automatic Invocation: On Data Set Input Change

VBIC_ac_solverGiven the 4 terminal voltages, solves for 2-port network parameters. VE and VS areassumed to be 0.

Input Arguments:

VC (Collector Voltage)

VB (Base Voltage)

FREQ (Cut-off Frequency])

Output{FT|BETA|Y|H|Z|S}

Output code specifying current gain, or parameters. This code should be placed inthe Output field.

Outputs: The output depends on the code set in the Output field:

Code Output

FT Current gain cutoff frequency

BETA Current gain

Y The 2-port network y-parameters

H The 2-port network h-parameters

Z The 2-port network z-parameters

S The 2-port network s-parameters

VBIC_avcCalculates avalanche collector voltage (AVC1) based on the model parameter PC.

Where

For an NPN, a = 7.05E05cm-1 and b = 1.23E06 V/cm

For a PNP, a = 1.58E06 cm-1 and b = 2.04E06 V/cm

PC = b-c grading coefficient

InputArguments:

None

Output: Model parameter AVC1

VBIC_cbc

Page 290: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

289

Calculates the depletion capacitance versus bias.

InputArguments:

VBC Base-Collector Voltage

Output: Depletion base-collector capacitance based on the VBIC formulation: SPICE model for AJC ≤0 and single-piece smooth model for AJC > 0.

VBIC_cbeCalculates the depletion capacitance versus bias.

InputArguments:

VBE Base-Emitter Voltage

Output: Depletion base-emitter capacitance based on the VBIC formulation: SPICE model for AJC ≤ 0and single-piece smooth model for AJC > 0.

VBIC_cj0Calculates (extracts) the junction zero-bias capacitance.

InputArguments:

VJ Junction voltage

CJ Capacitance

Output: E/C/S Junction {E|C|S} for CJE, CJC, or CJCP

Output: The zero-bias junction capacitance stored in CJE, CJC, or CJCP.

VBIC_clean_dataThis routine looks at each data point and scans ahead by the number of points specifiedby the input argument IN A ROW. If the data does not monotonically increase for thenumber of data points specified by IN A ROW, then zero is written to the output array. Ifthe data does monotonically increase for the number of data points specified by IN AROW, then from that data point onward, the INPUT DATA is written directly to the output(result) array.

InputArguments:

INPUT DATA

IN A ROW

Output: Either the INPUT DATA or zero values.

VBIC_cscCalculates the depletion capacitance versus bias.

Input Arguments:

VSC (Substrate-Collector Voltage)

Output: Depletion collector-substrate capacitance based on the VBIC formulation: SPICE model forAJC ≤ 0 and single-piece smooth model for AJC>0.

VBIC_dc_approxThis function calculates Ic, Ib, beta, intrinsic and extrinsic base-emitter voltage, and basecharge for a bipolar transistor, using the terminal voltages Ve, Vb, and Vc as inputs. Vs isassumed to be 0. The first parameter should be set to the output of interest, whichdefaults to Ic. This approximate solution does not take quasi-saturation effects intoaccount.

Page 291: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

290

Input Arguments:

VC Collector Voltage

VB Base Voltage

VE Emitter Voltage

Output:IC|IB|BETA|VBEI|VBEX|QB

Set this field to the output of interest

Output: The output depends on the setting of the Output field.

Code Output

IC Collector current

IB Base current

BETA Current gain

VBEI Intrinsic base-emitter voltage

VBEX Extrinsic base-emitter voltage

QB Base charge

VBIC_dci_solverThis function calculates Ic, Vb, Ie, Is, or beta for a bipolar transistor, using the terminalvoltages Ve, Vc, and Vs and Ib as inputs. The first parameter should be set to the outputof interest, which defaults to Ic.

Input Arguments:

VC Collector Voltage

IB Base Current

VE Emitter Voltage

VS Substrate Voltage

Output: IC|VB|IE|IS|BETA

Set this field to the output of interest.

Output: The output depends on the code set in the Output field.

Code Output

IC Collector current

VB Base voltage

IE Emitter current

IS Substrate current

BETA Current gain

VBIC_dcv_solverThis function calculates Ic, Ib, Ie, Is, or beta for a bipolar transistor, using the terminalvoltages Ve, Vb, Vc, and Vs as inputs. The first parameter should be set to the output ofinterest, which defaults to Ic.

Page 292: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

291

Input Arguments:

VC Collector Voltage

VB Base Voltage

VE Emitter Voltage

VS Substrate Voltage

Output:IC|IB|IE|IS|BETA

Set this field to the output of interest.

Output: The output depends on the code set in the Output field:

Code Output

IC Collector current

VB Base voltage

IE Emitter current

IS Substrate current

BETA Current gain

VBIC_fg_currentsGiven the 4 terminal voltages, calculates parameters related to forward current.

Input Arguments:

Data Sets: VC Collector Voltage VB Base Voltage VE Emitter Voltage VS SubstrateVoltage IC Collector Current IB Base Current

Parameters: The parameter indicates the region where the transform will limit its simulatedoutput. VBIC_AUTO_RANGE must be set to 1.

IS|NF Calculate over the region dominated by NF

IBEI|NEI Calculate over the region dominated by NEI

IBEN|NEN Calculate over the region dominated by NEN

IKF Calculate over the region dominated by IKF

Output:{IB|B|IC|C|IE|E|IS|S}

Code to indicate which current to output.

Output: A subset of the current where zeros replace any range where data was notextracted (based on the auto-ranging algorithm). The output depends on the codeset in the Output field:

Code Output

IB|B Base current

IC|C Collector current

IE|E Emitter current

IS|S Substrate current

Extracts: Nothing

VBIC_ibci_nciCalculates the parameters IBCI and NCI.

InputArguments:

VB Base Voltage

VC Collector Voltage

IB Base Current

Output: NCI at each bias point (unaveraged)

Extracts: IBCI, NCI

VBIC_ibei_neiCalculates the parameters IBEI and NEI.

Page 293: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

292

InputArguments:

VB Base Voltage

VE Emitter Voltage

IB Base Current

Output: NEI at each bias point (unaveraged)

Extracts: IBEI, NEI

VBIC_ikfCalculates the parameter IKF.

InputArguments:

VB Base Voltage

VE Emitter Voltage

IC Collector Current

IB Base Current

Output: IKF at each bias point

Extracts: IKF (maximum value in range, 0.1 indicates failed extraction)

VBIC_ikrCalculates the parameter IKR.

InputArguments:

VB Base Voltage

VC Collector Voltage

IE Emitter Current

IB Base Current

Output: Reverse beta versus bias.

Extracts: IKR (maximum value in range, 0.1 indicates failed extraction).

VBIC_is_nfCalculates the parameters IS and NF.

InputArguments:

VB Base Voltage

VE Emitter Voltage

IC Collector Current

Output: NF versus bias with 0's where out of auto-range.

Extracts: IS, NF (average values in range).

VBIC_isp_nfpCalculates the parameters ISP and NFP.

InputArguments:

VB Base Voltage

VC Collector Voltage

IS Substrate Current

Output: NFP versus bias with 0's where out of auto-range.

Extracts: ISP, NFP (average values in range).

VBIC_nr

Page 294: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

293

Calculates the parameter NR.

InputArguments:

VB Base Voltage

VC Collector Voltage

IE Emitter Current

Output: NR versus bias with 0's where out of auto-range.

Extracts: NR (average value in range).

VBIC_qcdeplCalculates depletion charge or capacitance based on VBIC formulation using SPICE modelfor A ≤ 0 and single-piece, smooth model for A > 0.

InputArguments:

Junction V Junction voltage

P Param Built-in potential

M Param Grading coefficient

F Param Fwd bias depletion capacitancelimit

A Param Smoothing factor

Mode : {Q|C} Charge or capacitance

Output: Charge or capacitance versus bias.

Extracts: Nothing

VBIC_rcxCalculates RCX.

Input Arguments:

VB Base Voltage

VE Emitter Voltage

IC Collector Current

IS Substrate Current

IB Base Current

Output: RCX versus bias with 0's where out of auto-range.

Extracts: RCX (maximum value in auto-range, if failed, value of 60 set).

VBIC_rg_currentsGiven the 4 terminal voltages, calculates reverse currents.

Page 295: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

294

Input Arguments:

VC Collector Voltage

VB Base Voltage

VE Emitter Voltage

VS Substrate Voltage

IE Emitter Current

IB Base Current

IS Substrate Current

Parameters The parameter indicates the region where the transform will limit itssimulated output. VBIC_AUTO_RANGE must be set to 1.

IS|NR Calculate over the region dominated by NR

IBCI|NCI Calculate over the region dominated by NCI

IBCN|NCN Calculate over the region dominated by NCN

IKR Calculate over the region dominated by IKR

ISP|NFP Calculate over the region dominated by NFP

IKP Calculate over the region dominated by IKP

Output: {IB|B|IC|C|IE|E|IS|S}

Code to indicate which current to output.

Output: A subset of the current where zeros replace any range where data wasnot extracted (based on the auto-ranging algorithm).

The output depends on the code set inthe Output field:

Code Output

IB|B Base current

IC|C Collector current

IE|E Emitter current

IS|S Substrate current

Extracts: Nothing.

VBIC_stocThis function calculates capacitance data from S-parameter data, allowing base-collectorand base-emitter capacitance to be calculated from network analyzer measurements. Theoutput of this function can be used in place of actual capacitance data to extractcapacitance-related parameters.

InputArguments:

FREQ data Frequency

S data S-parameter data (de-embedded)

Node (C/E/S) Code to indicate type of extraction:

E base-emitter capacitanceC base-collector capacitanceS substrate-collector capacitance

Output: Capacitance versus frequency data

Extracts: Nothing

VBIC_vef_verCalculates the forward and reverse early voltages given the collector, base, and emittervoltages in the forward and reverse modes, as well as the collector current in the forwardmode and the emitter current in the reverse mode. The algorithm is based on the methoddescribed in "SPICE Early Modeling" by C. McAndrew & L. Nagel, BCTM 94, p. 144.

Page 296: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

295

InputArguments:

Forward VC Collector Voltage

Forward VB Base Voltage

Forward VE Emitter Voltage

Forward IC Collector Current

Reverse VE Emitter Voltage

Reverse VB Base Voltage

Reverse VC Collector Voltage

Reverse IE Emitter Current

Forward IB Base Current

Output: VEF versus bias with 0's where out of auto-range.

Extracts: VEF, VER (average values in auto-range).

WaitSwitching matrix function. Used to pause for a specified number of seconds to accomplishdry switching. Refer to MOS Model 9 Characterization (mosfet) for more information.

Input Arguments:

Reals or Integers: Period [sec]

Output: Single number with exit status

Automatic Invocation: None

wirexfXA wire function. Wire functions permit optimization of time-domain measurements in the Xand Y dimensions. Time-domain measurements involve effects specifically related to the Yaxis (voltage or current level) or the X axis (when a pulse occurs).

Because X-axis data is typically the forced data set, it cannot normally be optimized. Thismakes it very difficult to optimize measured and simulated pulses that do not start withsome amount of overlap in time. To solve this problem, the data can be transformed tocreate an independent X data set that can be optimized together with the Y data set.There are 2 ways of doing this.

Generate the set of X values that would result if the Y values were evenly spaced.The wirexfX provides this data. The complementary wirexfY (prog) function providesthe set of Y values that would result from evenly spaced X values, which is thedefault case.Generate the sets of X and Y values that would result if the X and Y axes arenormalized and the curve is divided into segments of equal length. The wirexfXY andwirexfYX functions provide this data. This function calculates variably spaced X valuesfor evenly spaced Y values.

Input Arguments:

Data Sets: X Data, Y Data

Output: Array of real numbers; size determined by inputs

Automatic Invocation: On Data Set Input Change

wirexfXYOne of the wire functions that permit optimization of time domain measurements in the Xand Y dimensions; for more details, refer to wirexfX (prog). This function calculates the Xdata set produced when the X and Y axes are normalized and the curve is divided intosegments of equal length. This function should be used in conjunction with wirexfYX(prog) during an optimization.

Page 297: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

296

Input Arguments:

Data Sets: X Data, Y Data

Output: Array of real numbers; size determined by inputs

Automatic Invocation: On Data Set Input Change

wirexfYOne of the wire functions that permit optimization of time domain measurements in the Xand Y dimensions; for more details, refer to wirexfX (prog). This function calculates the Ydata set when X values are evenly spaced. This function is supplied for completenessbecause Y data sets are normally collected in this manner.

Input Arguments:

Data Sets: X Data, Y Data

Output: Array of real numbers; size determined by inputs

Automatic Invocation: On Data Set Input Change

wirexfYXOne of the wire functions that permit optimization of time domain measurements in the Xand Y dimensions; for more details, refer to wirexfX (prog). This function calculates the Ydata set produced when the X and Y axes are normalized and the curve is divided intosegments of equal length. This function should be used in conjunction with wirexfXY(prog) during an optimization.

Input Arguments:

Data Sets: X Data, Y Data

Output: Array of real numbers; size determined by inputs

Automatic Invocation: On Data Set Input Change

WPro_lookup_infoThe function used to get testplan related information set by the user in the WaferProenvironment.

Syntax: WPro_lookup_info (arg1, arg2, arg3)

Where:arg1 : a string used to specify the type of information to get.arg2 : a string used to specify, depending on the selected type (arg1), the exact information toget.arg3: a string used to specify the name of the ICCAP setup variable or model variable that will beupdated with the value of the object defined with arg1 and arg2.

Output: Not used

Examples: ! get .iot file nameret = WPro_lookup_info("Precision", "Medium" , "IotFileName")

WPro_set_infoThe function used to set testplan related information in the WaferPro environment.

Syntax: WPro_ set_info (arg1, arg2, arg3)

Where:arg1 : a string used to specify the type of information to get/set.arg2 : a string used to specify, depending on the selected type, the exact information to get/set.arg3 : a string used to specify the value that will be affected by the object defined with arg1 andarg2.

Output: Not used

Examples: ! set the mdm file name to save the dataret = WPro_set_info("Run", "SaveMdm", "myMdmFileName.mdm")

Page 298: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

297

User C FunctionsYou can write C routines that can be called from Programs or Macros. These routines canopen, read, write, and close files. You can also specify any desired offset in the file, anddisplay that position for reference. The location of these files is $ICCAP_ROOT/src.

IC-CAP imposes no limit on the number of files you can have open at one time. For limitsof your operating system, refer to your operating system documentation.

The point-by-point assignment User C I/O capability increases IC-CAP's flexibility inaccepting data sets from external sources. For additional information, refer to Assignment(prog).

Tip:

To view the arguments required by any given function from within the program,create a standalone transform and supply the desired function name in the Functionfield. IC-CAP will provide labeled fields indicating the arguments required by thatfunction for use in a transform.

Example 1This example shows how to read a data set from a file using the following three functions:

USERC_openUSERC_readnumUSERC_close

Example 1, to be coded as a Transform Program from a Setup

! This Program reads a data set from a disk file 'datafile'.

! It is assumed that the file has scientific notation

! numbers, e.g., 15 or 15.0E3, separated by white space. The

! white-space can be any amount of blanks, tabs,

! carriage-returns, or newlines (linefeeds).

fnum = USERC_open("datafile","r")

! open a file for reading

COMPLEX tmp_array[SIZE(vb)]

! array as big as data set 'vb'

i=0

WHILE i < SIZE(tmp_array)

data_pt=USERC_readnum(fnum,0," %lf")

! fnum came from USERC_open.

! 0 indicates NOT an instrument.

! " %lf" (leading space intentional)

! is to scan for any amount of

! white-space (including none),

! followed by a long-float number,

! i.e. a double precision

! real number.

PRINT data_pt

! To show each value as it is read.

tmp_array[i] = data_pt

i=i+1

END WHILE

status=USERC_close(fnum)

! close the open file.

RETURN tmp_array

! store data, for plotting, etc.

Example 2This example causes the transform to read the specified file <datafile> and return thearray contained therein, using the following function:

Page 299: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

298

USERC_read_reals

The floating point numbers in the file can be separated by various separators, includingany mixture of newlines, tabs, and spaces, as well as comma (,) and semicolon (;)characters.

The USERC_read_reals function offers a simpler solution than Example 1. And it ispossible to use the notation 'USERC_read_reals(<datafile>)' elsewhere in IC-CAP; forexample, it can be used directly in a Plot definition.

Additional comments can be found in the source file $ICCAP_ROOT/src/userc_io.c. If youintend to modify the functions, or create new versions, you should save the original sourcefile. For more information, review Creating C Language Functions in IC-CAP (prog).

Example 2, to be coded as a Transform Program from a Setup

return USERC_read_reals(<datafile>)

! read an array of reals from a file

Function Descriptions

USERC_open

This function opens a file for reading, writing or both. It returns one value: -1 or aninteger file descriptor. The -1 value indicates an error. The integer file descriptor must besaved and supplied to a variety of other USERC functions.

USERC_open accepts two arguments:

The first argument is the pathname of the desired file to open.The second argument is the access mode.

Listed below are some guidelines taken from the UNIX man page fopen(3S). For additionalinformation, see that page.

r read

w write

a append

+ mode (update mode) if you must read and write the file, or you want to write to specific locations withoutlosing previous data in the file.

r andr+

(read) modes will never create the file if it does not already exist. All four of the "w" and "a" (writeand append) modes will create the file if is not there.

w andw+

Modes will truncate an existing file

Tips:

Refer to Hints for Reading/Writing Same File for tips on reading from and writing tothe same file.With instruments, it is highly advisable to use USERC_open once with mode "r" forreading, and once with mode "w" for writing. This avoids some problems in thestandard I/O library that involve positioning in the I/O stream.

USERC_close

This function closes an open file. It returns a value indicating the status. If successful, itreturns 0; otherwise it returns -1.

USERC_close accepts one argument:

Page 300: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

299

The file descriptor obtained from the call to USERC_open.

It performs an fclose(3). By default, the system will call fclose for all files opened by theUser C I/O facility whenever the last Program or Macro terminates. It does this withuserc_end_of_prog(), which is described in $ICCAP_ROOT/src/userc_io.c.

USERC_write

This function prints anything to an open file, in ASCII. It returns a value indicating thestatus. If successful, it returns 0; otherwise it returns -1.

USERC_write accepts three arguments:

The first argument should be a file descriptor obtained from USERC_open.The second argument should be a flag (0 or 1) indicating whether the output fileshould be considered a device file, that is, an instrument. Use 0 unless you arereading from an instrument.The third argument should be a string, for example. VAL$(2), or VAL$(BF), or"TNOM="&VAL$(TNOM)&newline_string.

Tips:

This function calls fflush(3) to ensure that a write-to-file or write-to-instrument isnever delayed by the buffering present in the standard I/O facility.For information regarding instrument timeouts when writing, refer to Hints forTimeouts.

USERC_readnum

This function reads one real number from a file, for example, 1.0E6. (See alsoUSERC_readstr.) It returns one value: a real number read from a file or from aninstrument. The returned value should be a valid real number if one exists; else the valueis set to 9.99998E+37, for example, if EOF is encountered. (This mimics what the HP54120 does when no valid data exists, but is a slightly different value.)

USERC_readnum accepts three arguments:

The first argument should be a file descriptor obtained from USERC_open.The second argument should be a flag (0 or 1) indicating whether the input fileshould be considered a device file, that is, an instrument. Use 0 unless you arereading from an instrument.The third argument should be a scanf format string, for example,"%*5s%lf%*1[\n]", which means skip over a 5-character string, then get a doublenumber, then read and skip a newline. (Consult man page scanf(3S).) The scanfformat string provides some flexibility in terms of separating the number out fromany surrounding text or mnemonics that are not of interest.

Tips:

To avoid a potential core dump, %lf should be included only once, and any other "%"specifiers should have an asterisk (*) after them.If reading from an instrument that must communicate multiple data points in oneread, it is necessary to create a modified version of this function to obtain thosemultiple data points.For information regarding instrument timeouts when reading, refer to Hints forTimeouts.

USERC_readstr

This function reads a string from a file and places it in an IC-CAP variable you specify.

Page 301: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

300

(See also USERC_readnum.) It returns a value indicating the status. If successful, itreturns 0; otherwise it returns -1.

USERC_readstr accepts four arguments:

The first argument should be a file descriptor obtained from USERC_open.The 2nd argument should be a flag (0 or 1) indicating whether the input file shouldbe considered a device file, that is, an instrument. Use 0 unless you are reading froman instrument.The third argument should be a scanf format string, for example, %*5s%s%*1[\n].This example means skip over a 5-character string, then get a string, then read andskip a newline. (Consult man page scanf(3S).) The scanf format string provides someflexibility in terms of separating the number out from any surrounding text ormnemonics that are not of interest.The fourth argument should be the name of an IC-CAP variable that receives its valuefrom the string that is read.

Tips:

To avoid a potential core dump, %s should be included only once, and any other "%"specifiers should have an asterisk (*) after them.For information regarding instrument timeouts when reading, refer to Hints forTimeouts.

USERC_seek

This function goes to a particular byte offset in a file. (This function is basically aninterface to fseek(3S)). It returns a value indicating the status. If successful, it returns 0;otherwise it returns -1.

USERC_seek accepts three arguments:

The first argument should be a file descriptor obtained from USERC_open.The second argument should be an offset in bytes.The third argument should indicate the relative starting point for the offset. Use 0 ifyou want the seek offset to be relative to the beginning of the file, or 1 if the seekoffset should be relative to the current position in the file.

Tips:

Each line in an ASCII file uses 1 byte for a newline terminator.USERC_tell can be used to determine the current position, if you intend to seekelsewhere, and then return to the current position.It is neither useful nor advisable to use this function on device files, such asinstruments or terminals.

USERC_tell

This function shows the current byte offset in a file. (This function is basically an interfaceto ftell(3S).) It returns a value indicating the status. If successful, it returns 0; otherwiseit returns -1.

USERC_tell accepts one argument:

The argument should be a file descriptor obtained from USERC_open.

USERC_read_reals

This function opens a file, reads an array of reals, closes the file, and returns an array. Itreturns -1 if the file could not be opened for reading, else 0.

Page 302: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

301

USERC_read_reals accepts one argument:

The argument should be the name of a file with real number data.

Invoking this function produces the following sequence of actions:

Read real numbers from a fileReturn them as an array in iccapOpen, read, and close the data fileClose file in the event of user-requested interrupt (Ctrl-C)Print warning if unexpected number of points in file

Hints

Hints for Instruments

Instrument I/O is undertaken by opening a device file associated with the instrument. Asdescribed in the section USERC_open, instrument input and output is best accomplishedby dedicating two separate file descriptors, one for reading, and one for writing. TheUSERC_open function can be called twice, as shown in the following example:

rdfile = USERC_open("/dev/hpib_721","r")

! for reading input

wrfile = USERC_open("/dev/hpib_721","w")

! for writing output

status=USERC_write(wrfile,1,"*IDN?")

! ask for ID of 54120

status=USERC_readstr(rdfile,1,"%s%*[\n]",readstr)

! read ID into readstr, and discard trailing newline

status=USERC_close(rdfile)

status=USERC_close(wrfile)

If instrument I/O is intended, you may want to review the documentation provided for theUser C prober facility. This facility offers several GPIB routines that could be valuable, forexample, serial polling.

Because of the need for instruments to sometimes communicate several data points atonce (compared to retrieving data from a file, where you can obtain exactly as much dataas desired, in as many reads as desired), it will probably be necessary for the readfunctions, USERC_readnum and USERC_readstr, to be extended and modified for use withsome instruments. One possibility would be new User C functions dedicated to readingentire arrays out of particular instrument types.

Hints for Timeouts

By default, the routines for reading and writing do not employ a timeout. However, youcan interrupt them using Ctrl-C. The UNIX library routine io_timeout_ctl can be used toassociate a timeout with one of the file descriptors returned by USERC_open. This wouldrequire that one or more of the above routines be modified, after which recompiling andlinking are necessary. For details, refer to Creating C Language Functions in IC-CAP(prog).

Hints for Reading/Writing Same File

If you need to read from and write to the same disk file, you should employ USERC_openonce, using one of the following update modes "r+", "w+", or "a+." Then, you shouldadhere to the following guidelines (which are also described on the UNIX man pagefopen(3S)):

A write should not be immediately followed by a read without performing an

Page 303: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

302

intervening seek.A read should not be immediately followed by a write unless the read encounteredend-of-file, or you perform an intervening seek.

Hints for Carriage Returns, Line Feeds, etc.

The functions for reading and writing (USERC_readnum, USERC_readstr, andUSERC_write) can handle a limited set of unprintable characters. For example, aninstrument can be sent a string with a trailing carriage return and line feed, as shownnext.

status=USERC_write(wrfile,1,"*IDN?\r\n")

! \r and \n => CR and LF

If you want to collect a string from an instrument, and the instrument is going to attach atrailing carriage return and line feed, but you want to retrieve the whole string except forthe terminating carriage return and line feed, follow the example shown next.

status=USERC_readstr(rdfile,1,"%[^\r\n]\r\n",readstr)

! note: the specifier %[^\r\n] collects

! all characters EXCEPT \r and \n

The set of characters that can be specified in this manner is the same as those acceptedby the Send String command (Instrument Setup window). For details, refer to Macro FileSyntax Rules (meas).

Page 304: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

303

ICCAP_FUNC StatementThe PEL statement ICCAP_FUNC replaced MENU_FUNC to reflect the fact that manyobjects you act on are not menu-related. (Note: Existing macros using the MENU_FUNCstatement will still work but we recommend you create new macros using ICCAP_FUNC.)For tables that cross-reference GUI buttons or menu picks to their corresponding actions,see Button/Menu Pick and Actions (prog).

The form of the PEL statement is

ICCAP_FUNC()

where () contains at least two arguments, each enclosed in quotation marks, separated bya comma

The first argument is the name of the object on which you want to act.The second argument is the action you want to perform. For an alphabetic list ofactions, see Actions (prog).Optional arguments can be used to anticipate prompts during execution, namely forfilenames for reading or writing

An example is shown below:

iccap_func("/CGaas1/dc/DeviceParameterSet","Memory Store")

where

CGaas1 is the model name

dc is the DUT name

DeviceParameterSet is the object on which to act

Memory Store is the action to perform on DeviceParameterSet (the object)

The Third ParameterThe optional arguments anticipate the need for information required to continue macroexecution. If the argument is not included, and information is required, a dialog boxappears prompting the user for the information. Usually, the optional arguments are filenames used when reading from or writing to files. The following example shows how thisoptional argument is used to specify the file fileName.mdm from which to import data.This anticipates the need for a file name prompt and so avoids interrupting execution.

Example

iccap_func("CGaas1/dc/igvg_0vs","Import Data", "fileName.mdm")

Objects and ActionsTo successfully create macros with the ICCAP_FUNC statement, you must understand thehierarchy of the objects and specify the exact names of objects and actions. A tree-likestructure, shown next, illustrates the relationship of the objects. Click on each object forinformation and actions allowed.

IC-CAP (prog) |- Variables (prog) |- GUI Items (prog) |- GUI Item (prog) |- Simulation Debugger (prog) |- Hardware (prog) |- HPIB Analyzer (prog)

Page 305: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

304

|- PlotOptions (prog) |- MODEL (prog)(*) |- Variables (prog) |- GUI Items (prog) |- GUI Item (prog) |- Circuit (prog) |- PlotOptimizer (prog) |- PlotOptions (prog) |- Parameter Set (prog) |- MACRO (prog)(*) |- DUT (prog)(*) |-Variables (prog) |- GUI Items (prog) |- GUI Item (prog) |-Test Circuit (prog) |-Device Parameter Set (prog) |-SETUP (prog)(*) |-Variables (prog) |- GUI Items (prog) |- GUI Item (prog) |-Instrument Options (prog) |-INPUT (prog)(*) |-OUTPUT (prog)(*) |-TRANSFORM (prog)(*) |-PLOT (prog)(*) |- PlotOptions (prog)

When specifying objects at lower levels, you must include the related objects above them,separating them with slashes. For example, to perform Save As on an instrument optionstable, you would specify:

"/model/DUT/setup/InstrumentOptions","Save As"

where model, DUT, and setup are the actual model, DUT, and setup names.

An asterisk (*) next to an object (in this illustration) indicates that multiple objects oritems with different names can be specified for that object. For example, a model mayhave many DUTs, but only one Parameter Set.

Tips:

Objects (first argument) are case-sensitive and space-sensitive; use exact spellingsshown throughout this documentation (spaces shown in the illustration at left are forreadability only). Use the notations ../ and ../.. to indicate relative path for objects.For an alphabetic list of objects, see Objects (prog).Actions (second argument) are not sensitive to case or spaces. For an alphabetic listof actions, see Actions (prog).

Page 306: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

305

ActionsA

Add Active Instr (prog)Add Global Native Region (prog)Add Global Region (prog)Add GUI (prog)Add Interface File (prog)Add Trace Region (prog)Area Tools (prog)

Area Tools Off (prog)Area Tools On (prog)Autoconfigure or Autoconfigure And Enable (prog)Autoscale (prog)Auto Set Min Max (prog)Auto Set Optimize or Auto Set And Optimize (prog)

B-C

Bus status (prog)Calibrate (prog)Change Address (prog)Change Directory (prog)Change Interface File (prog)Check Active Address (prog)Clear Active List (prog)Clear Data/Both (prog)Clear Data/Measured (prog)Clear Data/Simulated (prog)Clear Plot Optimizer (prog)Clear Status Errors (prog)Clear Status Output (prog)Clear Table or Clear Parameter Table (prog)

Close (prog)Close All (prog)Close Branch (prog)Close Error Log (prog)Close GUI (prog)Close Hardware (prog)Close License Window (prog)Close Output Log (prog)Close Single GUI (prog)Color (prog)Copy (prog)Copy to Clipboard (prog)Copy to Variables (prog)Create Image (prog)Create Variable Table Variable (prog)

D

Data Markers (prog)Delete (prog)Delete Active Instr (prog)Delete Interface File (prog)Delete Global Regions (prog)Delete Trace Regions (prog)Delete All User Regions (prog)Delete User Region (prog)Destroy GUI (prog)Destroy Single GUI (prog)Diagnostics (prog)Diagnostics (prog) (hardware)Disable All (prog)Disable All Traces (prog)Disable Plot (prog)

Disable Supplies (prog)Disable Trace (prog)Display Found Instrs (prog)Display Modal GUI (prog)Display Modeless GUI (prog)Display Plot (prog)Display Plots (prog)Display Single Modal GUI (prog)Display Single Modeless GUI (prog)Draw Diag Line (prog)Dump To Plotter (prog)Dump To Printer (prog)Dump To Stdout (prog)Dump Via Server (prog)Dump Via Server UI (prog)

E-H

Edit (prog)Enable All (prog)Enable Plot (prog)Exchange Black-White (prog)Execute (prog)Exit/Exit! (prog)Export Data Measured (prog)Export Dataset (prog)Export Data Simulated (prog)Extract (prog)

File Debug On (prog)File/Screen Debug Off (prog)Footer (prog)Footer Off (prog)Footer On (prog)Full Page Plot (prog)Header (prog)Header Off (prog)Header On (prog)Hide Highlighted Curves (prog)

I

I-O_Lock (prog)I-O_Reset (prog)I-O_Screen Debug OFF (prog)I-O_Screen Debug ON (prog)I-O_Unlock (prog)Import Create (prog)Import Create Header Only (prog)Import Create Measured (prog)Import Create Measured or Simulated (prog)

Import Create Simulated (prog)Import Create Simulated or Measured (prog)Import Data (prog)Import Delete (prog)Import Measured Data (prog)Import Measured or Simulated Data (prog)Import Simulated Data (prog)Import Simulated or Measured Data (prog)Import Text (prog)

L-N

Legend (prog)Legend Off (prog)Legend On (prog)

Memory Recall (prog)Memory Store (prog)New DUT (prog)

Page 307: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

306

License Status (prog)Listen Active Address (prog)Macro File Execute (prog)Macro File Specify (prog)Manual Rescale (prog)Manual Simulation (prog)Mark Curve Highlighted (prog)Measure (prog)

New Input (prog)New Output (prog)New Plot (prog)New Transform (prog)New Macro (prog)New Model (prog)New Setup (prog)

O-P

Open (prog)Open Branch (prog)Open DUT (prog)Open Error Log (prog)Open Hardware (prog)Open Input (prog)Open Macro (prog)Open Model (prog)Open Output (prog)

Open Output Log (prog)Open Plot (prog)Open Plot Optimizer (prog)Open Setup (prog)Open Transform (prog)Optimize (prog)Parse (prog)Print Read Buffer (prog)Print Via Server (prog)

R

Read from File (prog)ReadOnlyValues (prog)Read String (prog)Read String for Experts (prog)Rebuild Active List (prog)Recall Parameters (prog)Redisplay (prog)Refresh Dataset (prog)Release License (prog)Rename (prog)

Replace Interface File (prog)Replot (prog)Rescale (prog)Reset (prog)Reset Global Region (prog)Reset Min Max (prog)Reset Option Table (prog)Reset to Saved Options (prog)Reset Trace Region (prog)Run Self-Tests (prog)

S

Save All (prog)Save All No Data (prog)Save As (prog)Save As No Data (prog)Save Command File (prog)Save Extracted Deck (prog)Save Image (prog)Save Input File (prog)Save Output File (prog)Scale Plot (prog)Scale Plot Preview (prog)Scale RI Plot (prog)Scale RI Plot Preview (prog)Screen Debug On (prog)Search for Instruments (prog)Select Error Region (prog)Select Plot (prog)Select Whole Plot (prog)Send Command Byte (prog)Send, Receive, and Print (prog)Send String (prog)Send To Printer (prog)Serial Poll (prog)

Set Active Address (prog)Set Algorithm (prog)Set Error (prog)Set GUI Callbacks (prog)Set GUI Options (prog)Set Instrument Option Value (prog)Set Speed (prog)Set Table Field Value (prog)Set Target Vs Simulated (prog)Set Timeout (prog)Set Trace As Both (prog)Set User Region (prog)Set Variable Table Value (prog)Show Absolute Error (prog)Show Highlighted Curves (prog)Show Relative Error (prog)Simulate (prog)Simulate All (prog)Simulate Plot Inputs (prog)Simulation Debugger (prog)Status Window (prog)Stop Multisim (prog)Stop Simulator (prog)Store Parameters (prog)

T-Z

Talk Active Address (prog)Text Annotation (prog)Text Annotation Off (prog)Text Annotation On (prog)Toggle Zoom (prog)Tune Fast (prog)Tune Slow (prog)Turn Off Marker (prog)Undo Optim (prog)

Undo Zoom (prog)Unmark All Highlighted Curves (prog)Unmark Highlighted Curve (prog)Unselect All (prog)Update Annotation (prog)View (prog)Who Are You (prog)Write to File (prog)Zoom Plot (prog)

Add Active InstrAutomates the functionality of the "Add to List" button in the Hardware Setup window'sInstrument Library field.

Page 308: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

307

Valid Objects

Hardware (prog)

menu_func style command: "Add Active Instr"

Adds the instrument selected in the Instrument Library to the Instrument List. To executethis function manually, the user selects an instrument from the Instrument Library, thenpresses the "Add to List" button. This functionality is emulated in PEL by appending theinstrument to be added in the format:

"library name.select code.address"

followed by "ok" to the end of the command string.

Where

library name is the instrument model number exactly as it is listed in theInstrument Library.select code is the bus address (in decimal notation) of the GPIB card.address is the address (in decimal notation) of instrument, as set on theinstrument itself.

Example

iccap_func("Hardware","Add Active Instr","HP8510.7.16","ok")

Add Global Native RegionAutomates the Optimizer > Global Region > Add menu pick in a plot window.AddGlobalNativeRegion allows you to specify the native coordinates of the box which areindependent of the scaling options applied to the plot.

Valid Objects

PLOT (prog)

menu_func style command: none

Adds a global trace region without deleting existing global trace regions.

Example

iccap_func("./dc/fgummel/ibicvsve", "AddGlobalNativeRegion", "0.6", "0.8", "-8", "-3")

! Specify plot number for Multiplot

iccap_func("./dc/fgummel/my_multiplot", "AddGlobalNativeRegion", "0.6", "0.8", "-8", "-3", "1")

See Also

Add Global Region (prog)Delete Global Regions (prog)

Add Global RegionAutomates the Optimizer > Global Region > Add menu pick in a plot window. Thefollowing are two methods of adding global regions using PEL:

AddGlobalRegion - This is mostly used for backwards compatibility with the originalimplementation of plot optimizer.AddGlobalNativeRegion - This enables you to specify the native coordinates of thebox which are independent of the scaling options applied to the plot.

Page 309: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

308

NoteFor AddGlobalRegion, if the plot is in log scale, you need to specify 2 for 1e2 but forAddGlobalNativeRegion you need to specify 1e2 regardless of how it is scaled on the screen.

Valid Objects

PLOT (prog)

menu_func style command: none

Adds a global trace region without deleting existing global trace regions.

Example

iccap_func("./dc/fgummel/ibicvsve", "AddGlobalRegion", "0.6", "0.8", "-8", "-3")

! Specify plot number for Multiplot

iccap_func("./dc/fgummel/my_multiplot", "AddGlobalRegion", "0.6", "0.8", "-8", "-3", "1")

See Also

Add Global Native Region (prog)Delete Global Regions (prog)

Add GUIAutomates the functionality of the "Add" and "Add Child" buttons in the System GUI Itemswindow.

Valid Objects

GUI Item (prog)

menu_func style command: none

Adds Items to a GUI Items page or another GUI Item. You must specify the Item's nameand type code. To see the codes for all Item types, select the Show Codes button on theProperties dialog of a GUI Item.

Example

iccap_func("./GUIItems","Add GUI","ANewTable","TL")

iccap_func("./ANewTable","Add GUI","Button","PB")

See Also

Close GUI (prog), Close Single GUI (prog), Destroy GUI (prog), Destroy Single GUI (prog),Display Modal GUI (prog), Display Modeless GUI (prog), Display Single Modal GUI (prog),Display Single Modeless GUI (prog), Set GUI Callbacks (prog), Set GUI Options (prog)

Add Interface FileAutomates the functionality of the "Add Interface" button in the Hardware Setup window'sGPIB Interface field.

Valid Objects

Hardware (prog)

menu_func style command: "Add Active Interface"

Adds a GPIB Interface to the system. If this function were executed manually, a dialogbox would appear asking the user for the name of the interface to be added. Thisfunctionality is emulated in PEL by appending the interface to be added followed by "ok" tothe end of the command string.

Page 310: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

309

Example

iccap_func("Hardware","Add Interface File","hpib","ok")

Add Trace RegionAutomates the Optimizer > trace > Trace Optimizer Region > Add menu pick in a plotwindow.

Valid Objects

PLOT (prog)

menu_func style command: none

Adds a trace optimizer region for the specified trace without deleting existing traceoptimizer regions.

Example

iccap_func("./dc/fgummel/ibicvsve", "AddTraceRegion", "Y Data 0", "0.6", "0.8", "-8", "-3")

iccap_func("./dc/fgummel/bvsic", "AddTraceRegion", "Y Data 0", "1e-8", "1e-4", "20", "60")

! Specify plot number for Multiplot

iccap_func("./dc/fgummel/my_multiplot", "AddTraceRegion", "Y Data 0", "1e-8", "1e-4", "20", "60",

"1")

See Also

Delete Trace Regions (prog)

Area ToolsAutomates the Options > Session Settings > Area Tools menu pick in a plot window.

Valid Objects

PLOT (prog)

menu_func style command: none

Toggles the Area Tools on and off for the specified plot window.

Example

iccap_func("./dc/fgummel/bvsic", "AreaTools")

! Specify plot number for Multiplot

iccap_func("./dc/fgummel/my_multiplot", "AreaTools", "1")

! Apply to all plots in a Multiplot

iccap_func("./dc/fgummel/my_multiplot", "AreaTools")

See Also

Area Tools Off (prog), Area Tools On (prog)

Area Tools OffHides the Area Tools for the specified plot window.

Valid Objects

PLOT (prog)

menu_func style command: none

Example

Page 311: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

310

iccap_func("./dc/fgummel/bvsic", "AreaToolsOff")

! Specify plot number for Multiplot

iccap_func("./dc/fgummel/my_multiplot", "AreaToolsOff", "1")

! Apply to all plots in a Multiplot

iccap_func("./dc/fgummel/my_multiplot", "AreaToolsOff")

See Also

Area Tools (prog), Area Tools On (prog)

Area Tools OnDisplays the Area Tools for the specified plot window.

Valid Objects

PLOT (prog)

menu_func style command: none

Example

iccap_func("./dc/fgummel/bvsic", "AreaToolsOn")

! Specify plot number for Multiplot

iccap_func("./dc/fgummel/my_multiplot", "AreaToolsOn", "1")

! Apply to all plots in a Multiplot

iccap_func("./dc/fgummel/my_multiplot", "AreaToolsOn")

See Also

Area Tools (prog), Area Tools Off (prog)

Autoconfigure or Autoconfigure And EnableAutomates the Optimizer > Autoconfigure and Enable menu pick in a plot window

Valid Objects

PLOT (prog)

menu_func style command: none

Automatically enables and configures the inputs in a Plot window.

Example

iccap_func("dc/fgummel/icibvsve", "Autoconfigure")

iccap_func("dc/fgummel/icibvsve", "AutoconfigureAndEnable")

! Specify plot number for Multiplot

iccap_func("dc/fgummel/my_multiplot", "Autoconfigure", "1")

! Apply to all plots in a Multiplot

iccap_func("dc/fgummel/my_multiplot", "Autoconfigure")

AutoscaleAutomates the Options > Autoscale menu pick in a plot window

Valid Objects

PLOT (prog)

menu_func style command: "Replot Data"

Toggles whether the plot automatically rescales when the data changes.

Page 312: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

311

Example

iccap_func("/CGaas1/dc/igvg_0vs/vs/ig_vs_vg", "Autoscale")

! Specify plot number for Multiplot

iccap_func("/CGaas1/dc/igvg/my_multiplot", "Autoscale", "1")

! Apply to all plots in a Multiplot

iccap_func("/CGaas1/dc/igvg/my_multiplot", "Autoscale")

Auto Set Min MaxAutomates the Tools > AutoSet Min Max menu pick in the Plot Optimizer window and theAuto Set button in the Extract/Optimize folder.

Valid Objects

TRANSFORM (prog), PlotOptimizer (prog)

menu_func style command: none

Sets minimum and maximum optimizer parameter values based on the value of thecoefficient defined with the AUTOSET_COEFF variable. The default coefficient value is 5.

Example

iccap_func("./CGaas1/dc/igvg_0vs","Auto Set Min Max")

iccap_func("./PlotOptimizer","Auto Set Min Max")

Auto Set Optimize or Auto Set And OptimizeAutomates the Optimizer > Autoset Min/Max and Optimize menu pick in the Plot Optimizerwindow.

Valid Objects

PlotOptimizer (prog)

menu_func style command: none

Sets minimum and maximum optimizer parameter values based on the value of thecoefficient defined with the AUTOSET_COEFF variable then runs an optimization. Thedefault coefficient value is 5.

Example

iccap_func("./PlotOptimizer","AutoSetAndOptimize")

Bus statusAutomates the functionality of the "Tools/Interface/Status" menu pick in the HardwareSetup window.

Valid Objects

Hardware (prog), HPIB Analyzer (prog)

menu_func style command: "Bus status"

Provides information on the status of the current interface including:

NameSelect CodeBus Address

Page 313: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

312

System Controller StateActive Controller StateTalker StateListener StateSRQ StateNDAC State

This information is displayed in the IC-CAP/Status window and, if visible, the HardwareSetup window.

Example

iccap_func("Hardware/HPIBAnalyzer","Bus status")

CalibrateAutomates the Measure/Simulate folder's Calibrate button.

Valid Objects

SETUP (prog)

menu_func style command: "Calibrate"

Performs calibration on the specified setup

Example

iccap_func("CGaas1/dc/igvg_0vs","Calibrate")

Change AddressAutomates the functionality of the Instrument Address spin box in the dialog boxdisplayed by the Configure button in the Instrument List in the Hardware Setup window.

Valid Objects

Hardware (prog)

menu_func style command: "Change Address"

Sets the address of the specified instrument. If this function were executed manually, thedesired new address would be read from the spin box in the Configuration Dialog Boxwhen the OK button was pushed. This functionality is emulated in PEL by appending theold GPIB name string in the format:

"library name.select code.address"

followed by "ok" and the new desired address followed by "ok" to the end of the commandstring.

Example

iccap_func("Hardware","Change Address","HP3577.7.18","ok","19","ok")

Change DirectoryAutomates IC-CAP/Main File > Change Directory

Valid Objects

IC-CAP (prog)

menu_func style command: "Utilities/Change Directory"

Page 314: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

313

Prompts for the name of a new directory to use as the current working directory. Thedirectory prompt can be anticipated by the third argument.

Example

iccap_func("ic-cap","Change Directory","/users/me/my_other_work_dir")

Change Interface FileAutomates the functionality of the Tools > Interface > Change menu pick in the HardwareSetup window.

Valid Objects

Hardware (prog), HPIB Analyzer (prog)

menu_func style command: "Change Interface File"

Changes the currently active GPIB interface. All further commands of the GPIB Analyzerwill be directed to this new interface. If this function were executed manually, a dialog boxwould appear asking the user for the name of the new interface. This functionality isemulated in PEL by appending the name of the new interface followed by "ok" to the endof the command string.

Example

iccap_func("Hardware/HPIBAnalyzer","Change Interface File","new_name","ok")

Check Active AddressAutomates the functionality of the Tools > Address > Check menu pick in the HardwareSetup window.

Valid Objects

Hardware (prog), HPIB Analyzer (prog)

menu_func style command: "Check Active Address"

This function sends a serial poll to the device at the currently active address as previouslyset by a call to "Set Active Address." The result is displayed in the IC-CAP/Status windowand, if visible, the Hardware Setup window.

Example

iccap_func("Hardware/HPIBAnalyzer","Set Active Address","8","ok")

iccap_func("Hardware/HPIBAnalyzer","Check Active Address")

Clear Active ListAutomates the functionality of the DeleteAll button in the Hardware Setup window'sInstrument List field.

Valid Objects

Hardware (prog)

menu_func style command: "Clear Active List"

Removes all instruments in all setups from the Active Instrument List.

Example

iccap_func("Hardware","Clear Active List")

Page 315: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

314

Clear Data/Simulated/Measured/BothClear Data/SimulatedClear Data/MeasuredClear Data/Both

Automates the Model Window's Data > Clear Active Setup Data functionality or the Clearbutton in the Measure/Simulate folder.

Valid Objects

MODEL (prog), DUT (prog), SETUP (prog)

menu_func style commands were the same.

Clears the specified type of data from the outputs and transforms of the named Model,named DUT, or named setup.

Examples

iccap_func("/CGaas1/dc/igvg_0vs","Clear Data/Simulated")

iccap_func("/CGaas1/dc","Clear Data/Measured")

iccap_func("/CGaas1","Clear Data/Both")

Clear Plot OptimizerAutomates the File > Clear Plot Optimizer menu pick in the Plot Optimizer window.

Valid Objects

PlotOptimizer (prog)

menu_func style command: none

Disables all traces and regions in the plots, disables all open plots, and clears theParameters table.

Example

iccap_func("./PlotOptimizer","Clear Plot Optimizer")

See Also

Clear Table or Clear Parameter Table (prog)

Clear Status ErrorsClears Status window's Warnings/Errors.

Valid Objects

IC-CAP (prog)

menu_func style command: none

Example

iccap_func("/","Clear Status Errors")

Clear Status OutputClears Status window's IC-CAP Output.

Valid Objects

Page 316: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

315

IC-CAP (prog)

menu_func style command: none

Example

iccap_func("/","Clear Status Output")

Clear Table or Clear Parameter TableAutomates the Clear Table button on the Parameter folder in the Plot Optimizer windowand in the Extract/Optimize folder.

Valid Objects

TRANSFORM (prog), PlotOptimizer (prog)

menu_func style command: none

Deletes all parameters and variables in the optimizer's parameter folder.

Example

iccap_func("./CGaas1/dc/igvg_0vs","Clear Table")

iccap_func("./PlotOptimizer","Clear Table")

See Also

Clear Plot Optimizer (prog)

CloseAutomates the IC-CAP/Simulation Debugger or Plot window's File > Close functionality.

Valid Objects

Simulation Debugger (prog), PLOT (prog)

menu_func style command: "Close"

Closes the Simulation Debugger or Plot window if open.

Example

iccap_func("Simulation Debugger","Close")

! closed Simulation Debugger

iccap_func("/npn/dc/fgummel/ibicvsve","Close")

! closes plot

Close AllAutomates the Model window's File > Close functionality.

Valid Objects

MODEL (prog), DUT (prog), SETUP (prog)

menu_func style command: "Close All"

Closes the model window and all associated windows, or all plot windows within a namedDUT or setup.

Example

Page 317: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

316

iccap_func("/CGaas1","Close All")

! closes model and all children

iccap_func("/CGaas1/dc","Close All")

! closes all plots within DUT

Close BranchAutomates the action of closing a DUT on the DUTs/Setups tree.

Valid Objects

DUT (prog)

menu_func style command: none

Closes a DUT on the DUTs/Setups tree. By default, if you fabricate new DUTs withiccap_func Add DUT, the branch will be in the open state. Use this iccap_func to close it.

Example

iccap_func("/mymodel/mydut","Close Branch")

See Also

Open Branch (prog)

Close Error LogAutomates the IC-CAP/Status window's Close Error Log functionality.

Valid Objects

IC-CAP (prog)

menu_func style command: none

Closes the error log file.

Example

iccap_func("ic-cap","Close Error Log")

Close GUIAutomates closing an instance of a GUI item.

Valid Objects

GUI Item (prog)

menu_func style command: none

Closes the named instance of a GUI item. Although no longer displayed, the GUI item stillreacts to modifications to the variables page, etc.

Example

iccap_func("/mdl/dut/orSet/GUIName","Close GUI","InstanceName")

See Also

Add GUI (prog), Close Single GUI (prog), Destroy GUI (prog), Destroy Single GUI (prog),Display Modal GUI (prog), Display Modeless GUI (prog), Display Single Modal GUI (prog),Display Single Modeless GUI (prog), Set GUI Callbacks (prog), Set GUI Options (prog)

Page 318: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

317

Close HardwareAutomates the functionality of the File > Close Window menu pick in the Hardware Setupwindow.

Valid Objects

Hardware (prog)

menu_func style command: none

This function closes the Hardware Setup window.

Example

iccap_func("Hardware","Close Hardware")

Close License WindowAutomates the functionality of the OK button in the License Status window. The windowmust be currently displayed (either by a License Status call or by choosing Tools > LicenseStatus in the Main window).

Valid Objects

IC-CAP (prog)

menu_func style command: none

This function closes the License Status window.

Example

iccap_func("IC-CAP","Close License Window")

Close Output LogAutomates the IC-CAP/Status window's Close Output Log functionality.

Valid Objects

IC-CAP (prog)

menu_func style command: none

Closes the output log file.

Example

iccap_func("ic-cap","Close Output Log")

Close Single GUIAutomates closing a single displayed GUI item.

Valid Objects

GUI Item (prog)

menu_func style command: none

Closes the displayed GUI item. Although no longer displayed, the GUI item still reacts tomodifications to the variables page, etc.

Example

Page 319: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

318

iccap_func("/mdl/dut/orSet/GUIName","Close Single GUI")

See Also

Add GUI (prog), Close GUI (prog), Destroy GUI (prog), Destroy Single GUI (prog), DisplayModal GUI (prog), Display Modeless GUI (prog), Display Single Modal GUI (prog), DisplaySingle Modeless GUI (prog), Set GUI Callbacks (prog), Set GUI Options (prog)

ColorAutomates the Options > Session Settings > Color menu pick in a plot window.

Valid Objects

PLOT (prog)

Toggles between color and black and white. Each time you c all you either go to color or toblack and white.

Example

iccap_func("/CGaas1/dc/igvg_0vs/vs/ig_vs_vg","Color")

CopyAutomates copying an item to a new name, but does not permit undo or paste aftercompletion.

Valid Objects

MODEL (prog), MACRO (prog), DUT (prog), SETUP (prog), INPUT (prog), OUTPUT (prog),TRANSFORM (prog), PLOT (prog), Circuit (prog), Test Circuit (prog), Parameter Set(prog), Device Parameter Set (prog), GUI Item (prog).

menu_func style command: "Copy"

Prompts for the name of the copied item, or uses the optional third argument if provided.The name of the copied item is determined relative to the item being copied, not relativeto the transform/macro being run. Whether prompted or supplying the optional thirdargument, the name of the copied item must name the item. Thus to copy item item tocontainer container, you must specify the copied name as container/item, not simplycontainer.

Example

iccap_func("/CGaas1","Copy","myCGaas1")

iccap_func("/CGaas1/extract","Copy","myCGaas1/extract2")

iccap_func("/mymodel/myGUI.subgui","Copy","newgui")

! creates /mymodel/myGUI.newgui

iccap_func("/mymodel/myGUI.subgui","Copy","./newGUI")

! creates /mymodel/newGUI (name relative to copied item)

Copy to ClipboardAutomates the Options > Copy to Clipboard menu pick in a plot window. This feature isonly available for the PC version of IC-CAP.

Valid Objects

PLOT (prog)

menu_func style command: none

Example

Page 320: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

319

iccap_func("/CGaas1/dc/igvg_0vs/vs/ig_vs_vg","Copy to Clipboard")

Copy to VariablesAutomates the Options > Copy to Variables menu pick in a plot window.

Valid Objects

PLOT (prog)

menu_func style command: "Set Variables"

Sets X_HIGH, X_LOW, Y_HIGH, and Y_LOW if those variables exist somewhere that theplot can see them and if a box has been selected on the graph. This function is notavailable for the Multiplot window.

Example

iccap_func("/CGaas1/dc/igvg_0vs/vs/ig_vs_vg","Copy to Variables")

Create ImageAutomates saving an image of a plot with specifying width in pixels, height in pixels anddpi (pixels or dots per inch) of the image.

Valid Objects

PLOT (prog)

menu_func style command: none

Saves an image of the named plot in .png format using the specified file name, width,height and dpi.

Example

iccap_func("/CGaas1/dc/igvg_0vs/vs/ig_vs_vg","Create

Image","nmos2_idvsvg.png",600,600,96)

Create Variable Table VariableAutomates adding a new variable to a Variable table.

Valid Objects

IC-CAP (prog), MODEL (prog), DUT (prog), SETUP (prog)

menu_func style command: none

Uses one anticipated argument to name the variable to add to the Variable table on thenoted object. Note, if this variable already exists, no action is taken.

NoteYou cannot directly refer to a newly created variable in the PEL program that created it. Indirectreferences such as lookup_var() and iccap_func with "Set Variable Table Value" will work.

Variable identification is handled when a PEL program is parsed. Assuming 'newVar' does not exist in anyVariable table, the following code example treats newVar as a local variable:

iccap_func(".","CreateVariableTableVariable","newVar")

newVar=12

! newVar is local to PEL only, won't reference Variable table

However, if you run the same lines twice, the second time the iccap_func does nothing and newVar isidentified in the Variable table before the program runs, and newVar will refer to the Variable table.

Page 321: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

320

Examples

iccap_func("/npn","CreateVariableTableVariable","newVariable")

See Also

Set Table Field Value (prog), Set Variable Table Value (prog)

Data MarkersAutomates the Options > Data Markers menu pick in a plot window.

Valid Objects

PLOT (prog)

menu_func style command: "Line Number On Off"

Toggles whether Data Markers are displayed on the plot.

Example

iccap_func("/CGaas1/dc/igvg_0vs/vs/ig_vs_vg","Data Markers")

DeleteAutomates Edit > Delete (no Undo) menu selection.

Valid Objects

MODEL (prog), MACRO (prog), DUT (prog), SETUP (prog), INPUT (prog), OUTPUT (prog),TRANSFORM (prog), PLOT (prog)

menu_func style command: "Delete"

Deletes the named object from the system. No Undo

Example

iccap_func("/CGaas1","Delete")

Delete Active InstrAutomates the functionality of the Delete button in the Hardware Setup window'sInstrument List field.

Valid Objects

Hardware (prog)

menu_func style command: "Delete Active Instr"

Deletes the instrument selected in the Instrument List from the Active Instrument List. Ifthis function were executed manually, the user would select the instrument in theInstrument List field and press the "Delete" button. This functionality is emulated in PELby appending the instrument to be deleted in the format:

"library name.select code.address"

followed by "ok" to the end of the command string.

Where

library name is the instrument model number exactly as it is listed in theInstrument Library.

Page 322: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

321

select code is the bus address (in decimal notation) of the GPIB card.address is the address (in decimal notation) of instrument, as set on theinstrument itself.

Example

iccap_func("Hardware","Delete Active Instr","HP8510.7.16","ok")

Delete All User RegionsDeletes all user defined regions.

Valid Objects

PLOT (prog)

menu_func style command: none

Example

iccap_func("dc/fgummel/icibvsve", "DeleteAllUserRegions")

See Also

Delete User Region (prog), Set User Region (prog)

Delete Global RegionsAutomates the Optimizer > Global Region > Delete All menu pick in a plot window.

Valid Objects

PLOT (prog)

menu_func style command: none

Deletes all global trace regions.

Example

iccap_func("./dc/fgummel/ibicvsve", "DeleteGlobalRegions")

! Specify plot number for Multiplot

iccap_func("./dc/fgummel/my_multiplot", "DeleteGlobalRegions", "1")

See Also

Add Global Region (prog)

Delete Interface FileAutomates the functionality of the "Delete Interface" button in the Hardware Setupwindow's GPIB Interface field.

Valid Objects

Hardware (prog)

menu_func style command: "Delete Active Interface"

Deletes a GPIB Interface from the system. If this function were executed manually, theuser would select the interface to be delete from the GPIB Interface list and press the"Delete Interface" button. This functionality is emulated in PEL by appending the interfacename to be deleted followed by "ok" to the end of the command string.

Example

iccap_func("Hardware","Delete Interface File","hpib","ok")

Page 323: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

322

Delete Trace RegionsAutomates the Optimizer > trace > Trace Optimizer Region > DeleteAll menu pick in aplot window.

Valid Objects

PLOT (prog)

menu_func style command: none

Deletes all existing trace optimizer regions for the selected trace.

Example

iccap_func("./dc/fgummel/ibicvsve", "DeleteTraceRegions","Y Data 0")

! Specify plot number for Multiplot

iccap_func("./dc/fgummel/my_multiplot","DeleteTraceRegions","Y Data 0", "1")

See Also

Add Trace Region (prog)

Delete User RegionDeletes specified user defined region.

Valid Objects

PLOT (prog)

menu_func style command: none

Example

iccap_func("dc/fgummel/icibvsve","DeleteUserRegion","my_region_name")

See Also

Delete All User Regions (prog), Set User Region (prog)

Destroy GUIAutomates closing an instance of a GUI item and frees the associated memory.

Valid Objects

GUI Item (prog)

menu_func style command: none

Closes the named instance of a GUI item and frees the associated memory. The nextDisplay needs to build the entire item again.

Example

iccap_func("/mdl/dut/orSet/GUIName","Destroy GUI","InstanceName")

See Also

Add GUI (prog), Close GUI (prog), Close Single GUI (prog), Destroy Single GUI (prog),Display Modal GUI (prog), Display Modeless GUI (prog), Display Single Modal GUI (prog),Display Single Modeless GUI (prog), Set GUI Callbacks (prog), Set GUI Options (prog)

Destroy Single GUI

Page 324: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

323

Automates closing a single displayed GUI item and frees the associated memory.

Valid Objects

GUI Item (prog)

menu_func style command: none

Closes the displayed GUI item and frees the associated memory. The next Display needsto build the entire item again.

Example

iccap_func("/mdl/dut/orSet/GUIName","Destroy Single GUI")

See Also

Add GUI (prog), Close GUI (prog), Close Single GUI (prog), Destroy GUI (prog), DisplayModal GUI (prog), Display Modeless GUI (prog), Display Single Modal GUI (prog), DisplaySingle Modeless GUI (prog), Set GUI Callbacks (prog), Set GUI Options (prog)

DiagnosticsAutomates functionality of IC-CAP/Main Tools > Options > Diagnostics.

Valid Objects

IC-CAP (prog)

menu_func style command: "Utilities/Diagnostics"

Does a diagnostic check on most objects in the system. Reports on data structureintegrity. Output is of the format:

Diagnostics check for <type> <name>: Errors listed here.Diagnostics check for <type> <name>: Errors listed here. . . .

If no errors are reported, IC-CAP is functioning normally.

Example

iccap_func("ic-cap","Diagnostics")

DiagnosticsAutomates the functionality of the Instruments > Usage menu pick in the Hardware Setupwindow.

Valid Objects

Hardware (prog)

menu_func style command: "Diagnostics"

This command displays the usages of the instruments specified in the model file.

Example

iccap_func("Hardware","Diagnostics")

Page 325: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

324

Disable AllAutomates the Plots > Disable All menu pick in the Plot Optimizer window.

Valid Objects

SETUP (prog), TRANSFORM (prog)

menu_func style command: none

Disables all open Plot windows in a model file.

Example

iccap_func("./PlotOptimizer","DisableAll")

Disable All TracesAutomates the Optimizer > Disable All Traces menu pick in a plot window.

Valid Objects

PLOT (prog)

menu_func style command: none

Disables all trace.

Example

iccap_func("dc/fgummel/icibvsve", "DisableAllTraces")

! Specify plot number for Multiplot

iccap_func("dc/fgummel/my_multiplot", "DisableAllTraces", "1")

Disable PlotAutomates the Optimizer > Enable/Disable Plot menu pick in a plot window.

Valid Objects

PLOT (prog)

menu_func style command: none

Disables the plot window.

Example

iccap_func("dc/fgummel/icibvsve", "DisablePlot")

! Specify plot number for Multiplot

iccap_func("dc/fgummel/my_multiplot", "DisablePlot", "1")

Disable SuppliesAutomates the functionality of the Instruments > Zero Sources menu pick in the HardwareSetup window.

Valid Objects

Hardware (prog)

menu_func style command: "Disable Supplies"

Page 326: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

325

This command sets the outputs of all signal sources found either by the "Rebuild ActiveList" function or as the result of a measurement.

Example

iccap_func("Hardware","Disable Supplies")

Disable TraceAutomates the Optimizer > trace > Disable menu pick in a plot window

Valid Objects

PLOT (prog)

menu_func style command: none

Disables the selected trace.

Example

iccap_func("dc/fgummel/icibvsve", "DisableTrace", "Y Data 1")

! Specify plot number for Multiplot

iccap_func("dc/fgummel/my_multiplot", "DisableTrace","Y Data 1", "1")

Display Found InstrsAutomates the functionality of the Instruments > Display menu pick in the HardwareSetup window.

Valid Objects

Hardware (prog)

menu_func style command: "Display Found Instrs"

This command displays all the devices found on the bus either during the execution of the"Rebuild Active List" command or as the result of a measurement.

Example

iccap_func("Hardware","Display Found Instrs")

Display Modal GUIAutomates displaying a named instance of a modal GUI.

Valid Objects

GUI Item (prog)

menu_func style command: none

Since the third argument is a unique name for that instance of the dialog, you can raisethree identical dialogs if it makes sense to do so.

Example

iccap_func("/mdl/dut/orSet/GuiName","Display Modal GUI","InstanceName")

See Also

Add GUI (prog), Close GUI (prog), Close Single GUI (prog), Destroy GUI (prog), DestroySingle GUI (prog), Display Modeless GUI (prog), Display Single Modal GUI (prog), Display

Page 327: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

326

Single Modeless GUI (prog), Set GUI Callbacks (prog), Set GUI Options (prog)

Display Modeless GUIAutomates displaying a named instance of a modeless GUI.

Valid Objects

GUI Item (prog)

menu_func style command: none

Since the third argument is a unique name for that instance of the dialog, you can raisethree identical dialogs if it makes sense to do so.

Example

iccap_func("/mdl/dut/orSet/GuiName","Display Modeless GUI","InstanceName")

See Also

Add GUI (prog), Close GUI (prog), Close Single GUI (prog), Destroy GUI (prog), DestroySingle GUI (prog), Display Modal GUI (prog), Display Single Modal GUI (prog), DisplaySingle Modeless GUI (prog), Set GUI Callbacks (prog), Set GUI Options (prog)

Display PlotAutomates the Display Plot functionality.

Valid Objects

PLOT (prog)

menu_func style command: "Display Plot"

Displays the named plot.

Examples:

iccap_func("DC/forward/log_ia_va","Display Plot")

iccap_func("MultiPlot/wafermap_sim/WaferMap","Display Plot")

Display PlotsAutomates the Data > Plots > Display All functionality.

Valid Objects

MODEL (prog), DUT (prog), SETUP (prog)

menu_func style command: "Display Plots"

Displays all plots available in the named Model, named DUT, or named setup.

Examples

iccap_func("/CGaas1/dc","Display Plots")

iccap_func("/CGaas1/dc/igvg_0vs","Display Plots")

iccap_func("/CGaas1","Display Plots")

Display Single Modal GUIAutomates displaying a single modal GUI item.

Page 328: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

327

Valid Objects

GUI Item (prog)

menu_func style command: none

Since a name is not required, you can only show the dialog once using this command. Thisis useful for callbacks-see the properties for the Wizard GUI Item's Cancel button in thegui_tutorial.mdl.

Example

iccap_func("/mdl/dut/orSet/GuiName","Display Single Modal GUI")

See Also

Add GUI (prog), Close GUI (prog), Close Single GUI (prog), Destroy GUI (prog), DestroySingle GUI (prog), Display Modal GUI (prog), Display Modeless GUI (prog), Display SingleModeless GUI (prog), Set GUI Callbacks (prog), Set GUI Options (prog)

Display Single Modeless GUIAutomates displaying a single modeless GUI item.

Valid Objects

GUI Item (prog)

menu_func style command: none

Since a name is not required, you can only show the dialog once using this command. Thisis useful for callbacks-see the properties for the Wizard GUI Item's Cancel button in thegui_tutorial.mdl.

Example

iccap_func("/mdl/dut/orSet/GuiName","Display Single Modeless GUI")

See Also

Add GUI (prog), Close GUI (prog), Close Single GUI (prog), Destroy GUI (prog), DestroySingle GUI (prog), Display Modal GUI (prog), Display Modeless GUI (prog), Display SingleModal GUI (prog), Set GUI Callbacks (prog), Set GUI Options (prog)

Draw Diag LineAutomates the Options > Draw Diag Line menu pick in a plot window

Valid Objects

PLOT (prog)

menu_func style command: "Draw Diag Line"

Draws a solid line along the diagonal. Acts as a toggle, each time you call you either drawit or take it down.

Example

iccap_func("/CGaas1/dc/igvg_0vs/vs/ig_vs_vg","DrawDiagLine")

! Specify plot number for Multiplot

iccap_func("/CGaas1/dc/igvg/my_multiplot","DrawDiagLine","1")

Dump To Plotter

Page 329: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

328

Provided to be compatible with Version 4.5 style of printing

Valid Objects

PLOT (prog)

menu_func style command: "Dump To Printer"

Prompts for the name of the command through which to pipe the HPGL file. May beanticipated by a third argument. Prints the graphical plot.

Example

iccap_func("/CGaas1/dc/igvg_0vs/vs/ig_vs_vg","Dump To Plotter","lp -

dmyprinter")

See Also

Print Via Server (prog), Dump To Printer (prog), Dump Via Server (prog)

Dump To PrinterProvided to be compatible with 4.5 style of printing.

Valid Objects

PLOT (prog)

menu_func style command: "Dump To Printer"

Prompts for the name of the command through which to pipe the required file. May beanticipated by a third argument. Prints the graphical plot.

NoteThe format of the file passed to the command will be PostScript. This is different from the 4.5 release.(Dump Via Server is recommended.)

If existing PEL code passes a command as an additional parameter, it must be modified to expectPostScript instead of the 4.5 formats.

Example

iccap_func("/CGaas1/dc/igvg_0vs/vs/ig_vs_vg","Dump To Printer","lp -

dmyprinter")

See Also

Print Via Server (prog), Dump To Plotter (prog), Dump Via Server (prog)

Dump To StdoutAutomates the "Dump To Stdout" button on the 'View Data' window.

Valid Objects

INPUT (prog), OUTPUT (prog), TRANSFORM (prog)

menu_func style command: "Dump To Stdout"

Writes the text that would go in the 'View Data' block out to the output window of theStatus window. Useful if running a logfile of the output window and you want to monitoryour automation.

Example

Page 330: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

329

iccap_func("CGaas1/dc/igvg_0vs/vs","Dump To Stdout")

Dump Via ServerAutomates printing to supported file types.

Valid Objects

PLOT (prog)

menu_func style command: none (see "Send to Printer")

Provides functionality for the HPGL2 printing capability available in the File > Print dialogbox. For the PC, this also provides functionality for the .emf file output accessed in the File> Print dialog box. Finally, it provides the capability to create a black and white postscriptfile. Note, this is for backward compatibility only and this black and white postscript filecan only be printed via this command-there is no user interface access to generating sucha postscript file.

This iccap_func() prompts with questions for additional arguments. Initially you areprompted "Print to a File?"

if you answer "Y", you are prompted for a filename and then for the format

if you answer "N", a failure is indicated since this option is not available startingwith IC-CAP 2004.

Examples:

! following line creates an HPGL2 file

iccap_func("myPlot","Dump Via Server","Y","hpglfile.hgl","HPGL2")

! following line creates a black & white postscript file

iccap_func("myPlot","Dump Via Server","Y","psfile.ps","PS")

! following line will create a .emf file on PC only

iccap_func("myPlot","Dump Via Server","Y","emffile.emf","EMF")

See Also

Send To Printer (prog), Dump To Printer (prog), Dump To Plotter (prog), and VariablesPAPER (prog) and PLOT_SCALE_FACTOR (prog)

Dump Via Server UIAutomates a Plot window's File > Print functionality.

Valid Object

PLOT (prog)

Displays the Print dialog box for printing a graphical plot.

Example

iccap_func("myPlot","Dump Via Server UI")

See Also

Print Via Server (prog)

EditAutomates the IC-CAP/Main window's File > Restore functionality or an Input, Output, orPlot's Edit… functionality.

Valid Objects

MODEL (prog), INPUT (prog), OUTPUT (prog), PLOT (prog)

Page 331: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

330

menu_func style command: "Edit"

Opens the Model window for the specified model. For Inputs, Outputs, or Plots, opens thedialog box for editing the definition of that Input, Output, or Plot. You cannot use extraarguments to fill in the dialog box. For that functionality, use Set Table Field Value (prog)instead.

NoteThe dialog box for editing the definition of an Input, Output, or Plot actually edits a temporary Input,Output, or Plot that is thrown away if the user clicks Cancel. If the user clicks OK, then the temporaryInput, Output, or Plot is copied over the original Input, Output, or Plot. This changes the order of the plotsand also closes any open plots. The user will have to reopen the plots or refresh a Multiplot.

You can use iccap_find_children to inspect the setup after a call to Edit to determine if the user changedthe name of the edited setup. If the old name is no longer in the setup, then the new name will be the lastitem in the list. If the user clicked Cancel, the order will be unchanged.

Example

iccap_func("/CGaas1","Edit")

iccap_func("/npn/dc/fgummel/bvsic","Edit")

iccap_func("/npn/dc/fgummel/ic","Edit")

iccap_func("/npn/dc/fgummel/vc","Edit")

Enable AllAutomates the Plots > Enable All menu pick in the Plot Optimizer window.

Valid Objects

PlotOptimizer (prog)

menu_func style command: none

Enables all open Plot windows in a model file.

Example

iccap_func("./PlotOptimizer","Enable All")

Enable PlotAutomates the Optimizer > Enable/Disable Plot menu pick in a plot window

Valid Objects

PLOT (prog)

menu_func style command: none

Enables the plot window. Enabling the plot window synchronizes it with the Plot Optimizerwindow.

Example

iccap_func("dc/fgummel/icibvsve", "EnablePlot")

! Specify plot number for Multiplot

iccap_func("dc/fgummel/my_multiplot", "EnablePlot", "1")

! Apply to all plots in a Multiplot

iccap_func("dc/fgummel/my_multiplot", "EnablePlot")

Exchange Black-White

Page 332: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

331

Automates the Options > Session Settings > Exchange Black-White menu pick in a plotwindow.

Valid Objects

PLOT (prog)

menu_func style command: "Exchange Blk Wht"

Toggles the background color of the plot from black to white.

Example

iccap_func("/CGaas1/dc/igvg_0vs/vs/ig_vs_vg","Exchange Black-White")

ExecuteAutomates the Execute button on the Macro or Extract/Optimize Page.

Valid Objects

MACRO (prog), TRANSFORM (prog)

menu_func style command: "Execute" for macros and "Perform Transform" for transforms

Executes the named macro or transform.

Example

iccap_func("/CGaas1/extract","Execute")

iccap_func("/CGaas1/dc/igvg_0vs/rf_off","Execute")

NoteIf the macro contains a LINPUT statement, which prompts for user input, you can include the desiredresponses as additional arguments in the iccap_func statement.

Exit/Exit!ExitExit!

Automates the IC-CAP/Main window's File > Exit functionality.

Valid Objects

IC-CAP (prog)

menu_func style command: "Exit/Exit IC-CAP" which maps to the new "Exit" form

Shuts down the current IC-CAP session.

"Exit" will prompt the user to save files before exiting"Exit!" exits with no questions asked

Example

iccap_func("ic-cap","Exit")

iccap_func("ic-cap","Exit!")

Export Data MeasuredAutomates the Export Data button in the Measure/Simulate folder.

Valid Objects

Page 333: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

332

SETUP (prog)

menu_func style command: none

Prompts for the name of the file to export the measured data to, or uses the optional thirdargument if provided. (No provision is made for exporting transforms with this iccap_funcstatement.)

Example

iccap_func("/spar_vs_temp/ac/spar_vs_temp","Export Data

Measured","my_file.mdm")

Export DatasetAutomates the Model window's File > Export Data menu pick functionality.

Valid Objects

MODEL (prog), DUT (prog), SETUP (prog)

Exports the data to a dataset file (*.ds) in the specified path. If the optional thirdargument is not specified, prompts for the full path and file name.

Example

iccap_func("/CGaas1","Export Dataset","/tmp/data/my_dataset.ds")

iccap_func("/CGaas1/dc","Export Dataset","/tmp/data/my_dataset.ds")

iccap_func("/CGaas1/dc/igvg_0vs","Export Dataset","/tmp/data/my_dataset.ds")

See Also

Refresh Dataset (prog)

Export Data SimulatedAutomates the Export Data button in the Measure/Simulate folder.

Valid Objects

SETUP (prog)

menu_func style command: none

Prompts for the name of the file to export the simulated data to, or uses the optional thirdargument if provided. (No provision is made for exporting transforms with this iccap_funcstatement.)

Example

iccap_func("/spar_vs_temp/ac/spar_vs_temp","Export Data

Simulated","my_file.mdm")

ExtractAutomates the Extract menu picks.

Valid Objects

DUT (prog), SETUP (prog)

menu_func style command: "Extract"

Performs Extraction Transforms on all setups within named DUT or within named setup.

Page 334: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

333

Example

iccap_func("/CGaas1/dc","Extract")

iccap_func("/CGaas1/dc/igvg_0vs","Extract")

File Debug OnAutomates functionality of IC-CAP/Main Tools > Options > File Debug.

Valid Objects

IC-CAP (prog)

menu_func style command: "Utilities/File Debug On"

Logs most debug information to $HOME/.icdebug. Also prints certain information only tothe Status window.

NoteFile Debug On automatically turns Screen Debug Off.

Example

iccap_func("ic-cap","File Debug On")

See Also

Debug Off (prog), File Debug Off (prog)

File/Screen Debug OffFile Debug OffScreen Debug OffDebug Off

Automates functionality of IC-CAP/Main Tools > Options > File Debug and IC-CAP/MainTools > Options > Screen Debug by effectively turning the toggles off.

Valid Objects

IC-CAP (prog)

menu_func style command: "Utilities/Debug Off"

"File Debug Off", "Screen Debug Off", and "Debug Off" All have the same effect. They haltlogging of data either to the screen or file.

Note"File Debug Off" will halt Screen Debug if it was on.

Example

iccap_func("ic-cap","Debug Off")

See Also

File Debug On (prog), Screen Debug On (prog)

FooterAutomates the Options > Session Settings > Footer menu pick in a plot window

Valid Objects

Page 335: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

334

PLOT (prog)

Toggles the footer text on and off for the specified plot. If Show Absolute Error or ShowRelative Error is turned on, the error is displayed in the footer area and the footer text isturned off.

Example

iccap_func("./dc/fgummel/bvsic", "Footer")

! Specify plot number for Multiplot

iccap_func("./dc/fgummel/my_multiplot", "Footer", "1")

! Apply to all plots in a Multiplot

iccap_func("./dc/fgummel/my_multiplot", "Footer")

See Also

Footer Off (prog), Footer On (prog), Show Absolute Error (prog), Show Relative Error(prog) Footer Off

Turns off the footer text for the specified plot.

Valid Objects

PLOT (prog)

Example

iccap_func("./dc/fgummel/bvsic", "FooterOff")

! Specify plot number for Multiplot

iccap_func("./dc/fgummel/my_multiplot", "FooterOff", "1")

! Apply to all plots in a Multiplot

iccap_func("./dc/fgummel/my_multiplot", "FooterOff")

See Also

Footer (prog), Footer On (prog)

Footer OnTurns on the footer text for the specified plot

Valid Objects

PLOT (prog)

Example

iccap_func("./dc/fgummel/bvsic", "FooterOn")

! Specify plot number for Multiplot

iccap_func("./dc/fgummel/my_multiplot", "FooterOn", "1")

! Apply to all plots in a Multiplot

iccap_func("./dc/fgummel/my_multiplot", "FooterOn")

See Also

Footer (prog), Footer Off (prog)

Full Page PlotAutomates the Plots > Full Page Plot menu pick in a Multiplot window

Valid Objects

PLOT (prog)

In the Multiplot window, displays only the specified plot and hides all other plots. UseUndo Zoom to display all plots.

Page 336: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

335

Example

iccap_func("./dc/fgummel/my_multiplot", "FullPagePlot", "1")

See Also

Toggle Zoom (prog), Zoom Plot (prog), Undo Zoom (prog)

HeaderAutomates the Options > Session Settings > Header menu pick in a plot window

Valid Objects

PLOT (prog)

Toggles the header text on and off for the specified plot.

Example

iccap_func("./dc/fgummel/bvsic", "Header")

! Specify plot number for Multiplot

iccap_func("./dc/fgummel/my_multiplot", "Header", "1")

! Apply to all plots in a Multiplot

iccap_func("./dc/fgummel/my_multiplot", "Header")

See Also

Header Off (prog), Header On (prog)

Header OffTurns on the header text for the specified plot

Valid Objects

PLOT (prog)

Example

iccap_func("./dc/fgummel/bvsic", "HeaderOff")

! Specify plot number for Multiplot

iccap_func("./dc/fgummel/my_multiplot", "HeaderOff", "1")

! Apply to all plots in a Multiplot

iccap_func("./dc/fgummel/my_multiplot", "HeaderOff")

See Also

Header (prog), Header On (prog)

Header OnTurns on the header text for the specified plot

Valid Objects

PLOT (prog)

Example

iccap_func("./dc/fgummel/bvsic", "HeaderOn")

! Specify plot number for Multiplot

iccap_func("./dc/fgummel/my_multiplot", "HeaderOn", "1")

! Apply to all plots in a Multiplot

iccap_func("./dc/fgummel/my_multiplot", "HeaderOn")

See Also

Page 337: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

336

Header (prog), Header Off (prog)

Hide Highlighted CurvesDoes not highlight the curves that were marked highlighted.

Valid Objects

Plot

menu_func style command: none

This command allows you to retain the set of highlighted curves, but not display themhighlighted. Note the highlight set of curves will always highlight during an optimization.You can use this command to turn off the highlight after an optimization completes.

Example

iccap_func("dc/fgummel/icibvsve", "Hide Highlighted Curves")

! Do not show the curves highlighted, which have been marked

! highlighted in the 2nd subplot of my_muliplot.

! Specify the subplot number as "1"

iccap_func("dc/fgummel/my_multiplot", "Hide Highlighted Curves", "1")

! Do not show the curves highlighted, which have been marked

! highlighted in all the subplots of my_muliplot.

iccap_func("dc/fgummel/my_multiplot","Hide Highlighted Curves")

See Also

Mark Curve Highlighted (prog), Unmark Highlighted Curve (prog), Unmark All HighlightedCurves (prog), Show Highlighted Curves (prog)

Import CreateReads named MDM file, removes existing information from setup, then imports all headerinformation and data from the file to the setup object. If third argument is omitted, youwill be prompted for a filename.

Valid Objects

SETUP (prog)

menu_func style command: none

Data is read into the measured array for outputs of type M or B and into the simulatedarray for outputs of type S. This is identical to Import Create Measured or Simulated(prog).

Example

iccap_func("/myModel/myDut/mySetup","Import Create","/tmp/tmpfile.mdm")

iccap_func("/myModel/myDut/mySetup","Import Create")

! prompt user

See Also

Import Create Header Only (prog), Import Create Measured (prog), Import CreateSimulated (prog), Import Create Simulated or Measured (prog)

Import Create Header OnlyReads the header of the MDM file and creates or modifies the named setup to exactlymatch the shape of the data contained in the MDM file. No data is imported. If thirdargument is omitted, you will be prompted for a filename.

Page 338: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

337

Valid Objects

SETUP (prog)

menu_func style command: none

Example

iccap_func("/myModel/myDut/mySetup","Import Create Header Only","/tmp/tmpfile.mdm")

iccap_func("/myModel/myDut/mySetup","Import Create Header Only") ! prompt user

See Also

Import Create (prog), Import Create Measured (prog), Import Create Simulated (prog),Import Create Measured or Simulated (prog), Import Create Simulated or Measured(prog)

Import Create MeasuredReads named MDM file, removes existing information from setup, then imports all headerinformation and data from the file to the setup object. If third argument is omitted, youwill be prompted for a filename.

Valid Objects

SETUP (prog)

menu_func style command: none

Data is read into the measured array for outputs of type M or B and no data is read intothe simulated array for outputs of type S.

Example

iccap_func("/myModel/myDut/mySetup","Import Create Measured","/tmp/tmpfile.mdm")

iccap_func("/myModel/myDut/mySetup","Import Create Measured") ! prompt user

See Also

Import Create (prog), Import Create Header Only (prog), Import Create Simulated (prog),Import Create Measured or Simulated (prog), Import Create Simulated or Measured(prog)

Import Create Measured or SimulatedReads named MDM file, removes existing information from setup, then imports all headerinformation and data from the file to the setup object. If third argument is omitted, youwill be prompted for a filename.

Valid Objects

SETUP (prog)

menu_func style command: none

Data is read into the measured array for outputs type M or B and into the simulated arrayfor outputs type S. This is identical to Import Create (prog).

Example

iccap_func("/myModel/myDut/mySetup","Import Create Measured or Simulated","/tmp/tmpfile.mdm")

iccap_func("/myModel/myDut/mySetup","Import Create Measured or Simulated") ! prompt user

See Also

Page 339: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

338

Import Create Header Only (prog), Import Create Measured (prog), Import CreateSimulated (prog), Import Create Simulated or Measured (prog)

Import Create SimulatedReads named MDM file, removes existing information from setup, then imports all headerinformation and data from the file to the setup object. If third argument is omitted, youwill be prompted for a filename.

Valid Objects

SETUP (prog)

menu_func style command: none

Data is read into the simulated array for outputs type S or B and no data is read into themeasured array for outputs of type M.

Example

iccap_func("/myModel/myDut/mySetup","Import Create Simulated","/tmp/tmpfile.mdm")

iccap_func("/myModel/myDut/mySetup","Import Create Simulated") ! prompt user

See Also

Import Create (prog), Import Create Header Only (prog), Import Create Measured (prog),Import Create Measured or Simulated (prog), Import Create Simulated or Measured(prog)

Import Create Simulated or MeasuredReads named MDM file, removes existing information from setup, then imports all headerinformation and data from the file to the setup object. If third argument is omitted, youwill be prompted for a filename.

Valid Objects

SETUP (prog)

menu_func style command: none

Data is read into the simulated array for outputs of type S or B and into the measuredarray for outputs of type M.

Example

iccap_func("/myModel/myDut/mySetup","Import Create Simulated or Measured","/tmp/tmpfile.mdm")

iccap_func("/myModel/myDut/mySetup","Import Create Simulated or Measured") ! prompt user

See Also

Import Create (prog), Import Create Header Only (prog), Import Create Measured (prog),Import Create Simulated (prog), Import Create Measured or Simulated (prog)

Import DataAutomates the Model window's File > Import Data > Active Setup, All Setups in ActiveDUT, or All DUTs in a Model menu pick.

Valid Objects

MODEL (prog), DUT (prog), SETUP (prog)

Page 340: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

339

menu_func style command: none

For Model and DUT, MDM filenames are specified in MDM_FILE_PATH andMDM_FILE_NAME in the setups contained by the DUT or Model. For calls to Setup objects,either specify the name in the 3rd argument or you will be prompted for a filename.

Data is read into the measured array for outputs type M or B and into the simulated arrayfor outputs type S. This is identical to Import Measured or Simulated Data (prog).

Example

iccap_func("/CGaas1","Import Data")

! Imports data to all DUTs in a model

iccap_func("/CGaas1/dc","Import Data")

! Imports data to all Setups in a DUT

iccap_func("/CGaas1/dc/igvg_0vs","Import Data")

! Imports data to a single setup, prompts user

iccap_func("/CGaas1/dc/igvg_0vs","Import Data","tmp.mdm")

! Imports data to a single setup

See Also

Import Measured Data (prog), Import Measured or Simulated Data (prog), ImportSimulated Data (prog), Import Simulated or Measured Data (prog)

Import DeleteDeletes inputs and outputs from the named setup.

Valid Objects

SETUP (prog)

menu_func style command: none

Example

iccap_func("/CGaas1/dc/igvg_0vs","Import Delete")

Import Measured DataAutomates the Model window's File > Import Data > Active Setup, All Setups in ActiveDUT, or All DUTs in a Model menu pick and selects Measured only.

Valid Objects

MODEL (prog), DUT (prog), SETUP (prog)

menu_func style command: none

For Model and DUT, MDM filenames are specified in MDM_FILE_PATH andMDM_FILE_NAME in the setups contained by the DUT or Model. For calls to Setup objects,either specify the name in the 3rd argument or you will be prompted for a filename.

Data is read into the measured array for outputs of type M or B and no data is read intothe simulated array for outputs of type S.

Example

iccap_func("/CGaas1","Import Measured Data")

! Imports measured data to all DUTs in a model

iccap_func("/CGaas1/dc","Import Measured Data")

! Imports measured data to all Setups in a DUT

iccap_func("/CGaas1/dc/igvg_0vs","Import Measured Data")

! Imports measured data to a single setup and prompts user

Page 341: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

340

iccap_func("/CGaas1/dc/igvg_0vs","Import Measured Data","tmp.mdm")

! Imports measured data to a single setup

See Also

Import Data (prog), Import Measured or Simulated Data (prog), Import Simulated Data(prog), Import Simulated or Measured Data (prog)

Import Measured or Simulated DataAutomates the Model window's File > Import Data > Active Setup, All Setups in ActiveDUT, or All DUTs in a Model menu pick and selects Measured if available, otherwiseSimulated.

Valid Objects

MODEL (prog), DUT (prog), SETUP (prog)

menu_func style command: none

For Model and DUT, MDM filenames are specified in MDM_FILE_PATH andMDM_FILE_NAME in the setups contained by the DUT or Model. For calls to Setup objects,either specify the name in the 3rd argument or you will be prompted for a filename.

Data is read into the measured array for outputs type M or B and into the simulated arrayfor outputs type S. This is identical to Import Data (prog).

Example

iccap_func("/CGaas1","Import Measured or Simulated Data")

! Imports measured data if available, otherwise simulated

! data to all DUTs in a model

iccap_func("/CGaas1/dc","Import Measured or Simulated Data")

! Imports measured data if available, otherwise simulated

! data to all Setups in a DUT

iccap_func("/CGaas1/dc/igvg_0vs","Import Measured or Simulated Data")

! Imports measured data if available, otherwise simulated

! data to a single setup and prompts user

iccap_func("/CGaas1/dc/igvg_0vs","Import Measured or Simulated Data","tmp.mdm")

! Imports measured data if available, otherwise simulated

! data to a single setup

See Also

Import Data (prog), Import Measured Data (prog), Import Simulated Data (prog), ImportSimulated or Measured Data (prog)

Import Simulated DataAutomates the Model window's File > Import Data > Active Setup, All Setups in ActiveDUT, or All DUTs in a Model menu pick and selects Simulated only.

Valid Objects

MODEL (prog), DUT (prog), SETUP (prog)

menu_func style command: none

For Model and DUT, MDM filenames are specified in MDM_FILE_PATH andMDM_FILE_NAME in the setups contained by the DUT or Model. For calls to Setup objects,either specify the name in the 3rd argument or you will be prompted for a filename.

Data is read into the simulated array for outputs type S or B and no data is read into themeasured array for outputs of type M.

Example

Page 342: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

341

iccap_func("/CGaas1","Import Simulated Data")

! Imports simulated data to all DUTs in a model

iccap_func("/CGaas1/dc","Import Simulated Data")

! Imports simulated data to all Setups in a DUT

iccap_func("/CGaas1/dc/igvg_0vs","Import Simulated Data")

! Imports simulated data to a single setup and prompts user

iccap_func("/CGaas1/dc/igvg_0vs","Import Simulated Data","tmp.mdm")

! Imports simulated data to a single setup

See Also

Import Data (prog), Import Measured Data (prog), Import Measured or Simulated Data(prog), Import Simulated or Measured Data (prog)

Import Simulated or Measured DataAutomates the Model window's File > Import Data > Active Setup, All Setups in ActiveDUT, or All DUTs in a Model menu pick and selects Simulated if available, otherwiseMeasured.

Valid Objects

MODEL (prog), DUT (prog), SETUP (prog)

menu_func style command: none

For Model and DUT, MDM filenames are specified in MDM_FILE_PATH andMDM_FILE_NAME in the setups contained by the DUT or Model. For calls to Setup objects,either specify the name in the 3rd argument or you will be prompted for a filename.

Data is read into the simulated array for outputs of type S or B and into the measuredarray for outputs of type M.

Example

iccap_func("/CGaas1","Import Simulated or Measured Data")

! Imports simulated data if available, otherwise measured

! data to all DUTs in a model

iccap_func("/CGaas1/dc","Import Simulated or Measured Data")

! Imports simulated data if available, otherwise measured

! data to all Setups in a DUT

iccap_func("/CGaas1/dc/igvg_0vs","Import Simulated or Measured Data")

! Imports simulated data if available, otherwise measured

! data to a single setup and prompts user

iccap_func("/CGaas1/dc/igvg_0vs","Import Simulated or Measured Data","tmp.mdm")

! Imports simulated data if available, otherwise measured

! data to a single setup

See Also

Import Data (prog), Import Measured Data (prog), Import Measured or Simulated Data(prog), Import Simulated Data (prog)

Import TextAutomates the "Import Text..." button in the Circuit folder.

Valid Objects

Circuit (prog), Test Circuit (prog)

menu_func style command: "Read Netlist"

Prompts for the name of a file from which to read text. Places all text in the Circuit folder.Automatically performs Parse. An optional third argument may be specified to name the

Page 343: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

342

file.

Example

iccap_func("/CGaas1/Circuit","Import Text","mycirc.deck")

iccap_func("/CGaas1/dc/TestCircuit","Import Text","mycirc.deck")

I-O_LockAutomates the functionality of the Tools > Interface > Lock menu pick in the HardwareSetup window.

Valid Objects

Hardware (prog), HPIB Analyzer (prog)

menu_func style command: "I-O_Lock"

Because the GPIB allows multiple sessions on the same device or interface, the action ofopening does not mean the user has exclusive use. In some cases, the user might notwant others to have access to the devices on the bus or interface while he is using it. Insuch cases, the interface should be locked, which restricts other device and interfacesessions from accessing it. This function sends a lock command to the currently activeinterface.

Example

iccap_func("Hardware/HPIBAnalyzer","I-O_Lock")

I-O_ResetAutomates the functionality of the Tools > Interface > Reset menu pick in the HardwareSetup window.

Valid Objects

Hardware (prog), HPIB Analyzer (prog)

menu_func type command: "I-O_Reset"

This function sends a reset command to the currently active interface.

Example

iccap_func("Hardware/HPIBAnalyzer","I-O_Reset")

I-O_Screen Debug OFFAutomates the functionality of the View > Screen Debug menu pick in the Hardware Setupwindow.

Valid Objects

Hardware (prog), HPIB Analyzer (prog)

menu_func style command: "I-O_Screen Debug OFF"

This command turns off the IC-CAP GPIB debugger and removes the check mark from themenu item.

Example

iccap_func("Hardware/HPIBAnalyzer","I-O_Screen Debugger OFF")

Page 344: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

343

I-O_Screen Debug ONAutomates the functionality of the View > Screen Debug menu pick in the Hardware Setupwindow. This menu item is a toggle. If a checkmark appears next to the it, the debuggeris ON; otherwise, it is OFF.

Valid Objects

Hardware (prog), HPIB Analyzer (prog)

menu_func style command: "I-O_Screen Debug ON"

This command turns on the IC-CAP GPIB debugger which produces detailed statusmessages as the various operations are executed. This information is displayed in the IC-CAP/Status window and, if visible, the Hardware Setup window.

Example

iccap_func("Hardware/HPIBAnalyzer","I-O_Screen Debug ON")

I-O_UnlockAutomates the functionality of the Tools > Interface > Unlock menu pick in the HardwareSetup window.

Valid Objects

Hardware (prog), HPIB Analyzer (prog)

menu_func style command: "I-O_Unlock"

This function sends a unlock command to the currently active interface.

Example

iccap_func("Hardware/HPIBAnalyzer","I-O_Unlock")

LegendAutomates the Options > Session Settings > Legend menu pick in a plot window.

Valid Objects

PLOT (prog)

menu_func style command: none

Toggles the legend on and off for the specified plot.

Example

iccap_func("./dc/fgummel/bvsic", "Legend")

! Specify plot number for Multiplot

iccap_func("./dc/fgummel/my_multiplot", "Legend", "1")

! Apply to all plots in a Multiplot

iccap_func("./dc/fgummel/my_multiplot", "Legend")

See Also

Legend Off (prog), Legend On (prog)

Legend OffTurns off the legend for the specified plot

Valid Objects

Page 345: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

344

Valid Objects

PLOT (prog)

menu_func style command: none

Example

iccap_func("./dc/fgummel/bvsic", "LegendOff")

! Specify plot number for Multiplot

iccap_func("./dc/fgummel/my_multiplot", "LegendOff", "1")

! Apply to all plots in a Multiplot

iccap_func("./dc/fgummel/my_multiplot", "LegendOff")

See Also

Legend (prog), Legend On (prog)

Legend OnTurns on the legend for the specified plot

Valid Objects

PLOT (prog)

menu_func style command: none

Example

iccap_func("./dc/fgummel/bvsic", "LegendOn")

! Specify plot number for Multiplot

iccap_func("./dc/fgummel/my_multiplot", "LegendOn", "1")

! Apply to all plots in a Multiplot

iccap_func("./dc/fgummel/my_multiplot", "LegendOn")

See Also

Legend (prog), Legend Off (prog)

License StatusBrings up the same dialog that IC-CAP/Main Tools > License Status does.

Valid Objects

IC-CAP (prog)

menu_func style command: "Utilities/Available Codewords"

Launches the 'License Status' dialog. However, this cannot be modified while PEL is stillrunning. This iccap_func is useful only for informational purposes while the macro isrunning.

Example

iccap_func("ic-cap","License Status")

Listen Active AddressAutomates the functionality of the Tools > Address > Listen menu pick in the HardwareSetup window.

Valid Objects

Hardware (prog), HPIB Analyzer (prog)

Page 346: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

345

menu_func style command: "Listen Active Address"

This function sends a LISTEN command to the device at the currently active address. Theresult is displayed in the IC-CAP/Status window and, if visible, the Hardware Setupwindow.

Example

iccap_func("Hardware/HPIBAnalyzer","Listen Active Address")

Macro File ExecuteAutomates the functionality of the Tools > Macros > Execute menu pick in the HardwareSetup window.

Valid Objects

Hardware (prog), HPIB Analyzer (prog)

menu_func style command: "Macro File Execute"

This command executes the IC-CAP GPIB macro file name saved by the "Macro FileSpecify" command.

Example

iccap_func("Hardware/HPIBAnalyzer","Marco File Execute")

//==========================================================

//

// IC-CAP GPIB Analyzer macro command file description:

//

//==========================================================

Macro command files are read by the GPIB Analyzer and lines in the files executeactions, one action per line.Blank lines, or lines with only white spaces are ignored.Some lines are sent, others are 'directives'In any line, leading white spaces are ignoredIf, after optional leading white spaces, the directive character is seen, then that lineis considered a directive. The dollar sign ($) is the directive characterIf the first non-white character does not indicate directive, then this character and allsubsequent characters in the line are sent to the active addressThere is a means to send control characters, and this is the only means to affixterminators

\b \r \n \0 \f \t \v\<any other char>

will first be converted to control characters or otherwise: backspace, CR,newline(=linefeed), null, formfeed, tab, vertical tab, backslash, <any otherchar>, respectively. \<any other char> behaves as a non-operation-it causes<any other char> to be sent. Note that a backslash and the directive char canalways be sent, if preceded by backslash.

Directives have a single command character (not case sensitive) following the Dollarsign ($) and may have trailing argument(s). White spaces between the commandcharacter and 1st argument are optional. Any characters on a line following the'directive [arguments]' are ignored. This allows you to add comments followingdirective statements as desired.The directives are shown next:

Page 347: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

346

$c indicates current line is a comment

$r reads into the read buffer

$a2 sets the active address (2 in this case)

$w3 wait for 3 seconds; if argument absent, default of ~2 chosen

$p prints the contents of the read buffer

$m message panel-user can indicate stop or continue; system will append the words "; want tocontinue?" to the characters that follow $m on the command line.

$n print something to the Output panel IC-CAP/Status window and in the Hardware Setup windowStatus panel, if visible.

$s serial poll of the device at the active address. If an integer parameter is present, then it is a serialpoll mask, and the program will loop until <poll result> AND <integer mask> is non-zero, i.e., adesired 'bit' is set; if mask is negative, it loops until a mask-specified bit is clear.

$i 'call' another file and execute the macros in it. It should take the form: $i /users/icuser/macrofile.

An example of a legal macro file:

$c this is an example IC-CAP GPIB Analyzer macro file ...

$a 16 active address = 16

$c send request for instrument ID string:

*IDN?\n

$r read answer back

$p print it

RST\n

$w2 wait 2 seconds after sending RST to instrument

$c next will open window, and ask:

$c 'Will now call other_macro_file; want to continue?'

$m Will now call other_macro_file

$i /icecap/other_macro_file 'call' another macro file

RST\n

$w2 wait 2 seconds after sending RST to instrument

Macro File SpecifyAutomates the functionality of the Tools > Macros > Specify menu pick in the HardwareSetup window.

Valid Objects

Hardware (prog), HPIB Analyzer (prog)

menu_func style command: "Macro File Specify"

This function saves the name of an IC-CAP GPIB Macro file to be executed later. If thismenu pick were done manually, a dialog box would pop up requesting the name of themacro file. This functionality is emulated in PEL by appending the name of the file desiredand "ok" to the command string.

Example

iccap_func("Hardware/HPIBAnalyzer","Marco File

Specify","../mdl/bus_analyzer_macro.mac","OK")

Manual RescaleAutomates the Options > Manual rescale menu pick of a plot window.

NoteThis function is included for backward compatibility only. We recommend that you use Plot Scale. SeeScale Plot/Scale Plot Preview (prog).

Page 348: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

347

Valid Objects

PLOT (prog)

menu_func style command: none

Adjusts the axes' scales to values entered in statement. Scale values are entered in theorder X-min, Y-min, X-max, Y-max.

Example

iccap_func("/CGaas1/dc/igvg_0vs/ig_vs_vg","ManualRescale","-2,0,0.1,0.01")

Manual SimulationAutomates the IC-CAP/Simulation Debugger File > Manual Simulation functionality.

Valid Objects

Simulation Debugger (prog)

menu_func style command: "Manual Simulate"

Performs a manual simulation on the last simulation run. Simulation Debugger windowmust be open. Must have an Input file from a previous simulation in the simulationdebugger input window.

Example

iccap_func("SimulationDebugger","Manual Simulation")

Mark Curve HighlightedMarks a specific curve as a highlighted curve.

Valid Objects

Plot

menu_func style command: none

Example

! Mark the 1st curve of the 2nd trace as highlighted cure.

! Specify the trace number as "1", specify the curve number

! as "0"

iccap_func("dc/fgummel/icibvsve", "Mark Curve Highlighted", "1", "0")

! Mark the 1st curve of the 1st trace of the 2nd subplot as

! highlighted cure.

! Specify the trace number as "0", specify the curve number

! as "0",

! Specify the subplot number as "1"

iccap_func("dc/fgummel/my_multiplot", "Mark Curve Highlighted", "0", "0","1")

See also

Unmark Highlighted Curve (prog), Unmark All Highlighted Curves (prog), Hide HighlightedCurves (prog), Show Highlighted Curves (prog)

MeasureAutomates the Measure menu picks.

Valid Objects

DUT (prog), SETUP (prog)

Page 349: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

348

menu_func style command: "Measure"

Performs a measurement on all setups within named DUT or within named setup.

Example

iccap_func("/CGaas1/dc","Measure")

iccap_func("/CGaas1/dc/igvg_0vs","Measure")

Memory RecallAutomates the "Memory Recall" button on a Model Parameters page.

Valid Objects

Parameter Set (prog), Device Parameter Set (prog)

menu_func style command: "Recall Stored Values"

Restores the parameter values previously stored via Memory Store.

Example

iccap_func("/CGaas1/ParameterSet","Memory Recall")

iccap_func("/CGaas1/dc/DeviceParameterSet","Memory Recall")

See Also

Memory Store (prog)

Memory StoreAutomates the "Memory Store" button on a Model Parameters page.

Valid Objects

Parameter Set (prog), Device Parameter Set (prog)

menu_func style command: "Store Current Values"

Makes a temporary, internal, hidden copy of the current state of the parameter page.

Example

iccap_func("/CGaas1/ParameterSet","Memory Store")

iccap_func("/CGaas1/dc/DeviceParameterSet","Memory Store")

See Also

Memory Recall (prog)

New DUTAutomates the Model window's Add... Button functionality.

Valid Objects

MODEL (prog)

menu_func style command: none

Adds a new DUT to the named model. Prompts for the name unless one is provided as theoptional third argument.

Page 350: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

349

Example

iccap_func("/CGaas1","New DUT","Dut1")

New Input/Output/Transform/PlotNew InputNew OutputNew TransformNew Plot

Automates the "New..." Buttons under the various setup pages.

Valid Objects

SETUP (prog)

menu_func style command: none

Adds a new Setup child the named Setup. Will prompt for the name unless one is providedas the optional third argument.

Example

iccap_func("/CGaas1/ac/s_at_f","New Input","input1")

iccap_func("/CGaas1/ac/s_at_f","New Output","output1")

iccap_func("/CGaas1/ac/s_at_f","New Transform","transform1")

iccap_func("/CGaas1/ac/s_at_f","New Plot","plot1")

New MacroAutomates the Macros Page New... Button functionality.

Valid Objects

MODEL (prog)

menu_func style command: none

Adds a new macro to the named model. Prompts for the name unless one is provided asthe optional third argument.

Example

iccap_func("/CGaas1","New Macro","Dut1")

New ModelAutomates the IC-CAP/Main window's File > New functionality.

Valid Objects

IC-CAP (prog)

menu_func style command: none

Adds a new model to the system. An optional third parameter will be the name for themodel, otherwise a prompt will appear for the name of the new model.

Example

iccap_func("/","New Model")

iccap_func("/","New Model","MyModel")

Page 351: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

350

New SetupAutomates the "Add..." Button under the DUTs/Setups tree.

Valid Objects

DUT (prog)

menu_func style command: none

Adds a new Setup the named DUT. Will prompt for the name unless one is provided as theoptional third argument.

Example

iccap_func("/CGaas1/dc","New Setup","Setup1")

OpenAutomates the File > Open menu pick in the model window when replace is selected orwhen File > Open is chosen in the system variables window.

Valid Objects

GUI Items (prog), MODEL (prog), Variables (prog), Circuit (prog), Parameter Set (prog),MACRO (prog), DUT (prog), Test Circuit (prog), Device Parameter Set (prog), SETUP(prog), Instrument Options (prog), INPUT (prog), OUTPUT (prog), TRANSFORM (prog),PLOT (prog)

menu_func style command: "Read From File"

Prompts for the new name of the file to read, or uses the optional third argument ifprovided. This will read the file over the top of the specified object leaving the nameunchanged. Destroys all previous contents of the named object.

Example

iccap_func("/CGaas1","Open","tmpSave.mdl")

iccap_func("/CGaas1/Variables","Open","myvars.vat")

See Also

Open Model (prog), Open DUT (prog), Open Macro (prog), Open Setup (prog), Open Input(prog), Open Output (prog), Open Transform (prog), Open Plot (prog), ReadOnlyValues(prog)

Open BranchAutomates the action of opening a DUT on the DUTs/Setups tree.

Valid Objects

DUT (prog)

menu_func style command: none

Opens a DUT on the DUTs/Setups tree.

Example

iccap_func("/mymodel/mydut","Open Branch")

See Also

Close Branch (prog)

Page 352: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

351

Open DUTAutomates the Model window's File > Open functionality for the DUT level selection.

Valid Objects

MODEL (prog)

menu_func style command: none

Prompts for a name of a .dut file to be read into the current model unless the optionalthird argument is specified as the name.

Example

iccap_func("/CGaas1","Open DUT","mydutfile.dut")

Open Error LogAutomates the IC-CAP/Status window's File > Open Error Log functionality.

Valid Objects

IC-CAP (prog)

menu_func style command: none

Opens the error log file using the file name if provided.

Example

iccap_func("ic-cap","Open Error Log", <optional file name>)

Open HardwareAutomates the IC-CAP/Main window's Tools > Hardware Setup functionality.

Valid Objects

IC-CAP (prog)

menu_func style command: "Hardware/Edit"

Opens the Hardware Setup window.

Example

iccap_func("ic-cap","Open Hardware")

Open Input/Output/Transform/PlotOpen InputOpen OutputOpen TransformOpen Plot

Automates the Model window's File > Open functionality for the Input, Output, Transform,or Plot level selection.

Valid Objects

SETUP (prog)

menu_func style command: none

Page 353: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

352

Prompts for a name of a .inp, .out, .xfm, or .plt file to be read into the current setupunless the optional third argument is specified as the name.

Example

iccap_func("/CGaas1/ac/s_at_f","Open Input","myInput.inp")

iccap_func("/CGaas1/ac/s_at_f","Open Output","myOutput.out")

iccap_func("/CGaas1/ac/s_at_f","Open Transform","myTransform.xfm")

iccap_func("/CGaas1/ac/s_at_f","Open Plot","myPlot.plt")

Open MacroAutomates the Model window's File > Open functionality for the Macro level selection.

Valid Objects

MODEL (prog)

menu_func style command: none

Prompts for a name of a .mac file to be read into the current model unless the optionalthird argument is specified as the name.

Example

iccap_func("/CGaas1","Open Macro","mydutfile.mac")

Open ModelAutomates the IC-CAP/Main window's File > Open functionality.

Valid Objects

IC-CAP (prog)

menu_func style command: none

Prompts for a name of a file from which to read models. Name of file can be specified as athird argument.

Example

iccap_func("/","Read Model")

iccap_func("/","Read Model","MyModel.mdl")

Open Output LogAutomates the IC-CAP/Status window's File > Open Output Log functionality.

Valid Objects

IC-CAP (prog)

menu_func style command: none

Opens the output log file using file name if provided.

Example

iccap_func("ic-cap","Open Output Log", <optional file name>)

Open Plot Optimizer

Page 354: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

353

Automates the Tools > Plot Optimizer menu pick of a model window and the Optimizer >Open Optimizer menu pick in a plot window.

Valid Objects

PLOT (prog)

menu_func style command: none

Opens the Plot Optimizer window.

Example

iccap_func("dc/fgummel/icibvsve", "OpenPlotOptimizer")

! Specify plot number for Multiplot

iccap_func("dc/fgummel/my_multiplot","OpenPlotOptimizer","1")

Open SetupAutomates the Model window's File > Open functionality for the Setup level selection.

Valid Objects

MODEL (prog)

menu_func style command: none

Prompts for a name of a .set file to be read into the current model unless the optionalthird argument is specified as the name.

Example

iccap_func("/CGaas1/dc","Open Setup","mysetfile.set")

OptimizeAutomates the Optimize menu picks in the Extract/Optimize folder and the Optimize >Run Optimization menu pick in the Plot Optimizer window.

Valid Objects

DUT (prog), SETUP (prog), PlotOptimizer (prog)

menu_func style command: "Extract"

Performs Transforms that are optimizers on all setups within named DUT/setup or in thePlot Optimizer window.

Example

iccap_func("./CGaas1/dc","Optimize")

iccap_func("./CGaas1/dc/igvg_0vs","Optimize")

iccap_func("./PlotOptimizer","Optimize")

ParseAutomates the "Parse..." button in the Circuit folder

Valid Objects

Circuit (prog), Test Circuit (prog)

menu_func style command: "Parse"

Page 355: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

354

Checks the syntax of the Circuit in reference to the specified simulator and updates the listof parameters if they have changed names. NOTE: Parse does not assign the Parameterstable values to those in the Circuit, unless they have been newly added.

Example

iccap_func("/CGaas1/Circuit","Parse")

iccap_func("/CGaas1/dc/TestCircuit","Parse")

See Also

Reset (prog)

Print Read BufferAutomates the functionality of the Tools > Send Receive > Display String menu pick in theHardware Setup window.

Valid Objects

Hardware (prog), HPIB Analyzer (prog)

menu_func style command: "Print Read String"

This function prints the ASCII string stored in the read buffer that had been read back bya call to "Read String". The string is displayed in the IC-CAP/Status window and if visible,the Hardware Setup window.

Example

iccap_func("Hareware","HPIB Analyzer","Print Read Buffer")

Print Via ServerAutomates the functionality of File > Print in the Model windows and the "Print" button onvarious dialogs.

Valid Objects

Variables (prog), INPUT (prog), OUTPUT (prog), TRANSFORM (prog), PLOT (prog)

menu_func style command: none (see "Send to Printer")

Displays the Print dialog box for printing the item. Starting with IC-CAP 2004, the Printdialog box is always displayed when printing. In previous releases, File > Print did notdisplay a dialog box except when asking for a file name if printing to a file.

For plots, Print Via Server prints a tabular listing of the data. To print the graphical plot,use Dump Via Server UI.

Example

iccap_func("/CGaas1/Variables","Print Via Server")

See Also

Send To Printer (prog), Dump To Printer (prog), Dump To Plotter (prog), Dump Via Server(prog), Dump Via Server UI (prog)

Read from FileAutomates the functionality of the File > Open menu pick in the Hardware Setup window.

Valid Objects

Page 356: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

355

Hardware (prog)

menu_func style command: "Read from File"

Reads in a previously saved hardware configuration file. If this function were executedmanually, a dialog box would appear asking the user for the name of the configuration fileto read. This functionality is emulated in PEL by appending the desired file name followedby "ok" to the end of the command string.

Example

iccap_func("Hardware","Read from File","../mdl/hwm_pel_test.hdw","ok")

ReadOnlyValuesAutomates the File > Open menu pick when Read Values Only is selected in the ModelParameters folder or the DUT Parameters folder.

Valid Objects

Parameter Set (prog), Device Parameter Set (prog)

Prompts for the new name of the file to read, or uses the optional third argument ifprovided. This replaces parameter Values while maintaining existing Min and Max ranges ifpossible. If the new value is outside the existing range, Min or Max is extended to includethe new Value and a warning is displayed in the Status window.

Example

iccap_func("./ParameterSet","ReadOnlyValues","myparms.mps")

iccap_func("/CGaas1/dc/DeviceParameterSet","ReadOnlyValues","myparms.dps")

See Also

Open (prog)

Read StringAutomates the functionality of the Tools > Send Receive > Receive String menu pick inthe Hardware Setup window.

Valid Objects

Hardware (prog), HPIB Analyzer (prog)

menu_func style command: "Read String"

This function reads back an ASCII string from the device at the currently active address aspreviously set by a call to "Set Active Address". The device should have been previouslyprepared to talk by sending it a string that generated something for it to say. The receivedstring itself is not displayed; rather the number of characters read is displayed in the IC-CAP/Status window and, if visible, the Hardware Setup window. The string itself is storedin a read_buffer where a call to "Print Read Buffer" can display it later.

Example

iccap_func("Hardware/HPIBAnalyzer","Read String")

Read String for ExpertsAutomates the functionality of the Tools > Send Receive > Read String for Experts menupick in the Hardware Setup window.

Valid Objects

Hardware (prog), HPIB Analyzer (prog)

Page 357: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

356

menu_func style command: "Read String for Experts"

This function is similar to the "Read String" command except it skips the talk/listen setupof the device which should be done using the "Send Command Byte" command. The resultis placed in the HPIB_READ_STRING system variable, if it has been defined.

Example

iccap_func("Hardware/HPIBAnalyzer","Read String for Experts")

Rebuild Active ListAutomates the functionality of the "Rebuild" button in the Hardware Setup window'sInstrument List field.

Valid Objects

Hardware (prog)

menu_func style command: "Rebuild Active List"

Scans the bus and rebuilds the active instrument list for all DUTs and setups based on theinstruments it finds there.

Example

iccap_func("Hardware","Rebuild Active List")

Recall ParametersAutomates the Tools > Recall Parameters menu pick in the Plot Optimizer window and theRecall Par button in the Extract/Optimize folder.

Valid Objects

TRANSFORM (prog), PlotOptimizer (prog)

menu_func style command: none

Resets the optimizer Parameters table values to the locally stored values.

Example

iccap_func("./CGaas1/dc/igvg_0vs","Recall Parameters")

iccap_func("./PlotOptimizer","Recall Parameters")

See Also

Store Parameters (prog)

RedisplayProvided for compatibility.

Valid Objects

INPUT (prog), OUTPUT (prog), TRANSFORM (prog), PLOT (prog)

menu_func style command: "Redisplay"

Refreshes the screen of the 'View Data' of the associated object.

Example

iccap_func("CGaas1/dc/igvg_0vs/vs","Redisplay")

Page 358: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

357

Refresh DatasetAutomates the Model window's Tools > Refresh Last Dataset menu pick functionality.

Valid Objects

MODEL (prog)

Exports new data to the last exported dataset file (*.ds). If no dataset file had beensuccessful exported, this function will have no effect.

Example

iccap_func("/","Refresh Dataset")

See Also

Export Dataset (prog)

Release LicenseAutomates the functionality of the Release button in the License Status window's In Usefield.

Valid Objects

IC-CAP (prog)

menu_func style command: none

This function releases a license for a specified licensed feature and returns it to the licensepool. Specify the desired license name, followed by ok.

Valid license names are:

DC Measurements Gummel-Poon Bipolar Model

AC Measurements Curtice-Statz GAAS Model

LCRZ Measurements Time Domain Measurements

HP Pulsed SystemMeasurements

Philips MEXTRAM Model

1/f Noise Measurements Philips MOS Model 9

Analysis UCB MOS3 Model

IC-CAP Statistics UCB BSIM3 Model

HP Root FET Model UCB BSIM4 Model

HP Root MOS Model HP EEFET3 Model

HP Root Diode Model HP EEHEMT1 Model

VBIC BJT Model HP EEBJT2 Model

Example

iccap_func("IC-CAP","Release License","DC Measurements","ok")

RenameAutomates changing the text under the Model icon.

Valid Objects

MODEL (prog), MACRO (prog), DUT (prog), SETUP (prog), INPUT (prog), OUTPUT (prog),TRANSFORM (prog), PLOT (prog)

menu_func style command: "Rename"

Page 359: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

358

Prompts for the new name of the model, or uses the optional third argument if provided.

Example

iccap_func("/CGaas1","Rename","my_CGaas1")

Replace Interface FileThis function is not implemented.

ReplotAutomates the Options > Replot menu pick of a plot window.

Valid Objects

PLOT (prog)

menu_func style command: "Replot Data"

Refreshes the plot-- plot window must be open.

Example

iccap_func("/CGaas1/dc/igvg_0vs/vs/ig_vs_vg","Replot")

RescaleAutomates the Options > Rescale menu pick in a plot window.

Valid Objects

PLOT (prog)

menu_func style command: "Rescale Graph"

Adjusts the axes to fit the data.

Example

iccap_func("/CGaas1/dc/igvg_0vs/vs/ig_vs_vg","Rescale")

! Specify plot number for Multiplot

iccap_func("/CGaas1/dc/igvg/my_multiplot","Rescale","1")

ResetAutomates the "Reset" button on a Model Parameters page.

Valid Objects

Parameter Set (prog)

menu_func style command: "Reset to Defaults"

Resets the parameter values to the values in the Circuit folder.

Example

iccap_func("/CGaas1/ParameterSet","Reset")

iccap_func("/CGaas1/dc/DeviceParameterSet","Reset")

Reset Global RegionAutomates the Optimizer > Global Region > Reset menu pick in a plot window.

Page 360: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

359

Valid Objects

PLOT (prog)

menu_func style command: none

Deletes all existing global trace regions on the plot and defines a new global trace region.

Example

iccap_func("./dc/fgummel/ibicvsve","ResetGlobalRegion","0.6","0.8","-8","-3")

iccap_func("./dc/fgummel/bvsic", "ResetGlobalRegion","1e-8", "1e-4", "20", "60")

! Specify plot number for Multiplot

iccap_func("./dc/fgummel/my_multiplot","ResetGlobalRegion","0.6","0.8","-8","-3","1")

Reset Min MaxAutomates the Tools > Reset Min Max menu pick in the Plot Optimizer window and theReset Min Max button in the Extract/Optimize folder.

Valid Objects

TRANSFORM (prog), PlotOptimizer (prog)

menu_func style command: none

Sets minimum and maximum optimizer parameter values based on the value of thecoefficient defined with the AUTOSET_COEFF variable on the System Variables page. Thedefault coefficient value is 5.

Example

iccap_func("./CGaas1/dc/igvg_0vs","ResetMinMax")

iccap_func("./PlotOptimizer","ResetMinMax")

Reset Option TableAutomates the File > Reset Option Table menu pick in the Plot Optimizer window.

Valid Objects

TRANSFORM (prog), PlotOptimizer (prog)

menu_func style command: none

Resets all options in the Options table to the default values.

Example

iccap_func("./CGaas1/dc/igvg_0vs","ResetOptionsTable")

iccap_func("./PlotOptimizer","ResetOptionsTable")

Reset to Saved OptionsAutomates the Options > Session Settings > Reset to Saved Options menu pick in a plotwindow.

Valid Objects

PLOT (prog)

Page 361: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

360

menu_func style command: none

Restores the Plot Options to their saved state. For Multiplot, specify a plot number to resetthe Plot Options for a specific plot. To reset the Plot Options for a Multiplot, do not specifya plot number.

Example

iccap_func("./dc/fgummel/bvsic","ResettoSavedOptions")

iccap_func("./dc/fgummel/my_multiplot","ResettoSavedOptions")

! Specify plot number in Multiplot to reset specific plot

iccap_func("./dc/fgummel/my_multiplot","ResettoSavedOptions","1")

Reset Trace RegionAutomates the Optimizer > trace > Trace Optimizer Region > Reset menu pick in a plotwindow

Valid Objects

PLOT (prog)

menu_func style command: none

Deletes all existing trace optimizer regions for the specified trace and defines a new traceoptimizer region.

Example

iccap_func("./dc/fgummel/ibicvsve","ResetTraceRegion","Y Data 0","0.6","0.8", "-8","-3")

iccap_func("./dc/fgummel/bvsic", "ResetTraceRegion","Y Data 0","1e-8","1e-4","20","60")

! Specify plot number for Multiplot

iccap_func("./dc/fgummel/my_multiplot","ResetTraceRegion","Y Data 0","0.6","0.8","-8","-3","1")

Run Self-TestsAutomates the functionality of the Hardware Setup > Instruments > Self Test menu pickin the Hardware Setup window.

Valid Objects

Hardware (prog)

menu_func style command: "Run Self-Tests"

Runs self tests on all instruments found on the bus during a rebuild of the active list or ameasure. Note that to successfully perform the "Run Self-Tests" function either the"Rebuild Active List" or the "Measure" function must have been performed first.

Example

iccap_func("Hardware","Run Self-Tests");

Save AllAutomates IC-CAP/Main File > Save As, but does not permit selective grouping of modelsinto a .mdl file

Valid Objects

IC-CAP (prog)

menu_func style command: "Write All Models To File"

Page 362: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

361

Prompts for the name of a file and saves all loaded models to that file. Name of the filecan be anticipated by the third argument.

Example

iccap_func("/","Save All","myfile.mdl")

See Also

Save All No Data (prog), Save As (prog), Save As No Data (prog)

Save All No DataAutomates IC-CAP/Main File > Save As with the "Save without measured/simulated data"option, but does not permit selective grouping of models into a .mdl file

Valid Objects

IC-CAP (prog)

menu_func style command: none

Prompts for the name of a file and saves all loaded models to that file without anymeasured or simulated data. Name of the file can be anticipated by the third argument.

Example

iccap_func("/","Save All No Data")

See Also

Save As (prog), Save All No Data (prog)

Save AsAutomates the Model window's File > Save As functionality for the Model level selection.

Valid Objects

GUI Items (prog), MODEL (prog), Variables (prog), Circuit (prog), Parameter Set (prog),MACRO (prog), DUT (prog), Test Circuit (prog), Device Parameter Set (prog), SETUP(prog), Instrument Options (prog), INPUT (prog), OUTPUT (prog), TRANSFORM (prog),PLOT (prog)

menu_func style command: "Write To File"

Prompts for a name of a .mdl file to be written unless the optional third argument isspecified as the file name.

If the third parameter is "", then the function will write the file out to the default name.The default name is the name of the file that it was read in from, or the name of the lastfile to which it was written.

Example

iccap_func("/CGaas1","Save As","tmpFile.mdl")

See Also

Save All (prog), Save All No Data (prog), Save As No Data (prog)

Save As No DataAutomates the Model window's File > Save As functionality for the Model level selection

Page 363: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

362

choosing the "Save Without Measured/Simulated Data" option.

Valid Objects

MODEL (prog), Variables (prog), Circuit (prog), Parameter Set (prog), MACRO (prog), DUT(prog), Test Circuit (prog), Device Parameter Set (prog), SETUP (prog), InstrumentOptions (prog), INPUT (prog), OUTPUT (prog), TRANSFORM (prog), PLOT (prog)

menu_func style command: none

Prompts for a name of a .mdl file to be written unless the optional third argument isspecified as the file name.

If the third parameter is "", then the function will write the file out to the default name.The default name is the name of the file that it was read in from, or the name of the lastfile to which it was written.

Example

iccap_func("/CGaas1","Save As No Data","smallFile.mdl")

See Also

Save All (prog), Save All No Data (prog), Save As (prog)

Save Extracted DeckAutomates the Model window's File > Export Data > Extracted Deck functionality.

Valid Objects

MODEL (prog)

menu_func style command: "Save Extracted Deck"

Merges the current Parameters table into the current circuit and writes the results to a file.An optional third argument can specify the name of the file or the iccap_func will promptfor a name.

Example

iccap_func("/CGaas1","Save Extracted Deck","my_deck")

Save ImageAutomates the File > Save Image menu pick in a plot window

Valid Objects

PLOT (prog)

menu_func style command: none

Saves an image of the named plot in .xwd format using the specified file name.

Example

iccap_func("/CGaas1/dc/igvg_0vs/vs/ig_vs_vg","Save Image","nmos2_idvsvg.xwd")

Save Input/Command/Output FileSave Input FileSave Command FileSave Output File

Page 364: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

363

Automates the IC-CAP/Simulation Debugger File > Save Input File, File > Save OutputFile, or File > Save Command File functionality.

Valid Objects

Simulation Debugger (prog)

menu_func style commands were the same

Saves a copy of the last input, output or command file sent to the simulator with theSimulation Debugger open. A simulation must have previously been run with theSimulation Debugger open. An optional third command can be specified to name the file.

Example

iccap_func("Simulation Debugger","Save Input File")

iccap_func("Simulation Debugger","Save Command File")

iccap_func("Simulation Debugger","Save Output File","myOutFile)

Scale Plot/Scale Plot PreviewScale PlotScale Plot Preview

Automates the Options > Manual rescale... menu pick in a plot window (except for PolarGraph and Smith Chart-see Scale RI Plot/Scale RI Plot Preview (prog)).

Valid Objects

PLOT (prog)

menu_func style command: none

Prompts appear for you to enter required values for the parameters that describe theplot's scaling values. The prompts appear in the following order for the X axis first, thenthe Y axis, and finally the Y2 axis:

minimum scale value1.maximum scale value2.number of major divisions3.number of minor divisions4.

Entering AUTOMATIC for an axis' minimum value (the first prompt), sets that axis toautoscaled and no further prompts will appear for that axis.

Scale Plot Preview functions the same way as Scale Plot, but the scaling will be lost on thenext Replot command.

You can anticipate the prompts and include the scale values for the parameters in therequired order. The following example sets the plot's scale to the values listed in thetable:

Example

iccap_func("Plot","Scale Plot","0","100","10","5","-10","10","5","1","AUTOMATIC")

! Specify plot number for Multiplot

iccap_func("Multiplot","Scale Plot","0","100","10","5","-10","10","5","1","AUTOMATIC","1")

Axis Minimum Maximum *Major Divisions Minor Divisions

X 0 100 10 5

Y -10 10 5 1

Y2 Autoscaled

Page 365: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

364

See Also

Scale RI Plot/Scale RI Plot Preview (prog)

Scale RI Plot/Scale RI Plot PreviewScale RI PlotScale RI Plot Preview

Automates the Options > Manual rescale... menu pick in a real-imaginary plot window (RIGraph, Polar Graph, and Smith Chart).

NoteYou can scale RI Graph plots using either Scale Plot or Scale RI Plot. All other plot types can only bescaled using one scale type-not both. For Polar Graph and Smith Chart plot types, you can only use ScaleRI Plot. For all other plot types, you can only use Scale Plot.

Valid Objects

PLOT (prog)

menu_func style command: none

Prompts appear for you to enter required values for the parameters that describe theplot's scaling values. The prompts appear in the following order:

Format for Center Point (RI, Z or MP)1.RI - Real/ImaginaryZ - Normalized Real/Imaginary (Smith Chart format)MP - Magnitude/Phase

Center Point Val1 (Real, Normalized Real, or Magnitude)2.Center Point Val2 (Imaginary, Normalized Imaginary, or Phase)3.Radius Magnitude4.Number of divisions on Real Axis5.Number of subdivisions per division on Real Axis6.Number of divisions on Imaginary Axis7.Number of subdivisions per division on Imaginary Axis8.

Scale RI Plot Preview functions the same way as Scale RI Plot, but the scaling will be loston the next Replot command.

You can anticipate the prompts and include the scale values for the parameters in therequired order.

Example

iccap_func("polar_plot","Scale RI Plot","MP","1","3.14","1","5","4","5","4")

! Specify plot number for Multiplot

iccap_func("polar_plot","Scale RI Plot","MP","1","3.14","1","5","4","5","4","1")

See Also

Scale Plot/Scale Plot Preview (prog)

Screen Debug OnAutomates functionality of IC-CAP/Main Tools > Options > Screen Debug.

Valid Objects

IC-CAP (prog)

menu_func style command: "Utilities/Screen Debug On"

Logs all debug information to the IC-CAP/Status window.

Page 366: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

365

NoteScreen Debug On automatically turns File Debug Off.

Example

iccap_func("ic-cap","Screen Debug On")

See Also

Debug Off (prog), Screen Debug Off (prog)

Search for InstrumentsAutomates the functionality of the Instruments > Find menu pick in the Hardware Setupwindow.

Valid Objects

Hardware (prog), HPIB Analyzer (prog)

menu_func style command: "Search for Instruments"

Using the currently active interface, this function sends a serial poll to all possibleaddresses other then that of the interface card itself. The results are displayed in the IC-CAP/Status window and if visible, the Hardware Setup window.

Example

iccap_func("Hardware/HPIBAnalyzer","Search for Instruments")

Select Error RegionAutomates the Options > Error > Select Error Region menu pick in a plot window

Valid Objects

PLOT (prog)

menu_func style command: none

Example

iccap_func("./dc/fgummel/bvsic", "SelectErrorRegion")

iccap_func("./dc/fgummel/bvsic","SelectErrorRegion","x1","x2","y1","y2")

! Specify plot number for Multiplot

iccap_func("./dc/fgummel/my_multiplot","SelectErrorRegion","1")

iccap_func("./dc/fgummel/my_multiplot","SelectErrorRegion","x1","x2","y1","y2","1")

See Also

Select Whole Plot (prog), Show Absolute Error (prog), Show Relative Error (prog)

Select PlotAutomates the Plots > Select Plot menu item in a Multiplot window

Valid Objects

PLOT (prog)

menu_func style command: none

Example

iccap_func("./dc/fgummel/bvsic", "SelectPlot")

! Specify plot number for Multiplot

Page 367: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

366

iccap_func("./dc/fgummel/my_multiplot", "SelectPlot", "1")

See Also

Unselect All (prog)

Select Whole PlotAutomates the Options > Error > Select Whole Plot menu item in a plot window

Valid Objects

PLOT (prog)

menu_func style command: none

Example

iccap_func("./dc/fgummel/bvsic","SelectWholePlot")

! Specify plot number for Multiplot

iccap_func("./dc/fgummel/my_multiplot","SelectWholePlot","1")

See Also

Select Error Region (prog), Show Absolute Error (prog), Show Relative Error (prog)

Send, Receive, and PrintAutomates the functionality of the Tools > Send Receive > Send Receive Display menupick in the Hardware Setup window.

Valid Objects

Hardware (prog), HPIB Analyzer (prog)

menu_func style command: "Send, Receive, and Print"

This command sends a string the currently active address, reads back and displays theresponse. If this function were executed manually, a dialog box would appear asking forthe string to be sent. This functionality is emulated in PEL by appending the desired stringfollowed by "ok" to the command line string.

Example

iccap_func("Hardware/HPIBAnalyzer","Send, Receive, and Print","*IDN?\n","ok")

Send Command ByteAutomates the functionality of the Tools > Send Receive > Send Byte menu pick in theHardware Setup window.

Valid Objects

Hardware (prog), HPIB Analyzer (prog)

menu_func style command: "Send Command byte"

This command sends one low_level command byte, specified as a decimal integer, to thecurrently active address. The following list summarizes the GPIB low_level byte commandsin common use.

Page 368: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

367

Mnemonic Definition Byte

ATN Attention

DCL Device Clear 20

EOI End or Identify

EOL End of Line

GET Group Execute Trigger 8

GTL Go To Local 1

IFC Interface Clear

LAD Listen Address 32 + address

LLO Local Lockout 17

MLA My Listen Address

MTA My Talk Address

OSA Other Secondary Address

PPC Parallel Poll Configure 5

PPD Parallel Poll Disable

PPU Parallel Poll Unconfigure 21

REN Remote Enable

SDC Selected Device Clear 4

SPD Serial Poll Disable 25

SPE Serial Poll Enable 24

SRQ Service Request

TAD Talk Address 64 + address

UNL Unlisten 63

UNT Untalk 95

Example

iccap_func("Hardware/HPIBAnalyzer","Send Command Byte","63", "ok")

Send StringAutomates the functionality of the Tools > Send Receive > Send String menu pick in theHardware Setup window.

Valid Objects

Hardware (prog), HPIB Analyzer (prog)

menu_func style command: "Send String"

This function sends an ASCII to the device at the currently active address. If this functionwere executed manually, a dialog box would appear asking for the string to be sent. Thisfunctionality is emulated in PEL by appending the desired string followed by "ok" to thecommand line string. The result is displayed in the IC-CAP/Status window and, if visible,the Hardware Setup window.

Example

iccap_func("Hardware/HPIBAnalyzer","Send String","*IDN?\n")

Send To PrinterProvided to be compatible with Version 4.5 style of printing

Valid Objects

Variables (prog), INPUT (prog), OUTPUT (prog), TRANSFORM (prog), PLOT (prog)

menu_func style command: "Send To Printer"

Prompts for the name of the command through which to pipe the required file. May be

Page 369: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

368

anticipated by a third argument.

Example

iccap_func("/CGaas1/Variables","Send To Printer","lp -dmyprinter")

iccap_func("/CGaas1/Variables","Send To Printer","cat")

See Also

Print Via Server (prog),Dump To Printer (prog), Dump To Plotter (prog), Dump Via Server(prog)

Serial PollAutomates the functionality of the Tools > Serial Poll menu pick in the Hardware Setupwindow.

Valid Objects

Hardware (prog), HPIB Analyzer (prog)

menu_func style command: "Serial Poll"

This function sends a serial poll command to the device at the currently active address.The result is displayed in the IC-CAP/Status window and if visible, the Hardware Setupwindow.

Example

iccap_func("Hardware/HPIBAnalyzer","Serial Poll")

Set Active AddressAutomates the functionality of the Tools > Address > Set menu pick in the HardwareSetup window.

Valid Objects

Hardware (prog), HPIB Analyzer (prog)

menu_func style command: "Set Active Address"

Sets the address to which the GPIB Analyzer commands will be sent. If this menu pickwere done manually, a dialog box would appear asking for the desired address. Thisfunctionality is emulated in PEL by appending the desired address followed by "ok" to theend of the command string.

Example

iccap_func("Hardware/HPIBAnalyzer","Set Active Address","8","ok")

Set AlgorithmAutomates the Algorithm drop down menu pick in an Extract/Optimize folder or in a PlotOptimizer window.

Valid Objects

TRANSFORM (prog), PlotOptimizer (prog)

menu_func style command: none

Sets the optimization algorithm to one of the following choices:

Page 370: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

369

Algorithm Full Name PEL Code

Levenberg-Marquardt L

Random R

Hybrid (Random/LM) H

Sensitivity Analysis S

Random (Gucker) A

Gradient B

Random Minimax U

Gradient Minimax E

Quasi-Newton G

Least Pth I

Minimax N

Hybrid (Random/Quasi-Newton) P

Genetic Q

Example

iccap_func("./PlotOptimizer", "SetAlgorithm", "Minimax")

iccap_func("dc/fgummel/optim1", "SetAlgorithm", "B")

Set ErrorAutomates the Error drop down menu pick in an Extract/Optimize folder or in a PlotOptimizer window.

Valid Objects

TRANSFORM (prog), PlotOptimizer (prog)

menu_func style command: none

Sets the optimization error to either Relative or Absolute.

Example

iccap_func("./PlotOptimizer", "SetError", "Relative")

iccap_func("dc/fgummel/optim1", "SetError", "Absolute")

Set GUI CallbacksAllows setting a callback on a GUI item.

Valid Objects

GUI Item (prog)

menu_func style command: none

This action requires three other arguments. The first is the code for the callback. Thesecond and third extra argument are the two parameters to the callbacks associatediccap_func().

Example

iccap_func("./someItem","Set GUI Callback", "AC", "aMacro", "Execute)

See Also

Add GUI (prog), Close GUI (prog), Close Single GUI (prog), Destroy GUI (prog), DestroySingle GUI (prog), Display Modal GUI (prog), Display Modeless GUI (prog), Display Single

Page 371: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

370

Modal GUI (prog), Display Single Modeless GUI (prog), Set GUI Options (prog)

Set GUI OptionsAutomates changing options for any Item on a GUI Page.

Valid Objects

GUI Item (prog)

menu_func style command: none

You can enter as many additional arguments as desired. The last argument must be "" (anull string) to signify completion. Each argument is of the form <code>=<val>. Code isthe associated code for the option as found by choosing Show Codes on the propertiesdialog.

The <val> can be one of four forms:

A literal

<val> may be a string or a number

A Variable Changed

If the first character after the equal sign is a %, the value is taken to track avariable by the given name.

An Enumerated type code

Many options have enumerated types such as list selection mode. Each of thesepossible values has an associated code that can be viewed on the propertiesdialog.

Multiple Enumerated types

Some options (e.g., sizing options) allow multiple enumerated types to be set(fixed width and fixed height). These are indicated by specifying<code>|<code>.

Example

iccap_func("./someItem","Set GUI Options","OR=HO","CA="title","")

iccap_func("./some.other.item","Set GUI Options","TO=FW\|FH","")

See Also

Add GUI (prog), Close GUI (prog), Close Single GUI (prog), Destroy GUI (prog), DestroySingle GUI (prog), Display Modal GUI (prog), Display Modeless GUI (prog), Display SingleModal GUI (prog), Display Single Modeless GUI (prog), Set GUI Callbacks (prog)

Set Instrument Option Value Valid Objects

INPUT (prog), OUTPUT (prog)

menu_func style command: none

Allows setting the option fields in an instrument option table.

Example

iccap_func("c/c/x","SetInstrumentOptionValue","Delay Time","foo")

Page 372: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

371

Set SpeedThis function is not implemented in IC-CAP Version 5.0

Set Table Field ValueAutomates deleting variables and setting Input, Output, Plot, and all Transform fields.

Valid Objects

INPUT (prog), OUTPUT (prog), PLOT (prog), TRANSFORM (prog), PlotOptimizer (prog),PlotOptions (prog), Variables (prog), Macro (prog), Circuit (prog), Parameter Set (prog)

menu_func style command: none

To set a Transform function, use the field name "Function". To set the text for the body ofa PEL program (Function: Program, or Function: Program2), use the field name"Program". To set fields in two dimensional tables, such as the optimizer's input andparameter tables, use [] to indicate which row you want to set. Identify the row usingeither the row's index number or the name in the first field of the row. For example:

Name Value Min Max

BF 100 50 150

IS 100a 50a 120a

To access the Min of BF use:

"Min[0]" (0 is the index number for the first row.)or"Min[BF]" (BF is the name in the first field of the row and it must be unique tocorrectly identify the row.)

There is only one 'field' for macro objects or circuit objects. This field "Text" sets the textof the Macro or circuit page.

If you set the start, stop, or number of points for an input, follow with a "Redisplay"statement to recalculate its size. Only a single "Redisplay" statement is needed aftersetting multiple input fields.

Action name may be shortened to "STFV" for brevity.

See the following examples:

Example

iccap_func("dc/fgummel/ic","SetTableFieldValue","Mode","V")

iccap_func("myplot","SetTableFieldValue","Header","This is the header")

iccap_func("dc/fgummel/myxform","SetTableFieldValue","Function","Program")

iccap_func("dc/fgummel/myxform","SetTableFieldValue","Program",

"!autogenerated print 'This is an autogenerated PEL'")

iccap_func("dc/fgummel/optim1","SetTableFieldValue","Target[1]","ib.m")

iccap_func("dc/fgummel/optim1","STFV","Simulated[1]","ib.s")

iccap_func("dc/fgummel/optim1","STFV","Name[2]","BF")

iccap_func("vd","SetTableFieldValue","# of Points","100")

iccap_func("vd","Redisplay")

iccap_func("./PlotOptimizer", "STFV", "Print Parameters", "N")

iccap_func("./PlotOptimizer", "STFV", "Name[0]", "BF")

iccap_func("./ParameterSet", "STFV", "Min[BF]", "100a")

iccap_func("./ParameterSet", "STFV", "Max[BF]", "150")

iccap_func("./ParameterSet", "STFV", "Value[BF]", "100")

! Deleting varibles: First argument can be Model, DUT,

! Setup, or the slash (/) to specify top-level IC-CAP object.

iccap_func(".","STFV","Name[aaa]","") ! Changes the value

! of the Name cell corresponding with "aaa" to "".

iccap_func("./Circuit","STFV","Text",mycircuitText)

Page 373: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

372

iccap_func("mymacro","STFV","Text",'PRINT "Hello World"')

See Also

Redisplay (prog)

Set Target Vs SimulatedAutomates the Optimizer > trace > Set as Target vs. menu pick in a plot window.

Valid Objects

PLOT (prog)

menu_func style command: none

Configures the specified trace as Target versus a specified Simulated trace.

Example

iccap_func("./dc/rgummel/ibievsvc","SetTargetVsSimulated","Y Data 0", "Y Data 1")

! Specify plot number for Multiplot

iccap_func("./dc/rgummel/my_multiplot","SetTargetVsSimulated","Y Data 0", "Y Data 1", "1")

See Also

Set Trace As Both (prog)

Set TimeoutAutomates the functionality of the Tools > Settings > Timeout menu pick in the HardwareSetup window.

Valid Objects

Hardware (prog), HPIB Analyzer (prog)

menu_func style command: "Set Timeout"

Sets the timeout of the device at the currently active address as previously set by a call to"Set Active Address". If this function were executed manually, a dialog box would appearasking for the desired timeout, in seconds. This functionality is emulated in PEL byappending the desired timeout followed by "ok" to the end of the command string.

Example

iccap_func("Hardware/HPIBAnalyzer","Set Timeout","10","ok")

Set Trace As BothAutomates the Optimizer > trace > Set as Both Target and Simulated menu pick in a plotwindow

Valid Objects

PLOT (prog)

menu_func style command: none

Configures the selected trace with its measured data set as Target and its simulated dataset as Simulated.

Example

Page 374: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

373

iccap_func("dc/fgummel/icibvsve", "SetTraceAsBoth", "Y Data 1")

! Specify plot number for Multiplot

iccap_func("dc/fgummel/my_multiplot", "SetTraceAsBoth","Y Data 1", "1")

See Also

Set Target Vs Simulated (prog)

Set User RegionDefines a user region.

Valid Objects

PLOT (prog)

menu_func style command: none

User boxes are colored squares that you can define using the following syntax:iccap_func("<plotName>","SetUserRegion","<RegionName>","x1" ,"x2", "y1", "y2",

           "<color>","<ReferenceAxis>")

Where:

<RegionName> is a unique name that identifies the region

x1, x2, y1, y2 are the string coordinates of the region

<color> is a number between 0 and 127

<ReferenceAxis> is either "Y" or "Y2" and is used to apply the coordinates inone axis or the other.

Example

x=lookup_obj_attribute("ibicvsve","UserSelectedRegion")

iccap_func("ibicvsve","SetUserRegion","LeftRegion",x[0],x[1],x[2],x[3],5,"Y2")

See Also

Delete All User Regions (prog), Delete User Region (prog)

Set Variable Table ValueAutomates adding a new variable to a Variable table.

Valid Objects

IC-CAP (prog), MODEL (prog), DUT (prog), SETUP (prog)

menu_func style command: none

Uses two anticipated arguments to name the variable and value to be set. If the namedvariable does not exist on the object named, the system searches upwards through thehierarchy to find it.

Examples

iccap_func("/npn","SetVariableTableValue","SIMULATOR","spice3")

See Also

Set Table Field Value (prog), Create Variable Table Variable (prog)

Page 375: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

374

Show Absolute ErrorAutomates the Options > Error > Show Absolute Error menu item in a plot window

Valid Objects

PLOT (prog)

menu_func style command: none

Displays the MAX and RMS absolute errors in the footer area and turns off relative error orfooter text if displayed.

Example

iccap_func("./dc/fgummel/bvsic", "ShowAbsoluteError")

! Specify plot number for Multiplot

iccap_func("./dc/fgummel/my_multiplot", "ShowAbsoluteError","1")

See Also

Show Relative Error (prog), Select Whole Plot (prog), Select Error Region (prog)

Show Highlighted CurvesHighlights all curves marked in the highlight set for a given trace. Simply marking a curvehighlighted does not turn on the actual highlighting.

Valid Objects

Plot

menu_func style command: none

Example

iccap_func("dc/fgummel/icibvsve", "Show Highlighted Curves")

! Show the curves highlighted, which have been marked

! highlighted in the 2nd subplot of my_muliplot.

! Specify the subplot number as "1"

iccap_func("dc/fgummel/my_multiplot", "Show Highlighted Curves", "1")

! Show the curves highlighted, which have been marked

! highlighted in all the subplots of my_muliplot.

iccap_func("dc/fgummel/my_multiplot", "Show Highlighted Curves")

See also

Mark Curve Highlighted (prog), Unmark Highlighted Curve (prog), Unmark All HighlightedCurves (prog), Hide Highlighted Curves (prog)

Show Relative ErrorAutomates the Options > Error > Show Relative Error menu item in a plot window.

Valid Objects

PLOT (prog)

menu_func style command: none

Displays the MAX and RMS relative errors in the footer area and turns off absolute error orfooter text if displayed.

Example

Page 376: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

375

iccap_func("./dc/fgummel/bvsic", "ShowRelativeError")

! Specify plot number for Multiplot

iccap_func("./dc/fgummel/my_multiplot", "ShowRelativeError","1")

See Also

Show Absolute Error (prog), Select Whole Plot (prog), Select Error Region (prog)

SimulateAutomates the Simulate menu picks.

Valid Objects

DUT (prog), SETUP (prog)

menu_func style command: "Extract"

Performs Simulation on all setups within named DUT or within named setup.

Example

iccap_func("/CGaas1/dc","Simulate")

iccap_func("/CGaas1/dc/igvg_0vs","Simulate")

Simulate AllAutomates the Simulate > Simulate All menu pick in the Plot Optimizer window.

Valid Objects

PlotOptimizer (prog)

menu_func style command: none

Simulates all enabled traces.

Example

iccap_func("./PlotOptimizer","SimulateAll")

Simulate Plot InputsAutomates the Simulate > plot name menu pick in the Plot Optimizer window.

Valid Objects

Plot Optimizer

menu_func style command: none

Simulates all enabled traces in the specified plot.

Example

iccap_func("./PlotOptimizer/optim1","SimulatePlotInputs")

Simulation DebuggerAutomates the IC-CAP/Main window's Tools > Simulation Debugger functionality.

Valid Objects

IC-CAP (prog)

Page 377: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

376

menu_func style command was "Utilities/Open Simulation Debugger"

Example

iccap_func("ic-cap","Simulation Debugger")

Status WindowAutomates the IC-CAP/Main window's Windows > Status Window functionality.

Valid Objects

IC-CAP (prog)

menu_func style command: none

Raises the Status window to the top of the screen

Example

iccap_func("ic-cap","Status Window")

Stop MultisimHPEESOFSIM specific feature. Calling this will insure all running hpeesofsim processesstop, but the ADS staus window will stay up, speeding up future simulations. It is oftenadvantageous to stop the simulators in cases of changing certain external aspects of thesimulation like an include file or verilog-a file.

Valid Objects

IC-CAP (prog)

menu_func style command: none

If a simulator is hpeesofsim configured for CAN_PIPE mode, this action will stop anycurrently running hpeesofsim process while preserving any hpeesofsess (ADS statuswindow) process. If the current simulator is not hpeesofsim in CAN_PIPE mode, or if it isnot currently running, this action will do nothing.

Example

iccap_func("/","Stop Multisim")

Stop SimulatorAutomates the IC-CAP/Main and Model window's Tools > Stop Simulator functionality.

Valid Objects

IC-CAP (prog), MODEL (prog)

menu_func style command: none

If a simulator is configured for CAN_PIPE mode, this action will stop any currently runningsimulator. If the current simulator is not CAN_PIPE, or if no simulator is currently running,this action will do nothing.

Example

iccap_func("/","Stop Simulator")

Store ParametersAutomates the Tools > Store Parameters menu pick in the Plot Optimizer window and theStore Par button in the Extract/Optimize folder.

Page 378: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

377

Valid Objects

TRANSFORM (prog), PlotOptimizer (prog)

menu_func style command: none

Locally stores the current parameter values to the Stored column on the optimizerParameters table. When the file is saved, these values are stored as part of the optimizersettings.

Example

iccap_func("./CGaas1/dc/igvg_0vs","Store Parameters")

iccap_func("./PlotOptimizer","Store Parameters")

See Also

Recall Parameters (prog)

Talk Active AddressAutomates the functionality of the Tools > Address > Talk menu pick in the HardwareSetup window.

Valid Objects

Hardware (prog), HPIB Analyzer (prog)

menu_func style command: "Talk Active Address"

This function sends a TALK command to the device at the currently active address. Theresult is displayed in the IC-CAP/Status window and if visible, the Hardware Setupwindow.

Example

iccap_func("Hardware/HPIBAnalyzer","Talk Active Address")

Text AnnotationAutomates the Options > Session Settings > Text Annotation menu pick in a plot window.

Valid Objects

PLOT (prog)

menu_func style command: none

Toggles Text Annotation on and off for the specified plot.

Example

iccap_func("./dc/fgummel/bvsic", "TextAnnotation")

! Specify plot number for Multiplot

iccap_func("./dc/fgummel/my_multiplot","TextAnnotation","1")

See Also

Text Annotation Off (prog), Text Annotation On (prog)

Text Annotation OffTurns off text annotation for the specified plot.

Page 379: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

378

Valid Objects

PLOT (prog)

menu_func style command: none

Example

iccap_func("./dc/fgummel/bvsic", "TextAnnotationOff")

! Specify plot number for Multiplot

iccap_func("./dc/fgummel/my_multiplot", "TextAnnotationOff", "1")

See Also

Text Annotation (prog), Text Annotation On (prog)

Text Annotation OnTurns on text annotation for the specified plot.

Valid Objects

PLOT (prog)

menu_func style command: none

Example

iccap_func("./dc/fgummel/bvsic", "TextAnnotationOn")

! Specify plot number for Multiplot

iccap_func("./dc/fgummel/my_multiplot","TextAnnotationOn","1")

See Also

Text Annotation (prog), Text Annotation Off (prog)

Toggle ZoomAutomates the Plots > Zoom Plot menu pick in a Multiplot window.

Valid Objects

PLOT (prog)

menu_func style command: none

In the Multiplot window, displays the selected plot in zoom format.

Example

iccap_func("./dc/fgummel/my_multiplot","ToggleZoom","1")

See Also

Zoom Plot (prog), Undo Zoom (prog), Full Page Plot (prog)

Tune FastAutomates the Tune Fast button in the Extract/Optimize folder and in the Plot Optimizerwindow.

Valid Objects

SETUP (prog), TRANSFORM (prog), PlotOptimizer (prog)

menu_func style command: none

Page 380: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

379

Displays set of sliders enabling you to constantly tune set of optimization parametersduring an optimization. The object name must include the optimization transform name.

Example

iccap_func("./CGaas1/dc/igvg_0vs/optim1","Tune Fast")

iccap_func("./PlotOptimizer/optim1","Tune Fast")

Tune SlowAutomates the Tune Slow button in the Extract/Optimize folder and in the Plot Optimizerwindow.

Valid Objects

SETUP (prog), TRANSFORM (prog), PlotOptimizer (prog)

menu_func style command: none

Displays set of sliders enabling you to tune set of optimization parameters during anoptimization. The object name must include the optimization transform name.

Example

iccap_func("/CGaas1/dc/igvg_0vs/optim1","Tune Slow")

iccap_func("./PlotOptimizer/optim1","Tune Slow")

Turn Off MarkerAutomates the action of clicking outside the grid boundary on a plot, which has the sameeffect as deselecting any selected points.

Valid Objects

Plot

menu_func style command: none

If a point is selected and the marker information is displayed under the title, this call willdeselect the selected point and turn off the marker information. It will have no effect if nopoints were selected.

Example

iccap_func("dc/fgummel/icibvsve", "Turn Off Marker")

! turn off the point selected on the 2nd subplot of my_muliplot.

! Specify the subplot number as "1"

iccap_func("dc/fgummel/my_multiplot", "Turn Off Marker","1")

! Turn off the selected points on all plots of a multiplot

iccap_func("dc/fgummel/my_multiplot", "Turn Off Marker")

Undo OptimAutomates the Undo Optim button in the Extract/Optimize folder and in the Plot Optimizerwindow.

Valid Objects

TRANSFORM (prog), PlotOptimizer (prog)

Page 381: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

380

menu_func style command: none

Resets the parameter values in the optimizer Parameters table to values prior to theoptimizations and runs a simulation.

Example

iccap_func("./CGaas1/dc/igvg_0vs","Undo Optim")

iccap_func("./PlotOptimizer","Undo Optim")

Undo ZoomAutomates the Plots > Undo Zoom menu pick in a Multiplot window.

Valid Objects

PLOT (prog)

menu_func style command: none

Resets the Multiplot window to its default format.

Example

iccap_func("./dc/fgummel/my_multiplot","UndoZoom","1")

See Also

Full Page Plot (prog), Toggle Zoom (prog), Zoom Plot (prog)

Unmark All Highlighted CurvesUnmarks all highlighted curves.

Valid Objects

Plot

menu_func style command: none

Example

! Unmark all the highlighted curves.

iccap_func("dc/fgummel/icibvsve", "Unmark All Highlighted Curves")

! Specify the subplot number as "1"

! Unmark all the highlighted curves in the 2nd subplot of

! my_multiplot.

iccap_func("dc/fgummel/my_multiplot", "Unmark All Highlighted Curves", "1")

! Unmark all the highlighted curves in all the subplots of

! my_multiplot.

iccap_func("dc/fgummel/my_multiplot", "Unmark All Highlighted Curves")

See also

Mark Curve Highlighted (prog), Unmark Highlighted Curve (prog), Hide Highlighted Curves(prog), Show Highlighted Curves (prog)

Unmark Highlighted CurveUnmark the specific highlighted curve.

Valid Objects

Plot

menu_func style command: none

Page 382: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

381

Example

! Unmark the highlighted cure which is the 1st curve of the

! 2nd trace.

! Specify the trace number as "1", specify the curve number

! as "0"

iccap_func("dc/fgummel/icibvsve", "Unmark Curve Highlighted", "1", "0")

! Unmark the highlighted curve which is the 1st curve of the

! 1st trace of the 2nd subplot

! Specify the trace number as "0", specify the curve number

! as "0",

! Specify the subplot number as "1"

iccap_func("dc/fgummel/my_multiplot", "Unmark Curve Highlighted", "0", "0","1")

See also

Mark Curve Highlighted (prog), Unmark All Highlighted Curves (prog), Hide HighlightedCurves (prog), Show Highlighted Curves (prog)

Unselect AllAutomates the Plots > Unselect All menu pick in a Multiplot window.

Valid Objects

PLOT (prog)

menu_func style command: none

In the Multiplot window, unselects the currently selected plot.

Example

iccap_func("./dc/fgummel/my_multiplot","UnselectAll")

See Also

Select Plot (prog)

Update AnnotationAutomates the Options > Update Annotation menu pick in a plot window.

Valid Objects

PLOT (prog)

menu_func style command: "Replot Data"

If an annotation file exists for the plot, this will update the display to make it current withthe contents of the annotation.

Example

iccap_func("/CGaas1/dc/igvg_0vs/vs/ig_vs_vg","Update Annotation")

ViewAutomates the View button on the Setup Pages.

Valid Objects

Input, Output, Transform, Plot

menu_func style command: "Display Data"

Opens a window containing the data contained in the named item.

Page 383: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

382

Example

iccap_func("CGaas1/dc/igvg_0vs/vs","View")

Who Are YouAutomates the functionality of the Tools > Address > Who Are You? menu pick in theHardware Setup window.

Valid Objects

Hardware (prog), HPIB Analyzer (prog)

menu_func style command: none

This function tries to determine the identity of the device at the currently active addressas previously set by a call to "Set Active Address". The result is displayed in the IC-CAP/Status window and if visible, the Hardware Setup window.

Example

iccap_func("Hardware/HPIBAnalyzer","Who Are You")

Write to FileAutomates the functionality of the File > Save menu pick in the Hardware Setup window.

Valid Objects

Hardware (prog)

menu_func style command: "Save to File"

Saves the current hardware configuration to a file. If this function were executedmanually, a dialog box would appear asking the user for the name of the file to which thecurrent configuration was to be saved. This functionality is emulated in PEL by appendingthe desired file name followed by "ok" to the end of the command string.

Example

iccap_func("Hardware","Save to File","../mdl/hwm_pel_test.hdw","ok")

Zoom PlotAutomates the Plots > Zoom Plot menu pick in a Multiplot window.

Valid Objects

PLOT (prog)

menu_func style command: none

In the Multiplot window, displays the selected plot in zoom format.

Example

iccap_func("./dc/fgummel/my_multiplot","ZoomPlot","1")

See Also

Undo Zoom (prog), Toggle Zoom (prog), Full Page Plot (prog)

Page 384: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

383

Button/Menu Pick and ActionsActions can be used to automate many IC-CAP dialog buttons and menu picks. Thefollowing tables cross-reference GUI buttons or menu picks to their corresponding actions.

Hardware Setup Window Cross-Reference

Button/Menu Pick Action

Add Interface Add Interface File (prog)

Add to List Add Active Instr (prog)

Configure > Instrument Address Change Address (prog)

Delete Delete Active Instr (prog)

DeleteAll Clear Active List (prog)

Delete Interface Delete Interface File (prog)

File > Close Window Close Hardware (prog)

File > Open Read from File (prog)

File > Save Write to File (prog)

Instruments > Display Display Found Instrs (prog)

Instruments > Find Search for Instruments (prog)

Instruments > Self Test Run Self-Tests (prog)

Instruments > Usage Diagnostics (prog)

Instruments > Zero Sources Disable Supplies (prog)

Rebuild Rebuild Active List (prog)

Tools > Address > Check Check Active Address (prog)

Tools > Address > Listen Listen Active Address (prog)

Tools > Address > Set Set Active Address (prog)

Tools > Address > Talk Talk Active Address (prog)

Tools > Address > Who Are You? Who Are You (prog)

Tools > Interface > Change Change Interface File (prog)

Tools > Interface > Lock I-O_Lock (prog)

Tools > Interface > Reset I-O_Reset (prog)

Tools > Interface > Status Bus status (prog)

Tools > Interface > Unlock I-O_Unlock (prog)

Tools > Macros > Execute Macro File Execute (prog)

Tools > Macros > Specify Macro File Specify (prog)

Tools > Send Receive > Display String Print Read Buffer (prog)

Tools > Send Receive > Read String for Experts Read String for Experts (prog)

Tools > Send Receive > Receive String Read String (prog)

Tools > Send Receive > Send Byte Send Command Byte (prog)

Tools > Send Receive > Send Receive Display Send, Receive, and Print (prog)

Tools > Send Receive > Send String Send String (prog)

Tools > Serial Poll Serial Poll (prog)

Tools > Settings > Timeout Set Timeout (prog)

View > Screen Debug I-O_Screen Debug OFF (prog)I-O_Screen Debug ON (prog)

License Status Cross-Reference

Button/Menu Pick Action

OK Close License Window (prog)

Release Release License (prog) Main Window Cross-Reference

Page 385: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

384

Button/Menu Pick Action

File > Change Directory Change Directory (prog)

Edit > Copy Copy (prog)

Edit > Delete Delete (prog)

File > Edit Edit (prog)

File > Exit Exit/Exit! (prog)

File > New New Model (prog)

File > Open Open Model (prog)

File > Save As Save All (prog)Save All No Data (prog)

Tools > Hardware Setup Open Hardware (prog)

Tools > License Status License Status (prog)

Tools > Options > Diagnostics Diagnostics (prog)

Tools > Options > File Debug File Debug On (prog)File/Screen Debug Off (prog)

Tools > Options > Screen Debug File/Screen Debug Off (prog)Screen Debug On (prog)

Tools > Simulation Debugger Simulation Debugger (prog)

Tools > Stop Simulator Stop Simulator (prog)

Windows > Status Window Status Window (prog) Model Window Cross-Reference

Button/Menu Pick Action

Circuit folder, Import Text Import Text (prog)

Circuit folder, Parse Parse (prog)

Data > Plots > Display All Display Plots (prog)

Duts/Setups folder, Add New DUT (prog)New Setup (prog)

DUTs/Setups, Extract/Optimize folder, Algorithm Set Algorithm (prog)

DUTs/Setups, Extract/Optimize folder, Error Set Error (prog)

DUTs/Setups, Extract/Optimize folder, Execute Execute (prog)

DUTs/Setups, Extract/Optimize folder, Recall Par Recall Parameters (prog)

DUTs/Setups, Extract/Optimize folder, Store Par Store Parameters (prog)

DUTs/Setups, Extract/Optimize folder, Tune Fast Tune Fast (prog)

DUTs/Setups, Extract/Optimize folder, Tune Slow Tune Slow (prog)

DUTs/Setups, Extract/Optimize folder, Undo Optim Undo Optim (prog)

DUTs/Setups, Extract/Optimize, Parameters folder, Autoset Auto Set Min Max (prog)

DUTs/Setups, Extract/Optimize, Parameters folder, Clear Table Clear Table or Clear Parameter Table(prog)

DUTs/Setups, Extract/Optimize, Parameters folder, Reset Reset Min Max (prog)

DUTs/Setups, Instrument Options folder Set Instrument Option Value (prog)

DUTs/Setups, Measure/Simulate folder, Calibrate Calibrate (prog)

DUTs/Setups, Measure/Simulate folder, Clear > Measured,Simulated or Both Measured Simulated

Clear Data/Simulated/Measured/Both(prog)

DUTs/Setups, Measure/Simulate folder, Export Data Export Data Measured (prog)Export Data Simulated (prog)

DUTs/Setups, Measure/Simulate folder, Import Create Import Create (prog)Import Create Header Only (prog)Import Create Measured (prog)Import Create Measured or Simulated(prog)Import Create Simulated (prog)Import Create Simulated or Measured(prog)

DUTs/Setups, Measure/Simulate folder, Measure Measure (prog)

DUTs/Setups, Measure/Simulate folder, Simulate Simulate (prog)

DUTs/Setups, Measure/Simulate folder, View View (prog)

Page 386: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

385

DUTs/Setups, Measure/Simulate and Plots folder Set Table Field Value (prog)

DUTs/Setups, Measure/Simulate folder, Input or Output, View,Dump to Stdout

Dump To Stdout (prog)

DUTs/Setups, Measure/Simulate folder, Input or Output, View, Print Dump To Plotter (prog)Dump To Printer (prog)Dump Via Server (prog)Send To Printer (prog)

DUTs/Setups, Measure/Simulate, Setup Variables folder, SystemVariables

Create Variable Table Variable (prog)

DUTs/Setups, Setup Variables folder Set Variable Table Value (prog)

Edit > Cut Setup/Input Import Delete (prog)

Extract > Active Setup or Active DUT Extract (prog)

File > Close Close All (prog)

File > Export Data Export Dataset (prog)

File > Export Data > Extracted Deck Save Extracted Deck (prog)

File > Import Data Import Data (prog)Import Measured Data (prog)Import Measured or Simulated Data(prog)Import Simulated Data (prog)Import Simulated or Measured Data(prog)

File > Open Open (prog)Open DUT (prog)Open Setup (prog)ReadOnlyValues (prog)

File > Open (Input, Output, Transform, or Plot level selection) Open Input/Output/Transform/Plot(prog)

File > Open (for Macro) Open Macro (prog)

File > Print, (various dialogs) > Print Print Via Server (prog)

File > Save As Save As (prog)Save As No Data (prog)

Macro folder, New New Macro (prog)

Model Parameters folder, Memory Recall Memory Recall (prog)

Model Parameters folder, Memory Store Memory Store (prog)

Model Parameters folder, Reset Reset (prog)

Optimize > Active Setup or Active DUT Optimize (prog)

Tools > Plot Optimizer Open Plot Optimizer (prog)

Tools > Refresh Last Dataset Refresh Dataset (prog)

(various locations) > New New Input/Output/Transform/Plot(prog)

Plot Optimizer Window Cross-Reference

Page 387: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

386

Button/Menu Pick Action

Algorithm Set Algorithm (prog)

Parameters folder, Clear Table Clear Table or Clear Parameter Table (prog)

Error Set Error (prog)

Options folder, Print Settings Dump To Plotter (prog)Dump To Printer (prog)Dump Via Server (prog)Send To Printer (prog)

File > Clear Plot Optimizer Clear Plot Optimizer (prog)

File > Reset Option Table Reset Option Table (prog)

File > Close Close (prog)

Optimize > Tune Fast Tune Fast (prog)

Optimize > Tune Slow Tune Slow (prog)

Tools > Undo Optim Undo Optim (prog)

Plots > Disable All Disable All (prog)

Plots > Enable All Enable All (prog)

Simulate > plot name Simulate Plot Inputs (prog)

Simulate > Simulate All Simulate All (prog)

Tools > AutoSet Min and Max Auto Set Min Max (prog)

Tools > Recall Parameters Recall Parameters (prog)

Tools > Reset Min and Max Reset Min Max (prog)

Tools > Store Parameters Store Parameters (prog) Plots Window Cross-Reference

Page 388: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

387

Button/Menu Pick Action

File > Close Close (prog)

File > Print Dump Via Server UI (prog)

File > Save Image Save Image (prog)

Optimizer > Autoconfigure and Enable Autoconfigure or Autoconfigure And Enable (prog)

Optimizer > Disable All Traces Disable All Traces (prog)

Optimizer > Enable/Disable Plot Disable Plot (prog) Enable Plot (prog)

Optimizer > Global Region > Delete All Delete Global Regions (prog)

Optimizer > Global Region > Reset Reset Global Region (prog)

Optimizer > Open Optimizer Open Plot Optimizer (prog)

Optimizer > trace > Disable Disable Trace (prog)

Optimizer > trace > Set as Both Target and Simulated Set Trace As Both (prog)

Optimizer > trace > Set as Target vs. Set Target Vs Simulated (prog)

Optimizer > trace > Trace Optimizer Region > Add Add Trace Region (prog)

Optimizer > trace > Trace Optimizer Region > DeleteAll Delete Trace Regions (prog)

Optimizer > trace > Trace Optimizer Region > Reset Reset Trace Region (prog)

Options > Autoscale Autoscale (prog)

Options > Copy to Clipboard Copy to Clipboard (prog)

Options > Copy to Variables Copy to Variables (prog)

Options > Draw Diag Line Draw Diag Line (prog)

Options > Edit Definition Edit (prog)

Options > Error > Select Error Region Select Error Region (prog)

Options > Error > Select Whole Plot Select Whole Plot (prog)

Options > Error > Show Absolute Error Show Absolute Error (prog)

Options > Error > Show Relative Error Show Relative Error (prog)

Options > Manual rescale Manual Rescale (prog)Scale Plot/Scale Plot Preview (prog)Scale RI Plot/Scale RI Plot Preview (prog)

Options > Replot Replot (prog)

Options > Rescale Rescale (prog)

Options > Session Settings > Area Tools Area Tools (prog)

Options > Session Settings > Color Color (prog)

Options > Session Settings > Exchange Black-White Exchange Black-White (prog)

Options > Session Settings > Footer Footer (prog)

Options > Session Settings > Header Header (prog)

Options > Session Settings > Legend Legend (prog)

Options > Session Settings > Reset to Saved Options Reset to Saved Options (prog)

Options > Session Settings > Text Annotation Text Annotation (prog)

Options > Update Annotation Update Annotation (prog)

Plots > Full Page Plot Full Page Plot (prog)

Plots > Select Plot Select Plot (prog)

Plots > Undo Zoom Undo Zoom (prog)

Plots > Unselect All Unselect All (prog)

Plots > Zoom Plot Zoom Plot (prog) Simulation Debugger Window Cross-Reference

Button/Menu Pick Action

File > Close Close (prog)

File > Manual Simulation Manual Simulation (prog)

File > Save Command File File > Save Input File File > Save OutputFile

Save Input/Command/Output File(prog)

Status Window Cross-Reference

Page 389: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

388

Button/Menu Pick Action

File > Clear > Errors Clear Status Errors (prog)

File > Clear > Outputs Clear Status Output (prog)

File > Close Error Log Close Error Log (prog)

File > Close Output Log Close Output Log (prog)

File > Open Error Log Open Error Log (prog)

File > Open Output Log Open Output Log (prog) System GUI Items Cross-Reference

Button/Menu Pick Action

Add, Add Child Add GUI (prog)

Close GUI Close GUI (prog)

Close Single GUI Close Single GUI (prog)

Destroy GUI Destroy GUI (prog)

Destroy Single GUI Destroy Single GUI (prog)

Display Modal GUI Display Modal GUI (prog)

Display Modeless GUI Display Modeless GUI (prog)

Display Single Modal GUI Display Single Modal GUI (prog)

Display Single ModelessGUI

Display Single Modeless GUI (prog)

Set GUI Callbacks Set GUI Callbacks (prog)

Set GUI Options Set GUI Options (prog)

IC-CAP (prog) |- Variables (prog) |- GUI Items (prog) |- GUI Item (prog) |- Simulation Debugger (prog) |- Hardware (prog) |- HPIB Analyzer (prog) |- PlotOptions (prog) |- MODEL (prog)(*) |- Variables (prog) |- GUI Items (prog) |- GUI Item (prog) |- Circuit (prog) |- PlotOptimizer (prog) |- PlotOptions (prog) |- Parameter Set (prog) |- MACRO (prog)(*) |- DUT (prog)(*) |-Variables (prog) |- GUI Items (prog) |- GUI Item (prog) |-Test Circuit (prog) |-Device Parameter Set (prog) |-SETUP (prog)(*) |-Variables (prog) |- GUI Items (prog) |- GUI Item (prog) |-Instrument Options (prog) |-INPUT (prog)(*) |-OUTPUT (prog)(*) |-TRANSFORM (prog)(*) |-PLOT (prog)(*) |- PlotOptions (prog)

Page 390: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

389

ObjectsThe following is an alphabetic list of objects:

Circuit (prog)Device Parameter Set (prog)DUT (prog)GUI Item (prog)GUI Items (prog)Hardware (prog)HPIB Analyzer (prog)IC-CAP (prog)INPUT (prog)Instrument Options (prog)MACRO (prog)MODEL (prog)OUTPUT (prog)Parameter Set (prog)PLOT (prog)PlotOptimizer (prog)PlotOptions (prog)SETUP (prog)Simulation Debugger (prog)Test Circuit (prog)TRANSFORM (prog)Variables (prog)

CircuitSpecify using: "/<model>/Circuit" where <model> is the name of a model.

Actions allowed

Copy (prog)Import Text (prog)Open (prog)Parse (prog)Save As (prog)Save As No Data (prog)Set Table Field Value (prog)

Device Parameter SetSpecify using: "/<model>/<dut>/DeviceParameterSet" where <model> is the name of amodel and <dut> is the name of a DUT within that model.

Actions allowed

Copy (prog)Memory Recall (prog)Memory Store (prog)Open (prog)ReadOnlyValues (prog)Reset (prog)Save As (prog)Save As No Data (prog)

DUTSpecify using: "/<model>/<DUT>" where <model> is the name of a model, and <DUT>is the name of a DUT within that model.

Actions allowed

Page 391: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

390

Clear Data/Both (prog)Clear Data/Measured (prog)Clear Data/Simulated (prog)Close All (prog)Close Branch (prog)Copy (prog)Create Variable Table Variable (prog)Delete (prog)Display Plots (prog)Export Dataset (prog)Extract (prog)Import Data (prog)Import Measured Data (prog)Import Measured or Simulated Data (prog)

Import Simulated Data (prog)Import Simulated or Measured Data (prog)Measure (prog)New Setup (prog)Open (prog)Open Branch (prog)Open Setup (prog)Optimize (prog)Rename (prog)Save As (prog)Save As No Data (prog)Set Variable Table Value (prog)Simulate (prog)

GUI ItemSpecify using: "GUIItem"

Actions allowed

Add GUI (prog)Close GUI (prog)Close Single GUI (prog)Copy (prog) Destroy GUI (prog)Destroy Single GUI (prog)Display Modal GUI (prog)Display Modeless GUI (prog)Display Single Modal GUI (prog)Display Single Modeless GUI (prog)Set GUI Callbacks (prog)Set GUI Options (prog)

GUI ItemsSpecify using: "GUIItems"

Actions allowed

Open (prog)Save As (prog)

HardwareSpecify using: "Hardware"

Actions allowed

Add Active Instr (prog)Add Interface File (prog)Change Address (prog)Clear Active List (prog)Close Hardware (prog)Delete Active Instr (prog)Delete Interface File (prog)Diagnostics (prog)Disable Supplies (prog)Display Found Instrs (prog)Read from File (prog)Rebuild Active List (prog)Replace Interface File (prog)Run Self-Tests (prog)Write to File (prog)

HPIB Analyzer

Page 392: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

391

Specify using: "Hardware/HPIBAnalyzer"

Actions allowed

Bus status (prog)Change Interface File (prog)Check Active Address (prog)I-O_Lock (prog)I-O_Reset (prog)I-O_Screen Debug ON (prog)I-O_Screen Debug OFF (prog)I-O_Unlock (prog)Listen Active Address (prog)Macro File Execute (prog)Macro File Specify (prog)Print Read Buffer (prog)

Read String (prog)Read String for Experts (prog)Search for Instruments (prog)Send Command Byte (prog)Send, Receive, and Print (prog)Send String (prog)Serial Poll (prog)Set Active Address (prog)Set Speed (prog)Set Timeout (prog)Talk Active Address (prog)Who Are You (prog)

IC-CAPSpecify using: "IC-CAP", "ic-cap" or "/"

Actions allowed

Change Directory (prog)Clear Status Errors (prog)Clear Status Output (prog)Close Error Log (prog)Close License Window (prog)Close Output Log (prog)Create Status Button (prog)Create Variable Table Variable (prog)Debug Off (prog)Diagnostics (prog)Exit/Exit! (prog)File Debug Off (prog)File Debug On (prog)License Status (prog)

New Model (prog)Open Error Log (prog)Open Hardware (prog)Open Model (prog)Open Output Log (prog)Release License (prog)Remove Status Button (prog)Remove All Status Buttons (prog)Save All (prog)Save All No Data (prog)Screen Debug Off (prog)Screen Debug On (prog)Set Variable Table Value (prog)Simulation Debugger (prog)Status Window (prog)Stop Simulator (prog)Stop Multisim (prog)

Create Status ButtonAdds a customized menu pick and associated icon to the status window. If the menu pickhas already been added, the menu is simply updated.

Valid Objects

IC-CAP (prog)

menu_func style command: none

Each call requires a menupick, a tool tip, an icon image name, and a single alphanumericcharacter.

The menupick is a simple string with the > character as a sub-menu delimiter. Thus "a>b"will create a menu 'b' under the menu 'a' which will appear in the status window menubar.This string is what differentiates the menus from one another. "Create Status Button" witha menupick that is already on the status window, this menu will simply be updated (youcould change the icon image or the character sent).

The tool tip is a simple string that will display when the mouse lingers over the icon as ahelp for what the icon will do.

The icon image name can be one of the standard image names already in the system, ormay refer to an icon of your own creation. IC-CAP will look for custom bitmaps in the

Page 393: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

392

following directories: $HOME/hpeesof/custom/bitmaps, $ICCAP_ROOT/iccap/bitmaps, or$ICCAP_ROOT/hpeesof/custom/bitmaps. Simply copy a .bmp, .png, .gif, or .jpg file to oneof these directories and pass the name before this extension to the icon image and theimage will appear as the icon image for the custom button.

The single alphanumeric character will be used to differentiate the buttons in PEL. It ispossible to assign multiple buttons the same character, but it will be impossible todifferentiate which buttons were pressed in PEL if this is done. PEL only can interpret thebutton presses based on these key characters.

Example

iccap_func("/","Create Status Button", "My Menu>Do it!", "Press This for custom

action", "play", "P")

Remove All Status ButtonsRemoves all customized menu pick previously added with 'Create Status Button'

Valid Objects

IC-CAP (prog)

menu_func style command: none

No additional arguments are required. All custom menus/icons on the IC-CAP/Statuswindow will be removed.

Example

iccap_func("/","Remove All Status Buttons")

Remove Status ButtonRemoves a customized menu pick previously added with 'Create Status Button'

Valid Objects

IC-CAP (prog)

menu_func style command: none

Each call requires a menupick of the exact name as a previously created button. If you tryto remove a menu that has not been created, no action will occur.

Example

iccap_func("/","Remove Status Button", "My Menu>Do it!")

INPUTSpecify using: "/<model>/<DUT>/<Setup>/<Input>" where <model> is the name of amodel, and <DUT> is the name of a DUT within that model, <Setup> is a setup withinthat DUT, and <Input> is the name of an input within the setup."

Actions allowed

Copy (prog)Delete (prog)Dump To Stdout (prog)Edit (prog)Open (prog)Print Via Server (prog)Redisplay (prog)Rename (prog)

Page 394: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

393

Save As (prog)Save As No Data (prog)Send To Printer (prog)Set Table Field Value (prog)View (prog)

Instrument OptionsSpecify using: "/<model>/<DUT>/<Setup>/InstrumentOptions" where <model> is thename of a model, and <DUT> is the name of a DUT within that model, and <Setup> is asetup within that DUT.

Actions allowed

Open (prog)Save As (prog)Save As No Data (prog)

MACROSpecify using: "/<model>/<macroName>" where <model> is the name of a model, and<macroName> is the name of a macro within that model.

Actions allowed

Copy (prog)Delete (prog)Execute (prog)Open (prog)Rename (prog)Save As (prog)Save As No Data (prog)Set Table Field Value (prog)

MODELSpecify using: "/<name>" where <name> is the name of the model

Actions allowed

Clear Data/Both (prog)Clear Data/Measured (prog)Clear Data/Simulated (prog)Close All (prog)Copy (prog)Create Variable Table Variable (prog)Delete (prog)Display Plots (prog)Edit (prog)Export Dataset (prog)Import Data (prog)Import Measured Data (prog)Import Measured or Simulated Data (prog)Import Simulated Data (prog)

Import Simulated or Measured Data (prog)Open (prog)Open DUT (prog)Open Macro (prog)New DUT (prog)New Macro (prog)Refresh Dataset (prog)Rename (prog)Save As (prog)Save As No Data (prog)Save Extracted Deck (prog)Set Variable Table Value (prog)Stop Simulator (prog)

OUTPUTSpecify using: "/<model>/<DUT>/<Setup>/<Output>" where <model> is the name of amodel, and <DUT> is the name of a DUT within that model, <Setup> is a setup withinthat DUT, and <Output> is the name of an output within the setup.

Actions allowed

Copy (prog)Delete (prog)Dump To Stdout (prog)Edit (prog)

Page 395: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

394

Open (prog)Print Via Server (prog)Redisplay (prog)Rename (prog)Save As (prog)Save As No Data (prog)Send To Printer (prog)Set Table Field Value (prog)View (prog)

Parameter SetSpecify using: "/<model>/ParameterSet" where <model> is the name of a model.

Actions allowed

Copy (prog)Memory Recall (prog)Memory Store (prog)Open (prog)ReadOnlyValues (prog)Reset (prog)Save As (prog)Save As No Data (prog)Set Table Field Value (prog)

PLOTSpecify using: "/<model>/<DUT>/<Setup>/<Plot>" where <model> is the name of amodel, and <DUT> is the name of a DUT within that model, <Setup> is a setup withinthat DUT, and <Plot> is the name of a plot within the setup.

Actions allowed

Page 396: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

395

Add Global Native Region (prog)Add Global Region (prog)Add Trace Region (prog)Area Tools (prog)Area Tools Off (prog)Area Tools On (prog)Autoconfigure or Autoconfigure And Enable (prog)Autoscale (prog)Close (prog)Color (prog)Copy (prog)Copy to Clipboard (prog)Copy to Variables (prog)Create Image (prog)Data Markers (prog)Delete (prog)Delete Global Regions (prog)Delete Trace Regions (prog)Delete All User Regions (prog)Delete User Region (prog)Disable All Traces (prog)Disable Plot (prog)Disable Trace (prog)Display Plot (prog)Draw Diag Line (prog)Dump To Plotter (prog)Dump To Printer (prog)Dump Via Server (prog)Dump Via Server UI (prog)Edit (prog)Enable Plot (prog)Exchange Black-White (prog)Footer (prog)Footer Off (prog)Footer On (prog)Full Page Plot (prog)Header (prog)Header Off (prog)Header On (prog)Hide Highlighted Curves (prog)Legend (prog)Legend Off (prog)Legend On (prog)

Manual Rescale (prog)Mark Curve Highlighted (prog)Open (prog)Open Plot Optimizer (prog)Print Via Server (prog)Rescale (prog)Reset to Saved Options (prog)Redisplay (prog)Rename (prog)Replot (prog)Reset Global Region (prog)Reset Trace Region (prog)Save As (prog)Save As No Data (prog)Save Image (prog)Scale Plot (prog)Scale Plot Preview (prog)Scale RI Plot (prog)Scale RI Plot Preview (prog)Select Error Region (prog)Select Plot (prog)Select Whole Plot (prog)Send To Printer (prog)Set Table Field Value (prog)Set Target Vs Simulated (prog)Set Trace As Both (prog)Set User Region (prog)Show Absolute Error (prog)Show Highlighted Curves (prog)Show Relative Error (prog)Text Annotation (prog)Text Annotation Off (prog)Text Annotation On (prog)Toggle Zoom (prog)Turn Off Marker (prog)Unmark All Highlighted Curves (prog)Unmark Highlighted Curve (prog)Undo Zoom (prog)Unselect All (prog)Update Annotation (prog)View (prog)Zoom Plot (prog)

PlotOptimizerSpecify using: "/<model>/PlotOptimizer" where <model> is the name of a model.

Actions allowed

Auto Set Min Max (prog)Auto Set Optimize or Auto Set And Optimize (prog)Clear Plot Optimizer (prog)Clear Table or Clear Parameter Table (prog)Disable All (prog)Enable All (prog)Optimize (prog)Recall Parameters (prog)Reset Min Max (prog)Reset Option Table (prog)

Set Algorithm (prog)Set Error (prog)Set Table Field Value (prog)Simulate All (prog)Simulate Plot Inputs (prog)Store Parameters (prog)Tune Fast (prog)Tune Slow (prog)Undo Optim (prog)

PlotOptionsPlot Options are associated with the root IC-CAP object, models, and plots. To name theplot options, name the object with /PlotOptions appended (e.g., /PlotOptions,/modelname/PlotOptions, or /model/DUT/setup/plot/PlotOptions).

Actions allowed

Set Table Field Value (prog)

Page 397: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

396

Example

iccap_func("myplot/PlotOptions","SetTableFieldValue", "","")

iccap_func("/mymodel/PlotOptions","SetTableFieldValue", "","")

iccap_func("/mymodel/PlotOptions","SetTableFieldValue", "","")

where <access name> and <value> examples are listed in the following table:

NoteTo see the current <access name> and <value> settings, save the plot options from the Plot Optionsdialog then view in a text editor.

PlotOption Access Name and Value Examples

Description Access Names Values

Setting Trace Color onwhite

"On White [Data 0]" "2" (gxvt color index)

Setting Trace Color onblack

"On Black [Data 3]" "4" (gxvt color index)

Setting Symbol "Symbol [Data 0]" "Circle"

Setting Line type "Measured[Data 0]",

"Simulated[Data0]","Measured [Y2Data]","Simulated[Y2Data]"

"Default","Symbols Only","Solid Line","Dot Line","Dot Dot Line","Dashed Line","Dot Dashed Line","Long Dashed Line","Long Dot Dashed Line","Solid Line with Symbols"

Selecting Multicolor Curvesetting

"Multicolor" "Display all curves with the configured trace color","Change color with every curve","Change color with each 2nd order curve","Change color with each highest order curve"

Selecting Multicolor Curvecolor

"On White [Curve0]"

"2" (gxvt color index)

Selecting DataRepresentation

"Measured Trace","Simulated Trace","Transform Result"

"Symbols Only", "Solid Line", "Dashed Line", "Solid Linewith Symbols"

Layout and backgroundsettings

"Show Title","Show Title","Show Header","Show Footer","Show Legend","White Background",

"Show Area Tools"

"Yes", "No", "Automatic"

Selecting font and size "Font Type","Font Size"

"Arial for CAE", "12"

Selecting Symbol Size "Symbol Size" "4"

Selecting font and size ofAnnotation

"Annotation FontName","Annotation Font Sz"

"Arial for CAE", "9"

Enable/Disable Annotation "Enable Annotation" "Yes", "No", "Automatic"

Annotation Location "AnnotationLocation"

"Upper Left", etc.

Annotation text "Annotation Text" "W=10" or use an IC-CAP variable. Multiline text isavailable, each line must be separated by the string "\012"

Control Via PEL "PEL Control" "Yes", "No", "Automatic"

Specify annotationmacro/transform

"PEL Transform" <name path>

Specify when updating theannotation

"PEL Call Type" "0" Only when plot is opened"1" Every time plot is refreshed

SETUP

Page 398: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

397

Specify using: "/<model>/<DUT>/<Setup>" where <model> is the name of a model, and<DUT> is the name of a DUT within that model, and <Setup> is a setup within that DUT.

Actions allowed

Calibrate (prog)Clear Data/Both (prog)Clear Data/Measured (prog)Clear Data/Simulated (prog)Close All (prog)Copy (prog)Create Variable Table Variable (prog)Delete (prog)Display Plots (prog)Export Data Measured (prog)Export Dataset (prog)Export Data Simulated (prog)Extract (prog) Import Create (prog)Import Create Header Only (prog)Import Create Measured (prog)Import Create Measured or Simulated (prog)Import Create Simulated (prog)Import Create Simulated or Measured (prog)Import Data (prog)Import Delete (prog)

Import Measured Data (prog)Import Measured or Simulated Data (prog)Import Simulated Data (prog)Import Simulated or Measured Data (prog)Measure (prog)New Input (prog)New Output (prog)New Plot (prog)New Transform (prog)Open (prog)Open Input (prog)Open Output (prog) Open Plot (prog)Open Transform (prog)Optimize (prog)Rename (prog)Save As (prog)Save As No Data (prog)Set Variable Table Value (prog)Simulate (prog)

Simulation DebuggerSpecify using: "SimulationDebugger"

Actions allowed

Close (prog)Manual Simulation (prog)Save Command File (prog)Save Input File (prog)Save Output File (prog)Simulation Debugger (prog)

Example

iccap_func("ic-cap","Simulation Debugger")

Test CircuitSpecify using: "/<model>/<dut>/TestCircuit" where <model> is the name of a model and<dut> is the name of a DUT within that model.

Actions allowed

Copy (prog)Import Text (prog)Open (prog)Parse (prog)Save As (prog)Save As No Data (prog)

TRANSFORMSpecify using: "/<model>/<DUT>/<Setup>/<Transform>" where <model> is the nameof a model, and <DUT> is the name of a DUT within that model, <Setup> is a setupwithin that DUT, and <Transform> is the name of a transform within the setup.

Actions allowed

Page 399: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

398

Auto Set Min Max (prog)Clear Table or Clear Parameter Table (prog)Copy (prog)Delete (prog)Dump To Stdout (prog)Execute (prog)Open (prog)Print Via Server (prog)Recall Parameters (prog)Redisplay (prog)Rename (prog)Reset Min Max (prog)

Reset Option Table (prog)Save As (prog)Save As No Data (prog)Send To Printer (prog)Set Algorithm (prog)Set Error (prog)Set Table Field Value (prog)Store Parameters (prog)Tune Fast (prog)Tune Slow (prog)Undo Optim (prog)View (prog)

VariablesSpecify using: "<path>/Variables" where <path> is the path to a Model, DUT, or Setup,or the slash (/) only to specify the top-level IC-CAP object.

Actions allowed

Open (prog)Print Via Server (prog)Save As (prog)Save As No Data (prog)Send To Printer (prog)Set Table Field Value (prog)

Examples:

iccap_func("/Variables","Save As")

iccap_func("/CGaas1/Variables","Save As")

iccap_func("/CGaas1/dc/Variables","Save As")

iccap_func("/myModel/myDut/mySetup/Variables","Save As")

Page 400: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

399

Parameter Extraction LanguageIC-CAP's Parameter Extraction Language can be used to create new functions. Thislanguage is modeled on Rocky Mountain BASIC (rmb), the name adopted for HP BASIC orWorkstation BASIC when HP introduced it on HP-UX. IC-CAP implements a subset that canaid in controlling the system and performing computations.

This section describes the syntax and operation of this interpreter. It is responsible forseveral IC-CAP system features:

Numerical expressions in most editors in the systemTransforms using the Program2 or Program functionMacros that a Model can use

Fundamental ConceptsThe interpreter within IC-CAP can execute programs made up of statements that consistof keywords and expressions. Expressions are constructed from functions, identifiers, andoperators. You enter these statements in the text editor that appears when you selectProgram2 or Program as the function name in the Extract/Optimize folder, or when youopen the Macros folder (refer to Creating and Running Macros (prog). The sameinterpreter is used to evaluate the expressions entered in various tables providing aconsistent syntax throughout the system. Strictly speaking, the expressions appearing intables are not statements.

Keywords

Keywords are reserved by the Parameter Extraction Language. A keyword can be one ofthe reserved words required for a statement, such as PRINT.

It can also be a built-in function or a built-in constant. For keyword descriptions, refer toBuilt-in Functions (prog) and Built-In Constants.

Keywords are entered in all uppercase or all lowercase, but not upper and lower case. Forexample, to call the built-in function MAX:

MAX(ic) ormax(ic)

Although the functions in IC-CAP's Function List can be invoked, those functions, such asRMSerror, are not language keywords. To be used in a Program, expression, or Macro,these functions must be spelled exactly as shown in the Function List.

Identifiers

Identifiers are Parameter Extraction Language variable names; they have the followingproperties:

Identifiers can be of mixed case.An identifier can be any length.An identifier starts with an alphabetic character or an underscore character (_). Itcan include alphanumeric characters and underscore characters thereafter. Fournotable exceptions to this are:

A subcircuit parameter, like npn.BF, is a legitimate identifier; a period (.) isallowed in this case.A data set, like npn/dc/fgummel/ic is a legitimate identifier; a slash (/) isallowed in this case.The notations ../ and ../.. are allowed to indicate relative paths in the currentlyexecuting macro or transform for dataset access.

Page 401: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

400

In Programs and Macros, local variable names (identifiers) can end with atrailing dollar sign ($). Included for the convenience of BASIC programmerswhen using string variables, the only effect is that the program is easier to read.An example is: Hi$="hello world"

Numeric Precision

You can control numeric precision by setting the variables WORKING_PRECISION and/orPARAMETER_PRECISION or by using the PEL function val$().

PARAMETER_PRECISION (prog)This variable controls the precision of parameters stored in the Model or DUTParameters table, as well as the precision of parameters passed to a simulator.

WORKING_PRECISION (prog)This variable controls the precision of numeric values when converted to text, butaffects only those parts of a model for which the variable is defined. Depending onwhen and where the conversion occurs, precision can be actually lost or simplyhidden. This conversion occurs in the following situations: any time the functionval$() is called; the PRINT statement is used; a numeric value is assigned to avariable in the IC-CAP Variable Table; a number is displayed to the screen (e.g., inan input/output/plot definition or tabular data) or saved to a file. (Because allvariables in the IC-CAP Variable Table are text by definition, assigning a numericvalue to such a variable will implicitly call the val$() function.)Although the numbers are truncated for display purposes according to theWORKING_PRECISION variable, IC-CAP uses the untruncated numbers forcalculations until the file is saved. After the truncated numbers are saved in a filethen reread, the truncated numbers are used in calculations. For example, if you type1.23456 into an input field, 1.235 is displayed. However, 1.23456 is used forcalculation. After the file is saved and reread, 1.235 is not only displayed but alsoused for calculations.When you change the WORKING_PRECISION variable, the change is only apparentwith subsequently edited or redisplayed fields.The value of the WORKING_PRECISION variable applies to the precision of theStart/Stop/Stepsize fields of inputs, though not all instrumentation can support suchresolution. Using higher precision involving these fields should be done with caution.The range of values is 6 through 17. The default is 6.

Controlling precision through val$() calls

The function val$() has an optional second argument that can be used to control numericprecision. For example, the statement y=val$(x,12) will convert the number x to a stringusing up to 12 significant digits if required. Use this form of val$() when the current valueof WORKING_PRECISION is acceptable for most of the work at hand, but greater control isrequired for isolated instances. In those instances, the second argument of val$() can beused to override the current working precision.

The examples that follow show how the output varies based on whether or not theWORKING_PRECISION variable is defined, and how the WORKING_PRECISION variable,when defined, is overridden by using val$().

NoteWhen doing comparisons on real numbers, you may see unexpected results (PEL printouts are rounded,although full precision is used internally). Using the new WORKING_PRECISION variable or the val$(xxx,y)function, you can verify the actual value.

For example, consider the following PEL clause:

x=0.39999999999

IF x < 0.4 THEN

PRINT x;"is less than 0.4"

Page 402: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

401

END IF

Since x=0.39999999999, the IF clause will be entered but it will print 0.4 is less than 0.4.To verify the actual value, change the x in the print statement to val$(x,15). The outputwill then show 0.39999999999 is less than 0.4.

PRINT val$(x,15);"is less than 0.4

Example, Scenario 1

This scenario shows the usefulness of the new argument in the val$() function.Conditions: No WORKING_PRECISION variable is declared within current scope;var1, and var2 are variables in the Variable table within the current scope.PEL

x=0.1234567890123 ! implicit val$() used behind the scenes uses

var1=x ! default working precision (6 digits)

var2=val$(x,9) ! explicit val$() specifying 9 digits of precision

y=0+var1 ! implicit val() used on var1 to make numeric again

z=0+var2 ! implicit val() used on var1 to make numeric again

print "Default precision x=",x ! default working precision used

print "Default precision y=",y ! default working precision used

print "Default precision z=",z ! default working precision used

print "var1=",var1 ! no conversion--var1 already text

print "var2=",var2 ! no conversion--var2 already text

print "High precision x=",val$(x,9) ! explicit working precision

print "High precision y=",val$(y,9) ! explicit working precision

print "High precision z=",val$(z,9) ! explicit working precision

Output

Default precision x= 0.1235

Default precision y= 0.1235

Default precision z= 0.1235

var1= 0.1235

var2= 0.123456789

High precision x= 0.123456789

High precision y= 0.1235

High precision z= 0.123456789

Notice that y lost precision because var1 lost precision, however it is clear fromthe High precision lines that more information is available for x and z eventhough printing at the default precision did not reveal it.

Example, Scenario 2

This Scenario uses the same code as Scenario 1, except that the default workingprecision has been increased via the WORKING_PRECISION variable.Conditions: WORKING_PRECISION variable in the current scope is set to 12;var1 and var2 are variables in the Variable Table within the current scope.PEL

x=0.1234567890123 ! implicit val$() used behind the scenes uses

var1=x ! current working precision (12 digits)

var2=val$(x,9) ! explicit val$() specifying 9 digits of precision

y=0+var1 ! implicit val() used on var1 to make numeric again

z=0+var2 ! implicit val() used on var1 to make numeric again

print "Default precision x=",x ! current working precision used

print "Default precision y=",y ! current working precision used

print "Default precision z=",z ! current working precision used

print "var1=",var1 ! no conversion--var1 already text

print "var2=",var2 ! no conversion--var2 already text

print "High precision x=",val$(x,9) ! explicit working precision

print "High precision y=",val$(y,9) ! explicit working precision

print "High precision z=",val$(z,9) ! explicit working precision

Page 403: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

402

Output

Default precision x= 0.123456789012

Default precision y= 0.123456789012

Default precision z= 0.123456789

var1= 0.123456789012

var2= 0.123456789

High precision x= 0.123456789

High precision y= 0.123456789

High precision z= 0.123456789

In this case, notice that the overriding val$() assignments actually lower thedefault precision since the default has been set to 12 digits via theWORKING_PRECISION variable.

Statements

This section describes how to write statements that make up Programs and Macros. Theinformation in this section is not required to use expressions in the editor tables within IC-CAP.

Rules for Constructing Statements

As in BASIC, statements are generally contained in a single line of input. On the otherhand, a quoted string can be as many lines long as needed and can contain CR-LFs(carriage return-line feeds).

Statements can be arbitrarily complex, and can use parentheses and white space to clarifyprecedence and improve readability.

Keywords must be all uppercase or all lowercase characters. Calls to functions in IC-CAP'sFunction List must be spelled exactly as they are in the Function List.

Use an exclamation mark (!) to comment out a line or any part of a line.

Available Statements and Commands

The following statements are taken from HP BASIC. They are sensitive to the use of CR-LF, and must be written as shown. For example, the ELSE keyword should be followed bynothing on the same line, although a comment (starting with !) could follow it. In thissection, the abbreviation expr denotes an expression. Expressions are described inExpressions. The abbreviation boolean_expr denotes a boolean expression, generally 0 or1 (1, as well as any non-zero value, is considered TRUE). For more information, refer toBoolean Expressions.

Branching Statements

IF THEN with a single statement

IF boolean_expr THEN statement

IF THEN with multiple statements

IF boolean_expr THEN

statement1

.

.

.

statementN

END IF

Page 404: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

403

IF THEN ELSE statement

IF boolean_expr THEN

statement1

.

.

.

statementN

ELSE

statement1

.

.

.

statementN

END IF

IF THEN ELSEIF THEN statement

IF boolean_expr THEN

statement1

.

.

.

statementN

ELSE IF boolean_expr THEN

statement1

.

.

.

statementN

END IF

You may use as many ELSEIF clauses as desired before the ENDIF

IF THEN ELSEIF THEN ELSE statement

IF boolean_expr THEN

statement1

.

.

.

statementN

ELSE IF boolean_expr THEN

statement1

.

.

.

statementN

ELSE

statement1

.

.

.

statementN

END IF

You may use as many ELSEIF clauses as desired before the ELSE

Looping Statements

WHILE statement

WHILE boolean_expr

statement1

.

.

Page 405: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

404

.

statementN

END WHILE

You may use CONTINUE, BREAK, or EXITIF within a WHILE loop (see below).

REPEAT UNTIL statement

REPEAT

statement1

.

.

.

statementN

UNTIL boolean_expr

You may use CONTINUE, BREAK, or EXITIF within a REPEAT/UNTIL loop(see below).

LOOP statement

LOOP

statement1

.

.

.

statementN

END LOOP

You may use CONTINUE, BREAK, or EXITIF within a LOOP loop (see below).

Note this is an infinite loop, use BREAK or EXITIF to exit.

FOR TO NEXT statement

FOR i=init TO term [ STEP dstep ]

statement1

.

.

.

statementN

NEXT i

The value of dstep can be either positive or negative. If not specified, dstepdefaults to +1.The loop execution condition is:

loop executes if i<=term when dstep>0 (incremental),which corresponds to 'for (int i=init; i<=term; i++)' in Corloop executes if i>=term when dstep<0 (decremental),which corresponds to 'for (int i=init; i>=term; i--)' in C

You may use CONTINUE, BREAK, or EXITIF within a FOR/NEXT loop (seebelow).

Note i may be automatic, variable table or variable table array cell (var[4], forexample).

CONTINUE statement

CONTINUE

Page 406: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

405

At this statement the next iteration is immediately begin.

BREAK statement

BREAK

At this statement we exit the innermost enclosing loop.

EXIT IF statement

EXIT IF boolean_expr

At this statement we exit the innermost enclosing loop if the specified conditionis true.

Other Statements

GET_DATASET statement

GET_DATASET prompt_string, variable_name

GET_DATASET prompt_string, default_string, variable_name

GET_DATASET is currently only supported by the Program2 function. An erroroccurs if used with a Program function or Macro. GET_DATASET can redirect aProgram2 dataset or array parameter argument into a named variable. Theprompt_string and optional default_string parameters are currently unused andignored. The variable_name argument is a variable that receives the redirectedProgram2 parameter argument. The named variable can be a variable local tothe Program2 function. After the GET_DATASET statement finishes, it returns adataset to the named variable. Currently the named variable can not represent aglobal variable or variable from an IC-CAP variable table.Example Program2 function transform using GET_DATASET:

sub_prog

{

PRINT "enter sub_prog"

! re-direct a dataset parameter argument passed into

this

! function into local variable loc_x

GET_DATASET "", loc_x

PRINT "loc_x == "

PRINT loc_x

PRINT "leave sub_prog"

RETURN

}

Example:

! create a small dataset x

COMPLEX x[5]

i = 0

WHILE i < sizeof(x)

x[i] = i+2 + j*(i+1)

i=i+1

ENDWHILE

! pass a small dataset x to the Program2 function sub_prog

iccap_func("sub_prog", "Execute", x)

Output:

Page 407: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

406

enter sub_prog

loc_x ==

Point Index R:measured I:measured

0 (1,1) 2.000000E+000 1.000000E+000

1 (1,1) 3.000000E+000 2.000000E+000

2 (1,1) 4.000000E+000 3.000000E+000

3 (1,1) 5.000000E+000 4.000000E+000

4 (1,1) 6.000000E+000 5.000000E+000

Point Index R:simulated I:simulated

0 (1,1) 2.000000E+000 1.000000E+000

1 (1,1) 3.000000E+000 2.000000E+000

2 (1,1) 4.000000E+000 3.000000E+000

3 (1,1) 5.000000E+000 4.000000E+000

4 (1,1) 6.000000E+000 5.000000E+000

leave sub_prog

GET_INT statement

GET_INT prompt_string, variable_name

GET_INT prompt_string, default_string, variable_name

Uses a dialog box to request an integer input from the user, prompting withprompt_string, which should be a quoted string, an identifier, or an expressiontreated as an integer. Where applicable, default_string provides the user with adefault answer, enabling the user to simply select OK and avoid typing any data.The prompt_string can be any valid string expression. The default_string can beany valid string expression representing an integer.

The variable_name argument is a variable that receives the user's response. Thevariable can be an IC-CAP system variable, or a variable local to Program,Program2, or Macro. After the GET_INT statement finishes, it returns an integervalue to the named variable. If the named variable is a global variable, theinteger value will be stored in the variable table.

The GET_INT dialog box contains 2 buttons: CANCEL and OK. Choose CANCEL toterminate Program, Program2, or Macro immediately.

If GET_INT is used in a Program or Macro to pass parameters, all GET_INTstatements should be located immediately at the start of the Program or Macroalong with any other GET_INT, GET_REAL, GET_STRING or LINPUT statements.Once any other ICCAP_FUNC statement is invoked, the list of arguments isreset, thereby removing all the extra arguments from the calling ICCAP_FUNCstatement. Program2 does not have this limitation.

If GET_INT is used in a Program or Macro to pass parameters, the GET_INTstatement searches the passed parameter list until it finds a valid passed integerparameter argument. In the Program2 function, the GET_INT statement willonly try to evaluate the next available passed function parameter as an integervalue, and will error out if the next passed function parameter can not beevaluated as an integer value.

GET_REAL statement

GET_REAL prompt_string, variable_name

GET_REAL prompt_string, default_string, variable_name

Uses a dialog box to request a real input from the user, prompting withprompt_string, which should be a quoted string, an identifier, or an expressiontreated as a real value. Where applicable, default_string provides the user witha default answer, enabling the user to simply select OK and avoid typing anydata. The prompt_string can be any valid string expression. The default_stringcan be any valid string expression representing a real value. The variable_name

Page 408: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

407

argument is a variable that receives the user's response. The variable can be anIC-CAP system variable, or a variable local to Program, Program2, or Macro.After the GET_REAL statement finishes, it returns a real value to the namedvariable. If the named variable is a global variable, the string value will bestored in the variable table.

The GET_REAL dialog box contains 2 buttons: CANCEL and OK. Choose CANCELto terminate Program, Program2, or Macro immediately.

If GET_REAL is used in a Program or Macro to pass parameters, all GET_REALstatements should be located immediately at the start of the Program or Macroalong with any other GET_INT, GET_REAL, GET_STRING or LINPUT statements.Once any other ICCAP_FUNC statement is invoked, the list of arguments isreset, thereby removing all the extra arguments from the calling ICCAP_FUNCstatement. Program2 does not have this limitation.

If GET_REAL is used in a Program or Macro to pass parameters, the GET_REALstatement searches the passed parameter list until it finds a valid passed realparameter argument. In the Program2 function, the GET_REAL statement willonly try to evaluate the next available passed function parameter as a realvalue, and will error out if the next passed function parameter can not beevaluated as a real value.

GET_STRING statement:

See LINPUT or GET_STRING statement. GET_STRING is simply an alternatename for the LINPUT command. The new name is consistent with GET_INT,GET_REAL, and GET_DATASET.

GLOBAL_VAR statementGLOBAL_VAR <variable_name>

Declares a variable as a global variable in a program. This statement is mostuseful for the Program2 function, because the Program2 function treats allvariables as local variables unless those variables are first explicitly declared asglobal variables using the GLOBAL_VAR statement. In the Program function, allvariables can be resolved globally or locally without needing to explicitly specifywhich variables are global using the GLOBAL_VAR statement.

The variable_name should refer to an IC-CAP variable in a variable table. Beforeusing a variable from a variable table in Program2, you should declare thevariable as global with GLOBAL_VAR. An error will occur if an IC-CAP variablecould not be found.

GLOBAL_VAR varX

y=varX

RETURN y

ICCAP_FIND_CHILDREN statement

ICCAP_FIND_CHILDREN "/","Model",loadedModels

Sets a variable to be the list of names of a particular child type of an IC-CAPobject. This turns the variable loadedModels from a variable table into anICCAP_ARRAY containing elements that are the names of the currently loadedmodels. Use the sizef() command to determine the size of the array.

Refer to the following table for valid names for the second argument given thetype of the first argument.

Page 409: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

408

First Argument References Second Argument may be

/ Model

any GUI Item Table or any GUI Item GUI Item

any model DUT

any DUT Setup

Any Setup Input, Output, Transform, or Plot

NoteYou should use sizeof() instead of size() because if no objects of the requested type are found, a nullstring ("") is returned instead of an ICCAP_ARRAY[0]. Since size() returns 1 for a null string, you wouldfirst test the result to make sure it is not a null string before using the size() command to determine thenumber of entries. The sizeof() function returns 0 for a variable that is not an ICCAP_ARRAY[].

ICCAP_FUNC statementICCAP_FUNC (object_name, menu_function_name, dialog_answer1, ...)

Used primarily in macros for automating the operation of IC-CAP.

NoteThe ICCAP_FUNC statement replaced the MENU_FUNC statement in release 5.0. For backwardcompatibility, macros containing the MENU_FUNC statement will still work, but new macros should bewritten using the ICCAP_FUNC statement.

For an example on using the ICCAP_FUNC statement, refer to Creating andRunning Macros (prog).

LINPUT or GET_STRING statement

LINPUT prompt_string, variable_name

LINPUT prompt_string, default_string, variable_name

GET_STRING prompt_string, variable_name

GET_STRING prompt_string, default_string, variable_name

Uses a dialog box to request a string input from the user, prompting withprompt_string, which should be a quoted string, an identifier, or an expressiontreated as a string. Where applicable, default_string provides the user with adefault answer, enabling the user to simply select OK and avoid typing any data.Like prompt_string, the default_string can be any valid string expression. Thevariable_name argument is a variable that receives the user's response. Thevariable can be an IC-CAP system variable, or a variable local to the Program,Program2, or Macro. After the LINPUT or GET_STRING statement finishes, itreturns a string to the named variable. This will either be the null string (""), ora string defining the text that would be typed in the LINPUT or GET_STRINGdialog box. If the named variable is a global variable, the string value will bestored in the variable table. To interpret the results as a number, you must useval().

The LINPUT or GET_STRING dialog box contains 2 buttons: CANCEL and OK.Choose CANCEL to terminate Program, Program2, or Macro immediately.

If LINPUT or GET_STRING is used in a Program or Macro to pass parameters, allLINPUT or GET_STRING statements should be located immediately at the startof the Program or Macro along with any other GET_INT, GET_REAL,GET_STRING or LINPUT statements. Once any other ICCAP_FUNC statement isinvoked, the list of arguments is reset, thereby removing all the extraarguments from the calling ICCAP_FUNC statement. Program2 does not havethis limitation.

PRINT statementPRINT expr

Writes an ASCII printout of the given expression to the Status window or

Page 410: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

409

location specified by a preceding PRINTER IS statement. As in HP BASIC, severalarguments can be used, and these can be separated by a semicolon (;), comma(,), or a period (.). The semicolon separator results in no spacing betweenprinted arguments, while the comma separator results in a tab character. Whenprinting multiple arguments, the ampersand (&) operator and the VAL$ functionmay be useful. Refer to Built-in Functions (prog) and Expressions.

PRINTER IS statementPRINTER IS <string>

Specifies where subsequent PRINT statements write. String specifies a path andfilename for subsequent PRINT statements. A special token CRT specifies thatsubsequent PRINT statements write to the Status window. For example:

PRINTER IS "/tmp/tmpfile"

PRINT "This text is going to tmpfile"

PRINTER IS CRT

PRINT "This text is going to the status window"

RETURN statement

RETURN [expr]

Copies a data set expression into the local storage of the Transform, making thedata available to Plots or other Transforms that may reference it. In bothProgram and Program2, it can be used to store data by including the optionalargument. In a Macro, no argument can be present. In both cases, Program,Program2, or Macro terminates after this statement is executed. For example:

Id = IS * exp(vd/NF/vt)

RETURN Id

RETURN_VALUE statementRETURN_VALUE expr

Interprets expr as a single real value. If expr is a dataset, the first value will bereturned. If expr is a variable, it will interpret the value as a real value. If thevariable is an ICCAP_ARRAY, it will interpret the string as a number, returningthe dimension of the ICCAP_ARRAY, not the first value of the array.RETURN_VALUE copies a real value from an expression into the local storage ofthe Transform, making the data available to Plots or other Transforms that mayreference it. Both Program and Program2 terminates after this statement isexecuted. Use RETURN_VALUE when only a single return value is required. Thiswill avoid IC-CAP increasing the size of the return value to the size of the setup.The RETURN_VALUE statement's returned dataset will be size 1, whereas theRETURN statement's return dataset size will be determined by the size of thesetup. RETURN_VALUE is unsupported with Macros.

For example:

Id = 23.44

RETURN_VALUE Id

TUNER statementTUNER pname, min, initValue, max, linLogScale, cbStyle, cbName

where:

Page 411: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

410

pname: is a string (or variable array, refer to the section "Using Variable arrays") containingthe name of the variable or parameter you want automatically adjusted each time thetuner is adjusted.

min: is a number (or variable array, refer to the section "Using Variable arrays") thatspecifies the minimum end of the tuner scale.

initValue: initValue is a number (or variable array, refer to the section "Using Variable arrays")that specifies the initial position of the slider.

max: is a number (or variable array, refer to the section "Using Variable arrays") thatspecifies the maximum end of the tuner scale

linLogScale:

is a number (or variable array, refer to the section "Using Variable arrays") thatspecifies whether the tuner will have a log scale or not.

cbStyle: is a number (1 or 0) that specifies whether or not the callback is called continuouslyas the slider moves (while the user has the mouse button pressed) or only when theslider motion is complete (when the user releases the mouse button). 1 Specifiescontinuous callbacks; 0 specifies endpoint callbacks.

cbName: is a string that specifies a Macro or Transform in the same manner you would refer toa macro or transform using a ICCAP_FUNC statement. This Function will be called asindicated by cbStyle. For example, you may have a macro named cb in model m1and you could specify this macro absolutely with "/m1/cb" or relatively by "cb" fromany macro within m1.

SLIDER statementSLIDER pname, min, initValue, max, OKFlag, retVal

where:

pname: is a string (or variable array, refer to the section "Using Variable arrays") containing thename of the variable or parameter you want automatically adjusted each time the tuneris adjusted.

min: is a number (or variable array, refer to the section "Using Variable arrays") thatspecifies the minimum end of the tuner scale.

initValue:

initValue is a number (or variable array, refer to the section "Using Variable arrays")that specifies the initial position of the slider.

max: is a number (or variable array, refer to the section "Using Variable arrays") thatspecifies the maximum end of the tuner scale

okFlag is an expression. 0 means return as soon as the slider is adjusted; nonzero meansreturn only when user clicks OK.

retVal If more than one slider is specified, using arrays, retVal returns the index of themodified slider and the new value is automatically updated to the initValue array. Ifonly one slider is specified via means other than variable arrays, retVal returns the newvalue of the slider.

Using Variable Arrays

To specify multiple parameters or variables for tuning, you can use variable arrays. Thearguments pname, min, initValue, and max must all be variable arrays of the samedimension. (A variable array is defined by setting the value of any variable in a variabletable to ICCAP_ARRAY[dim] where dim is the dimension of the array.) For example, ifnames, mins, maxs, and currs were all variable arrays of dimension 4, and names was anarray of param names and mins was an array of min values, etc, the statement

TUNER names,mins,currs,maxs,0,1,"mycallback"

would invoke a TUNER with 4 sliders on it, one for each parameter in the names array.

NoteClicking OK on the tuner returns control to the Macro; clicking CANCEL on the tuner aborts the macrocurrently running.

You can set and access n -dimensional variable arrays. If you set the arrays

a=ICCAP_ARRAY[2]

Page 412: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

411

a[0]=ICCAP_ARRAY[2]

you can then access and set a[0][1] in PEL.

UPDATE_EXPLICIT,

UPDATE_MANUAL,

UPDATE_AUTO,

UPDATE_EXTRACT, and

UPDATE_OPTIMIZE statements

Tell IC-CAP when to automatically run a Program. These statements do notaffect the Program, as can be seen in the following examples:

UPDATE_EXPLICIT !suppress all auto-execution of the transform

UPDATE_MANUAL !suppress all auto-execution of the

!transform except during an optimization

UPDATE_AUTO !auto-execute the transform if a data set

!input changes

UPDATE_OPTIMIZE !auto-execute upon selection of the

!Optimize menu function

UPDATE_EXTRACT !auto-execute upon selection of the

!Extract menu function

NoteUPDATE_MANUAL will auto-execute a transform during an optimization only if it is a dependency on thesimulated target of the optimization.

Use only 1 statement per Program and place the statement first in the Program.They have no effect in a macro because macros are never automaticallyexecuted by IC-CAP. For more information about the automatic execution ofPrograms, refer to Automatic Transform Execution (prog).

COMPLEX statement

COMPLEX <array_name>.<type>.<matrix_dimensions>[size_expr]

Declares a temporary variable as an array. The individual points of such anarray can be manipulated, after which the RETURN statement can be used tosave the contents. The array_name and size_expr arguments must be provided.The type specifier and matrix_dimensions specifier are optional. Thematrix_dimensions can be either literal or an expression in ( ) up to 9999. Onlya square matrix is currently supported.

The following examples demonstrate the various forms that the COMPLEXstatement can take. For information on understanding the use of the M, S, andB specifiers, refer to Measured, Simulated, and Common Data (prog). (Thesespecifiers identify whether space is allocated for measured, simulated, bothmeasured and simulated, or for data to be considered common.) Data Typesexplains the M, S, and B specifiers. The matrix dimensions specifier should beequal to 22 for 2-port data. For DC data sets it is simplest to omit it; this resultsin a default value of 11 (1x1 data) suitable for DC, CV, TDR and other non-2-port data sets.

COMPLEX tmp_array[30+5] ! Common data; 35 complex points;

! indexed 0 to 34

COMPLEX tmp_array.M[35] ! Measured data

COMPLEX tmp_array.S[35] ! Simulated data

Page 413: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

412

COMPLEX tmp_array.B[35] ! Both measured and simulated data

! is allocated

COMPLEX t_arr.22[30+5] ! Common data; 35 2x2 (i.e. 2-port)

! points

COMPLEX t_arr.M.22[35] ! Measured data; 35 2x2 points

COMPLEX t_arr.S.22[35] ! Simulated data; 35 2x2 points

COMPLEX t_arr.B.22[35] ! Both measured and simulated data is

! allocated

COMPLEX t_arr.B.1212[35] ! 12x12 matrix

COMPLEX t_arr.B.(r*10+c)[35] ! r, c up to 9x9

COMPLEX t_arr.B.(r*100+c)[35] ! r, c up to 99x99

After an array is declared using COMPLEX, all elements have a value of 0. Referto Assignment for a description of how to modify elements within the array.Examples of data set access are provided in Data Types. Those examples alsoapply to accessing the temporary arrays declared by COMPLEX and the pointswithin them.

The COMPLEX statement is not always necessary when working with arrays. Inmany cases, assignment and other operations can be done implicitly on anarray-wide basis. For example, the following statements produce the average oftwo 2-port S-parameter data sets:

x = (S1+S2) / 2

RETURN x

! or, simply,

RETURN (S1+S2) / 2

When individual points in the array require differing and non-trivialmanipulations (thus making it necessary to assign to them on a point-wisebasis), use the COMPLEX statement. Typical applications are filtering noise fromdata or producing a new data set that contains only a subset of another dataset.

Assignment

Assignment is an important statement for complicated computations that requiretemporary variables or perform extractions. An assignment statement consists of a simpleidentifier on the left, an = sign, and any allowed expression to the right. It is possible todeclare temporary arrays (using COMPLEX) and to assign values to individual points withinthese arrays.

NoteA single equal sign (=) is used to indicate assignment; a double equal sign (==) is used to test forequality. HP BASIC uses = for both.

The valid forms for assignment are as follows:

tempvar = <any expression>

<Model parameter> = <REAL expression>

<DUT parameter> = <REAL expression>

<IC-CAP system variable> = <REAL expression>

{<tmp_array>.<type>.<row_and_column>[index_expr] =

<REAL or COMPLEX expression>

In the last case, some fields are optional. The following examples show every legitimatecase and demonstrate all valid forms of assignment.

Page 414: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

413

BF = ic[0]//ib[0] Assigns the bjt Model parameter BF to the ratio of 2 points (ic[0] and ib[0]).

AREA = 1.2 Assigns (in a bjt Model) a value to the DUT parameter AREA.

npn2.BF = 100 Assigns a value to the Model parameter npn2.BF, if the current Model possesses such aparameter. Failing that, it assigns a value to a BF parameter in another Model named npn2.

npn2/dc.AREA =100

Assigns a value to the DUT parameter AREA, within the DC DUT of a Model named npn2.

TNOM = 25 TNOM is generally defined as an IC-CAP system variable. Here it is assigned a value of 25.

x = 4 Declares x a temporary variable and assigns an integer. Recommended for loop counters.The maximum integer that you can set is 2147483647 (MAXINT). If you attempt to assignan integer in excess of MAXINT, unreported overflow errors will occur and the actual integerassigned will not be the value you attempted to assign. If you wish to use numbers largerthan MAXINT, specify using a .0 at the end of the number (see x = 4.0) or use engineeringnotation.

x = 4.0 Declares x a temporary variable and assigns a double precision floating point number. Notrecommended for loop counters due to roundoff errors.

x = ic//ib Declares x a temporary variable and assigns it to the ratio of the 2 data sets (ic and ib).Refer to Expressions for an explanation of the double slash (//).

x = S.21 Declares x a temporary variable and assigns to it all the 21 (forward transmission) datawithin a 2-port data set named S.

x = S.M.21 Declares x a temporary variable and assigns to it all the measured 21 (forwardtransmission) data within a 2-port data set named S.

x = ic or x =ic.m or x = ic.s

Declares x a temporary variable and assigns to it the data within an Output named ic. If iconly has measured data, only measured data is assigned to x. If ic only has simulated data,only simulated data is assigned to x. If ic has both measured and simulated data, both areassigned to x. If x is not the correct size for the requested data, x resizes to accommodatethe data on the right side.

x.m = ic or x.m= ic.s or x.m =ic.m

If x has never been assigned or was assigned some value other than a temporary dataset,adding .m to left side has no effect. See x=ic, x=ic.s, x=ic.m. If x was previously defined asa temporary dataset, assigns to its measured array the data within an output named ic. If iccontains just simulated data or if the right side is ic.s, x receives just the simulated data inits measured array. If ic contains common or measured data or if the right side is ic.m, xreceives that data in its measured array. If x contains preexisting simulated data, thatsimulated data is not changed. If x is not the correct size for the requested data, an erroroccurs.

x.s = ic or x.s =ic.s or x.s = ic.m

If x has never been assigned or was assigned some value other than a temporary dataset,adding .s to left side has no effect. See x=ic, x=ic.s, x=ic.m. If x was previously defined asa temporary dataset, assigns to its simulated array the data within an output named ic. If iccontains just simulated data or if the right side is ic.s, x receives just the simulated data inits simulated array. If ic contains common or measured data or if the right side is ic.m, xreceives that data in its simulated array. If x contains preexisting measured data, thatmeasured data is not changed. If x is not the correct size for the requested data, an erroroccurs.

The following statements demonstrate assignment to points in temporary arrays. Theyrequire prior use of the COMPLEX statement to declare the temporary array appearing tothe left of the equal sign (=). An array index i is assumed in each case to be an integer orinteger expression. It should have a value between 0 and size-1, where size wasestablished in a COMPLEX statement.

tmp_array.M[i] = 2+2 ! Measured data point assigned value of 4

tmp_array.S[i] = 2+2 ! Simulated data point assigned value of 4

tmp_array.B[i] = 2+2 ! Measured and simulated data points are

! BOTH assigned

tmp_array_x[i] = 2+2 ! Common or measured data point assigned

! value of 4

tmparr.M.21[i] = 2+j5 ! Measured '21' data point receives complex

tmparr.S.21[i] = 7+20 ! Simulated '21' data point receives real

tmparr.B.21[i] = 2+j5 ! Measured and simulated '21' data points

! are BOTH assigned

tmparr_x.21[i] = 2+j5 ! Common or measured '21' data point

! receives complex

The following assignment statements are not valid:

COMPLEX x.m[size(beta.m)]

Page 415: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

414

x.m = beta.m ! left-side expression must be simple

! identifier, or individual point

S = S + S

where S is an existing IC-CAP data set. You cannot overwrite an existing dataset in this manner. (However, you could establish an IC-CAP data set withidentical data using RETURN S+S.)

tmp_array[i] = S[i] ! not valid if S[i] is non-scalar (for

! example, 2-port data)

Data Types

This section describes the primitive data types supported in expressions, Programs, andMacros. These types of data represent the simplest possible expressions.

Because IC-CAP automatically assigns data types, it is not necessary to declare a datatype for a variable. Thus, to declare and initialize a temporary variable in a ProgramTransform or Macro, assign a value to it. For example, entering tempvarx = S.m.21[3]automatically makes tempvarx a complex entity (S is assumed to be 2-port data). Thevariable tempvarx is known only to the Transform program being defined and is discardedwhen the program finishes. IC-CAP recognizes and operates on the following data types:

real (or double) For example:

2.0, 2e-6, and 2.0k.

complex Engineering and scientific notation are accepted in any mix. For example:

2+j2, 2+j*2, and 2.05meg-j1.0e6.

pure imaginary j*2, j2, j, and j*1meg.

matrix The expression S.M[0] is a matrix example if S is 2-port data.

Model and DUT Parameters These are scalar real numbers. When IC-CAP encounterssuch an identifier (BF for example), it searches for a match in the following order until oneis found:

DUT level parameter1.Model level parameter2.Setup level parameter3.DUT level variable4.Model level variable5.System level variable6.Datasets7.

Model parameters can be used in, or assigned to, expressions.

For example:

BF = 100

x = 2 * BF

npn1.BF = 100 !BF in another Model

npn1/dc.AREA=1 !AREA in another DUT

IC-CAP variables Refer to Model Parameters for a description of how IC-CAP resolvesthe meaning of symbol names. Like Model Parameters, system variables can be used in,or assigned to, expressions. They have one enhanced capability not shared by theparameters-a string can be assigned to them. For example,

Page 416: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

415

EXTR_MODEL="opamp"

Do not attempt to enter an expression when editing an IC-CAP system variabletable. This will not be evaluated when you later reference the variable. If thesystem variable is used in a numeric expression, it is safest to enter only asingle number in the system variable table. To obtain the text contents of asystem variable, use the following:

VAL$(EXTR_MODEL)

where EXTR_MODEL is a system variable.

data set Arrays of matrices of complex numbers. In the most complex case (2-port S-parameter measured and simulated data), data sets hold an array of measured matricesand an array of simulated matrices. (Refer to Measured, Simulated, and Common Data(prog).) IC-CAP entities considered to be data sets are Inputs, Outputs, and Transforms.The syntax for accessing all or part of a data set is described in the following paragraphs.Temporary arrays, such as those declared by the COMPLEX statement, can also beaccessed using the syntax in the examples.

In the following examples of data set access, S denotes an existing data set of 2-portdata; IC denotes an existing DC data set. Both data sets are type B (both)-they containmeasured and simulated data.

NoteThese examples are valid for reading data in a temporary array in a Program or Macro, and for readingdata in an IC-CAP data set. However, choices are more limited when assigning to (writing to) temporaryarrays; also, no assignment can be done directly into IC-CAP data sets (outside of the RETURNstatement). For details regarding assignment statement, refer to Assignment.

IC.M Produces a data set containing only measured data.

IC.S Produces a data set containing only simulated data. M (measured), S (simulated),and B(both) act as keywords and can be specified in either uppercase orlowercase.

IC.B or IC Produces a data set containing both measured and simulated data.

S[2] or S.M[2] Produces a matrix of measured data. It is the third matrix in S.M, the first beingS[0]. An expression can be substituted for 2. In the first case, the system selectsmeasured data by default. Since 2 selects the third matrix, 0 would select the firstmatrix. This is consistent with HP BASIC, in which OPTION BASE 0 is the defaultwhen accessing array elements. The last matrix in S.M can be accessed with thebuilt-in function SIZE: S[size(S)-1]. Results are undefined if you attempt to useindices that are negative or are beyond the end of the data set.

IC[0] or IC.M[0] Produces a real number that is the first point in IC's measured data. An expressioncan be substituted for 0. Note: Omitting the .M extension ( IC[0] ) defaults tomeasured data only, NOT both measured and simulated data.

S.s[2] Produces a matrix of simulated data that is the third point (the first is S.s[0]). Anexpression can be substituted for 2.

S.21 S.0201 S.9181S.(row*10+column)S.(row*100+column)

Produces a measured and simulated data set with complex data. The term .21specifies that the data at row 2, column 1 is to be extracted from data set S (thiswould be the data corresponding to the forward transfer coefficient). The term .21can be expressed either literally or by an expression in parentheses ( ) up to9999. (Note that S.21 and S.0201 are equivalent.) For data sets with more than 9rows or columns, use the 4-digit row-column specification, for example, S.9902(row 99, column 2).

S.21[0] Produces a complex number. M (measured) is assumed by default. The result isthe data for row 2, column 1 of S's first measured data matrix. An expression canbe substituted for 0.

S.S.21[2] Produces the same result as above, but for simulated rather than measured data.

IC-CAP also has some limited string manipulation capabilities. The following are examplesof the string type (note the 2 alternatives for including quotation marks in a string):

"hello world"

Page 417: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

416

"IC-CAP says 'hello world' "

'IC-CAP says "hello world" '

The following is an example of a string used in a statement:

PRINT "hello world"

Assign to x as follows:

x = "hello"

and x will be of type string.

Built-in Functions

Refer Built-in Functions (prog).

Built-In Constants

Several constants are recognized. Like statement names and built-in function names,these are reserved words (for example, you should not attempt to name a variable pi).The recognized constants are:

PI or pi

2PI or 2pi

J or j (square root of -1)

ExpressionsAs explained in the Data Types section, each type of data can be considered a simpleexpression. The primitive data types can make up more complex expressions by applyingfunctions (such as log, or operators such as + ). In this section, expr denotes anexpression; string_expr denotes a string expression.

(expr)expr + exprexpr - exprexpr * expr

Parentheses force precedence and group expressions.

expr / exprexpr//expr

IC-CAP objects, including data sets, can be named using a slash (/). These same data sets canbe used as arguments in a divide operation. To ensure the slash is understood as the divideoperator, surround it with white space, or enter a double slash (//). If the slash is followed bya digit, divide is also understood, because a data set name in IC-CAP cannot start with a digit.The expression (ic)/(ib) is an example of another technique.

expr ^ exprexpr ** expr

These operators express exponentiation, and are equivalents.

string_expr &string_expr

As in HP BASIC, this operator performs string concatenation.

log(expr) Performs a natural log function. For more information, refer to Built-in Functions (prog) andCalls to the Function Library.

To complete a computation, most operations make reasonable attempts to promotecertain operands. For example, ib + 2e-6 promotes the scalar number 2e-6 to be a dataset that, in turn, can be added to the data set ib.

For most arithmetic operations performed on a data set, the function or operator isapplied point-by-point, producing a data set. The behavior of individual functions in thisregard is clarified in their individual descriptions in Built-in Functions (prog).

There are some limitations in the usage of the 5 basic arithmetic operators in working withdata sets. For example:

If ic is a data set, re-write 3//ic as 3*ic^ -1.

Page 418: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

417

The expression ic^ib is not supported when both operands are data sets.None of the binary operators * / + - ^ support an operation between a matrix and adata set.

The arithmetic in Programs is generally a complex floating point. Therefore, it is possibleto see unexpected residue from integer or real arithmetic. For example:print (0+j)^2

may produce-1+j*1.22461E-16

rather than-1+j*0

This is due to finite precision in the library function that handles exponentiation ofcomplex quantities.

Because complex arithmetic is used, success can occur where a function would beexpected to fail in real arithmetic. For exampleacsh(.5)

yields0+j*1.05

The complex arithmetic provides a wider domain of valid inputs, but in cases where a realinput should produce a real output, the complex arithmetic is indistinguishable from realarithmetic.

CautionUsing the binary operators _ and - (which have a higher precedence when used with the j notation) willproduce unexpected results.-1+j2 == -1-j*2

(-1)+j2 == -1+j*2

Boolean Expressions

The expressions in this section can be used in the branching constructs (IF, IF...ENDIF,and WHILE...ENDWHILE), or can be used to generate the quantities 0 and 1. Theabbreviation bool_expr denotes a boolean expression.

NoteThere is a distinction between the = operator (used for assignment) and the == operator. BASIC uses =for both assignment and comparison.

In some circumstances, == may not behave as expected. For example, if you repeatedly increment thequantity 0.3 by the amount 0.025, the results may be slightly less (in the 15th decimal place) than theexpected sequence of values: 0.325, 0.350, ..., 0.4. Under these circumstances, == may yield FALSEunexpectedly. This is an inherent problem of expressing decimal numbers in binary floating point format.

Page 419: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

418

expr == expr This operator tests for equality and can be used with string, integer, double,complex, and matrix types.

expr <> expr This operator tests for inequality and can be used with string, integer, double,complex, and matrix types.

expr > exprexpr >= exprexpr < exprexpr <= expr

These operators designate the standard comparison operation found in BASIClanguages and can be used with integers, doubles, and complex quantities. Withcomplex quantities, imaginary parts are discarded. (You can apply the magfunction to each quantity to compare magnitudes of complex quantities.)

bool_expr AND bool_exprbool_expr OR bool_exprNOT boolean_expr

Any non-zero integer, double, or complex number is considered TRUE. Forexample:IF 2 THEN PRINT 'hi' ! this always prints

A string with length >0 is TRUE. For example:IF "Hello world" THEN PRINT "HI TO YOU TOO"

prints the second expression in the stringHI TO YOU TOO

Operators Precedence

The following is a list of operators in decreasing order of precedence. Operators listed onthe same line have equal precedence.

( ) [ ] Function calls, and array indexing, respectively

^ ** Exponentiation

+ - & The ampersand (&) is for string concatenation

== <> < <= > >= Comparison operators

NOT

AND

OR

= Assignment

For example, it is TRUE that:-2^4 == -16

because the precedence of ^ exceeds that of -.

Calls to the Function Library

Any function in IC-CAP's Function Browser can be called, such as sin, cos, and RMSerror.This greatly expands the availability of functions in expressions, Programs, and Macros.Some examples are:

x = sin(pi/4) ! x takes on the value .707...

x = linfit(ic,vc,0) ! x becomes a temporary data set with 2 points

print x[0], x[1] ! slope and intercept are printed

To review the arguments used in a function, refer to Main ICCAP Functions (prog), orcreate a stand-alone transform that uses the desired function and look at the resultingtransform editor. For details on this procedure, refer to the section Defining Transforms(prog). To call the library function in a Program, Macro, or table element, supplyarguments in the same order shown in the editor.

The functions may expect some data set arguments, some real number arguments, andsome strings or Model or DUT parameter names. Expressions can be used for the data setarguments and real number arguments. For the parameter names, use actual parameternames, IC-CAP system variable names, or quoted strings, string variables, or stringexpressions. If a function requires a string as a flag or switch of some sort, quote it.Otherwise the system thinks you are referring to an identifier such as a Model parameter,a system variable, or a temporary variable in a Program or Macro. The following examplemight clarify this point:

! TwoPort requires strings as second and third arguments

Page 420: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

419

! string argument dictates what type conversion to do

x = TwoPort(S_out,"S","Y") ! this is OK

x = TwoPort(S_out,S,Y) ! this is not, although...

S = "S" ! initialize local variables S and Y

Y = "Y"

x = TwoPort(S_out,S,Y) ! now this is OK

This point is mentioned because the quotation marks are not necessary if you use TwoPortas the function in a simple stand-alone Transform. The only other function that is likeTwoPort in this regard is USERC_system, which requires a string to use as an operatingsystem command.

Spell calls to functions contained in IC-CAP's Function List must be spelled exactly as inthe Function List.

The result from a call to a function in the library is usually a data set. For example:

x = linfit(vc:log(ic.m),0) ! get slope and intercept for log(ic.m)

print x[0] ! print the slope of log(ic.m)

On the other hand, there are 2 cases in which the result of a library function is a singlenumber or matrix, and not a data set. This makes library function calls more convenient,or usable within expressions in table elements. For example:

x = sin\(pi/4\) ! x is now .70711 ...

x = mean\(ic.s\) ! x is the average current value in ic.s

In the first example, sin is a function that can sometimes return a data set, if a data set isprovided. In this example though, the input is a scalar number. Therefore, the systeminitializes x with a scalar number. A number of other functions behave like sin in thisrespect. They can be identified in the IC-CAP Functions List, because the Output of thesefunctions is said to be a single number or an array, dependent on the Input Arguments.

In the second example, mean receives a data set as input. However, by definition italways produces a scalar, so x is initialized as a single number, and not a data set. A callto the variance, correlation, or RMSerror functions also produces a single number, and nota data set.

Some library functions, particularly extractions, yield null data sets; they do not appear togenerate data, but they set parameters to new values.

Tuning ParametersBy including the TUNER statement in a PEL macro, you can tune parameters during macroexecution. To tune parameters once the dialog box appears:

Position the pointer over the slider associated with the parameter you want to tune. 1.Press the left mouse button and drag the slider in the desired direction. Notice the2.plot is dynamically updated as you change values. To close the dialog box and return control to the macro, click OK; to abort the3.macro, click Cancel.

Page 421: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

420

Using Transforms and FunctionsAn IC-CAP transform is a framework for mathematical or logical functions that operate ondata. A transform can operate on any combination of data sets, parameters, andvariables. These inputs are used to calculate either a new data set or new values forparameters and variables.

IC-CAP provides a comprehensive list of functions that can be used in a transform. Thesefunctions range from simple functions, such as addition and subtraction, to advancedfunctions that perform parameter extractions and optimizations. Extraction functions aresupplied for all standard models contained in the system.

By defining IC-CAP transforms, you can analyze data in forms other than those providedby direct measurement or simulation and transform the data into new domains. A newtransform can use an existing function or a new expression or series of expressions. Manyfunctions such as log (natural logarithmic function), and derivative (for calculating first orsecond derivative), are available. More complicated expressions such as $IS ×(exp(vd/0.026) - 1)$ can be defined using the equation or program functions.

Some of the ways you can use IC-CAP transforms are:

Divide two data sets to create a third data set. Then view the new data set on a plot.Calculate the values of several model parameters based on the inputs and outputscontained in a setup.Calculate linear regression information for a particular output.Run a fast simulation by programming model equations directly into a transform.

Since transforms can operate on all data sets, the output of one transform can be used asinput to another transform. For example, you can use this feature to:

Perform extractions or optimizations on the calculated gain of a device.Convert 2-port data from the network analyzer to a different domain, correct thedata, then convert the corrected data back to the original domain.

While certain transforms, such as those that perform extractions, are executed with menuselections, many transforms are executed automatically when the input data sets change.For example, a transform that calculates the gain of a MOSFET is executed automaticallywhen the measured or simulated outputs of the device change. For complete informationon this topic, refer to Performing Transforms and Automatic Transform Execution.

You can create new functions by writing programs using IC-CAP's Parameter ExtractionLanguage (PEL) or by using C language. Functions written in C language provide totalflexibility for manipulating the data. Use this feature for many applications, such asimplementing a new algorithm for extracting model parameters or reading data fromanother application into the IC-CAP system.

This section contains procedures for creating, editing, and using IC-CAP transforms andfunctions and describes how to augment IC-CAP's standard function library by writingadditional functions in the C language. For details on writing programs using IC-CAP'sParameter Extraction Language (PEL), refer to Parameter Extraction Language (prog).

Implementing New Extractions

You can implement new extraction algorithms by using the Program2 or ProgramTransform. This Transform provides a powerful method for accessing measured data andcalculating model parameters from this data. IC-CAP also includes a number of functionsthat greatly simplify this operation. For example, a number of rather tedious operationsare replaced by functions that calculate derivatives, or least-squares fit to the data. Youcan create new extractions simply by assembling a series of existing IC-CAP functions.

Page 422: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

421

C functions can be used to increase both the performance and functionality of the aboveoperations. Most of IC-CAP's existing extraction functions are implemented in the Clanguage.

The optimizer can also be used for extracting model parameters. To do this, defineOptimize Transforms for the Setups and specify in them the model parameters to beoptimized. For further information, refer to Optimizing (sim).

Customizing IC-CAP

Implementing New Model Equations

Test new models in IC-CAP by defining them in the form of a series of equations in aProgram Transform or a User C function. Implement a complete model or subset of amodel in this way. To define a model, calculate the node current or currents, using thenode voltages and model parameters. An example of this is the BJT_dc_model function inthe userc.c file.

To simulate a model defined in this manner, execute the Transform. After the model isfully tested, implement it in the circuit simulator.

Implementing New Extractions

You can implement new extraction algorithms by using the Program2 or ProgramTransform. This Transform provides a powerful method for accessing measured data andcalculating model parameters from this data. IC-CAP also includes a number of functionsthat greatly simplify this operation. For example, a number of rather tedious operationsare replaced by functions that calculate derivatives, or least-squares fit to the data. Youcan create new extractions simply by assembling a series of existing IC-CAP functions.

C functions can be used to increase both the performance and functionality of the aboveoperations. Most of IC-CAP's existing extraction functions are implemented in the Clanguage.

The optimizer can also be used for extracting model parameters. To do this, defineOptimize Transforms for the Setups and specify in them the model parameters to beoptimized. For further information, refer to Optimizing (sim).

Defining TransformsTransforms are created as members of setups, since they typically operate on data from aparticular setup.

To define a transform:

In the Model window, select the setup.1.Select Extract/Optimize.2.Click New. 3.In the prompt, type a name for the new transform. This name is used to refer to the4.data set created by this transform.Click OK. The new name appears in the transform list and is selected.5.In the Function field, enter the name of the function to be used for the new transform6.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.

NoteFor details on making user-defined functions appear in the Function Browser, refer to AddingFunctions to the Function Browser.

If inputs are required for the function, specify the inputs in the editor fields.7.

Page 423: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

422

Example Transforms

Transform Using the Equation Function

The following figure shows an example of a simple transform that divides two data sets.For this transform, the equation function is used. With this function, a single line equationcan be defined. The input parameters must be IC-CAP recognized data names and notstrings in quote marks. In this particular case, the equation is used to calculate beta for abipolar transistor is: ic/ib.

Transform Using the Equation Function

Transform Using an Extraction Function

A more complicated example is shown in the following figure. This transform calculatesthe parameters that control the forward mode behavior of the bipolar transistor. Thefunction used is BJTDC_fwd_gummel which requires four input data sets. One of these isan IC-CAP input (Fwd VBE), two are outputs (Fwd IC and Fwd IB), and one is anothertransform (Fwd Beta). In the Fwd VBE field, the expression -ve negates the emittervoltage.

Transform Using an Extraction Function

Transform Using the Program2 or Program Function

The Program2 function and Program function (figure below) both provide a BASIC-likeprogramming language. Using this language, you can read from and write to data sets,parameters, and variables, as well as perform many advanced constructs, such asconditional branching and looping. Also, you can execute IC-CAP menu functions andoperating system functions within a program. You write the program in a text editor thatappears when Program2 or Program is specified in the Function field. The program in theexample performs a simple calculation of the VTO parameter for a MOSFET. For detailedinformation on IC-CAP's programming language, see Parameter Extraction Language(prog).

Transform Using the Program Function

Page 424: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

423

IC-CAP uses a single interpreter to implement the program function, the Macro facility(refer to Creating and Running Macros (prog)), and the expression-evaluation capabilityused in most editor tables. This guarantees a consistent syntax for expressions andprogram statements throughout the system.

Another way to create new functions is to write them in the C language and add them toIC-CAP. Since doing this involves relinking and restarting IC-CAP, it is slower than usingthe program functions. However, the advantage is that then the full capabilities of the Clanguage are available. For detailed information on this topic, refer to Creating CLanguage Functions in IC-CAP.

Performing TransformsYou can perform transformations manually or automatically.

To perform transforms manually:

In the Model window, select the setup.1.Select Extract/Optimize.2.Select the transform you want to perform.3.

Click Execute. 4.

Automatic Transform Execution

Transforms are performed automatically when one of the following occurs:

The transform uses a math function or the program function to calculate a new dataset and one of the input data sets changes.The transform uses an extraction function or the program function to calculate newparameter values and the Extract command is selected for the setup.The transform uses the Optimize function and the Optimize command is selected forthe setup.

When using the program function, several statements are also available to directly controlthese policies.

Page 425: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

424

When Data Set Inputs Change

In the npn/dc/fgummel setup that contains the beta transform, the data sets ic and ib areupdated by the measurement when a measurement is executed. The data sets aremodified by a simulation also. When the data sets are updated, the result (ic/ib) stored inbeta would be obsolete if beta were not recomputed. IC-CAP recognizes the dependenceof beta on these measured data sets and automatically performs the beta transform.Similarly, any plot that uses ic, ib, or beta is updated. This rule for automatic transformexecution applies to all functions designated as Math Functions. In addition, a transformusing the program function executes automatically when the program uses the RETURNstatement to generate a data set and the function accesses data sets that change.

When Extraction is Executed on a Setup

Issuing the Extract command for a setup causes transforms that have been designated asextraction transforms to execute automatically. In addition, a transform using theprogram function executes automatically if the function assigns new values to model orDUT parameters. In the npn model, an example of assigning to a parameter is:

BF = max(ic) / max(ib)

Since the program assigns new values to parameters, it is considered an extractionfunction. This rule takes precedence over the above rule in which the RETURN statementcauses automatic execution. A program that assigns new values to parameters andreturns a data set does not run automatically when its data set inputs change.

A transform using the Optimize function is executed automatically when the Extractcommand is selected if the Extract Flag for that particular Optimize function is set to Yes.This transform executes after any extraction transforms that are defined for the setup.

When Optimization is Executed on a Setup

Issuing the Optimize command for a setup causes transforms that use the Optimizefunction to execute automatically. During an optimization, the Simulated data used in theoptimizer is repeatedly updated. When transforms are used to calculate this data, they areautomatically performed for each optimizer iteration. For complete information about theoperation of the Optimize function, refer to Optimizing (sim).

Statements that Force Automatic Execution

Five statements are available to program transforms for providing direct control over theautomatic execution of any given program transform. In each program transform, youshould not use more than one statement.

UPDATE_EXPLICIT Suppresses all auto-execution

UPDATE_MANUAL Suppresses all auto-execution except during an optimization

UPDATE_AUTO Auto-executes on a data set input change

UPDATE_OPTIMIZE Auto-executes on Optimize menu function

UPDATE_EXTRACT Auto-executes on Extract menu function

These statements have no effect in a Macro.

Measured, Simulated, and Common DataData sets can contain data associated with measurement and simulation. Since inputs canbe freely associated with either, input data is common. The program always assumes thatsweep limits for measurement and simulation in a setup should be identical in order tomake meaningful comparisons. Therefore, an input cannot maintain different stimuli formeasurement and simulation. On the other hand, outputs can have an associated type.You must specify these types:

Page 426: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

425

M = Measured DataS = Simulated DataB = Both Measured and Simulated Data

Since there may be output quantities that are not measurable but can be simulated,outputs permit this selection to be made.

The types of data sets that receive special handling by transforms are:

When the input data sets contain both measured and simulated data, the data setcreated by the transform contains both types of data. The computation is performedonce for the measured data and once for the simulated data. For example, in thebeta transform in the npn model, a plot can refer to the simulated data as beta.s orrefer to both measured and simulated data as beta.When the input data sets contain only measured data, the data set created by thetransform contains only measured data.When the input data sets contain only simulated data, the data set created by thetransform contains only simulated data.

Less common types of data sets that receive special handling by transforms are:

When one, but not all of the data sets, has both types of data, then the transformgenerates both types. For the beta transform, if ib has only measured data, then betaproceeds as if ib contains simulated data identical to its measured data.When a mixture of purely measured data and purely simulated data is combined in atransform, the result is common data.If a data set with common data is combined with any mixture of data sets that arecommon, measured only, simulated only, then common data results.

When editing transforms, specify measured or simulated data within the inputs to thetransform. For detailed information, refer to Data Types (prog).

Using Data from Another Setup

Data Set Size

When creating a transform that references an input, output, or transform from a differentsetup, make sure all involved data sets are the same size. If they are not the same size,the transform may not work. Generally, the size of a data set is equal to the size of thesetup the data set is in. The size of the setup is the product of the number of pointsshown in all of the input tables in the setup. For example, in a setup with a primary sweepof 20 points and a secondary sweep of 3 points, the size is 60. All of the inputs, outputs,and most of the transforms in this setup have 60 points. Usually, transforms that usefunctions that compute scalar numbers contain fewer points and transforms that useextraction functions contain no points.

Data Set Name

When defining the path to a data set from another setup, you can use absolute addressingor a form of relative addressing. For example, in a transform in the rgummel setup of thenpn model, address the Input vb from the fgummel setup as fgummel/vb or/npn/dc/fgummel/vb. In the relative addressing scheme, when the model, DUT, or setupare not specified, the data set names are assumed to be the same as the setup in whichthe name is entered. When fgummel/vb is used, the model defaults to npn and the DUTdefaults to dc.

Creating C Language Functions in IC-CAPYou can create custom mathematical and other functions in the C language to augment

Page 427: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

426

the capabilities of the existing executable code. User-written functions appear in IC-CAP'sFunction List. The files associated with this customization capability reside in the$ICCAP_ROOT/src directory.

You can add functions to a source file named userc.c, then re-link and re-run IC-CAP. AMakefile and other necessary provisions exist in $ICCAP_ROOT/src. Functions written in Cmust be consistent with the examples in userc.c. The file userc.c in $ICCAP_ROOT /srcincludes several working examples of C functions added to IC-CAP by users. The examplesdemonstrate how to receive data sets and other arguments and how to return results.

To add a new function to the IC-CAP system:

Change to the $ICCAP_ROOT/src directory.1.Using functions declared in xf_util.c.h, add the new function to add_users_c_funcs()2.in userc.c with an appropriate call. For example:

Use add_double_c_func1.Use one of the 3 function calls ( add_input_name, add_variable_name, andadd_parameter_name) to establish the labels that appear in the editor of anytransform that uses the new function. These functions are declared in xf_util.c.hand are described in Declarations and Implementation Examples. (Consultdeclarations in userc.h, where various types are declared.)

To compile the file containing the new function:

Create a work directory for the source files (for example, mkdir my_source, and1.change it to ( cd my_source ).Copy the set of source files from $ICCAP_ROOT/src to the new work directory ( cp2.$ICCAP_ROOT/src/* . ).Use the touch command on the *.o files so that all *.c and *.o files appear to have3.been created at the same time ( touch *.o ). (This step is important for the makeprocedure.)

NoteIf the drive you're copying to is NFS mounted, clock skews can result if the NFS drive's system has aslightly 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'stime; the following touch causes the make system to believe that all of the .o files were generatedlater than the source files, so it will not attempt to rebuild any unnecessary files.

Copy your source code to the working directory. Modify the function4.add_users_c_funcs() in userc.c to add your C functions to IC-CAP's list of functions,and/or modify the function add_users_drivers() in user_meas.cxx to add your driversto IC-CAP's library of instrument drivers. Modify the Makefile to add your source codemodules to the list of objects.Issue the make command and debug any compiler errors.5.Set the environment variable ICCAP_OPEN_DIR to point to the directory containing6.the libicuserc .< ext> or libicusercxx.<ext> file where ext is a platform-specific fileextension ( ext is .so on Solaris).Alternately, if you want to use the new files site wide, you can replace the originalfiles (after copying to another name to preserve them) under$ICCAP_ROOT/lib/<platform>, where <platform> is sun2x on SUN Solaris 2.X.Start IC-CAP as usual.7.

For more information about generating shared libraries for new functions, see Creating aNew Shared Library (meas).

To test the function:

Confirm that the new function appears in the Function List.1.

Page 428: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

427

If the new function does not appear in the Function List, check to be sure that anappropriate call was made inside add_user_c_funcs(). The system callsadd_user_c_funcs() once at startup time to add user-written C functions to IC-CAP'sFunction List.Create a transform that uses the new function.2.

If you specified input labels for transforms that use the function, verify that the3.transform editor associated with the new function displays the expected labels.

Declarations and Implementation ExamplesThese program files contain a variety of example information:

userc.h provides declarations for important types, such as complexxf_util.c.h provides declarations for the utility functions that operate on real,complex, and matrix datauserc.c and userc_io.c contain examples showing how to write C functions and how toadd them to IC-CAP

Function Types

You can add three types of functions to IC-CAP. These functions are designed to operateon Real, Complex, and Matrix data. Although you must choose one of these types, yourfunction does not need to perform mathematical operations. For example, you canimplement functions that perform instrument I/O operation.

The function average_double() in userc.c is an example of a function that operates on realdata. This function is defined in The average_double() Function Operates on Real Datawhere the function arguments are:

inputs A 2-dimensional array of double precision real numbers that containszero or more input data sets

num_inputs An integer indicating the number of input data sets contained ininputs

points_per_input An array of integers indicating the number of data points ineach data set in inputs

Page 429: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

428

output An array of double precision real numbers used to store the results ofthe 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 morevariables passed to the function

num_variables An integer indicating the number of values contained invariables

parameters An array of strings (char*) containing zero or more parameternames or other strings passed to the function

num_parameters An integer indicating the number of strings contained inparameters

points_per_curve An integer indicating the number of points in the mainsweep of the setup which owns the input data sets.

The function cplx_conj() in userc.c is an example of a function that operates on complexdata. Its arguments are identical to average_double() except that the inputs, output, andvariables arguments contain complex numbers instead of real numbers.

The function matrix_transpose() in userc.c is an example of a function that operates onmatrix data. Its arguments are identical to cplx_conj() except that the inputs and outputarguments contain matrices instead of complex numbers. Refer to the userc.h and userc.cfiles for information on manipulating complex numbers and matrices.

The average_double() Function Operates on Real Data

For details on adding functions to the functions browser, refer Adding Functions to the

Page 430: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

429

Function Browser (prog)

Handling Signals and Exceptions

Two important signals generated within IC-CAP under certain conditions are: SIGFPE andSIGINT.

SIGFPE

This signal occurs when the code executes an operation like a divide by zero. By default,there is no provision in IC-CAP for trapping this signal. If this signal occurs during theexecution of a transform, the function or macro will continue to execute and uponcompletion, an error message is displayed indicating a floating point error occurred.

SIGINT

This signal is generated when you issue the Interrupt command. By default, there is noprovision in IC-CAP for trapping this signal. The function or macro is interruptedimmediately. Note: For complex operations, it may take several minutes before control isreturned.

These signals, and others, are declared in $ICCAP_ROOT/src/sighandler.hxx. They areexplained in UNIX manual pages, including signal(2) and sigvector(2). If your applicationrequires special error recovery for the SIGFPE or SIGINT signals, it is possible to modifythe signal handling to trap them.

Modifying Signal Handling Behavior

To modify the handling of either of these signals (or any others), you must comply withcertain IC-CAP programming conventions; failure to do so could cause the program toterminate.

If a user C function modifies signal handling during its execution, it must also restore theprior state of signal handling before it returns. The example demonstrates how this mightbe accomplished.

If you modify the signal handling for SIGFPE, you should also modify it for SIGINT. This isbased on the need to restore the default SIGFPE handler before returning from the User Ccode. If you modify it for SIGFPE and don't modify it for SIGINT, an Interrupt could force apremature return from User C code, resulting in a failure to restore IC-CAP's signalhandler for floating point errors. The example below satisfies this need by causing SIGINTto be ignored while the SIGFPE handling is changed and then restored to IC-CAP's default.Do not alter the handling of SIGUSR1 and SIGUSR2; both signals are used internally byIC-CAP for error trap and recovery purposes.

NoteIC-CAP employs the sigvector signal handling facility (see the UNIX manual page sigvector(2)). Any UserC code that modifies signal handling should employ the same facility. That is, the system calls describedunder signal(2) and sigset(2V) should not be used within IC-CAP.

Signal Handling Example

#include <stdio.h>

#include <sighandler.hxx>

struct sigvec newINTvec, oldINTvec;

struct sigvec newFPEvec, oldFPEvec;

/* arrange to ignore SIGINT signal */

newINTvec.sv_mask = 0 ;

newINTvec.sv_flags = 0 ;

newINTvec.sv_handler = SIG_IGN;

/* oldINTvec receives 'backup' of IC-CAP sigvector for

SIGINT */

Page 431: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

430

sigvector(SIGINT, &newINTvec, &oldINTvec);

/* now you can do what you want, without fear of interruption

*/

/* this arranges to ignore SIGFPE signal, e.g. */

newFPEvec.sv_mask = 0 ;

newFPEvec.sv_flags = 0 ;

newFPEvec.sv_handler = SIG_IGN;

/* oldFPEvec receives 'backup' of IC-CAP sigvector for

SIGFPE */

sigvector(SIGFPE, &newFPEvec, &oldFPEvec);

/* do any math, with floating point errors ignored ... */

/* Restore IC-CAP handler for SIGFPE! */

/* Should be done while SIGINT is still being ignored */

sigvector(SIGFPE, &oldFPEvec, (struct sigvec *) NULL);

/* Restore IC-CAP handler for SIGINT! */

sigvector(SIGINT, &oldINTvec, (struct sigvec *) NULL);

The following functions are provided for signal handling:

icecap_ignore_sigfpe()

Allows execution to continue without an error when a floating point error occurs in User Ccode. Save the return value for use with the icecap_reenable_sigfpe function to reenablenormal signal handling-stop execution and present an error message when a floating pointerror occurs in User C code.

Example:

userc_function(....)

{

int oldFPEval;

.

.

oldFPEval=icecap_ignore_sigfpe();

/* Following code will ignore floating point errors */

x=x/0;

.

.

icecap_reenable_sigfpe(oldFPEval);

/* following code will again trigger FPE errors */

.

.

}

icecap_ignore_sigint()

Allows execution to continue without an error message when the stop sign is pressed.Save the return value for use with the icecap_reenable_sigint function to reenable normalsignal handling-stop execution and present an error message when the stop sign ispressed. See the example for icecap_ignore_sigfpe().

icecap_reenable_sigfpe(oldfpeVal)

Reenables signal handling on exit from your User C code for floating point errors. Use thereturn value from icecap_ignore_sigfpe to reenable the normal signal handling for afloating point error-stop execution and present an error message. See the example foricecap_ignore_sigfpe().

icecap_reenable_sigint(oldintVal)

Reenables signal handling on exit from your User C code when the stop sign is pressed.Use the return value from icecap_ignore_sigint to reenable the normal signal handling thatoccurs when the stop sign is pressed-stop execution and present an error message. Seethe example for icecap_ignore_sigfpe().

Page 432: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

431

Defining VariablesSeveral variable names are reserved by IC-CAP and cannot be used for user-definedvariables. You can assign values to reserved variables and define your own variables atseveral different levels:

GloballyModelDUTSetup

These levels can be viewed as a hierarchy where variables at lower levels inherit theirvalues from variables at some level above them.

You define global variables through the IC-CAP/Main window. These variables apply to allModels, 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 setthe variables differently for individual DUTs and/or Setups.DUT variables apply to all Setups of that DUT unless you explicitly set the variablesdifferently for individual Setups.Setup variables apply only to that Setup.

CautionThe maximum string length for a variable table is 15 K characters. Exceeding this limit may cause acore file to be generated when saving or reading a file.

The categories for defining system variables are listed in the below table:

Plot Characteristics Plot Optimizers Calibration

UI Options PEL HP85124 Measurement Options

Measurement Options General Extraction Options General Simulation Options

Grouping Parameters and Variables hpeesofsim Options Mextram Extraction Options

MNS Options Optimize Options ELDO Options

Saber Options HSPICE Options Print/Plot Options

Factory Diagnostics Curtice Extraction Options BJT High Freq Extraction Options

BSIM1 Extraction Options BSIM2 Extraction Options UCB MOS Extraction Options

BSIM1 Extraction Options BSIM1 Extraction Options X_HIGH/Y_HIGH Options

Data Management Options Plot Characteristics

Variable Description

ANNOTATE_AUTO Sets a flag to enable or disable automatic annotation update upondata changes. Default is No.

ANNOTATE_CSET Sets a Starbase character set to be used for annotation texts.Default value is determined by /usr/lib/starbase/defaults.

ANNOTATE_FILE Sets a file name from which a plot reads in an annotation text.Default is no file to read.

ANNOTATE_MACRO Sets a macro name that is executed by a Plot for generating anannotation text. Default is no macro to execute.

ANNOTATE_PLOTS Obsolete in IC-CAP 2006. Now to enable or disable annotation on aplot, use the Plot Options dialog box. See Setting Plot Options(intro).

CDF_ERROR_FIT Can be set to TRUE or FALSE. TRUE will draw the Gaussian curvefitted to the Cumulative plot. Default is TRUE.

CHECK_PLOT_MATCH Lets IC-CAP check if a given XY pair belongs to the same Setup. If

Page 433: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

432

No, potentially mismatched XY pair can be shown in a tabular formatwith Display Data. Default is Yes.

DASH_DOT Sets the number of data points at which a simulated line changesfrom a dashed to a dotted line. Used in Plot. Default value is 32.

DYNAMIC_MULTIPLOT_MODE Sets the location where the manual scaling setting is saved for aMultiplot. If set to FALSE, the manual scaling setting for eachsubplot in a Multiplot is saved with the Multiplot, allowing differentscaling to be saved for the same plot if opened as a single plot or onone or more Multiplot. If set to TRUE, the manual scaling setting foreach subplot in a Mulitplot is saved with the subplot. In this mode,no matter where the plot is opened (as a single plot or on one ormore Multiplots), it will use the same scaling information. However,if the same subplot appears on multiple Multiplots, or in multiplepositions of the same Multiplot, then the settings for only the lastsubplot closed is saved. Default is FALSE.

FIX_PLOT_SIZE If Yes, Plot windows open using the size specified by GWINDX andGWINDY. If No, they open using the last displayed size. Default isNo.

GWIND_WHITE Obsolete in IC-CAP 2006. Now to set the background color of plots,use the Plot Options dialog box. See Setting Plot Options (intro).

GWINDX Sets the initial Plot window horizontal size in 1/100mm †. Used inPlot. Default value is 12500.

GWINDY Sets the initial Plot window vertical size in 1/100mm †. Used in Plot.Default value is 9000.

HISTOGRAM_NUM_BINS Number of bins in the histogram plot. Default is 10.

HISTOGRAM_NORMALIZATION Can be set to either TRUE or FALSE. Setting it to TRUE will normalizethe histogram. Default is FALSE.

HISTOGRAM_GAUSSIAN_FIT Can be set to either TRUE or FALSE. Setting it to TRUE will draw theGaussian curve fitted to the histogram. Default is TRUE.

IGNORE_PLOT_LOC If Yes, Plot windows open using the X windows system configuration.If No, they open using the last displayed location. Default is No.

MINLOG Can be set to a real value. Defines the value to be used in a LOGplot, if data point value is zero or negative. Default is 10e-18.

OFFSCREEN_PLOT_LINE_WIDTH Same as PLOT_LINE_WIDTH, except has no effect when the plot isdrawn to the screen. It does have effect when plotting to a file orsending to a printer.

OFFSCREEN_PLOT_TRACE_LINE_WIDTH Same as PLOT_TRACE_LINE_WIDTH, except has no effect when theplot is drawn to the screen. It does have effect when plotting to afile or sending to a printer.

PLOT_LINE_WIDTH Sets the line thickness used when drawing a plot grid andannotation. Note: use PLOT_TRACE_LINE_WIDTH to set trace widthson a plot. Default is 1.

PLOT_TRACE_LINE Sets whether trace line is drawn or not. If defined as Yes, the tracelines are drawn. If defined as No, the trace lines will not be drawn,and instead markers will be drawn. Default is Yes.

PLOT_TRACE_LINE_WIDTH Sets the line thickness used when drawing the traces of a plot. Note:use PLOT_TRACE_LINE to set line thickness for grid and annotation.Default is 1.

RETAIN_PLOT When Yes and Auto Scale is off, plot is not erased when updated toallow overlay of curves if the X server has backing store capability.Default is No.

RI_GRAPH_SYMMETRY When defined as Yes, the plot title is displayed. If defined as No, theplot title is not displayed. Default is Yes.

SCATTER_CONTOURS Can be set to either TRUE or FALSE. Setting it to TRUE will draw thecontours. Default is TRUE.

SCATTER_NUM_SEGMENTS The number of segments with which to draw the contours. Default is1500.

SHOW_GRID When No, plot eliminates XY grids and leaves tics. Default is Yes.

SHOW_PLOT_TITLE Obsolete in IC-CAP 2006. Now to show or hide the plot title, use thePlot Options dialog box. See Setting Plot Options (intro).

USE_PLOT_LOOKUP Lets IC-CAP perform auto-lookup of X data from each Y data.Another way to disable auto-lookup is to use an arbitrary expressionfor an X data. Default is Yes.

Page 434: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

433

PLOT_ERROR_CALC_USE_YAXES_TYPE Sets whether the error figure calculation is based on the plot's Y axistype. If set to true, the error figure calculation is log10(val) for LOGaxis type and DB(val) for DB axis type. Changing the axis typechanges the reported error. If set to false, the error figurecalculation will always be done on the actual data and will notchange as you change axis type. Default is FALSE.

† On-screen size differs depending on screen dpi calculated with OS-reported screenwidth/height.

Plot Optimizer

Page 435: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

434

Variable Description

AUTOSET_COEFF Sets the coefficient value used to calculate the Plot Optimizer's Min andMax parameter values. Min and Max parameter values are calculatedas follows:if (value > 0)Min = value/coeffMax = value × coeffif (value < 0)Min = value × coeffMax = value/coeffif (value ==0)Min = -coeffMax = +coeffDefault is 5.

OPT_GRAPH_DUTY_CYCLE This is a variable define plot refresh frequencyin optimization. If the simulation times exceedthis value or each simulation in optimizationtakes more than 2 seconds, the plot will be refreshed.The plot optimizer performance can be improved bysetting this variable to a large number.default value is 10.The range of this value is [0,1000].

OPT_PARTABLE_LOCAL_MIN_MAX If this is not specified or is set to TRUE, the default behavior is thatyou may set different (local) Min/Max limits for the same parameter indifferent optimizers. If set to FALSE, then optimizers within the scopeof this variable will not maintain separate limits for a particularparamter but rather all limits will refer to the 'Opt Min'and 'Opt Max' columns of the parameter table where the referencedparameter resides. For variables, you may specify the default Min/Maxby appending _OPT_MIN and _OPT_MAX to the variablename. For example if you wish to optimize the variable xyz which is ina variable table, create variables xyx_OPT_MIN and xyz_OPT_MAX tocreate the equivalent of an Opt Min and Opt Maxfunctionality. After changing this variable, optimizers will refresh theirreferenced min/max if you change to the parameter page, or if theoptimization is run, or if the model is saved. If the refresh would causea number to switch to a blank cell (if you changed from TRUE to FALSEand your parameter page had a blank for Opt Min), then the first suchrefresh for any parameter will update the optimizer limit to theparameter page. If you change from local mode to shared mode andthe current contents are an expression rather than a simple realnumber, then the cell will remain local because expressions are notvalid in the parameter table Opt Min and Opt Max fields.

OPT_PARTABLE_SHOW_MODEL_ONLY If set to Yes, displays the model parameters in the parameter listshown in the parameter table tab of Plot Optimizer and normalOptimizer transforms. If set to No, displays all the model and DUTparameters found in the enable plots paths. Default is Yes for the PlotOptimizer and No for the Extract/Optimize folder.

OPT_PARTABLE_SHOW_PARS If set to Yes, displays all parameters, except model parameters, in theparameter list in the Plot Optimizer and Extract/Optimize folder. If setto No, hides the parameters. Default is Yes.

OPT_PARTABLE_SHOW_VARS If set to Yes, displays all variables in the parameter list in the PlotOptimizer and Extract/Optimize folder. If set to No, hides thevariables. Default is Yes.

PLOTOPT_USE_YAXES_TYPE Sets whether the Plot Optimizer algorithm can use the LOG10() andDB() functions to insert the trace equations into the Plot Optimizer. Ifdefined as Yes (Default), the Plot Optimizer algorithm uses theLOG10() function when the Y Axis Type is LOG10 and the DB() functionwhen the Y Axis Type is DB. If defined as No, the Plot Optimizeralgorithm does not use the LOG10() and DB() functions regardless ofthe Axis Type. Default is Yes.

PLOTOPT_AUTOCONFIG_WARNING Sets whether autoconfigure issues a warning to the Status windowwhen one or more traces could not be autoconfigured. If defined asYes (Default), a warning is issued when one or more traces could notbe autoconfigured. If defined as No, no warning is issued whenautoconfigure fails. Default is Yes.

Calibration

Page 436: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

435

Variable Description

CAL_OPEN_C Obsoleted and replaced by CAL_OPEN_C0.

CAL_OPEN_C0CAL_OPEN_C1CAL_OPEN_C2

Sets the open capacitance of an Open standard in farads that is used with SoftwareCalibration. The combined value Copen applies to both port 1 and 2. A second-orderpolynomial represents its frequency dependence. Default value is 0.Copen = C0 + C1 * F + C2 * F^2

CAL_Z0 Obsoleted and replaced by TWOPORT_Z0. UI Options

Variable Description

DUT_TREE_COLS Controls the width of the tree list in the DUTs-Setups folder. The variablecontrols the folder in the scope of the variable table where it is defined.The variable's value sets the list's width in number of columns.

MACRO_LIST_COLS Controls the width of the Select Macro list in the Macros folder. Thevariable controls the folder in the scope of the variable table where it isdefined. The variable's value sets the list's width in number of columns.

MAXIMUM_LIST_LENGTH The maximum number of value fields allowed for an input where LIST isthe Sweep Type and a variable is used to specify '# of Values.' If aconstant is used to specify '# of Values,' MAXIMUM_LIST_LENGTH isignored. Default is 15.

MEAS_SIM_LIST_COLS Controls the width of the Input/Output Finder list in the Measure/Simulatefolder. The variable, SHOW_INPUT_OUTPUT_FINDER, must be enabled tocontrol the list width. The variable controls the folder in the scope of thevariable table where it is defined. The variable's value sets the list's widthin number of columns.

PARAMETER_PRECISION Specifies the number of digits used when displaying parameter values inthe Parameters table and when sending the values to a simulator. Defaultis 4.

PLOT_LIST_COLS Controls the width of the Plot Finder list in the Plots folder. The variablecontrols the folder in the scope of the variable table where it is defined.The variable's value sets the list's width in number of columns.

RETAIN_DATA When Yes, data from a Setup is retained if a sweep limit changes but thenumber of points remains the same. Default is No, which causes the datato be zeroed.

RETAIN_SIMU A simulator run in piped mode is normally stopped if a new simulator isselected. If Yes, the old simulator is kept running, which will speed upsimulations if there is frequent switching between simulators. Default isNo.

SHOW_INPUT_OUTPUT_FINDER When Yes, enables the Input/Output Finder list in the Measure/Simulatefolder. If you enable this variable or change its value after viewing thefolder, you must close, then re-open the model for the change to takeeffect. Default is No.

WORKING_PRECISION Controls the precision of numeric values when converted to text. Thisprecision setting affects only those parts of a model for which the variableis defined. Although all math in IC-CAP is performed using doubleprecision, precision may be lost when a number is converted to text. Thisconversion occurs in the following situations: any time the function val$()is called; the PRINT statement is used; a numeric value is assigned to avariable in the IC-CAP Variable Table. Because all variables in the IC-CAPVariable Table are text by definition, assigning a numeric value to such avariable will implicitly call val$().Range of values: 6 through 29. Default is 6.Note: While settings above 17 are allowed, they seldom show any affect.

XFORM_LIST_COLS Controls the width of the Select Transform list in the Extract/Optimizefolder. The variable controls the folder in the scope of the variable tablewhere it is defined. The variable's value sets the list's width in number ofcolumns.

GUI_PAGE_SUPRESS_SUMMARY Normally, IC-CAP displays a short summary of each GUI Item on the GUIItems pages. To suppress this summary and display only the item name(for a cleaner look to the page), set this variable to anything but 0, F,FALSE, N, NO, or blank.

PRINT_INSTROPTiON_WARNINGS Set this variable to enable printing the warnings of the instrument optionscurrently saved in the model file. If not defined, the default is to surpressthe printing of these warning messages (Default = NO).

OPT_PARTABLE_LOCAL_MIN_MAX If this is not specified or is set to TRUE, the default behavior is that you

Page 437: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

436

may set different (local) Min/Max limits for the same parameter in differentoptimizers. If set to FALSE, then optimizers within the scope of thisvariable will not maintain separate limits for a particular paramter butrather all limits will refer to the 'Opt Min'and 'Opt Max' columns of the parameter table where the referencedparameter resides. For variables, you may specify the default Min/Max byappending _OPT_MIN and _OPT_MAX to the variablename.For example if you wish to optimize the variable 'xyz' which is in a variabletable, create variables xyx_OPT_MIN and xyz_OPT_MAX to create theequivalent of an 'Opt Min' and 'Opt Max'functionality. After changing this variable, optimizers will refresh theirreferenced min/max if you change to the parameter page, or if theoptimization is run, or if the model is saved. If the refresh would cause anumber to switch to a blank cell (if you changed from TRUE to FALSE andyour parameter page had a blank for Opt Min), then the first such refreshfor any parameter will update the optimizer limit to the parameter page. Ifyou change from local mode to shared mode and the current contents arean expression rather than a simple real number, then the cell will remainlocal because expressions are not valid in the parameter table Opt Min andOpt Max fields.

PEL

Variable Description

ICCAP_MAXIMUM_CALL_CHAIN Sets the maximum number of transforms/macros (written in PEL) that can becalled (via iccap_func() ) without returning. This limit may be set to protectautomations under development from infinitely recurring by accident. Withoutthis limit, such infinite recursions will cause IC-CAP to consume all thememory available in your system and then crash. The default value is 0which means to permit any number of calls.

Measurement Options

Page 438: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

437

Variable Description

8510_MAXFREQ The 8510 driver checks that the maximum frequency of the instrument is notexceeded. Use this variable to override the built-in value and specify thedesired maximum frequency to be checked.

BYPASS_CV_CAL When set to NO (Default), CV measurements using an HP/Agilent 42XX CV orLCR Meter will request user to calibrate the instrument. After a successfulcalibration, this step is bypassed on all subsequent measurements. If set toYES, the calibration step is always bypassed.CAUTION: Setting variable to YES assumes the instrument has already beencalibrated. Use YES for measurement automation.

CV_FREQ Sets the frequency in Hz at which CV simulation is performed. Default value is1MEG (Hz).

HPIB_READ_STRING Gets the results of a Read String operation in the GPIB Analyzer.

IGNORE_8510_RF_UNLOCK When defined as Yes IC-CAP ignores a temporary and benign RF UNLOCK errorfrom the 8510.

INST_START_ADDR Specifies the start address for instrument searching during Rebuild (active list).This value should be an integer between 0 and 31, inclusively. When there is aprinter, plotter, or prober on the same GPIB with measurement instruments,set INST_START_ADDR greater than any one of those non-instruments to avoidthe identification process. Default is 0.

INST_END_ADDR Specifies the ending address for instrument searching during Rebuild (activelist). This value should be greater than the INST_START_ADDR value and lessthan 31.

LCR_RST_MEMLCR_RST_MEM_<unit>

Sets the reset instrument state for the 4284, 4285, and E4980A instruments.To specify a particular unit, set LCR_RST_MEM_<unit> (e.g.,LCR_RST_MEM_CM). IC-CAP drivers reset instruments to known states prior toconfiguring them for the current measurement. The 4284, 4284, and E4980send the *RST command, which resets the instruments to a known factorystate. However, this default state (1V, 1KHz signal) may cause damage tocertain devices between the time the $RST is requested and the time therequested signal level is set. If LCR_RST_MEM or LCR_RST_MEM_<unit> is set,the 4284, 4285, and E4980A instruments will use the value of the variable toset the instrument state. For example, if set to 1, the driver will recallinstrument state 1 instead of *RST. For additional information, see the examplemodel file in misc/prepare_CV_Meter.mdl.

MAX_SETUP_POINTS Specifies the maximum number of points to be permitted within a setup.Default value is 50000.

MDS_MEASURE_FAST Flag reserved for use by the HPRoot model extraction in the High-FrequencyIC-CAP software. Default is No.

MEASURE_FAST When Yes, IC-CAP will attempt to minimize instrument re-initialization duringrepeated measurements on the same Setup. Refer to Speeding Up RepetitiveMeasurements in the Measurement chapter. Default is No.

NO_ZEROING When Yes, IC-CAP will avoid a preliminary step of zeroing DC and other signalsources at the beginning of measurements. Refer to MEASURE_FAST. Default isNo.

PARALLEL_INPUT_UNITS_OK Overrides a warning when multiple units share a single input node. Defaultvalue is No, to issue a warning.

PRE_5_8510_FIRMWARE For HP 8510B Network Analyzers with firmware revisions prior toHP8510B.05.00: Dec 5, 1988 only.Declaring this variable prevents certain commands (DETENORB--set detector tonormal bandwidth, and EXTTOFF--external triggr off) from being sent to theNWA. These commands are not supported in the above-referenced firmwareand sending such commands causes a measurement failure. Declare thisvariable to prevent the failure.No value assignment required.

ENA_CAL_FILE_PATH On the Agilent ENA mainframe, the default directory for saving and readingcalibration (.cal) and state/cal (.cal) files is: D:\State. Calibration files can besaved and read in a different directory by setting this System Variable to a newdirectory. Use full path as shown in the example:ENA_CAL_FILE_PATH=D:\my_dir

PNA_CAL_PATH_FILE On the Agilent PNA mainframe, the default directory for saving and readingcalibration (.cal) and state/cal (.cal) files is: C:\Program Files\Agilent\NetworkAnalyzer\Documents. Calibration files can be saved and read in a differentdirectory by setting this System Variable to a new directory. Use full path asshown in the example: PNA_CAL_PATH_FILE=C:\my_dir

HP85124 Measurement Options

Page 439: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

438

These variables are used to modify the source tuning process. Source tuning is specifiedwith an entry in the options table. Source tuning process varies the supply voltage tocompensate for I*R drop in getting to the device under test.

Variable Description

p1_step_size Type = REAL, Default = 0.0This variable sets a fixed step size for newton iterations when tuning the source voltagefor port 1. Default is an auto step size, determined from dvm noise floor.

p2_step_size Type = REAL, Default = 0.0This variable sets a fixed step size for newton iterations when tuning the source voltagefor port 2. Default is an auto step size, determined from dvm noise floor.

p1_step_scale Type = REAL, Default = 1.0This variable sets a scale factor to modify the auto step size in newton iterations whentuning the source voltage for port 1. The auto step size is multiplied by this value.

p2_step_scale Type = REAL, Default = 1.0This variable sets a scale factor to modify the auto step size in newton iterations whentuning the source voltage for port 2. The auto step size is multiplied by this value.

p1_tune_error Type = REAL, Default = 0.0This variable sets a fixed error goal for tuning the source voltage for port 1 instead of thedefault auto ranged error which is determined from the dvm noise floor.

p2_tune_error Type = REAL, Default = 0.0This variable sets a fixed error goal for tuning the source voltage for port 2 instead of thedefault auto ranged error which is determined from the dvm noise floor.

p1_error_scale Type = REAL, Default = 1.0This variable sets a scale factor to modify the auto ranged error goal for tuning the sourcevoltage for port 1 The auto ranged error goal is multiplied by this value.

p2_error_scale Type = REAL, Default = 1.0This variable sets a scale factor to modify the auto ranged error goal for tuning the sourcevoltage for port 2 The auto ranged error goal is multiplied by this value.

max_newton_iters Type = INT, Default = 6This variable sets the maximum number of newton iterations to complete before quittingthe source tuning process.

pulse_rise_time Type = REAL, Default = 0.2E-6This variable specifies the average rise time for the pulse. This is used in determining ifthe measurement delay results in a measurement in the pulse. If the measurement forsource tuning is not in the pulse then the resulting voltage will be very high.

pulse_fall_time Type = REAL, Default = 0.2E-6This variable specifies the average fall time for the pulse. This is used in determining if themeasurement delay results in a measurement in the pulse. If the measurement for sourcetuning is not in the pulse then the resulting voltage will be very high.

These variables can be used to initiate printing of data to the status window. This data isuseful in troubleshooting measurement problems and data accuracy questions.

Variable Description

show_tuning Type = INT, Default = 0, Values 0 or 1When set to 1 measured values, tuning error, and next value to be tries are displayedfor the source tuning process. These values are printed the status window.

show_samples Type = INT, Default = 0, Values 0 or 1When set to 1 all the dvm or adc measurements are displayed in the status window.

show_stats Type = INT, Default = 0, Values 0 or 1 When set to 1 statistical information about themeasured data is displayed. Data includes mean, min, and max. Data is displayed in thestatus window.

show_current_range Type = INT, Default = 0, Values 0 or 1When set to 1 the present current range is displayed to the status window when themeasurement begins and any time the range changes.

show_voltage_range Type = INT, Default = 0, Values 0 or 1When set to 1 the present voltage range is displayed to the status window when themeasurement begins and any time the range changes.

These variables are used to over-ride the offsets defined in the hp85124.cal file.

Page 440: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

439

Variable Description

p1_meas_offset Type = REAL, Default = value in hp85124.calThis variable will over-ride the input_measurement_offset variable in the hp85124.cal file.This variable adjusts the delay for the port 1 voltage measurement.

p2_meas_offset Type = REAL, Default = value in hp85124.calThis variable will over-ride the output_measurement_offset variable in the hp85124.cal file.This variable adjusts the delay for the port 2 voltage measurement.

p1_meas_i_offset Type = REAL, Default = value in hp85124.calThis variable will over-ride the input_current_measurement_offset variable in thehp85124.cal file. This variable adjusts the delay for the port 1 current measurement. Thisoffset is relative the voltage measurement.

p2_meas_i_offset Type = REAL, Default = value in hp85124.calThis variable will over-ride the output_current_measurement_offset variable in thehp85124.cal file. This variable adjusts the delay for the port 2 current measurement. Thisoffset is relative the voltage measurement.

These variables are used to over-ride the instrument types specified in the hp85124.cfgfile.

Variable Description

p1_v_type Type = STRING, Default = value in hp85124.cfgThis variable over-rides the value of dmm_vin in the hp85124.cfg file. This will also over-ride theautomatic change for risetime mode. The default is to use the hp3458 dvm for slow mode and theinternal adc (K49 only) for fast mode.

p1_i_type Type = STRING, Default = value in hp85124.cfgThis variable over-rides the value of dmm_iin in the hp85124.cfg file. This will also over-ride theautomatic change for risetime mode. The default is to use the hp3458 dvm for slow mode and theinternal adc (K49 only) for fast mode.

p2_v_type Type = STRING, Default = value in hp85124.cfgThis variable over-rides the value of dmm_vout in the hp85124.cfg file. This will also over-ride theautomatic change for risetime mode. The default is to use the hp3458 dvm for slow mode and theinternal adc (K49 only) for fast mode.

p2_i_type Type = STRING, Default = value in hp85124.cfgThis variable over-rides the value of dmm_iout in the hp85124.cfg file. This will also over-ride theautomatic change for risetime mode. The default is to use the hp3458 dvm for slow mode and theinternal adc (K49 only) for fast mode.

These variables are used to make changes in the default settings used for the hp3458dmms.

Variable Description

dvm_terminals Type = CHAR, Default = R, Values = R or F

This variable will change which set of terminals the dmm will read. The choice is R for rearand F for front.|

dvm_trigger_mode Type = CHAR, Default = E, Values = E or IThis variable will change the trigger mode of the dmm. E for external and I for internal.

dvm_aperture Type = REAL, Default = 1E-6 This variable changes the value of the aperture for DCVmode of the dmms.

dvm_track_hold Type = INT, Default = 1, Values 0 or 1This variable sets either track and hold mode (DSDC) or integrated mode (DCV).

dvm_auto_zero Type = STRING, Default = ONCE, Values = OFF, ON, or ONCE This variable sets the autozero mode on the dmms.

allow_internal Type = INT, Default = 0, Values = 1/0This variable allows the dmm to take more samplings within the same pulse during timedomain pulse profile measurements if the time interval is less than 20us.

General Extraction Options

Page 441: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

440

Variable Description

EXTR_DUT Used internally in extractions. When a circuit or test circuit has been defined, set thisvariable to the name of the DUT whose parameters are either extracted or used by theIC-CAP device extraction functions.

EXTR_MODEL Used internally in extractions. When a circuit has been defined, set this variable to thename of the model whose parameters are either extracted or used by the IC-CAPdevice extraction functions.

POLARITY Specifies the device polarity of the device to be extracted. Allowed values for bipolardevices are NPN or PNP. Default is NPN for bipolar devices. Allowed values for MOSdevices are NMOS or PMOS. Default is NMOS for MOS devices.

WORKING_PRECISION Controls the precision of numeric values when converted to text. This precision settingaffects only those parts of a model for which the variable is defined. (Converting totext is done when: the function val$() is called; the PRINT statement is used; anumeric value is assigned to a variable in the IC-CAP Variable Table.) Range ofvalues: 6 and higher. Default is 6.Note: While settings above 17 are allowed, a double precision number cannot beexpressed to this precision.

General Simulation Options

Variable Description

DEFAULT_SIMU Sets the default simulator name. Used in Utilities.

MAX_DC_SWEEPS Specifies the maximum number of DC sweeps for a simulation. Defaultis simulator-dependent.

MAX_SETUP_POINTS Specifies the maximum number of points to be permitted within asetup. Default value is 50000.

OPEN_RES Specifies the resistance value that is automatically connected to allfloating nodes in the circuit. This is available for all simulators with linksto IC-CAP. When this variable is not specified, a zero amp currentsource is connected to the node.

PARAMETER_PRECISION Specifies the number of digits used when displaying parameter valuesin the Parameters table and when sending the values to a simulator.Default is 4.

SIMULATOR Specifies the simulator name to be used in all simulations performedunder the level in which this variable is defined. The name must be avalid simulator; otherwise, the currently selected simulator is used.Default is the currently selected simulator.

SIM_USE_UPPER_CASE_PARAMS By default parameters are entered into the Parameters table with thesame capitalization as entered in the circuit page. (The hpeesofsimsimulator is an exception.) If set to 'F', 'N', 'FALSE','No' or '0' thedefault behavior will result. Any other setting will force the parametersin the Parameters table to be represented in upper case according tothe following rules:

If the parameter was declared with $dpar, $mpar, or $xpar,capitalization is not affected.If the parameter contains a period, only the part of theparameter after the last period is upper case.If the parameter does not contain a period, the entire parameteris upper case.If USE_OLD_CASE_PARM_RULE is set to anything other than 'F','N', 'FALSE','No' or '0' (case insensitive), this setting followsdifferent rules. See USE_OLD_CASE_PARM_RULE. This settingaffects all simulators but may be overridden byHPEESOFSIM_USE_LOWER_CASE_PARAMS andHPEESOFSIM_USE_MIXED_CASE_PARAMS for the hpeesofsimsimulator.

SIM_USE_LOWER_CASE_PARAMS By default parameters are entered into the Parameters table with thesame capitalization as entered in the circuit page. (The hpeesofsimsimulator is an exception.) If set to 'F', 'N', 'FALSE','No' or '0' thedefault behavior will result. Any other setting will force the parametersin the Parameters table to be represented in lower case according tothe following rules:

If the parameter was declared with $dpar, $mpar, or $xpar,capitalization is not affected.If the parameter contains a period, only the part of theparameter after the last period is lower case.

Page 442: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

441

If the parameter does not contain a period, the entire parameteris lower case.If USE_OLD_CASE_PARM_RULE is set to anything other than 'F','N', 'FALSE','No' or '0' (case insensitive), this setting followsdifferent rules. See USE_OLD_CASE_PARM_RULE.This setting affects all simulators but may be overridden byHPEESOFSIM_USE_LOWER_CASE_PARAMS andHPEESOFSIM_USE_MIXED_CASE_PARAMS for the hpeesofsimsimulator.

TEMP Temperature at which simulations are performed. When performing anoptimization to extract model parameters, TEMP and TNOM should beset to the same value so that simulations during optimization areperformed at TNOM. Default value is simulator-dependent.

TNOM Temperature at which the model parameters are extracted. TNOM mustbe defined in order to guarantee consistency between simulation andextraction. Default value is 27 when performing an extraction, and issimulator dependent when performing a simulation.

TWOPORT_C Sets a DC decouple capacitance value when a 2-port circuit isgenerated from a circuit for 2-port simulation. Default is 100 farad.

TWOPORT_L Sets an AC decouple inductance value when a 2-port circuit isgenerated from a circuit for 2-port simulation. Default is 100 henry.

TWOPORT_Z0 Sets a characteristic impedance value for 2-port circuit that is used inAC extractions, TwoPort function, and Software calibration. Default is50 ohm.

USE_OLD_CASE_PARM_RULE If set to anything other than 'F', 'N', 'FALSE','No' or '0' (caseinsensitive), this setting changes the rules forSIM_USE_UPPER_CASE_PARAMS, SIM_USE_LOWER_CASE_PARAMS,HPEESOFSIM_USE_LOWER_CASE_PARAMS, andHPEESOFSIM_USE_MIXED_CASE_PARAMS to the following:

If the parameter was declared with $dpar, $mpar, or $xpar, thecase is changed for the entire parameter name according to thecase variable.If the parameter contains a period, only the part of theparameter after the last period is changed according to the casevariable.If the parameter does not contain a period and the parameter isnamed for an instance, the case is unchanged.If the parameter does not contain a period and the parameter isnamed for a parameter on a model, the case is changedaccording to the case variable.For example, rtest 1 2 50Parameter rtest is named for the instance in SPICE, so case is notchanged according to the case variable. model x NPN alpha=4Parameter alpha is named for a model parameter, so case ischanged according to the case variable.

REUSE_LAST_SIMULATION_RESULTS Can be set to either TRUE or FALSE. Setting it to TRUE will turn on thenew mode simulation, if none of its parameters have been modified andits inputs/outputs are the same as last time, we don`t want to actuallysimulate rather we just restore the simulated data back to the valuesthey were at the last time we simulated

NoteWhen using the ADS simulator (hpeesofsim), there is no way to set the temperature just for Noiseanalysis. Therefore, the analysis will be done at the circuit temperature.

Grouping Parameters and Variables

Variable Description

BUILTIN_TECHNOLOGY_NAME Specifies the technology name defined in the config file, and then all the built-in groups in the selected technology can be displayed in the parameter page.

PARAMGROUP_ Keyword for defining the parameter groups.

VARGROUP_ Keyword for defining the variable groups. hpeesofsim Options

Page 443: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

442

Variable Description

BANDWIDTH Bandwidth for noise analysis. Default = 1 Hz.

HPEESOFSIM_HB_OPTIONS A string that contains the analysis options used in an ADSHarmonic Balance simulation. No default.

HPEESOFSIM_OPTIONS A string which contains the analysis options used in anhpeesofsim simulation. No default.

HPEESOFSIM_TRAN_OPTIONS A string that contains the analysis options used in an ADSTransient simulation. No default.

HPEESOFSIM_USE_LOWER_CASE_PARAMS This setting affects only the hpeesofsim simulator. By defaultparameters are converted to all uppercase. If set to 'F', 'N','FALSE','No' or '0' the default behavior will result. Any othersetting will force the parameters in the Parameters table to berepresented in lower case according to the following rules:

If the parameter was declared with $dpar, $mpar, or $xpar,capitalization is not affected.If the parameter contains a period, only the part of theparameter after the last period is lower case.If the parameter does not contain a period, the entireparameter is lower case.If USE_OLD_CASE_PARM_RULE is set to anything otherthan 'F', 'N', 'FALSE','No' or '0' (case insensitive), thissetting follows different rules. SeeUSE_OLD_CASE_PARM_RULE.

HPEESOFSIM_USE_MIXED_CASE_PARAMS This setting affects only the hpeesofsim simulator. By defaultparameters are converted to all uppercase. If set to 'F', 'N','FALSE','No' or '0' the default behavior will result. Any othersetting will force the parameters in the Parameters table to berepresented with the same case as they appear in the Circuitpage according to the following rules:

If the parameter was declared with $dpar, $mpar, or $xpar,capitalization is not affected.If the parameter contains a period, only the part of theparameter after the last period is the same case as theyappear in the Circuit page.If the parameter does not contain a period, the entireparameter is the same case as they appear in the Circuitpage.If USE_OLD_CASE_PARM_RULE is set to anything otherthan 'F', 'N', 'FALSE','No' or '0' (case insensitive), thissetting follows different rules. SeeUSE_OLD_CASE_PARM_RULE.

INCLUDEPORTNOISE Includes the port noise in noise voltage and currents. Default =Yes.

NOISETEMP Circuit temperature (Kelvin) for noise analysis. Default = 290.

MAX_PARALLEL_SIMULATOR Specifies the maximum number of simultaneous hpeesofsimsimulators that can be run. Default value is 3.

Mextram Extraction Options

Variable Description

MXT_AUTO_RANGE Type = INT, Default = 0, Values = 1/0 This variable selects auto range capabilities forMEXTRAM parameter extraction. It is usually defined at model or setup level

MXT_AUTO_SMOOTH Type = INT, Default = 0, Values = 1/0 This variable select smoothing on the measureddata before applying the auto range algorithms during MEXTRAM parameter extraction.It is usually not required unless the data is rather noisy. It is usually defined at modelor setup level.

MNS Options

Page 444: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

443

Variable Description

BANDWIDTH Bandwidth for noise analysis. Default is 1 Hz.

INCLUDEPORTNOISE Includes the port noise in noise voltage and currents. Default is Yes.

MNS_HB_OPTION A string that contains the analysis options used in an MNS Harmonic Balancesimulation. No default.

MNS_OPTIONS A string which contains the analysis options used in an MNS simulation. No default.

MNS_TRAN_OPTIONS A string that contains the analysis options used in an MNS Transient simulation. Nodefault.

NOISETEMP Circuit temperature (Kelvin) for noise analysis. Default is 290. Optimize Options

Variable Description

OPT_PARTABLE_LOCAL_MIN_MAX If this is not specified or is set to TRUE, the default behavior is that youmay set different (local) Min/Max limits for the same parameter in differentoptimizers. If set to FALSE, then optimizers within the scope of thisvariable will not maintain separate limits for a particular parameter butrather all limits will refer to the 'Opt Min' and 'Opt Max' columns of theparameter table where the referenced parameter resides. For variables,you may specify the default Min/Max by appending _OPT_MIN and_OPT_MAX to the variable name. For example if you wish to optimize thevariable 'xyz' which is in a variable table, create variables xyx_OPT_MINand xyz_OPT_MAX to create the equivalent of an 'Opt Min' and 'Opt Max'functionality. After changing this variable, optimizers will refresh theirreferenced min/max if you change to the parameter page, or if theoptimization is run, or if the model is saved. If the refresh would cause anumber to switch to a blank cell (if you changed from TRUE to FALSE andyour parameter page had a blank for Opt Min), then the first such refreshfor any parameter will update the optimizer limit to the parameter page. Ifyou change from local mode to shared mode and the current contents arean expression rather than a simple real number, then the cell will remainlocal because expressions are not valid in the parameter table Opt Min andOpt Max fields.

ELDO Options

Variable Description

ELDO_VERSION Specifies the version of ELDO being used in the simulation. Thisinformation is necessary because the syntax used to call ELDOdepends on the version number. If this variable is not specified, IC-CAP will use the version specified in the environment variable eldover,if it exists. Default is v4.2.1.

ELDO_AUTO_RESTART_DURING_TUNE The CAN_PIPE link to ELDO can cause the eldo process size andtemporary disk space usage to grow over time. To avoid memory/diskconsumption problems, IC-CAP restarts this mode every 100simulations. This can cause a significant delay as eldo reacquires itslicense, which is noticeable intune mode and disrupts tuning. Setting this variable to FALSE willinhibit the restart during tune mode. During optimizations and normalsimulation requests, the 100 simulation count is in effect. When atuner is dismissed, if the number of simulations exceeds 100, it will bereset at that point. However, immediately following a stop of thesimulator, the very first simulation of a particular tune mode may stillencounter this delay, however only the very first simulation shouldever be subject to the delay, and only when the last simulationtriggered a restart. This applies to all tuners tied to optimizerdefinitions. The default if unspecified is TRUE.

Saber Options

Page 445: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

444

Variable Description

SABER_ALTER A command string that appears in the Saber command file to modify simulation-relatedvariables in Saber. Multiple commands are separated by semi-colon.

SABER_DC_OPTIONS String that contains the DC operating point options used in a SABER simulation.Multiple options are separated by commas.

SABER_OPTIONS String that contains the analysis options used in a SABER simulation. Multiple optionsare separated by commas.

USE_ALTER Specifies whether or not the alter command should be used in a SABER simulation.Default is Yes.

SABER_VERSION Specifies the version of SABER being used in the simulation. This information is neededif you are using a version earlier than 4.3 (syntax for DC log sweeps is different) or 5.0(output files have different names). Default is 5.0.

USE_DCIP_COM Specifies whether or not the dcip and dcep commands should be used in a SABERsimulation to speed up LIST and LOG sweeps. Valid entries are Yes and No. Default isYes.

USE_SABER_COM Specifies whether or not the 'saber' command to load a new netlist without restartingthe simulator should be used in a SABER simulation. Valid entries are Yes and No.Default is No.

HSPICE Options

Variable Description

HSPICE_NODE_STRLEN When net-listing the sources and analysis statements for HSPICEsimulations, node names are truncated to 3 characters by default.You can control the number of characters for node names by settingHSPICE_NODE_STRLEN to 3, 4, 5, 6, or 7. If you set the value toless than 3, the minimum value of 3 will be used. If you set thevalue to larger than 7, the maximum value of 7 will be used.

HSPICE_VERSION Specifies the version of HSPICE being used in the simulation in thesyntax of <year>.<rel>[-SP<N>] without A- to Z- in front of thedate, for example: 2008.03-SP1. If this variable is not specified, IC-CAP will assume the latest version of HSPICE is being used.

HSPICE_LICENSE_TIMEOUT Setting this variable to a real F will cause IC-CAP to issue theinteractive HSPICE command 'timeout F' when simulating to HSPICEwith CAN_PIPE mode. It represents the seconds before theunderlying HSPICE process will timeout and release the HSPICElicense. If not set, IC-CAP will not try to issue a timeout commandand the default value built into HSPICE will be used.Note: HSPICE_LICENSE_TIMEOUT is only valid for HSPICE 2008.03-SP1 or later version.

HSPICE_AUTO_RESTART_DURING_TUNE The CAN_PIPE link to hspice on unix systems can cause the hspiceprocess size to grow over time. To avoid memory consumptionproblems, IC-CAP restarts this mode every 100 simulations. Thiscan cause a significant delay as hspice reacquires its license,whichis noticeable in tune mode and disrupts tuning. Setting this variableto FALSE will inhibit the restart during tune mode. Duringoptimizations and normal simulation requests, the 100 simulationcount is in effect. When a tuner is dismissed, if the number ofsimulations exceeds 100, it will be reset at that point. However,immediately following a stop of the simulator, the very firstsimulation of a particular tune mode may still encounter this delay,however only the very first simulation should ever be subject to thedelay, and only when the last simulation triggered a restart. Thisapplies to all tuners tied to optimizer definitions. The default ifunspecified is TRUE.

Print/Plot Options

Page 446: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

445

Variable Description

DRIVER Obsolete

DUMP_CMND Sets the graphics dump command to a printer. Used in Plots. Default value on HP ispcltrans -e3 | lp -oraw, and is xpr -device ps | lpr on Sun.

DUMP_DPI Obsolete

DUMP_WHITE Obsolete

PAPER Sets paper size as either A4 or A3 for graphics output. Used in Plot. Default value isA4, which is also good for US letter size.

PLOT_CMND Sets the HPGL plotting command. Default value on HP is cat > HPGL, and is notapplicable on Sun.

PLOT_SCALE_FACTOR Sets the scale factor used in conjunction with iccap_func Dump Via Server. Defaultvalue is 1.0.

PRINT_CMND Sets the text output command to a printer. Used in several windows. Default is lp. Factory Diagnostics

Variable Description

IC_DIAG_FLAGS Reserved for factorydiagnostics.

Curtice Extraction Options

Variable Description

CONSTANT_TAU When Yes, the AC extraction will extract the internal time delay in the Curtice GaAs MESFETrepresented by the model parameter TAU. This model parameter forces the model to use aconstant delay time. When not defined the parameter A5 is extracted that represents avariable time delay as a function of VDS. Default is No.

LINEAR_CGD When Yes, the AC extraction for the Curtice GaAs MESFET will extract a value for a lineargate-to-drain capacitance represented by the model parameter CGD. When not defined theonly capacitance extracted is the non-linear junction capacitance CGDO. Default is No.

LINEAR_CGS When Yes, the AC extraction for the Curtice GaAs MESFET will extract a value for a lineargate-to-source capacitance represented by the model parameter CGS. When not defined theonly capacitance extracted is the non-linear junction capacitance CGSO. Default is No.

BJT High Freq Extraction Options

Variable Description

SCALEITF ITF multiplier for the decoupled extraction in the BJTAC_high_freq extraction function. Thedecoupled extraction is called when the coupled extraction fails. Default value is 1.0.

SCALETF TF multiplier for the decoupled extraction in the BJTAC_high_freq extraction function. Thedecoupled extraction is called when the coupled extraction fails. Default value is 1.0.

SCALEVTF VTF multiplier for the decoupled extraction in the BJTAC_high_freq extraction function. Thedecoupled extraction is called when the coupled extraction fails. Default value is 1.0.

SCALEXTF XTF multiplier for the decoupled extraction in the BJTAC_high_freq extraction function. Thedecoupled extraction is called when the coupled extraction fails. Default value is 1.0.

MAXRB Specifies the maximum value of the RB and RBM parameters for the extraction. Default is 5K. BSIM1 Extraction Options

Page 447: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

446

Variable Description

EXT_SUB Allows you to specify whether or not the subthreshold parameters should be extracted forthe BSIM1 model by entering Yes or No. Used in the BSIM1 extraction. Default is Yes.

FET_MODE Specifies the type of the device being used in the BSIM1 or BSIM2 extraction. Allowedvalues are "E" for enhancement, "D" for depletion and "Z" for zero volt threshold voltagedevices. No default.

FIRST_DEV Specifies if this is the first device in the BSIM1 or BSIM2 extraction. Allowed values are Yesor No. Default value is No.

NO_OF_ND_DEV Running count of the number of NMOS Depletion devices being extracted. This number isincremented automatically by the BSIM1 and BSIM2 extraction routines. Used in the BSIM1and BSIM2 extractions when generating geometry independent parameters. No default.

NO_OF_NE_DEV Running count of the number of NMOS Enhancement devices being extracted. This numberis incremented automatically by the BSIM1 and BSIM2 extraction routines. Used in theBSIM1 and BSIM2 extractions when generating geometry independent parameters. Nodefault.

NO_OF_NZ_DEV Running count of the number of NMOS Zero Threshold-Voltage devices being extracted. Thisnumber is incremented automatically by the BSIM1 and BSIM2 extraction rou-tines. Used in the BSIM1 and BSIM2 extractions when generating geometry independentparameters. No default.

NO_OF_PD_DEV Running count of the number of PMOS Depletion devices being extracted. This number isincremented automatically by the BSIM1 and BSIM2 extraction routines. Used inthe BSIM1 and BSIM2 extractions when generating geometry independent parameters. Nodefault.

NO_OF_PE_DEV Running count of the number of PMOS Enhancement devices being extracted. This numberis incremented automatically by the BSIM1 and BSIM2 extraction routines. Usedin the BSIM1 and BSIM2 extractions when generating geometry independent parameters.No default.

NO_OF_PZ_DEV Running count of the number of PMOS Zero Threshold-Voltage devices being extracted. Thisnumber is incremented automatically by the BSIM1 and BSIM2 extraction rou-tines. Used in the BSIM1 and BSIM2 extractions when generating geometry independentparameters. No default.

PHIF2 Specifies the Surface Inversion Potential parameter of the BSIM1 model. This variable is setautomatically during the BSIM1 extraction and is referred to and usedlater in the extraction process. You cannot set this variable. No default.

PROC_FILE Specifies the name of the BSIM1 or BSIM2 Process File. This name may include the directorypath. Otherwise, the process information will be written to the filename in the currentdirectory. Default is the filename "bsimfile" in the user's home directory.

SUBTHVTH1 The calculated value of the threshold voltage for the first subthreshold BSIM1 measurement.This value is automatically calculated and set by the BSIM1 extraction.

SUBTHVTH2 The calculated value of the threshold voltage for the second subthreshold BSIM1measurement. This value is automatically calculated and set by the BSIM1 extraction.

SUBTHVTH3 The calculated value of the threshold voltage for the third subthreshold BSIM1measurement. This value is automatically calculated and set by the BSIM1 extraction.

SUBTHVTH4 The calculated value of the threshold voltage for the fourth subthreshold BSIM1measurement. This value is automatically calculated and set by the BSIM1 extraction

TOXVAL The device oxide thickness in units of microns. Used in the BSIM1 and BSIM2 extractions.This is a user-specified value. No default.

VDDVAL The voltage value applied to the drain of the device being extracted. Used in the BSIM1 andBSIM2 extractions. This is a user-specified value. No default.

BSIM2 Extraction Options

Page 448: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

447

Variable Description

BSIM_LIN_PAR Specifies the name of the BSIM2 parameter to be plotted against1/W or 1/L when entered as input in the BSIM2_lin_plot libraryfunction. No default.

DEV_FILE Specifies the name of the BSIM2 SPICE Input File that can besimulated using SPICE3. This ascii file is not necessary for the IC-CAP BSIM2 extraction but is generated to provide compatibility withother BSIM2 extraction systems. This filename may include thedirectory path. Otherwise, the process information will be written tothe filename in the current directory. Default is the filename"bsim2devfile" in the user's home directory.

FET_MODE Specifies the type of the device being used in the BSIM1 or BSIM2extraction. Allowed values are "E" for enhancement, "D" fordepletion and "Z" for zero volt threshold voltage devices. No default.

FIRST_DEV Specifies if this is the first device in the BSIM1 or BSIM2 extraction.Allowed values are Yes or No. Default value is No.

IDVD_VBEND, IDVD_VBSTART,IDVD_VDPTS, IDVD_VDSTART,IDVD_VGSTART, IDVD_VGSTOP,IDVD_VSCON, IDVG_VBPTS,IDVG_VBSTART, IDVG_VBSTOP,IDVG_VDEND,IDVG_VDSTART,IDVG_VGPTS, IDVG_VGSTART,IDVG_VGSTOP, IDVG_VSCON,NUMBVB, NUMBVBSTEP, NUMBVD

Reserved variables for BSIM2 extractions.

NO_OF_ND_DEV Running count of the number of NMOS Depletion devices beingextracted. This number is incremented automatically by the BSIM1and BSIM2 extraction routines. Used in the BSIM1 and BSIM2extractions when generating geometry independent parameters. Nodefault.

NO_OF_NE_DEV Running count of the number of NMOS Enhancement devices beingextracted. This number is incremented automatically by the BSIM1and BSIM2 extraction routines. Used in the BSIM1 and BSIM2extractions when generating geometry independent parameters. Nodefault.

NO_OF_NZ_DEV Running count of the number of NMOS Zero Threshold-Voltagedevices being extracted. This number is incremented automaticallyby the BSIM1 and BSIM2 extraction routines. Used in the BSIM1 andBSIM2 extractions when generating geometry independentparameters. No default.

NO_OF_PD_DEV Running count of the number of PMOS Depletion devices beingextracted. This number is incremented automatically by the BSIM1and BSIM2 extraction routines. Used inthe BSIM1 and BSIM2 extractions when generating geometryindependent parameters. No default.

NO_OF_PE_DEV Running count of the number of PMOS Enhancement devices beingextracted. This number is incremented automatically by the BSIM1and BSIM2 extraction routines. Used in the BSIM1 and BSIM2extractions when generating geometry independent parameters. Nodefault.

NO_OF_PZ_DEV Running count of the number of PMOS Zero Threshold-Voltagedevices being extracted. This number is incremented automaticallyby the BSIM1 and BSIM2 extraction routines. Used in the BSIM1 andBSIM2 extractions when generating geometry independentparameters. No default.

UCB MOS Extraction Options

Variable Description

WD Used in the UCB MOSFET LEVEL 2 and 3 model characterizations to represent the channel widthreduction parameter. This parameter is not defined in the UCB models but has been added to manyproprietary versions of the models. Default is 0.

X_HIGH/Y_HIGH Options

Page 449: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

448

Variable Description

OVERRIDE_LIMITS When Yes, user can manually specify limits for certain bipolar and GaAs extractions withthe X_LOW and X_HIGH variables. Default is No.

X_HIGH, X_LOW Plots can interactively set these values to the X values of a rescale rectangle.

Y_HIGH, Y_LOW Plots can interactively set these values to the Y values of a rescale rectangle. Data Management Options

Variable Description

MDM_AUTO_PRECISION This variable is obsolete in version 5.3. See MDM_REL_ERROR andMDM_ZERO_TOL.

MDM_EXPORT_COMMENT Specifies the text to be added as comment at the top of the MDM file whenexporting data. The text can include an embedded variable as val$(var-name), pre-defined program variables DATE, NEWLINE, TAB, MODEL, DUT,SETUP. Some examples are:MDM_STD_COM - Today's date : $DATE MDM_EXPORT_COMMENT -val$(MDM_STD_COM)MDM_EXPORT_COMMENT - MDM file exported on $DATEMDM_EXPORT_COMMENT - Date: $DATE $SETUP L=val$(L) W=val$(W)where W and L are Model, DUT or Setup parameters/variables.

MDM_EXPORT_COMMENT_FILE Specifies the Data Manager comment file to be used when exporting data toan MDM file. The contents of the comment file are pre-pended to the MDM file

MDM_EXPORT_XFORM_DATA Setting this value to TRUE, will export all the transform(s) data (or thosetransforms specified by MDM_XFORM_LIST) in the setup to the MDM data-file.This variable is automatically set to TRUE when you select the checkbox'Export Transforms' in the Export Data dialog.Default is FALSE. See MDM_XFORM_LIST.

MDM_FILE_PATH Specifies the Data Management file name path.

MDM_FILE_NAME Specifies the Data Management file name.

MDM_HEADER_VERBOSE Specifies if the header of the MDM file includes comments describing eachfield.Default is FALSE.

MDM_PRECISION This variable is obsolete in version 5.3. See MDM_REL_ERROR andMDM_ZERO_TOL.

MDM_REL_ERROR When IC-CAP reads values from an MDM file, it tries to match requested inputvalues with data in the MDM. If the data does not exist in the MDM file,importing the data is not advised. However, due to roundoff errors, atolerance must be assumed. IC-CAP uses the formula MDM_REL_ERROR >(req - mdm)/req as its acceptance test. Default value is 1E-10 This valueshould rarely need to be adjusted, and can be adjusted for an individualInput. By assigning a value to MDM_REL_ERROR_< name > (where < name> is the name of the Input to which the tolerance is to be applied), specificcontrol is possible.

MDM_VALUES_LIST Specifies a space or comma separated list of Parameter or Variable names.The values of these Parameters/Variables are written to the MDM file. Whenan MDM file with values stored in it is imported or used to auto-create asetup, these Parameters/Variables are automatically reset to the valuesstored in the MDM. However, if a Parameter or Variable no longer exists inthe scope of the setup being imported to, a variable will be created for thatvalue in the Setup Variables Table.

MDM_XFORM_LIST Specifies a comma separated list of transform names that will be exportedwhen this setup is exported. By using this variable, you may specify a subsetof all transforms for export. In addition you may specify the mode, nodes,and other data. Each transform entry in the comma separated list will appearin the MDM file as an output. The actual values of each output type are shownbelow:Mode Values------- -----------------------------------------------------------V,N,U <Name> <Mode> <+ Node> <- Node> <Unit> <Type>I <Name> <Mode> <To Node> <From Node> <Unit> <Type>C,G <Name> <Mode> <High Node> <Low Node> <Unit> <Type>T <Name> <Mode> <Node> <Pulse Param> <Unit> <Type>S,H,Z,K,A,Y <Name> <Mode> <Port 1> <Port 2> <AC Ground> <Unit><Type>Examples: MDM_XFORM_LIST = calc_ic I C E, calc_ib I B E SMU2 MDM_XFORM_LIST = Hcalc H, beta

Page 450: Extraction, Analysis, and Programming - Keysightedadownload.software.keysight.com/eedl/iccap/2011_01/pdf/...IC-CAP 2011.01 - Extraction, Analysis, and Programming 3 Technology Licenses

IC-CAP 2011.01 - Extraction, Analysis, and Programming

449

Note, only the transform name is required. You may include as many extraentries per transform as desired.This variable is only referenced if MDM_EXPORT_XFORM_DATA is true. SeeMDM_EXPORT_XFORM_DATA.

MDM_ZERO_TOL When IC-CAP reads values from an MDM file, it tries to match requestedInput values with data in the MDM.If the data does not exist in the MDM file, importing the data is not advised.However, due to roundoff errors, a tolerance must be assumed. IC-CAP usesthe formula MDM_ZERO_TOL > (req - mdm) | req == 0 or mdm == 0 as itsacceptance test.Default value is 1E-30.This value should rarely need to be adjusted, and can be adjusted for anindividual Inputs. By assigning a value to MDM_ZERO_TOL_< name > (where< name > is the name of the Input to which the tolerance is to be applied),specific control is possible.