0% found this document useful (0 votes)
24 views256 pages

Svisual Ug

Uploaded by

1419203919
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
24 views256 pages

Svisual Ug

Uploaded by

1419203919
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 256

Sentaurus Visual User

Guide
Version H-2013.03, March 2013
Copyright and Proprietary Information Notice
Copyright © 2013 Synopsys, Inc. All rights reserved. This software and documentation contain confidential and proprietary
information that is the property of Synopsys, Inc. The software and documentation are furnished under a license agreement and
may be used or copied only in accordance with the terms of the license agreement. No part of the software and documentation may
be reproduced, transmitted, or translated, in any form or by any means, electronic, mechanical, manual, optical, or otherwise, without
prior written permission of Synopsys, Inc., or as expressly provided by the license agreement.
Destination Control Statement
All technical data contained in this publication is subject to the export control laws of the United States of America.
Disclosure to nationals of other countries contrary to United States law is prohibited. It is the reader’s responsibility to
determine the applicable regulations and to comply with them.
Disclaimer
SYNOPSYS, INC., AND ITS LICENSORS MAKE NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH
REGARD TO THIS MATERIAL, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
Trademarks
Synopsys and certain Synopsys product names are trademarks of Synopsys, as set forth at
http://www.synopsys.com/Company/Pages/Trademarks.aspx.
All other product or company names may be trademarks of their respective owners.

Synopsys, Inc.
700 E. Middlefield Road
Mountain View, CA 94043
www.synopsys.com

ii Sentaurus Visual User Guide


H-2013.03
Contents
About This Guide xi
Audience . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi
Related Publications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi
Typographic Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xii
Customer Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xii
Accessing SolvNet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xii
Contacting Synopsys Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii
Contacting Your Local TCAD Support Team Directly. . . . . . . . . . . . . . . . . . . . . . . xiii
Free and Open Source Software Licensing Information. . . . . . . . . . . . . . . . . . . . . . . . . xiv

Chapter 1 Getting Started 1


Introducing Sentaurus Visual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Starting Sentaurus Visual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
From Command Line. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Command-Line Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
From Sentaurus Workbench . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
Accelerating the Rendering of Graphics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

Chapter 2 Graphical User Interface 5


Introducing Sentaurus Visual GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Menu Bar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Toolbars . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Plot Area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Tcl Command Panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

Chapter 3 Basic Operations 9


Loading Files. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Supported File Formats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Loading Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Reloading Plot Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Managing Loaded Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Customizing Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Working with Plots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Linking Plots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Undoing Operations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

Sentaurus Visual User Guide iii


H-2013.03
Contents

Displaying Multiple Plots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14


Grid Orientation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Vertical Orientation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Horizontal Orientation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Managing Frames . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Drawing Inside Plots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Inserting Text. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Drawing Lines and Shapes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Exporting Plots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Exporting Movies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Starting a New Movie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Adding Frames. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Exporting a Movie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Printing Plots. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Zooming and Panning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Zoom Tool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Reset Tool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Deleting Plots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Performance Options. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Fast Draw (3D Plots Only) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Subsampling (2D and 3D Plots Only) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Advanced Options (2D and 3D Plots Only) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

Chapter 4 Working with XY Plots 27


Loading XY Plots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Plotting One Curve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Plotting Multiple Curves . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Curve Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Plot Area Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Legend Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Axis Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Using Symbols and Scientific Notation in Plots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Best Look Option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Plotting Band Diagrams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Probe Tool. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Probe Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Analysis Tool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Exporting Data from Variables and Curves . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

iv Sentaurus Visual User Guide


H-2013.03
Contents

Chapter 5 Working with 2D and 3D Plots 39


Visualizing 2D and 3D Plots. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Rendering Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Materials and Regions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Contour Plots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Contour Legend Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Displaying Contour Plots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Creating New Scalar Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Vector Plots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Rotating Structures (3D Plots Only) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
Overlaying Plots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
Showing Differences Between Plots. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Measuring Distances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Integration Tool. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Using a Custom Integration Domain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Integrating Only a Defined Set of Regions or Materials . . . . . . . . . . . . . . . . . . . . . . . 48
Probe Tool. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Value Blanking (3D Plots Only) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Options for Value Blanking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Cutting Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Generating Precise Cutlines and Cutplanes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Cutlines in 2D Plots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Manipulating Cutlines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Cutplanes in 3D Plots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Streamlines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
Displaying Streamlines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
Specifying Regions or Materials . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Representing the Streamlines. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Integration Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Managing Created Streamlines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

Chapter 6 Automated Tasks 59


Running Tcl Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Typical Uses of Tcl Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Example 1: Plotting Id–Vg Curve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Example 2: Creating a Cutline and Exporting Cutline Data to CSV File for Further
Processing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Saving Command History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Running Inspect Command Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

Sentaurus Visual User Guide v


H-2013.03
Contents

Script Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
Restrictions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

Appendix A Tcl Commands 63


Syntax Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
Common Properties. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
Colors. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
Fonts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Lines. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Markers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
add_frame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
calculate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
create_curve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
create_cutline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
create_cutplane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
create_field . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
create_plot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
create_streamline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
create_variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
diff_plots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
echo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
exit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
export_curves . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
export_movie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
export_settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
export_variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
export_view. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
get_axis_prop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
get_camera_prop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
get_curve_data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
get_curve_prop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
get_field_prop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
get_grid_prop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
get_legend_prop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
get_plot_prop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
get_variable_data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
help . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
import_settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
integrate_field . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
link_plots. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
list_curves . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96

vi Sentaurus Visual User Guide


H-2013.03
Contents

list_cutlines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
list_cutplanes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
list_datasets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
list_fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
list_files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
list_materials . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
list_movie_frames . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
list_plots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
list_regions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
list_streamlines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
list_variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
load_file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
load_file_datasets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
load_library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
load_script_file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
move_plot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
overlay_plots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
probe_curve. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
probe_field . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
reload_datasets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
reload_files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
remove_curves . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
remove_cutlines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
remove_cutplanes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
remove_datasets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
remove_plots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
remove_streamlines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
reset_settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
rotate_plot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
select_plots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
set_axis_prop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
set_band_diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
set_best_look. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
set_camera_prop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
set_curve_prop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
set_field_prop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
set_grid_prop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
set_legend_prop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
set_material_prop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
set_plot_prop. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
set_region_prop. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137

Sentaurus Visual User Guide vii


H-2013.03
Contents

set_value_blanking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
set_window_full . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
set_window_size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
show_msg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
start_movie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
stop_movie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
undo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
unload_file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
version . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
windows_style. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
zoom_plot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144

Appendix B Menus and Toolbars of Graphical User Interface 145


Menus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
File Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
Edit Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
View Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
Tools Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
Data Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
Window Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
Help Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
Toolbars . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
File Toolbar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
Edit Toolbar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
Draw Toolbar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
View Toolbar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
Tools Toolbar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
Movies Toolbar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
Look Toolbar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153

Appendix C Available Formulas 155


Creating a New Variable. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
Creating a New Curve. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
Creating a New Field . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
Available Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156

Appendix D Inspect Support in Sentaurus Visual 161


Fully Supported Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
Partially Supported Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162

viii Sentaurus Visual User Guide


H-2013.03
Contents

Not Supported Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163


Script Library Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
Extraction Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
Curve Comparison Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
The extend Library. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
Partially Supported Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
Not Supported Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165

Appendix E Extraction Library 167


Syntax Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
Help for Procedures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
Output of Procedures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
ext::AbsList . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
ext::DiffList. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
ext::ExtractBVi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
ext::ExtractBVv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
ext::ExtractEarlyV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
ext::ExtractExtremum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
ext::ExtractGm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
ext::ExtractIoff . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
ext::ExtractRdiff . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
ext::ExtractSS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
ext::ExtractValue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
ext::ExtractVtgm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
ext::ExtractVti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
ext::FilterTable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
ext::FindVals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
ext::LinTransList. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
ext::RemoveDuplicates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
ext::SetInfoDef . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201

Appendix F Impedance Field Method Data Postprocessing Library 203


Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
Syntax Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
ifm::Gauss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
ifm::GetDataQuantiles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
ifm::GetGaussian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
ifm::GetHistogram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
ifm::GetMoments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
ifm::GetMOSIVs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211

Sentaurus Visual User Guide ix


H-2013.03
Contents

ifm::GetMOSWeights . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
ifm::GetNoiseStdDev . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
ifm::GetQQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
ifm::GetsIFMStdDev . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
ifm::GetSNM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
ifm::GetSRAMVTC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
ifm::ReadCSV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
ifm::ReadsIFM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
ifm::SetInfoDef . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
ifm::WriteCSV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230

x Sentaurus Visual User Guide


H-2013.03
About This Guide
Sentaurus Visual is part of Sentaurus Workbench Visualization. It is a plotting software for
visualizing data from simulations and experiments. Sentaurus Visual enables users to work
interactively with data using both a graphical user interface and a scripting language for
automated tasks.

The main chapters are:


■ Chapter 1 introduces Sentaurus Visual and describes how to start it from the command line
or Sentaurus Workbench.
■ Chapter 2 describes the key features of the graphical user interface.
■ Chapter 3 provides information about the basic operations of Sentaurus Visual that are
common to all plot types.
■ Chapter 4 describes the operations specific to working with xy plots.
■ Chapter 5 describes the operations specific to working with 2D and 3D plots.
■ Chapter 6 discusses automating tasks and scripting with Sentaurus Visual.

Audience
This user guide is intended for users of the Sentaurus Visual software package.

Related Publications
For additional information about Sentaurus Visual, see:
■ The TCAD Sentaurus release notes, available on SolvNet (see Accessing SolvNet on
page xii).
■ Documentation available through SolvNet at https://solvnet.synopsys.com/DocsOnWeb.

Sentaurus Visual User Guide xi


H-2013.03
About This Guide
Typographic Conventions

Typographic Conventions
Convention Explanation

<> Angle brackets

{} Braces

[] Brackets

() Parentheses

Blue text Identifies a cross-reference (only on the screen).

Bold text Identifies a selectable icon, button, menu, or tab. It also indicates the name of a field or an
option.

Courier font Identifies text that is displayed on the screen or that the user must type. It identifies the
names of files, directories, paths, parameters, keywords, and variables.

Italicized text Used for emphasis, the titles of books and journals, and non-English words. It also
identifies components of an equation or a formula, a placeholder, or an identifier.

Key+Key Indicates keyboard actions, for example, Ctrl+I (press the I key while pressing the Control
key).

Menu > Command Indicates a menu command, for example, File > New (from the File menu, select New).

NOTE Identifies important information.

Customer Support
Customer support is available through SolvNet online customer support and through
contacting the Synopsys support center.

Accessing SolvNet
SolvNet includes an electronic knowledge base of technical articles and answers to frequently
asked questions about Synopsys tools. SolvNet also gives you access to a wide range of
Synopsys online services, which include downloading software, viewing documentation, and
entering a call to the Synopsys support center.

xii Sentaurus Visual User Guide


H-2013.03
About This Guide
Customer Support

To access SolvNet:
1. Go to the SolvNet Web page at https://solvnet.synopsys.com.
2. If prompted, enter your user name and password. (If you do not have a Synopsys user name
and password, follow the instructions to register with SolvNet.)

If you need help using SolvNet, click Help on the SolvNet menu bar.

Contacting Synopsys Support


If you have problems, questions, or suggestions, you can contact Synopsys support in the
following ways:
■ Go to the Synopsys Global Support Centers site on www.synopsys.com. There you can find
e-mail addresses and telephone numbers for Synopsys support centers throughout the
world.
■ Go to either the Synopsys SolvNet site or the Synopsys Global Support Centers site and
open a case online (Synopsys user name and password required).

Contacting Your Local TCAD Support Team Directly


Send an e-mail message to:
■ support-tcad-us@synopsys.com from within North America and South America.
■ support-tcad-eu@synopsys.com from within Europe.
■ support-tcad-ap@synopsys.com from within Asia Pacific (China, Taiwan, Singapore,
Malaysia, India, Australia).
■ support-tcad-kr@synopsys.com from Korea.
■ support-tcad-jp@synopsys.com from Japan.

Sentaurus Visual User Guide xiii


H-2013.03
About This Guide
Free and Open Source Software Licensing Information

Free and Open Source Software Licensing Information


This document contains licensing information relating to Synopsys’s use of free and open-
source software with or within the Sentaurus Visual software. This document identifies the free
and open-source packages used, the licenses that Synopsys understands such packages to be
available under, and, where available, a link to the package licensor’s or distributor’s website
or the website where such package was downloaded from. The copyright notices and licensing
information from the packages, as provided in the packages, have also been reproduced below.
While Synopsys has sought to provide complete and accurate licensing information for each of
the free and open-source packages identified herein, Synopsys does not represent or warrant
that the licensing information provided herein is correct or error-free. Recipients of the
Sentaurus Visual software should investigate the identified packages and sources to confirm
that accuracy of the licensing information. Recipients are also encouraged to notify Synopsys
of any inaccurate information or errors found in this document.

************************************************************************
Boost 1.43.0
License: Boost Software License, version 1.0
Source/Licensor: http://www.boost.org/
************************************************************************

Boost Software License - Version 1.0 - August 17th, 2003

Permission is hereby granted, free of charge, to any person or organization obtaining a copy of
the software and accompanying documentation covered by this license (the "Software") to use,
reproduce, display, distribute, execute, and transmit the Software, and to prepare derivative
works of the Software, and to permit third-parties to whom the Software is furnished to do so,
all subject to the following:

The copyright notices in the Software and this entire statement, including the above license
grant, this restriction and the following disclaimer, must be included in all copies of the
Software, in whole or in part, and all derivative works of the Software, unless such copies or
derivative works are solely in the form of machine-executable object code generated by a
source language processor.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,


EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-
INFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR ANYONE
DISTRIBUTING THE SOFTWARE BE LIABLE FOR ANY DAMAGES OR OTHER
LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT
OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
IN THE SOFTWARE.

xiv Sentaurus Visual User Guide


H-2013.03
About This Guide
Free and Open Source Software Licensing Information

************************************************************************
CPPTCL 1.1.3
License: Modified Boost Library
Source/Licensor: http://cpptcl.sourceforge.net/
************************************************************************

Each source file contains the following notice:

//
// Copyright (C) 2004-2006, Maciej Sobczak
//
// Permission to copy, use, modify, sell and distribute this software
// is granted provided this copyright notice appears in all copies.
// This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
//

The above is the shortest license I have found.

I have copied this wording from one of the source files of the Boost library.

Just to explain the above terms:


1. The library is free (like in "freedom").
2. You can use it for any purpose you wish. You can even sell it.
3. You can modify the source files. If you do this, please feel free to add your own copyright
notices wherever you want, if you want. You may also add more restrictive license terms.
You only have to keep the above notice unchanged in all source files.
4. You can combine this library or its modified version with other software. The license
claims nothing that would affect the resulting work. See point 3. if you need to make any
modifications.
5. You can compile this library or its modified version to the binary form. The license does
not affect the compiled result in any way. In particular, you do not need to (but you still can)
display the above copyright notice to the final user, and you do not need to (but you still
can) inform the final user that your product was prepared with the help of this library.
6. Do not sue me for my (and your) mistakes and errors.

As you see, this license is very permissive.

Sentaurus Visual User Guide xv


H-2013.03
About This Guide
Free and Open Source Software Licensing Information

************************************************************************
DejaVu Fonts 2.33
License: Subject to multiple licenses
Source/Licensor: http://dejavu-fonts.org/
************************************************************************

Fonts are (c) Bitstream (see below). DejaVu changes are in public domain.
Glyphs imported from Arev fonts are (c) Tavmjong Bah (see below)

Bitstream Vera Fonts Copyright


--------------------------------------

Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Bitstream Vera is a trademark of
Bitstream, Inc.

Permission is hereby granted, free of charge, to any person obtaining a copy of the fonts
accompanying this license ("Fonts") and associated documentation files (the "Font Software"),
to reproduce and distribute the Font Software, including without limitation the rights to use,
copy, merge, publish, distribute, and/or sell copies of the Font Software, and to permit persons
to whom the Font Software is furnished to do so, subject to the following conditions:

The above copyright and trademark notices and this permission notice shall be included in all
copies of one or more of the Font Software typefaces.

The Font Software may be modified, altered, or added to, and in particular the designs of
glyphs or characters in the Fonts may be modified and additional glyphs or characters may be
added to the Fonts, only if the fonts are renamed to names not containing either the words
"Bitstream" or the word "Vera".

This License becomes null and void to the extent applicable to Fonts or Font Software that has
been modified and is distributed under the "Bitstream Vera" names.

The Font Software may be sold as part of a larger software package but no copy of one or more
of the Font Software typefaces may be sold by itself.

THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY


KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY
WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER
RIGHT. IN NO EVENT SHALL BITSTREAM OR THE GNOME FOUNDATION BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY
GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER
DEALINGS IN THE FONT SOFTWARE.

xvi Sentaurus Visual User Guide


H-2013.03
About This Guide
Free and Open Source Software Licensing Information

Except as contained in this notice, the names of Gnome, the Gnome Foundation, and Bitstream
Inc., shall not be used in advertising or otherwise to promote the sale, use or other dealings in
this Font Software without prior written authorization from the Gnome Foundation or
Bitstream Inc., respectively. For further information, contact: fonts at gnome dot org.

Arev Fonts Copyright


--------------------------

Copyright (c) 2006 by Tavmjong Bah. All Rights Reserved.

Permission is hereby granted, free of charge, to any person obtaining a copy of the fonts
accompanying this license ("Fonts") and associated documentation files (the "Font Software"),
to reproduce and distribute the modifications to the Bitstream Vera Font Software, including
without limitation the rights to use, copy, merge, publish, distribute, and/or sell copies of the
Font Software, and to permit persons to whom the Font Software is furnished to do so, subject
to the following conditions:

The above copyright and trademark notices and this permission notice shall be included in all
copies of one or more of the Font Software typefaces.

The Font Software may be modified, altered, or added to, and in particular the designs of
glyphs or characters in the Fonts may be modified and additional glyphs or characters may be
added to the Fonts, only if the fonts are renamed to names not containing either the words
"Tavmjong Bah" or the word "Arev".

This License becomes null and void to the extent applicable to Fonts or Font Software that has
been modified and is distributed under the "Tavmjong Bah Arev" names.

The Font Software may be sold as part of a larger software package but no copy of one or more
of the Font Software typefaces may be sold by itself.

THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY


KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY
WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER
RIGHT. IN NO EVENT SHALL TAVMJONG BAH BE LIABLE FOR ANY CLAIM,
DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL,
INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN
ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE
OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE
FONT SOFTWARE.

Except as contained in this notice, the name of Tavmjong Bah shall not be used in advertising
or otherwise to promote the sale, use or other dealings in this Font Software without prior
written authorization from Tavmjong Bah. For further information, contact: tavmjong@free. fr.

Sentaurus Visual User Guide xvii


H-2013.03
About This Guide
Free and Open Source Software Licensing Information

$Id: LICENSE 2133 2007-11-28 02:46:28Z lechimp $

************************************************************************
ImageMagick 6.7.4
License: ImageMagick License
Source/Licensor: http://imagemagick.com/script/index.php
************************************************************************

Before we get to the text of the license, lets just review what the license says in simple terms:

It allows you to:

* freely download and use ImageMagick software, in whole or in part, for personal, company
internal, or commercial purposes;

* use ImageMagick software in packages or distributions that you create;

* link against a library under a different license;

* link code under a different license against a library under this license;

* merge code into a work under a different license;

* extend patent grants to any code using code under this license;

* and extend patent protection.

It forbids you to:

* redistribute any piece of ImageMagick-originated software without proper attribution;

* use any marks owned by ImageMagick Studio LLC in any way that might state or imply that
ImageMagick Studio LLC endorses your distribution;

* use any marks owned by ImageMagick Studio LLC in any way that might state or imply that
you created the ImageMagick software in question.

It requires you to:

* include a copy of the license in any redistribution you may make that includes ImageMagick
software;

* provide clear attribution to ImageMagick Studio LLC for any distributions that include
ImageMagick software.

xviii Sentaurus Visual User Guide


H-2013.03
About This Guide
Free and Open Source Software Licensing Information

It does not require you to:

* include the source of the ImageMagick software itself, or of any modifications you may have
made to it, in any redistribution you may assemble that includes it;

* submit changes that you make to the software back to the ImageMagick Studio LLC (though
such feedback is encouraged).

A few other clarifications include:

* ImageMagick is freely available without charge;

* you may include ImageMagick on a DVD as long as you comply with the terms of the
license;

* you can give modified code away for free or sell it under the terms of the ImageMagick
license or distribute the result under a different license, but you need to acknowledge the use
of the ImageMagick software;

* the license is compatible with the GPL V3.

* when exporting the ImageMagick software, review its export classification.

Terms and Conditions for Use, Reproduction, and Distribution

The legally binding and authoritative terms and conditions for use, reproduction, and
distribution of ImageMagick follow:

Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization dedicated to


making software imaging solutions freely available.

1. Definitions.

License shall mean the terms and conditions for use, reproduction, and distribution as defined
by Sections 1 through 9 of this document.

Licensor shall mean the copyright owner or entity authorized by the copyright owner that is
granting the License.

Legal Entity shall mean the union of the acting entity and all other entities that control, are
controlled by, or are under common control with that entity. For the purposes of this definition,
control means (i) the power, direct or indirect, to cause the direction or management of such
entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.

Sentaurus Visual User Guide xix


H-2013.03
About This Guide
Free and Open Source Software Licensing Information

You (or Your) shall mean an individual or Legal Entity exercising permissions granted by this
License.

Source form shall mean the preferred form for making modifications, including but not limited
to software source code, documentation source, and configuration files.

Object form shall mean any form resulting from mechanical transformation or translation of a
Source form, including but not limited to compiled object code, generated documentation, and
conversions to other media types.

Work shall mean the work of authorship, whether in Source or Object form, made available
under the License, as indicated by a copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).

Derivative Works shall mean any work, whether in Source or Object form, that is based on (or
derived from) the Work and for which the editorial revisions, annotations, elaborations, or other
modifications represent, as a whole, an original work of authorship.

For the purposes of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative
Works thereof.

Contribution shall mean any work of authorship, including the original version of the Work and
any modifications or additions to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or
Legal Entity authorized to submit on behalf of the copyright owner.

For the purposes of this definition, "submitted" means any form of electronic, verbal, or written
communication sent to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems, and issue tracking
systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and
improving the Work, but excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as Not a Contribution.

Contributor shall mean Licensor and any individual or Legal Entity on behalf of whom a
Contribution has been received by Licensor and subsequently incorporated within the Work.

2. Grant of Copyright License.

Subject to the terms and conditions of this License, each Contributor hereby grants to You a
perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to
reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and
distribute the Work and such Derivative Works in Source or Object form.

xx Sentaurus Visual User Guide


H-2013.03
About This Guide
Free and Open Source Software Licensing Information

3. Grant of Patent License.

Subject to the terms and conditions of this License, each Contributor hereby grants to You a
perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable patent license to
make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such
license applies only to those patent claims licensable by such Contributor that are necessarily
infringed by their Contribution(s) alone or by combination of their Contribution(s) with the
Work to which such Contribution(s) was submitted.

If You institute patent litigation against any entity (including a cross-claim or counterclaim in
a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes
direct or contributory patent infringement, then any patent licenses granted to You under this
License for that Work shall terminate as of the date such litigation is filed.

4. Redistribution.

You may reproduce and distribute copies of the Work or Derivative Works thereof in any
medium, with or without modifications, and in Source or Object form, provided that You meet
the following conditions:

* You must give any other recipients of the Work or Derivative Works a copy of this License;
and

* You must cause any modified files to carry prominent notices stating that You changed the
files; and

* You must retain, in the Source form of any Derivative Works that You distribute, all
copyright, patent, trademark, and attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of the Derivative Works; and

* If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative
Works that You distribute must include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not pertain to any part of the
Derivative Works, in at least one of the following places:
within a NOTICE text file distributed as part of the Derivative Works;
within the Source form or documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and wherever such third-party
notices normally appear.

The contents of the NOTICE file are for informational purposes only and do not modify the
License. You may add Your own attribution notices within Derivative Works that You
distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such
additional attribution notices cannot be construed as modifying the License.

Sentaurus Visual User Guide xxi


H-2013.03
About This Guide
Free and Open Source Software Licensing Information

You may add Your own copyright statement to Your modifications and may provide additional
or different license terms and conditions for use, reproduction, or distribution of Your
modifications, or for any such Derivative Works as a whole, provided Your use, reproduction,
and distribution of the Work otherwise complies with the conditions stated in this License.

5. Submission of Contributions.

Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in
the Work by You to the Licensor shall be under the terms and conditions of this License,
without any additional terms or conditions. Notwithstanding the above, nothing herein shall
supersede or modify the terms of any separate license agreement you may have executed with
Licensor regarding such Contributions.

6. Trademarks.

This License does not grant permission to use the trade names, trademarks, service marks, or
product names of the Licensor, except as required for reasonable and customary use in
describing the origin of the Work and reproducing the content of the NOTICE file.

7. Disclaimer of Warranty.

Unless required by applicable law or agreed to in writing, Licensor provides the Work (and
each Contributor provides its Contributions) on an AS IS BASIS, WITHOUT WARRANTIES
OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation,
any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or
FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any risks associated with Your
exercise of permissions under this License.

8. Limitation of Liability.

In no event and under no legal theory, whether in tort (including negligence), contract, or
otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or
agreed to in writing, shall any Contributor be liable to You for damages, including any direct,
indirect, special, incidental, or consequential damages of any character arising as a result of this
License or out of the use or inability to use the Work (including but not limited to damages for
loss of goodwill, work stoppage, computer failure or malfunction, or any and all other
commercial damages or losses), even if such Contributor has been advised of the possibility of
such damages.

9. Accepting Warranty or Additional Liability.

While redistributing the Work or Derivative Works thereof, You may choose to offer, and
charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/
or rights consistent with this License. However, in accepting such obligations, You may act

xxii Sentaurus Visual User Guide


H-2013.03
About This Guide
Free and Open Source Software Licensing Information

only on Your own behalf and on Your sole responsibility, not on behalf of any other
Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless
for any liability incurred by, or claims asserted against, such Contributor by reason of your
accepting any such warranty or additional liability.

How to Apply the License to your Work

To apply the ImageMagick License to your work, attach the following boilerplate notice, with
the fields enclosed by brackets "[]" replaced with your own identifying information (don’t
include the brackets). The text should be enclosed in the appropriate comment syntax for the
file format. We also recommend that a file or class name and description of purpose be included
on the same "printed page" as the copyright notice for easier identification within third-party
archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the ImageMagick License (the "License"); you may not use this file except
in compliance with the License. You may obtain a copy of the License at
http://www.imagemagick.org/script/license.php
Unless required by applicable law or agreed to in writing, software distributed under the
License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
CONDITIONS OF ANY KIND, either express or implied. See the License for the specific
language governing permissions and limitations under the License.

************************************************************************
Mesa 6.5.3 and X11 drivers
License: MIT
Source/Licensor: http://www.mesa3d.org/
************************************************************************

Copyright (C) 1999-2007 Brian Paul All Rights Reserved.

Permission is hereby granted, free of charge, to any person obtaining a copy of this software
and associated documentation files (the "Software"), to deal in the Software without restriction,
including without limitation the rights to use, copy, modify, merge, publish, distribute,
sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or
substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,


EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND

Sentaurus Visual User Guide xxiii


H-2013.03
About This Guide
Free and Open Source Software Licensing Information

NONINFRINGEMENT. IN NO EVENT SHALL BRIAN PAUL BE LIABLE FOR ANY


CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

************************************************************************
muParser 1.27
License: MIT
Source/Licensor: http://muparser.sourceforge.net/
************************************************************************

Copyright (c) 2011 Ingo Berg

Permission is hereby granted, free of charge, to any person obtaining a copy of this software
and associated documentation files (the "Software"), to deal in the Software without restriction,
including without limitation the rights to use, copy, modify, merge, publish, distribute,
sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or
substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,


EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.

************************************************************************
SGI GLU Library and Ext. headers (glext.h) (glxext.h)
License: SGI Free B
Source/Licensor: http://oss.sgi.com
************************************************************************

SGI FREE SOFTWARE LICENSE B (Version 2.0, Sept. 18, 2008)

Copyright (C) [dates of first publication] Silicon Graphics, Inc. All Rights Reserved.

Permission is hereby granted, free of charge, to any person obtaining a copy of this software
and associated documentation files (the "Software"), to deal in the Software without restriction,
including without limitation the rights to use, copy, modify, merge, publish, distribute,

xxiv Sentaurus Visual User Guide


H-2013.03
About This Guide
Free and Open Source Software Licensing Information

sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice including the dates of first publication and either this permission
notice or a reference to http://oss.sgi.com/projects/FreeB/ shall be included in all copies or
substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,


EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL SILICON GRAPHICS, INC. BE LIABLE
FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Except as contained in this notice, the name of Silicon Graphics, Inc. shall not be used in
advertising or otherwise to promote the sale, use or other dealings in this Software without
prior written authorization from Silicon Graphics, Inc.

************************************************************************
VTK 5.8.0
License: BSD
Source/Licensor: http://www.vtk.org/
************************************************************************

Copyright (c) 1993-2008 Ken Martin, Will Schroeder, Bill Lorensen

All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted
provided that the following conditions are met:

* Redistributions of source code must retain the above copyright notice, this list of conditions
and the following disclaimer.

* Redistributions in binary form must reproduce the above copyright notice, this list of
conditions and the following disclaimer in the documentation and/or other materials provided
with the distribution.

* Neither name of Ken Martin, Will Schroeder, or Bill Lorensen nor the names of any
contributors may be used to endorse or promote products derived from this software without
specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND


CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,

Sentaurus Visual User Guide xxv


H-2013.03
About This Guide
Free and Open Source Software Licensing Information

INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF


MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
DAMAGE.

xxvi Sentaurus Visual User Guide


H-2013.03
CHAPTER 1 Getting Started

This chapter presents basic information about starting Sentaurus


Visual.

Introducing Sentaurus Visual


Sentaurus Visual allows you to visualize complex simulation results generated by physical
simulation tools in one, two and three dimensions. You can visualize data for an initial
understanding and analysis, and then modify the plots to gain a new perspective.

Sentaurus Visual can be used to create plots that display fields, geometries, and regions,
including results such as p-n junctions and depletion layers. It also allows you to view I–V
curves and doping profiles, and provides tools to zoom, pan, and rotate images. You also can
extract data using measure and probe tools.

The graphical user interface (GUI) provides direct and easy-to-use functionality, as well as
advanced controls for expert users. With the Sentaurus Visual GUI, you can systematically
visualize devices as xy, 2D, and 3D plots.

Starting Sentaurus Visual


Sentaurus Visual can be started either from the command line or from Sentaurus Workbench.

From Command Line


To start Sentaurus Visual from the command line, type:
svisual

The following example loads the dataset associated with a file and generates its plot:
svisual n2_fps.tdr

Sentaurus Visual User Guide 1


H-2013.03
1: Getting Started
Starting Sentaurus Visual

Command-Line Options

When starting from the command line, the following options (which can be obtained by typing
svisual -h) can be used:
Usage: svisual [options] [FILES]

Description:
Sentaurus Visual is a tool to display and analyze structures and curves.

Options:
-h[elp] : Display this help message.
-v[ersion] : Print the Sentaurus Visual version.
-m[esa] : Force run Sentaurus Visual with Mesa.
-glx : Force run Sentaurus Visual without Mesa.
-b[atch] : Run in pure batch mode (requires a script file).
-batchx | -bx : Run in batch mode that allows picture exporting
(virtual X server, requires a script file).
-s[cript] : Force to execute the next files as Sentaurus Visual
scripts.
-i[nspect] | -f : Force to execute the next files as Inspect scripts.
-library_path : Look for Tcl library files at the next path.
-nolibrary : Disable Tcl library auto-loading.
-nowait : Do not wait for license to become available.
-verbose : Log every Sentaurus Visual Tcl command executed to the
log file.
-slowscript | -ss : Redraw plots automatically after each command;
execution of script is slower.

NOTE Sentaurus Visual can run solely in batch mode, that is, no display is
required and scripts can be run using a shell. This mode is fast but has
some disadvantages, for example, exporting graphics only works in the
GUI mode. To overcome this, use the -batchx option.

From Sentaurus Workbench


Sentaurus Visual is integrated in Sentaurus Workbench. You can start Sentaurus Visual by
either:
■ Clicking a node, which displays the Node Explorer. In the Node Explorer, in the Viewer
box, select svisual and click the Launch button next to it.
■ Clicking the Visualize toolbar button and selecting Sentaurus Visual.

Sentaurus Visual can receive node data and can be inserted into tool flows.

2 Sentaurus Visual User Guide


H-2013.03
1: Getting Started
Accelerating the Rendering of Graphics

NOTE Sentaurus Visual can run in batch mode (-b option), which is especially
useful when used within tool flows. In this context, the use of macro
files is also of interest (see Chapter 6 on page 59).

Accelerating the Rendering of Graphics


In Sentaurus Visual, 2D and 3D plots are rendered using OpenGL acceleration, which can
produce significant differences in performance depending on the configuration of the machine
where Sentaurus Visual runs.

By default, Sentaurus Visual always runs in the best supported graphics mode it can find, using
the graphics card of the machine to render plots. If there is not a compliant renderer, Sentaurus
Visual reverts to a generic Mesa driver for graphics rendering.

If your computer has a graphics card but Sentaurus Visual runs with Mesa rendering, you can
force Sentaurus Visual to run without Mesa rendering using the -glx option. To force Mesa
rendering, use the -mesa option.

NOTE You cannot use both the -glx option and the -mesa option
simultaneously.

Sentaurus Visual User Guide 3


H-2013.03
1: Getting Started
Accelerating the Rendering of Graphics

4 Sentaurus Visual User Guide


H-2013.03
CHAPTER 2 Graphical User Interface

This chapter describes the graphical user interface of Sentaurus


Visual.

Introducing Sentaurus Visual GUI


The graphical user interface (GUI) of Sentaurus Visual has different areas (see Figure 1). The
selection and properties panels are located to the left of the main window, the plot area displays
the different visualizations, the Tcl Command panel is in the lower part, and the toolbars are
located on the sides of the main window.

Figure 1 Main window of Sentaurus Visual showing different plots in the plot area

Sentaurus Visual User Guide 5


H-2013.03
2: Graphical User Interface
Menu Bar

For detailed information about the menus and toolbars, see Appendix B on page 145.

NOTE You can customize the Sentaurus Visual GUI. Different options are
available, for example, you can detach the panels, adjust their size, and
move the toolbars to another part of the main window.

Menu Bar
The menu bar allows you to access the main operations of Sentaurus Visual such as opening
files, showing and hiding toolbars, configuring Sentaurus Visual, manipulating loaded data,
and organizing plots in the plot area. Table 1 lists the menus that are available in the GUI.

Table 1 Menus
Menu Description

File Loads plots and scripts, reloads data, and exports and prints plots.

Edit Selects plots, and selects settings for Sentaurus Visual.

View Shows and hides toolbars and panels; plot settings and performance options.

Tools Accesses analysis tools.

Data Views loaded datasets, and deletes selected plots.

Window Organizes and manages active plots.

Help Provides information about Sentaurus Visual.

Toolbars
Toolbars offer quick access to commonly used functions that are also available from the
different menus (see Toolbars on page 150).

Table 2 Toolbars
Toolbar Description

File Loads plots and scripts, reloads data, and exports and prints plots.

Edit Undoes operations, and displays toolbar for drawing shapes and inserting text onto
plots.

View Accesses zoom operations and subsampling.

Tools Accesses analysis tools.

6 Sentaurus Visual User Guide


H-2013.03
2: Graphical User Interface
Plot Area

Table 2 Toolbars
Toolbar Description

Movies Records animated images.

Look Shows or hides panels.

NOTE One toolbar is always visible to allow you to show and hide the Tcl
Command panel and to organize the data selection and properties panels
into tabs.

Plot Area
The plot area displays the active plots. The toolbars and panels change depending on the type
of plot that is selected.

Tcl Command Panel


The Tcl Command panel shows valuable information about the commands used to manipulate
and display data in Sentaurus Visual. It can be used to enter commands manually, which is very
helpful when running complex calculations on datasets and displaying results.

The Tcl Command panel has three main areas:


■ The main pane shows every action performed in Sentaurus Visual since the session started.
■ On the right side, the Clear button is used to delete the command history from the main
pane, and the Save button is used to store everything that was executed into a script file, so
that it can be run without repeating all the operations.
■ In the lower pane, you can manually enter Tcl commands.

For a more detailed explanation of Tcl commands and scripting, see Chapter 6 on page 59 and
Appendix A on page 63.

Sentaurus Visual User Guide 7


H-2013.03
2: Graphical User Interface
Tcl Command Panel

8 Sentaurus Visual User Guide


H-2013.03
CHAPTER 3 Basic Operations

This chapter describes the basic operations that are common to all
types of plot in Sentaurus Visual.

Loading Files
You can load files from the GUI or the command line, for example:
svisual [file1.tdr file2.tdr ...]

To load a file from the GUI:


1. File > Open.
2. In the dialog box that is displayed, browse to the file you want to open, or type the file name
in the File name field.
3. Click Open.

An opened file consists of datasets. A dataset is a structure containing data that is plotted on
xy, 2D, or 3D space. For example, a .plt, or .plx file can consist of one or more datasets,
and .tdr files usually consist of only one dataset.

NOTE To select multiple files, hold the Ctrl key when you click the required
files to load.

Supported File Formats


Sentaurus Visual supports the most commonly used file formats, which include: .plt, .csv,
.plx, .tdr, and .tif.

For more information about the TDR format, refer to the Sentaurus Data Explorer User Guide.

Sentaurus Visual User Guide 9


H-2013.03
3: Basic Operations
Reloading Plot Files

Loading Scripts
Sentaurus Visual can load scripts from the command line. For example, you can simply type
svisual with the path of the Tcl (.tcl) or Inspect (.cmd) script, and Sentaurus Visual
automatically detects the script type.

Tcl scripts with the file extension .tcl run native Sentaurus Visual commands, while Inspect
scripts with the file extension .cmd run Inspect commands in compatibility mode.

Most Inspect commands are fully supported, although some commands have only partial
support and some commands are not supported at all. For detailed information about support
for Inspect libraries and commands, see Appendix D on page 161. For detailed information
about Inspect commands, refer to the Inspect User Guide.

From the GUI, select File > Run Tcl Script to display a dialog box where you can select the
script to load.

Reloading Plot Files


Sometimes, there are changes to the datasets from outside Sentaurus Visual. These changes can
be shown without closing Sentaurus Visual.

To reload a specific dataset:


■ File > Reload Selected (Shift+F5).

To reload all datasets:


■ File > Reload All (F5 key).

NOTE Not all changes to a dataset can be reloaded. For example, if the original
structure was two dimensional, the reloaded data is expected to belong
to a 2D plot. If, after changes, the dataset now contains data for a 3D
structure, Sentaurus Visual cannot reload this plot.

10 Sentaurus Visual User Guide


H-2013.03
3: Basic Operations
Managing Loaded Information

Managing Loaded Information


Sentaurus Visual provides a dialog box to manage the information loaded in the current
session.

Select Data > View Info Loaded to display a dialog box (see Figure 2) with all the data that
is currently active and the option of removing plots and datasets.

Figure 2 Manage Loaded Data dialog box showing active data

To delete all xy plots:


1. In the Dimension pane, click XY.
2. In the Datasets group box, click the Remove button.

To delete a plot:
1. In the Plots pane, click the plot to be deleted.
2. Under the Plots pane, click the Remove button.

NOTE Deleting a plot does not delete the datasets associated with it. However,
deleting a dataset removes the associated 2D or 3D plots. For xy
datasets, only the curves that use the datasets are deleted.

Sentaurus Visual User Guide 11


H-2013.03
3: Basic Operations
Customizing Settings

Customizing Settings
The settings of Sentaurus Visual can be customized in the User Preferences dialog box (see
Figure 3).

To display the User Preferences dialog box:


■ Edit > Preferences.

Settings also can be imported or exported to a file by clicking the Import button or Export
button. To restore the preferences to their defaults, click the Reset button.

You also can import and export settings using Tcl commands:
■ To save the current settings, use the command export_settings (see export_settings on
page 79).
■ To load previously saved settings, use the command import_settings (see
import_settings on page 93).

Figure 3 User Preferences dialog box showing selected settings

NOTE Settings are applied the next time you launch Sentaurus Visual.

12 Sentaurus Visual User Guide


H-2013.03
3: Basic Operations
Working with Plots

Working with Plots


Sentaurus Visual offers diverse tools to customize the visualization of results to user
requirements.

Linking Plots
The feature of linking plots can be used to compare two similar models, as it allows you to
manipulate elements from one plot of the group, and the linked elements will change on all
plots of the group. Elements that can be linked include material/region selection, field selection
and properties, movement and rotation, cutplanes and cutlines, axes properties (only in xy plots
and 2D plots), legend properties, curves properties, grid properties, and plot properties.

To link plots:
1. Select the plots to be linked.
2. Click the toolbar button.

Special linking allows you to link only specified properties and to set the remaining properties
individually.

To use special linking:


1. Select the plots to be linked.
2. Click the toolbar button.

The properties that can be linked or unlinked with special linking include:
■ Common properties:
• Movement
• Legend settings
• Plot properties
■ Only for xy plots:
• Curve settings
• Grid settings
■ Only for xy and 2D plots:
• Axes properties

Sentaurus Visual User Guide 13


H-2013.03
3: Basic Operations
Working with Plots

■ Only for 2D and 3D plots:


• Material or region selection
• Field selection
• Field properties
• Cuts

Undoing Operations
Most user interaction commands in Sentaurus Visual have undo functionality that allows you
to revert recent changes to the visualization.

To undo an operation, click the toolbar button or use the undo Tcl command (see undo on
page 142).

Displaying Multiple Plots


In the plot area, multiple plots can be displayed in a grid, with or without keeping the aspect
ratio. In addition, you can arrange plots horizontally or vertically.

Grid Orientation

Plots can be displayed in a grid configuration (see Figure 4 on page 15) by selecting Window
> Tile Grid.

By default, the aspect ratio between plots is preserved, but this can be changed by clearing the
Keep Aspect Ratio option of the Manage Frames dialog box (see Figure 8 on page 18).
Figure 5 on page 16 shows plots where the aspect ratio is not maintained.

When the aspect ratio is not maintained, the unused space is filled with the last plot frame, but
the aspect ratio of the structure is preserved.

14 Sentaurus Visual User Guide


H-2013.03
3: Basic Operations
Working with Plots

Figure 4 Multiple plots keeping the same aspect ratio

Sentaurus Visual User Guide 15


H-2013.03
3: Basic Operations
Working with Plots

Figure 5 Multiple plots without keeping the same aspect ratio

16 Sentaurus Visual User Guide


H-2013.03
3: Basic Operations
Working with Plots

Vertical Orientation

Plots can be arranged vertically (see Figure 6) by selecting Window > Tile Vertically.

Figure 6 Plots arranged vertically

Sentaurus Visual User Guide 17


H-2013.03
3: Basic Operations
Working with Plots

Horizontal Orientation

Plots can be arranged horizontally (see Figure 7) by selecting Window > Tile Horizontally.

Figure 7 Plots arranged horizontally

Managing Frames

More advanced sorting options can be configured in the Manage Frames dialog box (see
Figure 8). To display the dialog box, select Window > Sort Frames. Features available include
setting a custom grid, sorting plots in the plot area, and changing the direction in which new
plots are placed on the grid.

Figure 8 Manage Frames dialog box

18 Sentaurus Visual User Guide


H-2013.03
3: Basic Operations
Drawing Inside Plots

Drawing Inside Plots


Sentaurus Visual allows you to draw inside plots and to insert labels to allow plot
customization. This feature is not available for 3D plots.

Inserting Text
To insert text inside a plot, click the toolbar button. This feature is available for xy and 2D
plots.

Drawing Lines and Shapes


To draw a rectangle, click the toolbar button. This feature is available for xy and 2D plots
only.

To draw an ellipse, click the toolbar button. This feature is available for xy plots only.

To draw a line, click the toolbar button. This feature is available for xy and 2D plots only.

Exporting Plots
Plots can be exported to an image file by clicking the toolbar button or selecting File >
Export Plot (Ctrl+E). A dialog box is displayed (see Figure 9) that allows you to select a
custom resolution and to select how the plots are exported: each plot in a separate file or all
plots in one file.

Figure 9 Export Plot dialog box

Sentaurus Visual User Guide 19


H-2013.03
3: Basic Operations
Exporting Movies

Sentaurus Visual supports exporting plots to the following file formats: BMP, EPS, JPG, JPEG,
PNG, PPM, TIF, TIFF, XBM, and XPM.

NOTE Custom resolution is disabled when exporting all plots to one file.

NOTE If a different resolution than the screen resolution is chosen, the


exported plots may look different on-screen due to rescaling to the
chosen resolution.

Exporting Movies
Sentaurus Visual allows you to export several captures of one or more plots to generate an
animated GIF file.

Starting a New Movie


To start a new movie, select Tools > Movies > Start Recording or click the toolbar button.
The Start Recording dialog box is displayed, where you can generate frames for the movie (see
Figure 10).

In the Start Recording dialog box, you can either:


■ Select the Screen Resolution option to keep the size of the current view.
■ Select the User Defined option to specify the size of the capture in pixels.

Figure 10 Start Recording dialog box

20 Sentaurus Visual User Guide


H-2013.03
3: Basic Operations
Exporting Movies

Adding Frames
To add a new frame in the movie:
1. Click the required plot to select it. To select multiple plots, hold the Shift key while clicking
the plots.
2. Tools > Movies > Add Frames or click the toolbar button.

If several plots are selected, one frame for each plot is generated.

Exporting a Movie
To export a movie:
1. Tools > Movies > Stop Recording or click the toolbar button.
The Export Movie dialog box is displayed (see Figure 11 on page 22).
2. To see a preview of a frame, click an item in the left pane.
3. Select the frames to export from the left pane.
To make multiple selections, drag to highlight the frames or hold the Ctrl key while clicking
the frames. At least one frame must be selected.
4. If required, change the order of the frames by selecting a frame from the left pane, and
clicking the Up or Down button.

NOTE The movie is recorded sequentially from the first frame to the last frame.
5. Set the duration of each frame in the Frame Duration field (the unit is 1/100 s).
6. Click OK to save the file.
Clicking Cancel will delete the entire frame buffer.
7. In the dialog box that is displayed, ensure that the file has the .gif extension. Add it if it is
missing.

Sentaurus Visual User Guide 21


H-2013.03
3: Basic Operations
Printing Plots

Figure 11 Export Movie dialog box

Printing Plots
Selected plots can be printed by clicking the toolbar button or selecting File > Print Plots
(Ctrl+P). The Printer dialog box is displayed, where you can select a printer and set print
properties.

NOTE All plots are printed on one page.

Zooming and Panning


To take a closer look at significant details on a plot, there are various ways to zoom. On a
selected plot, you can zoom by using the mouse wheel, or by clicking the middle mouse button
and moving to the top or bottom of the screen. To pan, drag while holding the right mouse
button.

22 Sentaurus Visual User Guide


H-2013.03
3: Basic Operations
Deleting Plots

Zoom Tool
The zoom tool is used to magnify a particular area of a plot.

To select the zoom tool:


1. Click the toolbar button.
2. Draw a rectangle by dragging the mouse over the area you want to magnify.

Reset Tool
The reset tool restores the selected plot position and zoom level. It does not restore the rotation
on 3D plots.

To select the reset tool:


■ Click the toolbar button.

Deleting Plots
To delete selected plots:
■ Data > Delete Selected Plots (Ctrl+D).

NOTE Deleting a plot does not delete the associated dataset. To delete the
datasets or the plots or both, select Data > View Info Loaded (see
Figure 2 on page 11).

Performance Options
Working with complex 2D and 3D plots can be sometimes slow. To improve this, Sentaurus
Visual provides two options to work faster with plots.

Sentaurus Visual User Guide 23


H-2013.03
3: Basic Operations
Performance Options

Fast Draw (3D Plots Only)


This option draws only the boundaries of a 3D plot when it is manipulated, which has a large
impact on performance.

To enable fast draw:


■ View > Fast Draw or click the toolbar button.

Subsampling (2D and 3D Plots Only)


This option reduces the data points when manipulating a plot, enabling better performance on
slower computers.

To enable subsampling:
■ View > Subsampling.

Advanced Options (2D and 3D Plots Only)


Advanced configuration of rendering can be changed in the user preferences (Edit >
Preferences). In the User Preferences dialog box, in the Category pane, click Rendering.

Figure 12 shows the rendering fields available.

Figure 12 Performance options

24 Sentaurus Visual User Guide


H-2013.03
3: Basic Operations
Performance Options

Advanced options include setting the rendering delay after a mouse operation and modifying
the quality of the subsampled interactive structure:
■ The End Mouse Interaction Render Delay field adjusts the delay after interacting with
the structure in subsampling or fast draw mode, to redraw the detailed geometry.
■ The Subsampling option enables the structure to be rendered with fewer points, which
optimize the interactive performance with little degradation of the rendering quality.
■ If you select the Automatic option, Sentaurus Visual automatically renders the subsampled
structure. When you select the Automatic option, the value in the Factor field is used to
fine-tune the algorithm to either performance or quality. A higher value means a higher
quality subsampled structure, and a lower value means a lesser quality structure but with
better interactive performance.
■ If you do not select the Automatic option, you can use the Performance/Quality slider to
manually choose the quality of the subsampled structure. Moving the slider to the left
prioritizes interactive performance, or moving the slider to the right prioritizes rendering
quality.
■ The Enable Fast Draw option enables drawing of the boundaries only of 3D structures.

The effects of rendering the structure with subsampling or with the Enable Fast Draw option
selected are shown in Figure 13.

NOTE These changes are active only when in GUI mode. When the operation
is completed, the full rendering is shown.

Figure 13 (Left) Fast draw enabled, (middle) subsampling selected, and (right) original
structure

Sentaurus Visual User Guide 25


H-2013.03
3: Basic Operations
Performance Options

26 Sentaurus Visual User Guide


H-2013.03
CHAPTER 4 Working with XY Plots

This chapter presents specific topics about working with xy plots in


Sentaurus Visual.

Loading XY Plots
Loading an xy file does not automatically plot the dataset associated with it. Instead, the loaded
datasets appear in the Selection panel, and a blank plot is created as shown in Figure 14.

Figure 14 Selection panel showing active datasets

Sentaurus Visual User Guide 27


H-2013.03
4: Working with XY Plots
Loading XY Plots

The top pane corresponds to the datasets loaded, the middle pane shows the variables present
in the selected dataset, and the bottom pane lists the composite variables available in the middle
pane.

NOTE For .plx files, the x-axes and y-axes are assigned automatically, and the
respective curve is generated onto the active plot.

Plotting One Curve


To plot an xy curve, you must select a dataset, and then assign the x-axis and y-axis variables
from the available options in the middle pane (or bottom pane if one variable is a composite).
The result of selecting vd as the x-axis variable and ib as the left y-axis variable from the
vd_ib_vb0_vg0.6_vs0 dataset can be seen in Figure 15.

0 i(vs, s)(Id Vg h_4_des)

-0.0001
I(vs,s)

-0.0002

0 0.5 1
V(g)

Figure 15 Plotting a single xy curve

Plotting Multiple Curves


To display multiple datasets on the same plot:
1. Hold the Ctrl key and click the required datasets.
The common variables in the datasets selected are displayed in the middle pane and bottom
pane.
2. Repeat the procedure in the same way as for plotting one curve.

28 Sentaurus Visual User Guide


H-2013.03
4: Working with XY Plots
Curve Properties

As shown in Figure 16, five datasets were selected; v(g) was selected as the x-axis variable and
id(vd,d) was selected as the left y-axis variable.
6e-05 i(vd, d)(Id Vg_1_des)
i(vd, d)(Id Vg_2_des)
i(vd, d)(Id Vg_3_des)
i(vd, d)(Id Vg_4_des)
i(vd, d)(Id Vg_5_des)

4e-05
Y

2e-05

0
0 0.5 1
X

Figure 16 Plotting multiple xy curves

Curve Properties
To edit the properties of a curve, select it from the active plot, or you can select the curve from
the list in the Selection panel. The Curve Properties panel is displayed (see Figure 17).

Figure 17 Curve Properties panel

In the Curve Properties panel:


■ On the Main tab, you can change the label of the curve.
■ On the Shape tab, you can change properties such as curve color, line style, line width, and
data pointers.

Sentaurus Visual User Guide 29


H-2013.03
4: Working with XY Plots
Plot Area Properties

■ On the Trans. tab, you can apply curve transformations. It is possible to apply an
integration or the first and second derivative to the dataset, or to plot a function using the
dataset values to evaluate the required function.
■ On the Analysis tab, you can perform certain analyses on the dataset. For a detailed
explanation, see Analysis Tool on page 36.

NOTE Multiple curve properties cannot be changed at the same time.

Plot Area Properties


The appearance of the plot area can be modified using the Plot Properties panel (see Figure 18).
The Plot Properties panel allows you to change such attributes as the background and
foreground colors of the plot, and to show or hide the title, legend, axes, or curves.

Figure 18 Plot Properties panel showing selected options

For example, to hide the legend:


1. Select the plot.
2. On the Main tab, clear the Legend option.

NOTE To show the Plot Properties panel, click an empty part of the required
plot if another panel is active.

30 Sentaurus Visual User Guide


H-2013.03
4: Working with XY Plots
Legend Properties

Legend Properties
Legend properties such as position, font attributes, and colors can be changed in the Legend
Properties panel (see Figure 19). To open the panel, click the legend of an xy plot.

Figure 19 Legend Properties panel

Axis Properties
The appearance of the axes can be modified using the Axis Properties panel (see Figure 20).

Figure 20 Axis Properties panel showing selected options

To open the Axis Properties panel, click any axis in the plot area.

Sentaurus Visual User Guide 31


H-2013.03
4: Working with XY Plots
Using Symbols and Scientific Notation in Plots

Using Symbols and Scientific Notation in Plots


You can insert Greek symbols, subscripts, superscripts, and math symbols in xy plots by using
XML tags in the text box of the plot title, the axis labels, and the legend. The available tags are:

Symbol Tag Example Result

Greek symbol <greek> <greek>abcdefgh</greek> αβχδεφγη


Math symbol <math> <math>plusminus</math> ± See Table 3.

Subscript <sub> V<sub>d</sub> Vd

Superscript <sup> 10<sup>-8</sup> 10-8

Bold <b> <b>word</b> word

Italic <i> <i>word</i> word

Underline <u> <u>word</u> word

Strikethrough <s> <s>word</s> word

Table 3 lists the defined words that are allowed in the <math> tag. Only one word is allowed
in the <math> tag.

Table 3 Defined words allowed in <math> tag


Word Result Word Result

3root 3 laplace ℒ
4root 4 mho ℧

contains ∋ notcontains ∌

contourintegral ∮ notelementof ∉

deriv ∂ notexists ∄
doubleintegral  permille ‰
e e permyriad ‰

elementof ∈ plusminus ±

emptyset ∅ sqroot

exists ∃ sum 
forall ∀ surfaceintegral ∯
fourier ℱ tripleintegral 
gradient ∇ union ∪

32 Sentaurus Visual User Guide


H-2013.03
4: Working with XY Plots
Using Symbols and Scientific Notation in Plots

Table 3 Defined words allowed in <math> tag


Word Result Word Result

inf ∞ volumeintegral ∰
integral 
Figure 21 shows an example of how these symbols are displayed.

Figure 21 Plot showing Greek symbols, math symbols, and scientific notation in axis labels
and legend

Sentaurus Visual User Guide 33


H-2013.03
4: Working with XY Plots
Best Look Option

You also can use scientific notation in the axis labels of xy plots by choosing Scientific from
the Format list on the Title/Scale tab of the Axis Properties dialog box (see Figure 22).

Figure 22 Axis Properties dialog box showing the selection of scientific notation

Best Look Option


Best look is a useful option to select automatically the optimal parameters for the active plot.
This option:
■ Adjusts the zoom level to the optimal position and changes the x-axis label to the variable
used if it is common between curves.
■ Changes the label of the legend to the variable being plotted (if there is only one curve, it
disables the legend and uses the variable name for the y-axis label).
■ Changes the title to the dataset name if all curves share the same dataset.

To enable best look:


■ Click the toolbar button.

34 Sentaurus Visual User Guide


H-2013.03
4: Working with XY Plots
Plotting Band Diagrams

Plotting Band Diagrams


Sentaurus Visual allows you to plot band diagrams, which show the electron energy of the
valence band and the conduction band edges versus a spatial dimension. Figure 23 shows an
example of a band diagram.

-5
Ec
Ev
Efn
Efp

0 0.2 0.4
X

Figure 23 Example of a band diagram

To create a band diagram for datasets, click the toolbar button.

The dataset must have the following variables defined (variable names are italicized):
■ The conduction band energy (ConductionBandEnergy)
■ The valence band energy (ValenceBandEnergy)
■ The electron quasi-Fermi energy (eQuasiFermiEnergy) or the electron quasi-Fermi
potential (eQuasiFermiPotential) but not both in the same dataset
■ The hole quasi-Fermi energy (hQuasiFermiEnergy) or the hole quasi-Fermi potential
(hQuasiFermiPotential) but not both in the same dataset

NOTE Typically, band diagrams are created from xy datasets resulting from
cuts of 2D or 3D geometries.

Sentaurus Visual User Guide 35


H-2013.03
4: Working with XY Plots
Probe Tool

Probe Tool
The probe tool allows you to sample the intersection value for a horizontal or vertical line
depending on whether the probing is performed on the x-axis or y-axis.

To use the probe tool, click the toolbar button.

Probe Options
In the Probe panel, the following options are available:
■ To show the active curve only, select the Only Active Curve option.
■ To show guide lines while probing, select the Show Guide Lines option.

Analysis Tool
The analysis tool allows you to compute the electrical characteristics of field-effect transistors.
Depending on the curve being plotted, different analyses can be performed, such as the
threshold voltage, the maximum transconductance value, the drain saturation current, the
leakage current, and the output resistances in the linear or saturation region.

To enable the analysis tool, click the toolbar button.

Table 4 lists the available curve analyses.

Table 4 Types of analysis


Type of analysis Description

Vth Threshold voltage is defined as the minimum gate electrode bias required to strongly invert
the surface under the poly and to form a conducting channel between the source and the drain
regions. It can be calculated on Id–Vg curves.

GM(MAX) Transconductance is a measure of the sensitivity of the drain current to changes in the
gate–source bias. It is influenced by gate width, which increases in proportion to the active
area as cell density increases. It can be calculated on Id–Vg curves.

ID(SAT) For a constant gate voltage (Vg), this computes the drain saturation current on Id–Vd curves.

ID(OFF) For a constant drain voltage (Vd) and a gate voltage (Vg) equal to zero, this computes the
leakage drain current on Id–Vg curves.

36 Sentaurus Visual User Guide


H-2013.03
4: Working with XY Plots
Exporting Data from Variables and Curves

Table 4 Types of analysis


Type of analysis Description

Rout Rout is the value of the output resistance in the saturation region when Vg > Vth. This value
can be calculated on Id–Vd curves.

Ron Ron is the value of the on-state resistance. It is calculated when the transistor is in the linear
region. This value can be calculated on Id–Vd curves.

For more information about the extraction formulas used to obtain the results in the analysis
tool, see Inspect User Guide, Chapter 9 on page 73.

Exporting Data from Variables and Curves


In Sentaurus Visual, you can export data from variables to a .csv file and data from curves to
a .csv or .plx file, to allow the use of other tools for further analysis and plotting.

To export data from a variable or curve:


1. Select an xy plot.
2. Data > Export XY Data or click the toolbar button.
The Export XY Data dialog box is displayed (see Figure 24 on page 38).
3. Select the variables or curves to export by clicking the relevant tab.
You can export all of the variables or only the variables you need. Use the buttons to move
the variables to the Variables to Export pane.
4. Click Export.
5. In the dialog box that is displayed, select the file format in which to export the data.

Sentaurus Visual User Guide 37


H-2013.03
4: Working with XY Plots
Exporting Data from Variables and Curves

Figure 24 Export XY Data dialog box

38 Sentaurus Visual User Guide


H-2013.03
CHAPTER 5 Working with 2D and 3D Plots

This chapter presents specific topics about working with 2D and 3D


plots in Sentaurus Visual.

Visualizing 2D and 3D Plots


Sentaurus Visual can visualize simulation results for 2D and 3D plots. When a 2D or 3D file is
loaded, Sentaurus Visual automatically generates a plot with the edge, field, and bulk layers
activated by default as shown in Figure 25.

-10
-10

-5
-5

X
0

DopingConcentration [cm–3]
2.457e+20
3.759e+13
5 5.750e+06
5.954e-01
-1.858e+06
-1.214e+13
-7.939e+19

00 55 10
10 15
15 20
20
Y
Figure 25 Example of 2D plot

Sentaurus Visual User Guide 39


H-2013.03
5: Working with 2D and 3D Plots
Rendering Options

Rendering Options
Two-dimensional or 3D plots are composed of materials that are distributed in regions with
properties defined in contour maps (scalars) or flux lines (vectors). All these properties can be
found on the Selection panel (see Figure 26).

Figure 26 Selection panel showing materials and scalar properties

40 Sentaurus Visual User Guide


H-2013.03
5: Working with 2D and 3D Plots
Rendering Options

Materials and Regions


The materials and regions of which a plot is composed are shown in the upper part of Figure 26
on page 40, and Table 5 describes the icons relevant to materials and regions.

NOTE Holding the Ctrl key while clicking in a cell of the structure highlights
the region or material to which that cell belongs in the Selection panel.

Table 5 Icons for materials and regions


Icon Description

Shows or hides the bulk.

Shows or hides the contour fields.

Shows or hides the mesh.

Shows or hides the borders.

Enables or disables translucency.

NOTE Clicking a check box next to a material or region shows or hides the
specified property only for that region or material. However, clicking
the icon itself shows or hides the specified property for all materials or
regions in the active plot.

Contour Plots
Scalar fields are used to generate contour plots. Usually, the contour levels are calculated
automatically, so that they are distributed evenly within the value range of the active field.

Contour Legend Settings

The properties of the legend of contour plots can be changed by clicking the legend. The
Legend Properties panel opens (see Figure 27 on page 42) where you can:
■ Customize the number, precision, and notation of the labels.
■ Enable a background for the legend.
■ Change the background color and the frame color.

Sentaurus Visual User Guide 41


H-2013.03
5: Working with 2D and 3D Plots
Rendering Options

■ Customize the font for the title and the labels.


■ Set the orientation of the legend.

Figure 27 Legend Properties panel

Displaying Contour Plots

To create a contour plot, select the required property to be plotted on the Scalars tab of the
Selection panel (see Figure 26 on page 40). The range and levels are set automatically, but they
can be customized using the Range and Levels tabs (see Figure 28), where you can manually
define a range and the number of levels displayed.

Figure 28 Contour plot options showing the Range tab where the first field is the minimum
value and the second field is the maximum value of the range

Although only one field can be displayed using color-filled contour levels, you can display
multiple contour lines from other fields by clicking the second column of the field list of the
Selection panel (see Figure 26).

Creating New Scalar Fields

Custom scalar fields can be created on the More tab (see Figure 28). When you click the Add
Field button on this tab, a dialog box is displayed where you can create a custom field (see
Figure 29 on page 43). It allows insertion of functions and operators, and the use of existing
fields.

42 Sentaurus Visual User Guide


H-2013.03
5: Working with 2D and 3D Plots
Rendering Options

Figure 29 Create Numeric Field dialog box displaying fields, operators, and functions

Vector Plots
To add a vector field to a plot, click the Vectors tab of the Selection panel. Select a check box
next to a field to display it on the plot. Vector lines can be displayed uniformly on the structure
or with a size relative to the grid on which they are present.

Figure 30 Example of plotting a vector field

Sentaurus Visual User Guide 43


H-2013.03
5: Working with 2D and 3D Plots
Rotating Structures (3D Plots Only)

Rotating Structures (3D Plots Only)


Three-dimensional plots can be rotated freely over a rotation point or fixed to an axis.

To rotate a plot, you must be in selection mode (click the toolbar button). Drag to rotate the
plot. When you release the mouse button, the rotation stops.

To set the origin of a rotation point, use the camera configuration by either selecting View >
Camera Configuration or placing the mouse on the required point and pressing the O key.

Table 6 lists the rotation modes available.

Table 6 Rotation modes


Toolbar button Shortcut keys Description

X key Fixes rotation to the x-axis.

Y key Fixes rotation to the y-axis.

Z key Fixes rotation to the z-axis.

Overlaying Plots
Overlaying 2D or 3D plots allows you to examine the differences between two similar plots.

To overlay plots:
1. Select two or more plots to be overlaid.
2. Click the toolbar button.

A new plot is generated with the selected plot structures overlaid.

44 Sentaurus Visual User Guide


H-2013.03
5: Working with 2D and 3D Plots
Overlaying Plots

Figure 31 Example of overlaying plots

NOTE When plots are overlaid, the region boundaries of each plot can be set to
a different color to better identify the differences between plots in the
Selection panel.

Sentaurus Visual User Guide 45


H-2013.03
5: Working with 2D and 3D Plots
Showing Differences Between Plots

Showing Differences Between Plots


Differentiating 2D or 3D plots allows you to determine the differences in the common fields of
two different plots. A new plot is generated showing the field differences between the two
plots.

To differentiate plots:
1. Select two plots with common fields.
2. Click the toolbar button.

Figure 32 Example of a difference plot resulting from comparison of two plots

46 Sentaurus Visual User Guide


H-2013.03
5: Working with 2D and 3D Plots
Measuring Distances

Measuring Distances
Sentaurus Visual provides a measuring tool that is available by clicking the toolbar button.
The Ruler Data panel opens to show the coordinates and distances calculated (see Figure 33).
It allows you to measure distances between two points in a plane, or in space for 2D or 3D plots.

Figure 33 Ruler Data panel

To measure a distance in a plot:


1. Click the Ruler toolbar button.
2. Drag from the starting point of the measurement.
3. Release the mouse at the end point of the measurement.

Integration Tool
You can integrate the active field on all the materials of the current 2D or 3D plot.

To enable the integration tool, click the toolbar button.

The Field Integration dialog box is displayed (see Figure 34 on page 48) with the results of the
integration for each material and a total value calculated over the active field. Integration can
be performed on other fields without changing the active field displayed on the structure.

Integration over the active field commences immediately, but it can be stopped by clicking the
Cancel Integration button of the Field Integration dialog box.

Integration on large structures can take some time. To see the progress of the integration, a
progress bar is visible in the lower-right corner of the GUI.

Sentaurus Visual User Guide 47


H-2013.03
5: Working with 2D and 3D Plots
Integration Tool

Figure 34 Field Integration dialog box

Using a Custom Integration Domain


Integration can be performed over the complete structure or inside a defined bounding box.

To change the integration domain:


1. In the Field Integration dialog box, clear the Complete Domain option.
2. Enter the custom ranges.
3. Click Start Integration to obtain the updated value.

Integrating Only a Defined Set of Regions or Materials


By default, integration is performed over all regions or materials of a structure. This can be
changed on the Region/Material tab of the Field Integration dialog box by selecting only the
regions or materials that you want to integrate, and then clicking Start Integration.

48 Sentaurus Visual User Guide


H-2013.03
5: Working with 2D and 3D Plots
Probe Tool

Probe Tool
The probe tool for 2D and 3D plots allows you to display information about a selected point on
a structure.

To probe a point:
1. Click the toolbar button.
2. Click the point to be evaluated.

The Probe panel opens, which shows various information about the point such as the values of
all the fields and information about the cell.

NOTE If you hold the Ctrl key when you click the point to be evaluated, the
cursor (crosshairs) snaps to the closest mesh point. The same is achieved
by selecting the Snap to Mesh option on the Probe panel, which
provides information about the closest edge to the probed point of the
structure.

Figure 35 Probe panel

Sentaurus Visual User Guide 49


H-2013.03
5: Working with 2D and 3D Plots
Value Blanking (3D Plots Only)

Value Blanking (3D Plots Only)


Value blanking allows you to display only the required areas of interest in a plot. You can enter
multiple constraints to blank out areas that meet the criteria.

To use value blanking, click the toolbar button. A dialog box is displayed (see Figure 36)
where you can insert constraints on the required fields.

Figure 36 Value Blanking dialog box

NOTE Closing the Value Blanking dialog box disables any blanking
constraints set to the geometry.

Options for Value Blanking


The options for value blanking are available from the for list of the Value Blanking dialog box
(see Figure 36). The options are:
■ all vertices
■ any vertex
■ interpolate vertices

Examples using these options are displayed in the following figures.

50 Sentaurus Visual User Guide


H-2013.03
5: Working with 2D and 3D Plots
Value Blanking (3D Plots Only)

Figure 37 Example of value blanking using the all vertices option

Figure 38 Example of value blanking using the any vertex option

Sentaurus Visual User Guide 51


H-2013.03
5: Working with 2D and 3D Plots
Cutting Structures

Figure 39 Example of value blanking using the interpolate vertices option

As shown in Figure 39, the interpolate vertices option makes the surface of the field being
blanked smoother than when the other options are selected.

Cutting Structures
Sentaurus Visual provides tools for generating xy and 2D cuts, custom cutlines, and cutlines or
cutplanes orthogonal to an axis. Table 7 lists the available cutting tools.

Table 7 Tools for cutting structures


Toolbar button Description

Displays the Cutlines and Cutplanes dialog box, where you can generate non-orthogonal
cutplanes or cutlines directly from a 3D plot, and you can cut in specific values.

Creates a custom cutline in a 2D plot. The result is an xy plot of the selected field and
datasets for all the fields on the cutline.

52 Sentaurus Visual User Guide


H-2013.03
5: Working with 2D and 3D Plots
Cutting Structures

Table 7 Tools for cutting structures


Toolbar button Description

Creates an orthogonal plot in one axis. The result is a 2D plot of the cutplane if cutting a 3D
plot, or an xy plot from a cutline in a 2D plot. If an axis has a constant value, cuts for that axis
are disabled.

Generating Precise Cutlines and Cutplanes


Advanced options such as cutting a 3D structure non-orthogonally by specifying a normal and
an origin point, or creating a cutline directly from a 3D structure can be performed using the
Cutlines and Cutplanes dialog box (see Figure 40). It allows a greater degree of precision than
using the mouse to generate cuts that require an exact point in the structure.

To display the Cutlines and Cutplanes dialog box, click the toolbar button.

Figure 40 Cutlines and Cutplanes dialog box

Sentaurus Visual User Guide 53


H-2013.03
5: Working with 2D and 3D Plots
Cutting Structures

Cutlines in 2D Plots
Creating a new cutline is as easy as selecting an axis and a point in the plane to perform an
orthogonal cut or drawing a line using the custom cutline button. The result is a new xy plot as
shown in Figure 41.

Figure 41 Cutline drawn on 2D plot and xy plot generated from cut

Manipulating Cutlines
Cutlines can be moved and resized by dragging the cutline handlers (the circles at the ends of
the cutline), and the cutline plot is updated automatically.

To delete a cutline, select the cutline and press the Delete key.

NOTE The xy plot created is not deleted. Deleting the xy plot does not delete
the cutline in the 2D plot.

54 Sentaurus Visual User Guide


H-2013.03
5: Working with 2D and 3D Plots
Cutting Structures

Cutplanes in 3D Plots
In 3D plots, orthogonal cutplanes can be created by selecting a cut axis and then clicking the
required point of the plot. The result is a new 2D plot with the same fields as the original plot
as seen in Figure 42. Such a 2D plot can be cut further by a cutline to generate an xy cut.

Figure 42 Cutplane in a 3D plot and the generated 2D plot, which is cut further to generate
an xy plot

Cutplanes also can be moved by dragging, and the 2D plot is updated automatically. In
addition, xy plots created from such 2D cuts are updated automatically.

To delete a cutplane, select the cutplane and press the Delete key.

NOTE Deleting the 2D plot does not delete the cutplane in the 3D plot.

Sentaurus Visual User Guide 55


H-2013.03
5: Working with 2D and 3D Plots
Streamlines

Streamlines
Streamlines are a family of curves that are instantaneously tangent to the velocity vector of the
flow. Sentaurus Visual allows you to visualize these streamlines for the available vector fields
in 2D or 3D plots.

Displaying Streamlines
Click the toolbar button to display the Streamlines dialog box (see Figure 43), where you
can select the vector field, the starting point, and the display properties.

Figure 43 Streamlines dialog box showing Position tab

In this dialog box, on the Position tab, several properties can be defined to customize the
display of the streamlines:
■ The Vector Field box is where you select the field used to calculate the streamlines.
■ The Direction box allows you to show only streamlines ending on a point, starting from a
point, or both.
■ The Create Streamlines button allows you to create a family of streamlines going from a
starting point to a rake end point.

56 Sentaurus Visual User Guide


H-2013.03
5: Working with 2D and 3D Plots
Streamlines

Figure 44 Example of displaying streamlines on plot

Specifying Regions or Materials


On the Regions/Materials tab, you can specify in which regions or materials the streamlines
will be plotted. Not selecting a region or material causes Sentaurus Visual to plot the
streamlines over the complete structure.

Representing the Streamlines


On the Representation tab, you can make cosmetic changes to the appearance of streamlines
such as the line style, width, and resolution, as well as the color and the size of the vector field
arrows.

Sentaurus Visual User Guide 57


H-2013.03
5: Working with 2D and 3D Plots
Streamlines

Integration Settings
Sentaurus Visual has default integration settings that work with most of the simulation results
obtained from other TCAD tools. However, users have the opportunity to fine-tune these values
if needed. The Integration tab is for this purpose.

Managing Created Streamlines


The Created tab shows a list of already created streamlines with the option to delete selected
streamlines or to delete all streamlines.

58 Sentaurus Visual User Guide


H-2013.03
CHAPTER 6 Automated Tasks

This chapter presents how to automate tasks with Tcl scripting and
Inspect compatibility.

Running Tcl Scripts


Sentaurus Visual allows scripts to be called from the command line or the GUI.

To run a script from the command line, type:


svisual /path/to/script.tcl

To run a script from the GUI:


■ File > Run Tcl Script.

Typical Uses of Tcl Scripts


The following examples illustrate some typical scripting uses in the context of batch scripts.

Example 1: Plotting Id–Vg Curve

The contents of the script plot_idvg.tcl are:


# Load PLT data file.
set mydata [load_file IdVg_n62_des.plt]
# Create new empty xy plot.
set myplot [create_plot -1d]
# Create Id-Vg curve using loaded dataset and display on new xy plot.
set IdVgcurve [create_curve -plot $myplot -dataset $mydata \
-axisX "gate InnerVoltage" -axisY "drain TotalCurrent"]
# Customize the curve.
set_curve_prop $IdVgcurve -plot $myplot -show_markers -markers_size 7 \
-color red -label "nMOS"

Sentaurus Visual User Guide 59


H-2013.03
6: Automated Tasks
Running Tcl Scripts

# Display grid and set grid properties.


set_plot_prop -show_grid
set_grid_prop -show_minor_lines \
-line1_style dash -line1_color #a0a0a4 \
-line2_style dot -line2_color #c0c0c0
# Assign axis labels and set range.
set_axis_prop -plot $myplot -axis x -title "Vgate (V)"
set_axis_prop -plot $myplot -axis y -title "Idrain (A/um)" -type log
set_axis_prop -plot $myplot -axis y -range {1e-09 0.0002}
# Export plot into PNG file.
export_view "curve.png" -plots $myplot -resolution 500x500 -format PNG \
-overwrite

The first three commands of this script open a .plt file and create an Id–Vg curve. Next, the
plot is customized to make it more readable. Finally, the plot is exported to a .png file (see
Figure 45).

NOTE This script must be executed with the virtual X server option to allow
graphics export in batch mode, for example:
% svisual -batchx plot_idvg.tcl

Figure 45 Id–Vg plot from xy data

60 Sentaurus Visual User Guide


H-2013.03
6: Automated Tasks
Saving Command History

Example 2: Creating a Cutline and Exporting Cutline Data to CSV File


for Further Processing

The contents of the script plot_npn.tcl are:


# Load TDR file.
set mydata2D [load_file npn_msh.tdr]
# Create new plot.
set myplot2D [create_plot -dataset $mydata2D]
# Create 1D cutline normal to x-axis at point x=-0.005.
set mydata1D [create_cutline -plot $myplot2D -type x -at -0.005]
export_variables {DopingConcentration xMoleFraction Y} \
-dataset $mydata1D -filename "data.csv" -overwrite

The first two commands load and display a TDR file. The next create_cutline command
creates a cutline at the specified location. The last command exports the selected variables from
the cutline to a CSV file.

NOTE This script can be run solely in batch mode, with the command:
% svisual -batch plot_npn.tcl

Saving Command History


Almost every action performed in Sentaurus Visual is replicated in the Tcl Command panel.
These actions can be saved to be executed in another session by clicking the Save button of the
Tcl Command panel.

Running Inspect Command Files


Sentaurus Visual can run Inspect command files.

You can run an Inspect command file in the same way as for a Tcl script. Sentaurus Visual
automatically detects the file as an Inspect command file.

Sentaurus Visual User Guide 61


H-2013.03
6: Automated Tasks
Script Library

Script Library
Sentaurus Visual allows you to add Tcl script files as libraries, which can be loaded
automatically at startup or manually using the Tcl command load_library (see load_library
on page 109).

A script library has the file name formatted as <libraryName>.tcl.

The default library path is $STROOT_LIB/svisuallib. In addition, it includes a user-defined


library path, which is set by default to ${HOME}/svisuallib, but it can be modified in the
user preferences.

Both paths can be checked for Tcl scripts (any file with the extension .tcl) for auto-loading at
startup, which can be enabled or disabled in the user preferences.

The options related to launching Sentaurus Visual are only valid when the auto-loading of the
script library is enabled:

-nolibrary Disables the auto-loading of scripts from the library.

-library_path <customPath> Adds a custom path to the list of library paths to look for script files
when auto-loading is enabled.

Restrictions
Every procedure defined in a script library must begin with the prefix lib_ to avoid the
possible redefining of any existing Sentaurus Visual command.

At the time of loading one or more script files from the script library paths, if there are
procedures that have been defined without this prefix, a warning message will be displayed,
listing these procedures.

Moreover, if there are procedures that redefine Sentaurus Visual commands, a second warning
message is displayed.

62 Sentaurus Visual User Guide


H-2013.03
APPENDIX A Tcl Commands

This appendix describes the tool command language (Tcl)


commands that can be used in Sentaurus Visual.

The Tcl commands apply to all plots and structures unless stated otherwise.

Syntax Conventions
The following conventions are used for the syntax of Tcl commands:
■ Angle brackets – <> – indicate text that must be replaced, but they are not part of the
syntax.
■ Braces – {} – are used for lists of values, and they must be included in the syntax.
■ Brackets – [] – indicate that the argument is optional, but they are not part of the syntax.
■ Parentheses – () – are used solely to group arguments to improve legibility of commands,
but they are not part of the syntax.
■ A vertical bar – | – indicates options, only one of which can be specified.

Common Properties
The following properties are used in several Tcl commands.

Colors
In Tcl commands that allow you to specify color properties (such as the -color <#rrggbb>
option), a string specifying red, green, and blue components of the RGB system is expected.
The string is preceded by a hash (#) character, and each value is provided in hexadecimal form.
Common colors also have aliases as listed in Table 8.

Table 8 Common colors


Alias General form Description

white #ffffff White

black #000000 Black

Sentaurus Visual User Guide 63


H-2013.03
A: Tcl Commands
Common Properties

Table 8 Common colors


Alias General form Description

red #ff0000 Red

darkRed #800000 Dark red

green #00ff00 Green

darkGreen #008000 Dark green

blue #0000ff Blue

darkBlue #000080 Dark blue

cyan #00ffff Cyan

darkCyan #008080 Dark cyan

magenta #ff00ff Magenta

darkMagenta #800080 Dark magenta

yellow #ffff00 Yellow

darkYellow #808000 Dark yellow

gray #a0a0a4 Gray

darkGray #808080 Dark gray

lightGray #c0c0c0 Light gray

Fonts
For Tcl commands that allow you to adjust font properties, Sentaurus Visual defines a specific
list of font families and attributes listed in Table 9.

Table 9 Font families and their attributes


Font family Attribute

Arial Bold
Courier Italic
Times Normal
Strikeout
Underline

NOTE In xy plots, the font size of different elements of the plot are set with the
font_size argument; whereas in 2D and 3D plots, the font size cannot
be set directly. Instead, the font size is set as a factor of the plot frame
(the default value is 1.0), with the font_factor argument.

64 Sentaurus Visual User Guide


H-2013.03
A: Tcl Commands
Common Properties

Lines
For Tcl commands that allow you to adjust line properties (such as the -line_style option),
Sentaurus Visual defines a specific list of line styles listed in Table 10. You can provide the
name of the style or its short form directly.

Table 10 Line styles


Name of line style Short form of line style Description

solid _ Continuous line: ________

dot . Dotted line: ................

dash - Dashed line: ------------

dashdot -. Alternating dash-and-dot line:


-.-.-.-.-.-.-

dashdotdot -.. Alternating dash-and-two-dots line:


-..-..-..-..-

Markers
Table 11 lists the different markers available to use in xy plots in Sentaurus Visual. Tcl
commands allow you to use the name or the short form of each marker.

Table 11 Marker types


Name of marker type Short form of marker type Description

circle o

circlef of

diamond

diamondf

square

squaref

plus + +

cross x x

Sentaurus Visual User Guide 65


H-2013.03
A: Tcl Commands
add_frame

add_frame
Adds a new frame to the frame buffer.

NOTE You must use of the start_movie command before using the
add_frame command.

Syntax
add_frame [-name <frameName>] [-plot <plotName>]

Argument Description

-name <frameName> Name of the new frame to be captured.

-plot <plotName> Name of the plot where the new frame will be saved. Current active plot is
used by default.

Returns

String.

Example
add_frame -name Frame1
#-> Frame1

See Also

start_movie on page 141

66 Sentaurus Visual User Guide


H-2013.03
A: Tcl Commands
calculate

calculate
This function extracts FET parameters from Id–Vd or Id–Vg curves.

NOTE This command applies to xy plots only.

Syntax
calculate <curveName> [-plot <plotName>]
-op (vth | gmmax | idsat | ioff | rout | ron)

Argument Description

<curveName> Name of the curve on which to apply the parameter extraction.

-plot <plotName> Name of the plot on which to apply the parameter extraction.

-op vth | gmmax | idsat | ioff | Parameter to be extracted from the curve. For more detailed
rout | ron information about the extraction parameters, see Analysis Tool
on page 36.

Returns

Double.

Example
calculate Curve_1 -op ron
#-> 0.0554013

Sentaurus Visual User Guide 67


H-2013.03
A: Tcl Commands
create_curve

create_curve
Creates a new curve for an xy plot.

If -plot is not specified, the command draws the curve on the selected plot. If there are no xy
plots created or the selected plot is not an xy plot, the command returns an error.

NOTE This command applies to xy plots only.

Syntax
create_curve [-name <curveName>] [-plot <plotName>]
(
(-dataset {<dataNamesList>} -axisX <varX> (-axisY | -axisY2) <varY>) |
-function <formula>
)

Argument Description

-name <curveName> Name of the new curve. If not specified, the command assigns a default curve
name.

-plot <plotName> Name of the plot where the new curve will be displayed. If not specified, the
command draws the curve on the selected xy plot.

-dataset {<dataNamesList>} List of dataset names where the information is extracted.

-axisX <varX> Specifies the variable to be used for the x-axis.

-axisY | -axisY2 <varY> Specifies the variable to be used for the y-axis or the y2-axis.

-function <formula> Specifies a formula from which to create a curve.

Returns

List.

Example
create_curve -plot Plot_1 -dataset IdVd_example -axisX "drain OuterVoltage"
-axisY "drain TotalCurrent"
#-> Curve_1

68 Sentaurus Visual User Guide


H-2013.03
A: Tcl Commands
create_cutline

create_cutline
Creates a new cutline.

If the type of cutline is aligned to an axis, this command requires the -at argument to be
specified.

If -type free is specified, the argument -points must be set. The new plot created has the
name of the cutline.

If -plot or -dataset is not specified, the command uses the selected 2D plot dataset.

NOTE This command applies to 2D plots only.

Syntax
create_cutline [-name <cutlineName>] [-plot <plotName> | -dataset <dataName>]
-type (x | y | z | free)
(-at <doubleValue> | -points {<x1> <y1> [<z1>] <x2> <y2> [<z2>]})

Argument Description

-name <cutlineName> Name of the new cutline. If not specified, the command generates
a default name.

-plot <plotName> | Name of the plot or dataset from where the cutline will be
-dataset <dataName> generated. If not specified, the command uses the selected plot.

-type x | y | z | free Selecting x, y, or z ties the cutline to the specified axis. The
free option allows you to create a cutline drawing a line
between two (x,y) coordinates.

-at <doubleValue> | If an axis is selected using -type, the -at argument must be
-points {<x1> <y1> [<z1>] used. If -type free is specified, two (x,y) points must be
<x2> <y2> [<z2>]} specified with the -points argument. (In 3D plots, you must
specify two (x, y, z) points.)

Returns

String.

Example
create_cutline -plot Plot_2D -type free -points {-0.45 -0.15 0.30 0.80}
#-> C1(2D)

Sentaurus Visual User Guide 69


H-2013.03
A: Tcl Commands
create_cutplane

create_cutplane
Creates a new cutplane.

The new plot created has the name of the cutplane. If -plot or -dataset is not specified, the
command uses the selected 3D plot dataset.

NOTE This command applies to 3D plots only.

Syntax
create_cutplane [-name <cutplaneName>]
[-plot <plotName> | -dataset <dataName>] -type (x | y | z)
-at <doubleValue>

Argument Description

-name <cutplaneName> Name of the new cutplane. If not specified, the command generates a default
name.

-plot <plotName> | Name of the plot or dataset from where the cutplane will be generated. If not
-dataset <dataName> specified, the command uses the selected plot.

-type x | y | z Selects the axis from which the cutplane will be generated.

-at <doubleValue> Cuts the structure at the value specified in the axis defined by -type.

Returns

String.

Example
create_cutplane -plot Plot_3D -type y -at 0.3
#-> C1(3D)

70 Sentaurus Visual User Guide


H-2013.03
A: Tcl Commands
create_field

create_field
Creates a new field using data from the plot or the dataset specified in the arguments.

The command uses the selected 2D or 3D dataset if -plot or -dataset is not specified.

NOTE This command applies to 2D and 3D plots only.

Syntax
create_field -name <fieldName> [-plot <plotName> | -dataset <dataName>]
-function <functionToEvaluate> [-show]

Argument Description

-name <fieldName> Name of the new field.

-plot <plotName> | Name of the plot or dataset from where the field is created. If not
-dataset <dataName> specified, the command uses the active plot.

-function <functionToEvaluate> Specifies the function to be evaluated. For a complete list of


operations, see Appendix C on page 155.

-show Shows immediately the newly created field if specified.

Returns

String.

Example
create_field -name newFld -dataset 3D -function "log(<ElectricField>)"
#-> newFld

Sentaurus Visual User Guide 71


H-2013.03
A: Tcl Commands
create_plot

create_plot
Creates an empty xy plot, or creates a plot from 2D or 3D datasets.

Syntax
create_plot [-name <plotName>] (-1d | -dataset <dataName>)

Argument Description

-name <plotName> Name of the new plot.

-1d | -dataset <dataName> The arguments are: -1d creates an empty xy plot, and -dataset creates
a plot from a loaded 2D or 3D dataset.

Returns

String.

Example
create_plot -dataset 3D
#-> Plot_3D

72 Sentaurus Visual User Guide


H-2013.03
A: Tcl Commands
create_streamline

create_streamline
Creates a new streamline on a 2D or 3D plot.

NOTE The command applies to 2D and 3D plots only.

Syntax
create_streamline [-name <streamlineName>] -field <fieldname>
[-plot <plotName>]
(-point {<x> <y> [<z>]} | (-p1 {<x> <y> [<z>]} -p2 {<x> <y> [<z>]}
-nofpoints <intValue>) -direction (both | backward | forward))
[-regions <listOfRegions>] [-materials <listOfMaterials>]

Argument Description

-name <streamlineName> Identifier for the new streamline created. If not specified, the
command generates a default name.

-field <fieldname> Selects the field on which the streamline will be created.

-plot <plotname> Name of the plot. If not specified, the command uses the selected
plot.

-point {<x> <y> [<z>]} | Creates one streamline ending on a point with the -point
(-p1 {<x> <y> [<z>]} argument, or a custom number of streamlines going from P1 to P2
-p2 {<x> <y> [<z>]} with the -p1 and -p2 arguments.
-nofpoints <intValue>)

-direction both | backward | Direction of the streamline created. Default: both.


forward

-regions <listOfRegions> Region on which the streamline will be created. Default: All regions.

-materials <listOfMaterials> Materials on which the streamline will be created. Default: All
materials.

Returns

List.

Example
create_streamline -field ElectricField -point {0.5 0.2} -direction both
#-> Streamline_1

Sentaurus Visual User Guide 73


H-2013.03
A: Tcl Commands
create_variable

create_variable
Creates a new variable.

NOTE This command applies to xy plots only.

Syntax
create_variable -name <varName> -dataset <dataName>
(-function <functionToEvaluate> | -values {<numericList>})

Argument Description

-name <varName> Name of the new variable.

-dataset <dataName> Dataset from which values are obtained to evaluate functions.

-function <functionToEvaluate> | Expression to evaluate or the list of values to add to the dataset
-values {<numericList>} specified.

Returns

String.

Example
create_variable -name nVar -dataset idvd -values {0.1 0.3 0.5 0.7 0.9}
#-> nVar

74 Sentaurus Visual User Guide


H-2013.03
A: Tcl Commands
diff_plots

diff_plots
Creates a new dataset with the difference in the common fields of the selected plots.

NOTE This command applies to 2D and 3D plots only.

Syntax
diff_plots {<listOfPlots>} [-normalized] [-display]

Argument Description

{<listOfPlots>} List of plots to create the differential plot.

-normalized Normalizes the values between the two plots.

-display Creates a new plot with the field difference dataset.

Returns

String.

Example
diff_plots {Plot1 Plot2}
#-> Plot1-Plot2

Sentaurus Visual User Guide 75


H-2013.03
A: Tcl Commands
echo

echo
Prints a string in the Tcl Command panel.

Syntax
echo [<strings>]

Argument Description

<strings> String list to be printed in the Tcl Command panel.

Returns

None.

Example
echo "Hello World"
# Hello World

exit
Exits Sentaurus Visual with the status given as an argument.

Syntax
exit [<intValue>]

Argument Description

<intValue> Exit code as an integer. Default: 0.

Returns

None.

Example
exit 1
# Exit status: 1

76 Sentaurus Visual User Guide


H-2013.03
A: Tcl Commands
export_curves

export_curves
Exports a curve to the specified file format.

Syntax
export_curves -plot <plotName> -filename <fileName> [{<curvesList>}]
[-format (csv | plx)] [-overwrite]

Argument Description

-plot <plotName> Exports the curves from the specified plot.

-filename <fileName> Name of the exported file or files.

{<curvesList>} List of curves to be exported.

-format csv | plx Format of the output file. Default is csv.

-overwrite Overwrites existing files if specified.

Returns

Integer.

Example
export_curves -plot Plot_1 -filename testFile.csv -format csv
#-> 0

Sentaurus Visual User Guide 77


H-2013.03
A: Tcl Commands
export_movie

export_movie
Creates a new movie by exporting the selected frames into a GIF file.

NOTE You must use the start_movie and add_frame commands before
using the export_movie command.

Syntax
export_movie -filename <fileName> [-frames {<listOfFrames>}]
[-frame_duration <intValue>] [-overwrite]

Argument Description

-filename <fileName> Name of the file for the new movie. Add .gif extension if necessary.

-frames {<listOfFrames>} Specifies the list of frames to be exported. Entire frame buffer is used by
default.

-frame_duration <intValue> Specifies the duration of each frame with 1/100 s as unit. Default is 50.

-overwrite Overwrites existing files if specified.

Returns

String.

Example
export_movie -filename Movie.gif -frame_duration 2 -overwrite
#-> Movie.gif

See Also

add_frame on page 66
start_movie on page 141

78 Sentaurus Visual User Guide


H-2013.03
A: Tcl Commands
export_settings

export_settings
Exports Sentaurus Visual settings to a file.

Syntax
export_settings <filename>

Argument Description

<filename> Name of the file. It must have the file extension .conf.

Returns

Integer.

Example
export_settings settings.conf
#-> 0

Sentaurus Visual User Guide 79


H-2013.03
A: Tcl Commands
export_variables

export_variables
Exports variables from a curve to a file.

Syntax
export_variables [<varList>] -dataset <datasetName> -filename <fileName>
[-overwrite]

Argument Description

[<varList>] List of variables to be saved.

-dataset <datasetName> Name of dataset where specified (by default, all) variables will be read for
export.

-filename <fileName> Name of the exported file or files.

-overwrite Overwrites existing files if specified.

Returns

Integer.

Example
export_variables -dataset Data_1 -filename exportedVars.csv
#-> 0

80 Sentaurus Visual User Guide


H-2013.03
A: Tcl Commands
export_view

export_view
Exports a plot to the specified file format.

If -plots is used, the command exports only the specified plots. If it is not specified, the
command exports all plots.

Syntax
export_view <filename> [-plots {<plotList>}] [-format <stringValue>]
[-resolution <width>x<height>] [-overwrite]

Argument Description

<filename> Name of the exported file or files.

-plots {<plotList>} Exports the plots specified. If not specified, the command exports all the
plots.

-format <stringValue> Specifies the type of file format to use when exporting the plots. The
supported formats are: BMP, EPS, JPEG, JPG, PNG, PPM, TIF, TIFF, XBM,
and XPM.

-resolution Specifies the output resolution in pixels.


<width>x<height>

-overwrite Overwrites existing files if specified.

Returns

Integer.

Example
export_view /path/to/examplePlot.bmp -format bmp
#-> 0

Sentaurus Visual User Guide 81


H-2013.03
A: Tcl Commands
get_axis_prop

get_axis_prop
Returns axis properties.

NOTE The command returns only one property at a time.

Syntax
get_axis_prop [-plot <plotName>] -axis (x | y | z | y1 | y2)
(
-type | -title | -title_font_color | -title_font_family | -title_font_att |
(-title_font_size | -title_font_factor) | -scale_font_color |
-scale_font_family | -scale_font_att |
(-scale_font_size | -scale_font_factor) |
-scale_precision | -scale_format | -nof_minor_ticks |
-major_ticks_length | -range | -show_scale | -show_ticks |
-show_minor_ticks | -show | -inverted | -fixed
)

Argument Description

-plot <plotName> Name of the plot from where the axis properties will be returned.

-axis x | y | z | y1 | y2 Specifies from which axis the properties will be returned. The
axis identifiers y1 and y2 are only valid for xy plots.

-type Scale type: linear or logarithmic.

-title Axis label.

-title_font_color Color of the axis label.

-title_font_family Font of the axis title.

-title_font_att Font attributes of the axis label.

-title_font_size | Font size (xy plots) or font size factor (2D and 3D plots) of the
-title_font_factor axis label.

-scale_font_color Color of the axis scale.

-scale_font_family Font of the axis scale.

-scale_font_att Font attributes of the axis scale.

-scale_font_size | Size (xy plots) or size factor (2D and 3D plots) of the axis scale.
-scale_font_factor

-scale_precision Precision of the axis scale.

-scale_format Numeric format of the axis scale.

-nof_minor_ticks Number of minor ticks on the selected axis.

82 Sentaurus Visual User Guide


H-2013.03
A: Tcl Commands
get_axis_prop

-major_ticks_length Length of the major ticks.

-range Range covered on the axis.

-show_scale Shows scale if values for the major ticks are displayed.

-show_ticks Shows major ticks.

-show_minor_ticks Shows minor ticks.

-show Shows axis.

-inverted Shows inverted axis.

-fixed Shows fixed axis range.

Returns

String.

Example
get_axis_prop -axis x -type
#-> linear

Sentaurus Visual User Guide 83


H-2013.03
A: Tcl Commands
get_camera_prop

get_camera_prop
Returns camera properties.

NOTE The command returns only one property at a time and applies to 3D
plots only.

Syntax
get_camera_prop [-plot <plotName>]
(
-position | -focal_point | -rotation_point | -rot_size | -rot_width |
-rot_color | -show_rotation_point | -zoom
)

Argument Description

-plot <plotName> Name of the plot from which to obtain the required property. If not specified,
the command uses the selected plot.

-position Returns position of the camera.

-focal_point Returns position of the focal point.

-rotation_point Returns position of the rotation point.

-rot_size Returns size of the rotation point.

-rot_width Returns width of the lines of the rotation point.

-rot_color Returns color of the rotation point.

-show_rotation_point Shows rotation point.

-zoom Shows the actual zoom of the camera.

Returns

String.

Example
get_camera_prop -position
#-> 3.53079 -0.0263978 0.392817

84 Sentaurus Visual User Guide


H-2013.03
A: Tcl Commands
get_curve_data

get_curve_data
Returns data from the specified curve axis.

Syntax
get_curve_data <curveName> [-plot <plotName>] (-axisX | -axisY)

Argument Description

<curveName> Name of the curve from where data is retrieved.

-plot <plotName> Name of plot where curve is displayed.

(-axisX | -axisY) Curve axis from where data is retrieved.

Returns

List.

Example
get_curve_data Curve_1 -axisX
#-> 0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5

Sentaurus Visual User Guide 85


H-2013.03
A: Tcl Commands
get_curve_prop

get_curve_prop
Returns curve properties.

NOTE The command returns only one property at a time and applies to xy plots
only.

Syntax
get_curve_prop <curveName> [-plot <plotName>]
(
-label | -color | -line_width | -line_style | -markers_type |
-markers_size | -deriv | -integ | -function | -show_markers | -show_line |
-show
)

Argument Description

<curveName> Identifier of the curve.

-plot <plotName> Name of the plot. If not specified, the command uses the selected plot.

-label Shows the selected curve label.

-color Shows the selected curve line color.

-line_width Shows the selected curve line width.

-line_style Shows the line style of the curve.

-markers_type Shows the selected curve markers type.

-markers_size Shows the selected curve markers size.

-deriv Shows the order of the derivative applied to the curve.

-integ Shows the integration applied to the curve.

-function Shows a function applied to the curve.

-show_markers Shows activated markers.

-show_line Shows curve line.

-show Shows curve.

Returns

String.

86 Sentaurus Visual User Guide


H-2013.03
A: Tcl Commands
get_field_prop

Example
get_curve_prop Curve_1 -deriv
#-> 2

get_field_prop
Returns field properties.

NOTE The command returns only one property at a time and applies only to 2D
and 3D plots.

Syntax
get_field_prop [<fieldname>] [-plot <plotName>] [-geom <geometryName>]
(-range | -scale | -levels | -custom_levels | -label |
-interpolated_values | -vector_scale | -scale_factor_grid |
-scale_factor_uniform | -show_bands | -show)

Argument Description

<fieldName> Name of the field. If not specified, the command uses the active field.

-plot <plotName> Name of the plot. If not specified, the command uses the active plot.

-geom <geometryName> Name of the dataset (or geometry). If not specified, the command uses the
main one from the active plot.

-range Range of the selected field.

-scale Scale of the selected field.

-levels Levels of the selected field.

-custom_levels Shows custom levels defined for the selected field.

-label Label of the field.

-interpolated_values Returns whether the interpolated values on its vertices are used for
visualization (this property is only valid for fields defined on cells).

-vector_scale Scale of the selected vector field.

-scale_factor_grid Scale factor of the selected vector field when the scaling is by grid.

-scale_factor_uniform Scale factor of the selected vector field when the scaling is uniform.

-show_bands Shows bands.

-show Shows the selected field on the plot.

Sentaurus Visual User Guide 87


H-2013.03
A: Tcl Commands
get_grid_prop

Returns

String.

Example
get_field_prop -range
#-> {2.36618e-05 4.36902e+06}

get_grid_prop
Returns grid properties of a plot.

NOTE The command applies to xy plots only.

Syntax
get_grid_prop [-plot <plotName>]
(
-align | -line1_color | -line2_color | -line1_width | -line2_width |
-line1_style | -line2_style | -show_minor_lines | -show
)

Argument Description

-plot <plotName> Name of the plot. If not specified, the command uses the selected plot.

-align Shows plot alignment.

-line1_color Shows color of major lines.

-line2_color Shows color of minor lines.

-line1_width Shows width of major lines.

-line2_width Shows width of minor lines.

-line1_style Shows style of major lines.

-line2_style Shows style of minor lines.

-show_minor_lines Shows minor lines.

-show Shows major lines.

88 Sentaurus Visual User Guide


H-2013.03
A: Tcl Commands
get_legend_prop

Returns

String.

Example
get_grid_prop -line1_color
#-> #ff0000

get_legend_prop
Returns legend properties.

NOTE The command returns only one property at a time.

Syntax
get_legend_prop [-plot <plotName>]
(-location | -title_font_color | -title_font_family | -title_font_size |
-title_font_factor | -title_font_att | -label_font_color |
-label_font_family | -label_font_size | -label_font_factor |
-label_font_att | -margins | -color_fg | -color_bg |
-orientation | -label_format | -nof_labels | -precision)

Argument Description

-plot <plotName> Name of the plot. If not specified, the command uses the selected plot.

-location Location in the plot area where the legend is displayed.

-title_font_color Font color of the legend title.

-title_font_family Font type of the legend title.

-title_font_size Font size of the legend title.

-title_font_factor Font multiplier of the legend title.

-title_font_att Font attribute of the legend title.

-label_font_color Font color of the legend labels.

-label_font_family Font type of the legend labels.

-label_font_size Font size of the legend labels.

-label_font_factor Font multiplier of the legend labels.

-label_font_att Font attribute of the legend labels.

-margins Margins of the legend box.

Sentaurus Visual User Guide 89


H-2013.03
A: Tcl Commands
get_legend_prop

-color_fg Foreground color of the legend.

-color_bg Background color of the legend.

-orientation Orientation of the legend.

-label_format Numeric format of the legend labels.

-nof_labels Number of labels used in the legend.

-precision Precision of the legend labels.

Returns

String.

Example
get_legend_prop -orientation
#-> vertical

90 Sentaurus Visual User Guide


H-2013.03
A: Tcl Commands
get_plot_prop

get_plot_prop
Returns plot properties.

NOTE The command returns only one property at a time.

Syntax
get_plot_prop [-plot <plotName>]
(
-title | -color_fg | -color_bg | -show_title | -show_legend |
-show_axes | -show_axes_title | -show_grid | -show_curve_markers |
-show_curve_lines | -ratio_xtoy | -keep_aspect_ratio | -axes_interchanged |
-show | -frame_width | -color_map
)

Argument Description

-plot <plotName> Name of the plot. If not specified, the command uses the selected plot.

-title Shows the plot label.

-color_fg Shows the foreground color used.

-color_bg Shows the background color used.

-show_title Returns a value indicating whether title is displayed.

-show_legend Returns a value indicating whether legend is displayed.

-show_axes Returns a value indicating whether the axes are present.

-show_axes_title Returns a value indicating whether the axes labels are displayed (only for xy
plots).

-show_grid Returns a value indicating whether the grid is displayed (only for xy plots).

-show_curve_markers Returns a value indicating whether the markers are enabled.

-show_curve_lines Returns a value indicating whether the curve lines are displayed.

-ratio_xtoy Returns the transformation ratio between the x-axis and y-axis (only for 2D
plots).

-keep_aspect_ratio Returns a value indicating whether the aspect ratio is maintained (only for 2D
plots).

-axes_interchanged Returns a value indicating whether the axes are interchanged (only for 2D
plots).

-show Returns a value indicating whether the plot is displayed.

Sentaurus Visual User Guide 91


H-2013.03
A: Tcl Commands
get_variable_data

-frame_width Returns a value that is a positive integer less than 8, denoting the frame width
in pixels.

-color_map Returns a value indicating whether the color map is in default mode (full
palette) or grayscale mode.

Returns

String.

Example
get_plot_prop -title
#-> Test Plot

get_variable_data
Returns a list of variable values.

NOTE This command applies to xy plots only.

Syntax
get_variable_data <varName> -dataset <dataName>

Argument Description

<varName> Name of the variable.

-dataset <dataName> Name of the dataset.

Returns

List.

Example
get_variable_data X -dataset plotXY
#-> 1 2 3 4 5

92 Sentaurus Visual User Guide


H-2013.03
A: Tcl Commands
help

help
Displays information about Sentaurus Visual Tcl commands.

Without any arguments, the command returns a complete list of the available Tcl commands.

Syntax
help [<TclCommand>]

Argument Description

<TclCommand> Sentaurus Visual Tcl command.

Returns

String.

Example
help import_settings
# import_settings <filename>

import_settings
Imports Sentaurus Visual settings from a previously saved configuration file.

Syntax
import_settings <filename>

Argument Description

<filename> Name of the configuration file.

Returns

Integer.

Example
import_settings /path/to/settings.conf
#-> 0

Sentaurus Visual User Guide 93


H-2013.03
A: Tcl Commands
integrate_field

integrate_field
Integrates a field over a complete 2D or 3D plot, or in specific regions.

NOTE The command applies to 2D and 3D plots only.

Syntax
integrate_field [-field <fieldname>]
[-plot <plotName> | -dataset <dataSetName>]
[-region {<regionList>} | -material {<materialList>}]
[-window {<xmin> <xmax> <ymin> <ymax> [<zmin> <zmax>]}] [-returndomain]

Argument Description

-field <filename> Specifies the field to integrate. If not specified, uses the current active
field.

-plot <plotName> | Name of the plot or dataset. If not specified, uses the selected plot.
-dataset <dataSetName>

-region {<regionList>} | List of regions or materials to integrate. If not specified, integrates all
-material {<materialList>} regions.

-window {<xmin> <xmax> <ymin> Defines a specific window to integrate.


<ymax> [<zmin> <zmax>]}

-returndomain Sets the function to return the integrated domain value (an integrated
volume when used in three dimensions, or an integrated surface when
used in two dimensions).

Returns

Double.

Example
integrate_field -field Abs(ElectricField) -region {RGate}
# Dataset: 3D
# Field: Abs(ElectricField)
# ==================================
# Regions of Dimension 3
# ----------------------------------
# 1. RGate (PolySi)
# Integral: 3.697957e-04 [V*um^2]
# Domain: 9.211180e-04 [um^3]
# ----------------------------------

94 Sentaurus Visual User Guide


H-2013.03
A: Tcl Commands
link_plots

# Total Integral: 3.697957e-04 [V*um^2]


# Total Domain: 9.211180e-04 [um^3]
# ==================================
#-> 0.000369796

link_plots
Links plot properties of two or more plots.

Syntax
link_plots {<listOfPlotNames>} [-id <intValue>] [-unlink]
[-special {matreg field_sel field_prop move cuts plot_prop axes_prop
legend_prop curve_prop grid_prop}]

Argument Description

{<listOfPlotNames>} List of all the plots to be linked.

-id <intValue> Integer identifier for the linked plots.

-unlink Removes linking.

-special {matreg field_sel field_prop Links only the specified properties.


move cuts plot_prop axes_prop
legend_prop curve_prop grid_prop}

Returns

Integer.

Example
link_plots {Plot_1 Plot_2} -id 10
#-> 10

Sentaurus Visual User Guide 95


H-2013.03
A: Tcl Commands
list_curves

list_curves
Returns a list of curve names.

NOTE The command applies to xy plots only.

Syntax
list_curves [<pattern>] [-plot <plotName>] [-show | -hide]

Argument Description

<pattern> Specifies the search pattern to use.

-plot <plotName> Searches on a specific plot. If not specified, the command searches on the
selected plot.

-show | -hide Shows or hides the results.

Returns

List.

Example
list_curves _1
#-> Curve_1 Curve_12

96 Sentaurus Visual User Guide


H-2013.03
A: Tcl Commands
list_cutlines

list_cutlines
Returns a list of cutlines. If no arguments are specified, the command returns all cutlines.

NOTE The command applies to 2D plots only.

Syntax
list_cutlines [<pattern>] [-plot <plotName>] [-type (x | y | z | free)]

Argument Description

<pattern> Specifies the search pattern to use.

-plot <plotName> Searches on a specific plot. If not specified, the command searches on the
selected plot.

-type x | y | z | free Specifies the type of cutline to search for.

Returns

List.

Example
list_cutlines -type y
#-> C1 C2

Sentaurus Visual User Guide 97


H-2013.03
A: Tcl Commands
list_cutplanes

list_cutplanes
Returns a list of cutplanes. If no arguments are specified, the command returns all cutplanes.

NOTE The command applies to 3D plots only.

Syntax
list_cutplanes [<pattern>] [-plot <plotName>] [-type (x | y | z)]

Argument Description

<pattern> Specifies the search pattern to use.

-plot <plotName> Searches on a specific plot. If not specified, the command searches on the
selected plot.

-type x | y | z Specifies the type of cutplane to search for.

Returns

List.

Example
list_cutplanes -type y
#-> C3

98 Sentaurus Visual User Guide


H-2013.03
A: Tcl Commands
list_datasets

list_datasets
Returns a list of dataset names according to the given pattern. If no pattern is specified, all
datasets are returned.

Syntax
list_datasets [<pattern>] [-dim <x>]

Argument Description

<pattern> Specifies the search pattern to use.

-dim <x> Dimension of datasets, where <x> can be 1, 2, or 3.

Returns

List.

Example
list_datasets -dim 3
#-> 3D_3

Sentaurus Visual User Guide 99


H-2013.03
A: Tcl Commands
list_fields

list_fields
Returns a list of field names.

NOTE This command applies to 2D and 3D plots only.

Syntax
list_fields [<pattern>] [-plot <plotName> | -dataset <dataName>]
[-show_contours | -hide_contours] [-show | -hide]

Argument Description

<pattern> Specifies the search pattern to use.

-plot <plotName> | Searches a specific plot or dataset.


-dataset <dataName>

-show_contours | -hide_contours Shows or hides contour lines.

-show | -hide Shows or hides contour bands.

Returns

List.

Example
list_fields ElectricField -plot Plot_3D
#-> Abs(ElectricField) ElectricField-X ElectricField-Y ElectricField-Z

100 Sentaurus Visual User Guide


H-2013.03
A: Tcl Commands
list_files

list_files
Returns a list of opened files according to the given pattern. If no pattern is specified, all files
are returned.

Syntax
list_files [<pattern>] [-fullpath]

Argument Description

<pattern> Specifies the search pattern to use.

-fullpath Specifies the full path to where the directory resides that contains the opened
files. If not specified, uses the current work directory.

Returns

List.

Example
list_files
#-> 2D_file.tdr 3D_file.tdr

Sentaurus Visual User Guide 101


H-2013.03
A: Tcl Commands
list_materials

list_materials
Returns a list of material names.

NOTE The command applies to 2D and 3D plots only.

Syntax
list_materials [<pattern>] [-plot <plotName> | -dataset <dataName>]
([-show_all | -hide_all] |
([-show_bulk | -hide_bulk] [-show_field | -hide_field]
[-show_mesh | -hide_mesh] [-show_border | -hide_border]))

Argument Description

<pattern> Specifies the search pattern to use.

-plot <plotName> | Searches on a specific plot or dataset.


-dataset <dataName>

-show_all | -hide_all Shows or hides materials completely.

-show_bulk | -hide_bulk Shows or hides bulk of materials.

-show_field | -hide_field Shows or hides fields of materials.

-show_mesh | -hide_mesh Shows or hides mesh of materials.

-show_border | -hide_border Shows or hides borders of materials.

Returns

List.

Example
list_materials -plot Plot_3D
#-> Contact DepletionRegion JunctionLine nitride Oxide PolySi Silicon

102 Sentaurus Visual User Guide


H-2013.03
A: Tcl Commands
list_movie_frames

list_movie_frames
Returns the list of frames in the frame buffer.

Syntax
list_movie_frames

Returns

List.

Example
list_movie_frames
# Frame0001 Frame0002 Frame0003 Frame0004

Sentaurus Visual User Guide 103


H-2013.03
A: Tcl Commands
list_plots

list_plots
Returns a list of plot names according to the given pattern. If no pattern is specified, all plots
are returned.

Syntax
list_plots [<pattern>] [-dim <id>] [-link <id>] [-selected] [-show | -hide]

Argument Description

<pattern> Specifies the search pattern to use.

-dim <id> Dimension of plots, where <id> can be: 1, 2, 3.

-link <id> Returns only linked plots with the <id> number.

-selected Returns the selected plot.

-show | -hide Shows or hides plot.

Returns

List.

Example
list_plots -dim 3
#-> 3D

104 Sentaurus Visual User Guide


H-2013.03
A: Tcl Commands
list_regions

list_regions
Returns a list of region names.

NOTE The command applies to 2D and 3D plots only.

Syntax
list_regions [<pattern>] [-plot <plotName> | -dataset <dataName>]
([-show_all | -hide_all] | ([-show_bulk | -hide_bulk]
[-show_field | -hide_field] [-show_mesh | -hide_mesh]
[-show_border | -hide_border]))

Argument Description

<pattern> Specifies the search pattern to use.

-plot <plotName> | Returns the regions of the specified plot or dataset. If not specified, the
-dataset <dataName> command returns the regions of the selected plot.

-show_all | -hide_all Filters by whether regions are completely shown or hidden.

-show_bulk | -hide_bulk Filters by whether materials have their bulk shown or hidden.

-show_field | -hide_field Filters by whether materials have their field shown or hidden.

-show_mesh | -hide_mesh Filters by whether materials have their mesh shown or hidden.

-show_border | -hide_border Filters by whether materials have their border shown or hidden.

Returns

List.

Example
list_regions -dataset 3D
#-> bulk gate drain DepletionRegion JunctionLine source

Sentaurus Visual User Guide 105


H-2013.03
A: Tcl Commands
list_streamlines

list_streamlines
Returns a list of streamlines created on the plot.

NOTE The command applies to 2D and 3D plots only.

Syntax
list_streamlines [<pattern>] [-plot <plotName>]

Argument Description

<pattern> Specifies the search pattern to use.

-plot <plotName> Returns the streamlines of the specified plot. If not specified, the command
returns the streamlines of the selected plot.

Returns

List.

Example
list_streamlines
#-> Streamline_1 Streamline_2 Streamline_3

106 Sentaurus Visual User Guide


H-2013.03
A: Tcl Commands
list_variables

list_variables
Returns a list of variable names according to the given pattern. If no pattern is specified, all
variables are returned.

NOTE The command applies to xy plots only.

Syntax
list_variables [<pattern>] -dataset <dataName>

Argument Description

<pattern> Specifies the search pattern to use.

-dataset <dataName> Specifies the dataset to use.

Returns

List.

Example
list_variables -dataset testDataset
#-> drainCurrent gateToSourceVoltage time

Sentaurus Visual User Guide 107


H-2013.03
A: Tcl Commands
load_file

load_file
Loads the specified file, and returns a string with the dataset name associated with the file.

Syntax
load_file <filename> -name <stringValue>

Argument Description

<filename> Name of the file to load.

-name <stringValue> Specifies a custom dataset name.

Returns

String.

Example
load_file /pathTo/Structure.tdr -name myStructure
#-> myStructure

108 Sentaurus Visual User Guide


H-2013.03
A: Tcl Commands
load_file_datasets

load_file_datasets
Loads datasets from the specified file.

Syntax
load_file_datasets <filename>

Argument Description

<filename> Name of the file.

Returns

List.

Example
load_file_datasets /pathTo/IdVg.tdr
#-> IdVg

load_library
Loads a Sentaurus Visual library. It can load all libraries located at the default paths, or only
libraries located at the given path, or only the library given by the path and its name.

Syntax
load_library ([-path <library_path>] [<library_name>] | [-all])

Argument Description

-path <library_path> Path to where libraries for loading are located.

<library_name> Name of library to be loaded.

-all Loads all libraries located at the default paths.

Returns

Integer.

Sentaurus Visual User Guide 109


H-2013.03
A: Tcl Commands
load_script_file

Example
load_library -path ~/mySVLibs myLibrary1
#-> 0

load_script_file
Loads a Tcl script or Inspect script.

Syntax
load_script_file <filename> [-inspect]

Argument Description

<filename> Name of the Tcl script to load.

-inspect Forces Sentaurus Visual to execute the script as an Inspect script.

Returns

Integer.

Example
load_script_file testScript.tcl
#-> 0

110 Sentaurus Visual User Guide


H-2013.03
A: Tcl Commands
move_plot

move_plot
Moves the selected plot.

Syntax
move_plot -position {<x> <y>} [-absolute] [-plot <plotName>]

Argument Description

-position {<x> <y>} Sets the new position of the plot. Arguments of type Double are expected.

-absolute Moves plot to an absolute position if specified.

-plot <plotName> Name of the plot to be moved. The current active plot is used if this option is
not specified.

Returns

Integer.

Example
move_plot -position {1.5 0.5} -absolute
#-> 0

Sentaurus Visual User Guide 111


H-2013.03
A: Tcl Commands
overlay_plots

overlay_plots
Overlays two or more plots. Creates a new plot with the specified name.

NOTE The command applies to 2D and 3D plots only.

Syntax
overlay_plots {<listOfPlots>} [-name <plotName>]

Argument Description

{<listOfPlots>} List of plots to be overlaid onto the first plot.

-name <plotName> Name of the new plot to be created. If not specified, creates a new plot with a
generic name.

Returns

String.

Example
overlay_plots {Plot_3D Plot_3D_2} –name Plot_Overlay
#-> Plot_Overlay

112 Sentaurus Visual User Guide


H-2013.03
A: Tcl Commands
probe_curve

probe_curve
Probes a curve.

NOTE The command applies to xy plots only. For 2D and 3D plots, use the
command probe_field (see probe_field on page 114).

Syntax
probe_curve <curveName> [-plot <plotName>] (-valueX | -valueY <doubleValue>)

Argument Description

<curveName> Identifier associated with the curve to be probed.

-plot <plotName> Name of the plot with the curve to be probed. If not specified, the
command uses the selected plot.

-valueX | -valueY <doubleValue> Specifies the point to probe on the curve.

Returns

Double.

Example
probe_curve idvg_1_des -valueX 0.85
#-> 0.5433e-6

Sentaurus Visual User Guide 113


H-2013.03
A: Tcl Commands
probe_field

probe_field
Probes a point on a plot, and returns the values of the defined field on that point.

NOTE This command applies to 2D and 3D plots only. For xy plots, use the
command probe_curve.

Syntax
probe_field [-field <fieldName>] [-plot <plotName>]
(–coord {<x> <y> [<z>]} | (-point <intValue> -region <regionName>)) [-snap]

Argument Description

-field <fieldName> Name of the field to probe in the plot. If not specified, probes the active field.

-plot <plotName> Name of the plot or dataset to be probed. If not specified, the command
probes the selected plot.

-coord {<x> <y> [<z>]} Specifies the point to be probed. In 2D plots, the z value must be 0 or must
be left undefined.

-point <intValue> Specifies the vertex ID relative to the region set to be probed. Use with the
-region option.
-region <regionName> Specifies the region where the field will be probed. Use with the -point
option.

-snap Probes the field at the closest node if specified.

Returns

Double.

Example
probe_field -field DopingConcentration -coord {0.2 0.3 -0.2}
#-> -2e18

114 Sentaurus Visual User Guide


H-2013.03
A: Tcl Commands
reload_datasets

reload_datasets
Reloads all the specified datasets.

Syntax
reload_datasets {<listOfDatasets>}

Argument Description

{<listOfDatasets>} List of datasets to reload.

Returns

Integer.

Example
reload_datasets {3D 3D_2}
#-> 0

reload_files
Reloads the specified files.

Syntax
reload_files {<filenameList>}

Argument Description

{<filenameList>} List of files to be reloaded.

Returns

Integer.

Example
reload_files {2D.tdr 3D.tdr}
#-> 0

Sentaurus Visual User Guide 115


H-2013.03
A: Tcl Commands
remove_curves

remove_curves
Removes curves from an xy plot.

Syntax
remove_curves {<listOfCurves>} [-plot <plotName>]

Argument Description

{<listOfCurves>} List of curve names.

-plot <plotName> Name of the plot from where curves will be removed. If not specified, the
command uses the active plot.

Returns

Integer.

Example
remove_curves {IdVg_1 IdVg_2}
#-> 0

116 Sentaurus Visual User Guide


H-2013.03
A: Tcl Commands
remove_cutlines

remove_cutlines
Removes the specified cutlines.

Syntax
remove_cutlines {<listOfCutlines>} [-plot <plotName>]

Argument Description

{<listOfCutlines>} List of cutline names.

-plot <plotName> Name of plot from where the cutlines will be removed. If not specified, uses
the active plot.

Returns

List.

Example
remove_cutlines {C1 C2}
#-> C1 C2

remove_cutplanes
Removes the specified cutplanes.

Syntax
remove_cutplanes {<listOfCutplanes>} [-plot <plotName>]

Argument Description

{<listOfCutplanes>} List of cutplane names. If not specified, uses the active plot.

-plot <plotName> Name of plot from where the cutplanes will be removed.

Returns

List.

Example
remove_cutplanes {C1 C2}
#-> C1 C2

Sentaurus Visual User Guide 117


H-2013.03
A: Tcl Commands
remove_datasets

remove_datasets
Removes the specified datasets.

Syntax
remove_datasets {<listOfDatasets>}

Argument Description

{<listOfDatasets>} List of dataset names.

Returns

Integer.

Example
remove_datasets {dataSet1 dataSet2 dataSet3}
#-> 0

remove_plots
Removes the specified plots.

Syntax
remove_plots {<listOfPlotNames>}

Argument Description

{<listOfPlotNames>} List of plot names.

Returns

Integer.

Example
remove_plots {plotXY plot2D plot3D}
#-> 0

118 Sentaurus Visual User Guide


H-2013.03
A: Tcl Commands
remove_streamlines

remove_streamlines
Removes the specified streamlines.

Syntax
remove_streamlines {<listOfStreamlines>} [-plot <plotName>]

Argument Description

{<listOfStreamlines>} List of streamline names.

-plot <plotName> Name of the plot from where the streamlines will be removed. If not
specified, the command uses the selected plot.

Returns

List.

Example
remove_streamlines {Streamline_1 Streamline_2}
#-> Streamline_1 Streamline_2

reset_settings
Reset Sentaurus Visual settings to their default values.

Syntax
reset_settings

Returns

None.

Example
reset_settings

Sentaurus Visual User Guide 119


H-2013.03
A: Tcl Commands
rotate_plot

rotate_plot
Rotates a 3D plot using the axes and angles specified. Different axes can be rotated at the same
time.

NOTE This command applies to 3D plots only.

Syntax
rotate_plot [-plot <plotName>] [-x <degrees>] [-y <degrees>] [-z <degrees>]
[-absolute]

Argument Description

-plot <plotName> Name of the plot. If not specified, uses the selected plot.

-x <degrees> Rotates plot around the x-axis (in degrees).

-y <degrees> Rotates plot around the y-axis (in degrees).

-z <degrees> Rotates plot around the z-axis (in degrees).

-absolute Rotates plot to an absolute position if specified.

Returns

Integer.

Example
rotate_plot -x 10.5 -y 20
#-> 0

120 Sentaurus Visual User Guide


H-2013.03
A: Tcl Commands
select_plots

select_plots
Selects the plots.

Syntax
select_plots {<listOfPlotNames>}

Argument Description

{<listOfPlotNames>} List of plot names to be selected.

Returns

List.

Example
select_plots {plot2D anotherPlot2D}
#-> plot2D anotherPlot2D

Sentaurus Visual User Guide 121


H-2013.03
A: Tcl Commands
set_axis_prop

set_axis_prop
Sets axis properties.

If -axis is not specified, the properties are set for all axes.

The following properties apply to xy plots only: -type, -range, and -reset.

NOTE The command applies to xy and 2D plots only.

Syntax
set_axis_prop [-plot <plotName>] [-axis (x | y | y1 | y2)]
[-type linear | log] [-range {<x1> <x2>}] [-inverted | -not_inverted]
[-fixed | -not_fixed] [-title <stringValue>] [-title_font_color <#rrggbb>]
[-title_font_family <stringValue>]
([-title_font_size <intValue>] | [-title_font_factor <doubleValue>])
[-title_font_att normal | bold | italic | underline | strikeout]
[-nof_minor_ticks <int_Value>]
[-major_ticks_length <intValue>] [-minor_ticks_length <intValue>]
[-ticks_position out | in | center] [-auto_spacing | -manual_spacing]
[-anchor <doubleValue>] [-spacing <doubleValue>]
[-scale_format <stringValue>] [-scale_precision]
[-scale_font_color <#rrggbb>] [-scale_font_family <stringValue>]
([-scale_font_size <intValue>] | [-scale_font_factor <doubleValue>])
[-scale_font_att normal | bold | italic | underline | strikeout]
[-show | -hide] [-show_scale | -hide_scale] [-show_ticks | -hide_ticks]
[-show_minor_ticks | -hide_minor_ticks] [-show_title | -hide_title]
[-reset]

Argument Description

-plot <plotName> Name of the plot. If not specified, the command applies the
attributes to the selected plot.

-axis x | y | x1 | y2 Axis to apply the settings. If not specified, the command applies
the attributes to all axes.

-type linear | log Sets the axis scale.

-range {<x1> <x2>} Sets the axis range.

-inverted | -not_inverted Inverts the axis values.

-fixed | -not_fixed Fixes or does not fix the range of the axis.

-title <stringValue> Sets the axis label.

-title_font_color <#rrggbb> Sets the axis label color.

122 Sentaurus Visual User Guide


H-2013.03
A: Tcl Commands
set_axis_prop

-title_font_family <stringValue> Sets the axis label font.

-title_font_size <intValue> | Sets the axis label font size (xy plots) or font size factor (2D and
-title_font_factor <doubleValue> 3D plots).

-title_font_att normal | bold | Sets font attributes of the axis label.


italic | underline | strikeout

-nof_minor_ticks <intValue> Sets the number of minor ticks.

-major_ticks_length <intValue> Sets the length of major ticks.

-minor_ticks_length <intValue> Sets the length of minor ticks.

-ticks_position out | in | center Sets the position of the ticks.

-auto_spacing | -manual_spacing Sets the spacing mode of ticks.

-anchor <doubleValue> Sets the anchor of ticks.

-spacing <doubleValue> Sets the spacing between ticks.

-scale_format <stringValue> Sets the axis scale numeric format.

-scale_precision Sets the numeric precision of the axis scale.

-scale_font_color <#rrggbb> Sets the axis scale color.

-scale_font_family <stringValue> Sets the axis scale font.

-scale_font_size <intValue> | Sets the font size (xy plots) or size factor (2D and 3D plots) of
-scale_font_factor <doubleValue> axis scale.

-scale_font_att normal | bold | Sets the font attributes of the axis scale.
italic | underline | strikeout

-show | -hide Shows or hides the axis.

-show_scale | -hide_scale Shows or hides the scale.

-show_ticks | -hide_ticks Shows or hides the major ticks.

-show_minor_ticks | Shows or hides the minor ticks.


-hide_minor_ticks

-show_title | -hide_title Shows or hides the axis label.

-reset Resets axis parameters to default values.

Sentaurus Visual User Guide 123


H-2013.03
A: Tcl Commands
set_band_diagram

Returns

None.

Example
set_axis_prop -axis y1 -title "Drain Current"

set_band_diagram
Creates a band diagram. For more details, see Plotting Band Diagrams on page 35.

Syntax
set_band_diagram [{<plotList>}]

Argument Description

{<plotList>} List of plots created with the cutline function.

Returns

Integer.

Example
set_band_diagram Plot_1
#-> 0

124 Sentaurus Visual User Guide


H-2013.03
A: Tcl Commands
set_best_look

set_best_look
Automatically configures various plot parameters. For more details, see Best Look Option on
page 34.

Syntax
set_best_look [{<plotList>}]

Argument Description

{<plotList>} List of plots to apply best look settings.

Returns

Integer.

Example
set_best_look {Plot_1 Plot_2}
#-> 0

Sentaurus Visual User Guide 125


H-2013.03
A: Tcl Commands
set_camera_prop

set_camera_prop
Sets camera properties.

NOTE The command applies to 3D plots only.

Syntax
set_camera_prop [-plot <plotName>] [-position {<x> <y> <z>}]
[-focal_point {<x> <y> <z>} [-rotation_point {<x> <y> <z>}]
[-zoom <doubleValue>] [-rot_color <stringValue>] [-rot_size <intValue>]
[-rot_width <intValue>] [-show_rotation_point | -hide_rotation_point]
[-reset]

Argument Description

-plot <plotName> Name of the plot. If not specified, the command uses the selected
plot.

-position {<x> <y> <z>} Sets the position of the camera.

-focal_point {<x> <y> <z>} Sets the focal point of the camera.

-rotation_point {<x> <y> <z>} Sets the rotation point of the structure.

-zoom <doubleValue> Sets the zoom of the camera.

-rot_color <stringValue> Sets the color of the rotation point.

-rot_size <intValue> Sets the size of the rotation point.

-rot_width <intValue> Sets the width of the rotation point.

-show_rotation_point | Shows or hides the rotation point on the plot.


-hide_rotation_point

-reset Resets camera settings to their default values.

Returns

Integer.

Example
set_camera_prop -rotation_point {0.2 0.35 -0.25}
#-> 0

126 Sentaurus Visual User Guide


H-2013.03
A: Tcl Commands
set_curve_prop

set_curve_prop
Sets curve properties.

NOTE The command applies to xy plots only.

Syntax
set_curve_prop <curveName> [-plot <plotName>] [-label <curveLabel>]
[-color <stringValue>] [-line_width <intValue>] [-line_style <stringValue>]
[-markers_type <stringValue>] [-markers_size <intValue>]
[-deriv <intValue> | integ] [-function <stringValue>] [-axis (left | right)]
[-show_line | -hide_line] [-show_markers | -hide_markers] [-show | -hide]
[-reset]

Argument Description

<curveName> Name of the curve.

-plot <plotName> Name of the plot. If not specified, the command uses the selected
plot.

-label <curveLabel> Sets a label to the curve.

-color <stringValue> Sets color of the curve.

-line_width <intValue> Sets line width of the curve line.

-line_style <stringValue> Sets style of the curve line.

-markers_type <stringValue> Sets type of markers of the curve.

-markers_size <intValue> Sets size of the markers.

-deriv <intValue> | integ Derives or integrates the curve. For derivation, it can apply a first-
order or second-order derivative.

-function <stringValue> Applies a function to a curve. For details on functions, see


Appendix C on page 155.

-axis left | right Plots values on the left or right y-axis.

-show_line | -hide_line Shows or hides the curve line.

-show_markers | -hide_markers Shows or hides the curve markers.

-show | -hide Shows or hides a curve completely.

-reset Resets curve parameters.

Sentaurus Visual User Guide 127


H-2013.03
A: Tcl Commands
set_field_prop

Returns

None.

Example
set_curve_prop Curve_1 -label "NetActive Field (Cut from structure_1 at x=0)"

set_field_prop
Sets field properties.

If <fieldName> is not specified, the properties are set for the selected field. The same applies
to -plot.

NOTE The command applies to 2D and 3D plots only.

Syntax
set_field_prop [<fieldname>] [-plot <plotName>]
[-range {<min> <max>} | -reset]
(
([-scale (linear | log | asinh)] [-levels <intValue>]) |
[-custom_levels {<values>}]
)
[-label <fieldLabel>] [-interpolated_values | -primary_values]
[-vector_scale (grid | uniform)] [-scale_factor_grid <value>]
[-scale_factor_uniform <value>] [-show_bands | -hide_bands] [-show | -hide]
[-geom <geometryName>]

Argument Description

<fieldName> Name of the field.

-plot <plotName> Name of the plot. If not specified, the command uses the selected
plot.

-range {<min> <max>} | -reset Sets range of the field contour plot, or resets to the default values.

-scale (linear | log | asinh) Sets a scale with <intValue> levels. Do not use with the
-levels <intValue> -custom_levels option.
-custom_levels {<values>} Specifies a custom list of levels.

-label <fieldLabel> Specifies the label of the selected field.

-interpolated_values | Specifies whether the primary values of a cell or the interpolated


primary_values values on its vertices are used for visualization (this property is
only valid for fields defined on cells).

128 Sentaurus Visual User Guide


H-2013.03
A: Tcl Commands
set_field_prop

-vector_scale (grid | uniform) Sets a scale of the selected vector field.

-scale_factor_grid <value> Sets the scale factor of the selected vector field when the scaling
is by grid.

-scale_factor_uniform <value> Sets the scale factor of the selected vector field when the scaling
is uniform.

-show_bands | -hide_bands Shows or hides contour bands.

-show | -hide Shows or hides the contour plot.

-geom <geometryName> Name of the dataset (or geometry). If not specified, the command
uses the main one from the active plot.

Returns

Integer.

Example
set_field_prop -range {-1e20 1e20}
#-> 0

Sentaurus Visual User Guide 129


H-2013.03
A: Tcl Commands
set_grid_prop

set_grid_prop
Sets grid properties.

NOTE The command applies to xy plots only.

Syntax
set_grid_prop [-plot <plotName>] [-align (left | right)]
[-line1_color <stringValue>] [-line2_color <stringValue>]
[-line1_width <intValue>] [-line2_width <intValue>]
[-line1_style <stringValue>] [-line2_style <stringValue>]
[-show_minor_lines | -hide_minor_lines] [-show | -hide] [-reset]

Argument Description

-plot <plotName> Name of the plot. If not specified, the command uses the selected
plot.

-align left | right Aligns of the grid to the left or right.

-line1_color <stringValue> Sets color of the major grid lines.

-line2_color <stringValue> Sets color of the minor grid lines.

-line1_width <intValue> Sets width of the major grid lines.

-line2_width <intValue> Sets width of the minor grid lines.

-line1_style <stringValue> Sets style of the major grid lines.

-line2_style <stringValue> Sets style of the minor grid lines.

-show_minor_lines | Shows or hides the minor grid lines.


-hide_minor_lines

-show | -hide Shows or hides the major grid lines.

-reset Resets plot grid properties.

Returns

None.

Example
set_grid_prop -show_minor_lines

130 Sentaurus Visual User Guide


H-2013.03
A: Tcl Commands
set_legend_prop

set_legend_prop
Sets legend properties.

The following properties apply to xy plots only: -margins, -color_fg, and -color_bg.

The following properties apply to 2D and 3D plots only: -orientation, -label_format,


-nof_labels, and -precision.

Syntax
set_legend_prop [-plot <plotName>]
[-location (top_left | top_right | bottom_left | bottom_right)]
[-title_font_color <stringValue>]
[-title_font_family (arial | courier | times)]
[-title_font_att <stringValue>]
[-title_font_size <intValue> | -title_font_factor <doubleValue>]
[-label_font_color <stringValue>]
[-label_font_family (arial | courier | times)]
[-label_font_att <stringValue>]
[-label_font_size <intValue> | -label_font_factor <doubleValue>]
( [-margins {<x1> <x2>}] [-color_fg <stringValue>]
[-color_bg <stringValue>] |
[-orientation (vertical | horizontal)] [-label_format <stringValue>]
[-nof_labels <intValue>] [-precision <intValue>] ) [-reset]

Argument Description

-plot <plotName> Name of the plot. If not specified, the command uses the selected
plot.

-location top_left | top_right | Sets legend location.


bottom_left | bottom_right

-title_font_color <stringValue> Sets font color of legend title.

-title_font_family arial | courier | Sets legend title font.


times

-title_font_att <stringValue> Sets legend title font attribute from:


normal | bold | italic | underline | strikeout

-title_font_size <intValue> | Sets legend title font size using either an integer (size) or a factor
-title_font_factor <doubleValue> for resizing the font (factor).

-label_font_color <stringValue> Sets font color of labels.

-label_font_family arial | courier | Sets labels font.


times

Sentaurus Visual User Guide 131


H-2013.03
A: Tcl Commands
set_legend_prop

-label_font_att <stringValue> Sets labels font attribute from:


normal | bold | italic | underline | strikeout

-label_font_size <intValue> | Sets labels font size using either an integer (size) or a factor for
-label_font_factor <doubleValue> resizing the font (factor).

-margins {<x1> <x2>} Sets legend margins, and background and foreground colors
-color_fg <stringValue> (apply to xy plots only).
-color_bg <stringValue>

-orientation vertical | horizontal Sets legend orientation, label format, number of labels, and
-label_format <stringValue> precision of labels (apply to 2D and 3D plots only).
-nof_labels <intValue>
-precision <intValue>

-reset Resets legend properties.

Returns

None.

Example
set_legend_prop -nof_labels 4

132 Sentaurus Visual User Guide


H-2013.03
A: Tcl Commands
set_material_prop

set_material_prop
Sets material properties.

If -plot is not specified, the properties are set for the selected material.

NOTE The command applies to 2D and 3D plots only.

Syntax
set_material_prop [{<listOfMaterials>}] [-plot <plotName>]
[-show_all | -hide_all] [-show_field | -hide_field]
[-show_mesh | -hide_mesh] [-show_border | -hide_border]
[-geom <geometryName>] [-translucency_on | -translucency_off]
[-translucency_level <doubleValue>] [-color <#rrggbb>]
[-border_color <#rrggbb>] [-line_color <#rrggbb>]

Argument Description

{<listOfMaterials>} List of materials on which to apply the specified properties.

-plot <plotName> Name of the plot. If not specified, the command uses the selected
plot.

-show_all | -hide_all Shows or hides all the properties of the materials.

-show_field | -hide_field Shows or hides the fields of the materials.

-show_mesh | -hide_mesh Shows or hides the mesh of the materials.

-show_border | -hide_border Shows or hides the border of the materials.

-geom <geometryName> Name of the dataset (or geometry). If not specified, uses the main
one from the active plot.

-translucency_on | -translucency_off Activates or deactivates the translucency of the materials.

-translucency_level <doubleValue> Specifies the level of translucency when the option


-translucency_on is specified.
-color <#rrggbb> Specifies the bulk color of the materials. Color in format RGB is
expected (see Colors on page 63).

-border_color <#rrggbb> Specifies the border color of the materials. Color in format RGB
is expected (see Colors).

-line_color <#rrggbb> Specifies the line color of the materials. Color in format RGB is
expected (see Colors).

Sentaurus Visual User Guide 133


H-2013.03
A: Tcl Commands
set_material_prop

Returns

Integer.

Example
set_material_prop {Oxide Silicon} -show_field
#-> 0

134 Sentaurus Visual User Guide


H-2013.03
A: Tcl Commands
set_plot_prop

set_plot_prop
Sets plot properties.

Syntax
set_plot_prop [-plot <plotName>] [-title <stringValue>]
[-title_font_family (arial | courier | times)]
[-title_font_color <stringValue>]
[-title_font_size <intValue> | -title_font_factor <doubleValue>]
[-title_font_att <stringValue>] [-color_fg <stringValue>]
[-color_bg <stringValue>] [-frame_width <intValue>]
[-ratio_xtoy <doubleValue>] [-transformation {<x> <y> <z>}]
[-color_map (grayscale | default)]
[-keep_aspect_ratio| -not_keep_aspect_ratio]
[-axes_interchanged | -not_axes_interchanged] [-show_title | -hide_title]
[-show_legend | -hide_legend] [-show_axes | -hide_axes]
[-show_axes_title | -hide_axes_title] [-show_grid | -hide_grid]
[-show_curve_markers | -hide_curve_markers]
[-show_curve_lines | -hide_curve_lines] [-show | -hide] [-reset]

Argument Description

-plot <plotName> Name of the plot. If not specified, the command uses the selected
plot.

-title <stringValue> Title of the plot.

-title_font_family arial | courier | Sets the title font.


times

-title_font_color <stringValue> Sets the title font color.

-title_font_size <intValue> | Sets the title font size (xy plots) or multiplies the font size by a
-title_font_factor <doubleValue> factor (2D and 3D plots).

-title_font_att <stringValue> Sets the title font attribute from:


normal | bold | italic | underline | strikeout

-color_fg <stringValue> Sets the foreground color.

-color_bg <stringValue> Sets the background color.

-frame_width <intValue> Sets the plot frame width, which must be a positive integer value
less than 8 (applies to xy plots only).

-ratio_xtoy <doubleValue> Sets the x to y ratio of the plot (applies to 2D plots only).

-transformation {<x> <y> <z>} Sets a linear coordinate transformation (applies to 3D plots only).

Sentaurus Visual User Guide 135


H-2013.03
A: Tcl Commands
set_plot_prop

-color_map grayscale | default Sets the color map used in the plot (applies to 2D and 3D plots
only). Values are:
• When set to default, uses normal color map (full palette).
• When set to grayscale, uses only grayscale colors.

-keep_aspect_ratio | Configures the aspect ratio (applies to 2D and 3D plots only).


-not_keep_aspect_ratio

-axes_interchanged | Interchanges axes (applies to xy plots only).


-not_axes_interchanged

-show_title | -hide_title Shows or hides the plot title.

-show_legend | -hide_legend Shows or hides the plot legend.

-show_axes | -hide_axes Shows or hides the axes.

-show_axes_title | -hide_axes_title Shows or hides the axes title.

-show_grid | -hide_grid Shows or hides the grid (applies to xy plots only).

-show_curve_markers | Shows or hides the curve markers (applies to xy plots only).


-hide_curve_markers

-show_curve_lines | Shows or hides the curve lines (applies to xy plots only).


-hide_curve_lines

-show | -hide Shows or hides the plot.

-reset Resets plot properties.

Returns

None.

Example
set_plot_prop -title "Example 3D Structure"

136 Sentaurus Visual User Guide


H-2013.03
A: Tcl Commands
set_region_prop

set_region_prop
Sets region properties.

If -plot is not specified, the properties are set for the selected region.

NOTE The command applies to 2D and 3D plots only.

Syntax
set_region_prop [{<listOfRegions>}] [-plot <plotName>]
[-show_all | -hide_all] [-show_field | -hide_field]
[-show_mesh | -hide_mesh] [-show_border | -hide_border]
[-geom <geometryName>] [-translucency_on | -translucency_off]
[-translucency_level <doubleValue>] [-color <#rrggbb>]
[-border_color <#rrggbb>] [-line_color <#rrggbb>]

Argument Description

{<listOfRegions>} List of regions of the plot where the properties will be applied.

-plot <plotName> Name of the plot. If not specified, the command uses the selected
plot.

-show_all | -hide_all Shows or hides all the properties of the regions.

-show_field | -hide_field Shows or hides the fields of the regions.

-show_mesh | -hide_mesh Shows or hides the mesh of the regions.

-show_border | -hide_border Shows or hides the border of the regions.

-geom <geometryName> Name of the dataset (or geometry). If not specified, the command
uses the main one from the active plot.

-translucency_on | -translucency_off Enables or disables translucency of the regions.

-translucency_level <doubleValue> Specifies the level of translucency when the option


-translucency_on is specified.
-color <#rrggbb> Specifies the bulk color of the region. Color in format RGB is
expected (see Colors on page 63).

-border_color <#rrggbb> Specifies the border color of the region. Color in format RGB is
expected (see Colors).

-line_color <#rrggbb> Specifies the line color of the region. Color in format RGB is
expected (see Colors).

Sentaurus Visual User Guide 137


H-2013.03
A: Tcl Commands
set_value_blanking

Returns

Integer.

Example
set_region_prop {source gate drain} -show_mesh
#-> 0

set_value_blanking
Sets value blanking.

If -field is not specified, the command uses the selected field.

NOTE The command applies to 3D plots only.

Syntax
set_value_blanking [-cons <1-8>] [-plot <plotName>] -field <fieldname>
(-less | -greater) <doubleValue> | [-blank (all | any | inter)] | -reset

Argument Description

-cons <1-8> Number of the value blanking rule. Default constraint is 1.

-plot <plotName> Name of the plot. If not specified, the command uses the selected
plot.

-field <fieldname> Name of the field to set blanking parameters.

-less | -greater <doubleValue> Value blanking rule.

-blank all | any | inter Selects the value blanking option where:
• all is all vertices.
• any is any vertex.
• inter is interpolate vertices.

-reset Removes value blanking rules.

Returns

Integer.

Example
set_value_blanking -field DopingConcentration -greater 0.0
#-> 0

138 Sentaurus Visual User Guide


H-2013.03
A: Tcl Commands
set_window_full

set_window_full
Sets the full plot view.

Syntax
set_window_full (-on | -off)

Argument Description

-on | -off Activates or deactivates the full plot view.

Returns

Integer.

Example
set_windows_full -on
#-> 0

set_window_size
Sets the size of the main window of the GUI.

Syntax
set_window_size <width>x<height>

Argument Description

<width>x<height> Sets the width and the height of the main window in pixels (minimum of
200x200 pixels).

Returns

Integer.

Example
set_window_size 1280x800
#-> 0

Sentaurus Visual User Guide 139


H-2013.03
A: Tcl Commands
show_msg

show_msg
Displays a message in a dialog box.

Syntax
show_msg [-info | -warning | -error] [-title <stringValue>] <strMsg>

Argument Description

-info | -warning | -error Specifies the type of message to display. Default: -info.

-title <stringValue> Specifies the title of the dialog box.

<strMsg> Specifies the text to be displayed.

Returns

None.

Example
show_msg -warning -title "Bad Value" "There was a problem extracting the
threshold voltage"

140 Sentaurus Visual User Guide


H-2013.03
A: Tcl Commands
start_movie

start_movie
Starts the recording of a new movie by creating a new frame buffer.

NOTE This command only starts the creation of a movie, so you must use the
add_frame and export_movie commands to complete the
operations.

Syntax
start_movie [-resolution <width>x<height>]

Argument Description

-resolution <width>x<height> Specifies the resolution of each captured frame in pixels. If not specified,
uses the current screen resolution.

Returns

None.

Example
start_movie

stop_movie
Stops recording a movie.

NOTE This command deletes the stored frame buffer. It does not save it into a
file.

Syntax
stop_movie

Returns

None.

Example
stop_movie

Sentaurus Visual User Guide 141


H-2013.03
A: Tcl Commands
undo

undo
Undoes the last command implemented or the number of commands specified.

Syntax
undo [times]

Argument Description

times Number of commands to be reverted.

Returns

None.

Example
undo 2

unload_file
Unloads all the datasets belonging to the specified file.

Syntax
unload_file <filename>

Argument Description

<filename> Name of the file.

Returns

Integer.

Example
unload_file structure2D.tdr
#-> 0

142 Sentaurus Visual User Guide


H-2013.03
A: Tcl Commands
version

version
Returns the version of Sentaurus Visual.

Syntax
version

Returns

None.

Example
version
#-> 19.0.10

windows_style
Specifies the type of window style to use for the Sentaurus Visual GUI.

Syntax
windows_style [–sort {<plotList>}]
[-style (horizontal | vertical | grid | max | custom)]
[-direction (right_down | down_right)] [-max <numCols>]
[-aspect_ratio_on | -aspect_ratio_off]

Argument Description

–sort {<plotList>} Specifies the plots to be displayed.

-style (horizontal | Specifies a horizontal or vertical orientation, or grid style, or the use of
vertical | grid | max | maximum space or custom style.
custom)

-direction (right_down | Specifies the viewing direction of plots and where they will stretch. When
down_right) using the right_down direction, the grid fills to the right until it is full
and then continues adding new plots in a new row downwards from the first
row. When using the down_right direction, this order is inverted.

-max <numCols> Specifies the maximum number of columns in which to display the plots
when they are in a custom grid configuration.

-aspect_ratio_on | Specifies whether the aspect ratio is maintained for all the plots displayed.
-aspect_ratio_off

Sentaurus Visual User Guide 143


H-2013.03
A: Tcl Commands
zoom_plot

Returns

Integer.

Example
windows_style -style grid
#-> 0

zoom_plot
Zooms into a plot.

NOTE For 3D plots, the -window argument is not available.

Syntax
zoom_plot [-plot <plotName>]
(-factor <doubleValue> | -window {<x1> <y1> <x2> <y2> [<yr1> <yr2>]} |
-reset)

Argument Description

-plot <plotName> Name of the plot.

-factor <doubleValue> Sets zoom factor. If the value is greater than 1, it zooms into a
plot. If the value is smaller than 1, it zooms out of a plot.

-window {<x1> <y1> <x2> <y2> Sets zoom window. It zooms into the specified window between
[<yr1> <yr2>]} the two x,y pairs.

-reset Resets the zoom status of the plot.

Returns

None.

Example
zoom_plot -reset

144 Sentaurus Visual User Guide


H-2013.03
APPENDIX B Menus and Toolbars of Graphical
User Interface

This appendix describes the menus and the toolbars of the graphical
user interface of Sentaurus Visual.

Menus
This section lists the different menus.

File Menu
Table 12 File menu
Command Button Shortcut keys Description

Open Ctrl+O Loads a dataset or multiple datasets.

Reload All F5 key Reloads all loaded datasets.

Reload Selected Shift+F5 Reloads only the selected datasets.

Export Plot Ctrl+E Exports the selected plots to an image.

Run Tcl Script Runs Tcl or Inspect scripts.

Print Plots Ctrl+P Prints the selected plots.

Recent Files Lists the recently opened datasets, up to five.

Exit Ctrl+Q Quits Sentaurus Visual.

Sentaurus Visual User Guide 145


H-2013.03
B: Menus and Toolbars of Graphical User Interface
Menus

Edit Menu
Table 13 Edit menu
Command Button Shortcut keys Description

Undo Ctrl+Z Reverts the last operation executed.

Select All Plots Ctrl+A Selects all the active plots.

Redraw All Plots Ctrl+R Redraws all the active plots.

Delete Selected Plots Ctrl+D Deletes all the selected plots.

Preferences Displays User Preferences dialog box.

Draw Displays the Draw toolbar for drawing lines,


rectangles, and ellipses, and inserting text.

View Menu
Table 14 View menu
Command Button Shortcut keys Description

Panes Shows or hides the Selection panel, Properties


panel, and Tcl Command panel.

Toolbars Shows or hides the File, Edit, View, Tools, and


Movies toolbars.

Select Enables selection (default) mode.

Reset Ctrl+Shift+F Resets plot to the default values.

Zoom Ctrl+Shift+Z Enables zoom tool.

Best Look Ctrl+Shift+L Adjusts plotting parameters automatically.


Available for xy plots only.

Rotation Axis X Fixes the rotation of a 3D plot to the x-axis.


Available for 3D plots only.

Rotation Axis Y Fixes the rotation of a 3D plot to the y-axis.


Available for 3D plots only.

Rotation Axis Z Fixes the rotation of a 3D plot to the z-axis.


Available for 3D plots only.

View Plane XY Shows a 3D plot in the xy plane. Available for 3D


plots only.

146 Sentaurus Visual User Guide


H-2013.03
B: Menus and Toolbars of Graphical User Interface
Menus

Table 14 View menu


Command Button Shortcut keys Description

View Plane YZ Shows a 3D plot in the yz plane. Available for 3D


plots only.

View Plane XZ Shows a 3D plot in the xz plane. Available for 3D


plots only.

Default View Restores a 3D plot point of view. Available for


3D plots only.

Fast Draw If selected, 3D plot becomes an outline during a


rotation or move. Available for 3D plots only.

Subsampling Enables or disables subsampling in 2D and 3D


plots. Available for 2D and 3D plots only.

Camera Camera configuration for 3D plots. Available for


Configuration 3D plots only.

Lights Configuration Lighting parameters for 3D plots. Available for


3D plots only.

Tools Menu
Table 15 Tools menu
Command Button Shortcut keys Description

Link Ctrl+L Links two or more plot properties.

Special Link Displays Special Link dialog box where you can
set up special linking to link only specified
properties.

Movies Provides commands to start recording a movie, to


add frames to a movie, and to stop recording a
movie.

Probe Ctrl+Shift+P Probes the values on a plot.

Analysis Performs analysis on a curve. Available for xy


plots only.

Precision Cuts Displays the Cutlines and Cutplanes dialog box.


Available for 2D and 3D plots only.

Cutline Ctrl+Shift+C Generates a custom cutline on a 2D plot.


Available for 2D and 3D plots only.

Sentaurus Visual User Guide 147


H-2013.03
B: Menus and Toolbars of Graphical User Interface
Menus

Table 15 Tools menu


Command Button Shortcut keys Description

Cut X Ctrl+Shift+X Generates a cutplane (3D) or cutline (2D)


orthogonal to the x-axis. Available for 2D and 3D
plots only.

Cut Y Ctrl+Shift+Y Generates a cutplane (3D) or cutline (2D)


orthogonal to the y-axis. Available for 2D and 3D
plots only.

Cut Z Ctrl+Shift+Z Generates a cutplane (3D) or cutline (2D)


orthogonal to the z-axis. Available for 2D and 3D
plots only.

Ruler Ctrl+Shift+R Enables measuring distances. Available for 2D


and 3D plots only.

Value Blanking Ctrl+Shift+V Displays Value Blanking dialog box. Available


for 3D plots only.

Streamlines Displays Streamlines dialog box where you can


enable drawing streamlines of a vector field.
Available for 2D and 3D plots only.

Overlay Ctrl+Shift+Y Overlays two or more plots onto one plot.


Available for 2D and 3D plots only.

Diff Plots Enables tool to plot the difference between


common fields. Available for 2D and 3D plots
only.

Integrate Displays the Field Integration dialog box, where


you can perform integration over the active field
of a plot. Available for 2D and 3D plots only.

Data Menu
Table 16 Data menu
Command Button Shortcut keys Description

View Info Loaded Displays Manage Loaded Data dialog box,


showing all the datasets and plots currently
loaded.

Export XY Data Displays Export XY Data dialog box. Available


for xy plots only.

New XY Plot Generates a new empty xy plot. Available for xy


plots only.

148 Sentaurus Visual User Guide


H-2013.03
B: Menus and Toolbars of Graphical User Interface
Menus

Table 16 Data menu


Command Button Shortcut keys Description

Region Properties Ctrl+Shift+E Displays Region Properties dialog box. Available


for 2D and 3D plots only.

TDR Tags Displays TDR Tags dialog box, where you can
select which tags to display on the selected plot.
Available for 2D and 3D plots only.

Window Menu
Table 17 Window menu
Command Button Shortcut keys Description

Tile Grid Organizes loaded plots into a grid.

Tile Vertically Organizes loaded plots vertically in the plot area.

Tile Horizontally Organizes loaded plots horizontally in the plot


area.

Set Default State Restores toolbars and workspace to their default


positions in the GUI.

Sort Frames Displays the Manage Frames dialog box.

Previous Plot Page Up key Moves to the previous loaded plot.

Next Plot Page Down key Moves to the next loaded plot.

Minimize Plot Minimizes the selected plot.

Maximize F10 key Maximizes the selected plot.

Full Plot View F12 key Hides the toolbars and zooms into a plot using the
entire workspace.

Restore All Plots Restores all minimized plots.

Plots Lists the open plots.

Sentaurus Visual User Guide 149


H-2013.03
B: Menus and Toolbars of Graphical User Interface
Toolbars

Help Menu
Table 18 Help menu
Command Button Shortcut keys Description

User Guide Displays PDF of Sentaurus Visual User Guide.

Tutorial Displays Sentaurus Visual module of TCAD


Sentaurus Tutorial (HTML).

About Ctrl+B Shows information about Sentaurus Visual.

NOTE The default viewer for the PDF of the Sentaurus Visual User Guide is
Adobe Acrobat Reader. Using another PDF viewer may disable some
cross references or external links in the PDF.

Toolbars

File Toolbar
Table 19 File toolbar
Button Description Button Description

Open Export Plot

Reload All Run Tcl Script

Reload Selected Print Plots

Edit Toolbar
Table 20 Edit toolbar
Button Description Button Description

Undo Draw
(xy and 2D plots only)

150 Sentaurus Visual User Guide


H-2013.03
B: Menus and Toolbars of Graphical User Interface
Toolbars

Draw Toolbar
Table 21 Draw toolbar (available for xy and 2D plots only)
Button Description Button Description

Draw Line Draw Ellipse

Draw Rectangle Insert Text

View Toolbar
Table 22 View toolbar
Button Description Button Description

Select Rotation Axis X (3D plots only)

Select/Rotate (3D plots only)

Reset Rotation Axis Y (3D plots only)

Zoom Rotation Axis Z (3D plots only)

Best Look (xy plots only) View Plane XY (3D plots only)

Log Scale X (xy plots only) View Plane YZ (3D plots only)

Log Scale Y (xy plots only) View Plane XZ (3D plots only)

Log Scale Y Right (xy plots only) Fast Draw (3D plots only)

Sentaurus Visual User Guide 151


H-2013.03
B: Menus and Toolbars of Graphical User Interface
Toolbars

Tools Toolbar
Table 23 Tools toolbar
Button Description Button Description

Link Cut Y (2D and 3D plots only)

Special Link Cut Z (2D and 3D plots only)

Probe Ruler (2D and 3D plots only)

Analysis (xy plots only) Value Blanking (3D plots only)

Plot Band Diagram (xy plots only) Streamlines (2D and 3D plots only)

Precision Cuts Overlay (2D and 3D plots only)


(2D and 3D plots only)

Cutline (2D plots only) Diff Plots (2D and 3D plots only)

Cut X (2D and 3D plots only) Integrate (2D and 3D plots only)

Movies Toolbar
Table 24 Movies toolbar
Button Description Button Description

Start Recording Add Frames

Stop Recording

152 Sentaurus Visual User Guide


H-2013.03
B: Menus and Toolbars of Graphical User Interface
Toolbars

Look Toolbar
Table 25 Look toolbar
Button Description Button Description

Change Panel View Selection Panel


(Changes presentation of left pane (Shows or hides Selection panel)
from separate tabs to one view)

Properties Panel Tcl Command Panel


(Shows or hides properties panel for (Shows or hides Tcl Command panel)
whichever plot is selected)

Sentaurus Visual User Guide 153


H-2013.03
B: Menus and Toolbars of Graphical User Interface
Toolbars

154 Sentaurus Visual User Guide


H-2013.03
APPENDIX C Available Formulas

This appendix presents an overview of the functions available in


Sentaurus Visual as well as the syntax of the formulas used to create
curves, variables, and fields.

Creating a New Variable


NOTE For new variables, variables of an existing dataset can be used in the
function specification or a list of values.

To create a new variable, use the create_variable command. For example, to create the
common logarithm of the variable Y present in the dataset myDataset as a new variable, you
can use the command:
create_variable -name commonLogY -dataset "myDataset"
-function "log(<Y@myDataset>)"

To access variables on functions, use the format <VARIABLE@DATASET>. This new variable
will appear in the variables list of the dataset in which it was created.

NOTE Variables can be created on the Data tab of the Selection panel by
clicking the New Variable button. A dialog box is displayed where you
can interactively add functions, operators, and variables to create a new
formula.

Creating a New Curve


NOTE For new curves, existing curves can be used in the function
specification.

To create a new curve, use the create_curve command. For example, to create the derivative
of Curve_1 and name it newCurve, you can use the command:
create_curve -name newCurve -function diff(<Curve_1>)

To use the curves on formulas, you must write the curve identifier in angle brackets. For
example, to use the data on Curve_1 for the differentiation function, it is written as
<Curve_1>.

Sentaurus Visual User Guide 155


H-2013.03
C: Available Formulas
Creating a New Field

NOTE Curves can be created on the Curves tab of the Selection panel by
clicking the New button. A dialog box is displayed where you can
interactively add functions, operators, and curves to create a new curve
based on a formula.

Creating a New Field


NOTE For new fields, existing fields can be used in the function specification.

To create a new field, use the create_field command. Existing fields are used to create new
fields based on functions and operations specified by the user. In the following example,
consider two fields called ElectricField-X and ElectricField-Y. You want to create a
new field that contains the absolute value of the sum of both fields. This can be done with the
following command:
create_field -name AbsSumElectricField -dataset 2D
-function "abs(<ElectricField-X>+<ElectricField-Y>)" -show

NOTE New fields also can be created on the More tab of the Selection panel
by clicking the Add Field button.

Available Functions
Table 26 lists the available functions.

Table 26 Available functions


Function Arguments Returns Description

abs(x) Double Double Absolute value.


Vector Vector
Curve Curve

acos(x) Double Double ArcCosine.


Vector Vector
Curve Curve

acosh(x) Double Double Hyperbolic ArcCosine.


Vector Vector
Curve Curve

asin(x) Double Double ArcSine.


Vector Vector
Curve Curve

156 Sentaurus Visual User Guide


H-2013.03
C: Available Formulas
Available Functions

Table 26 Available functions


Function Arguments Returns Description

asinh(x) Double Double Hyperbolic ArcSine.


Vector Vector
Curve Curve

atan(x) Double Double ArcTangent.


Vector Vector
Curve Curve

atanh(x) Double Double Hyperbolic ArcTangent.


Vector Vector
Curve Curve

bessel_j0(x) Double Double Bessel function of first kind, order zero.


Vector Vector
Curve Curve

bessel_j1(x) Double Double Bessel function of first kind, first order.


Vector Vector
Curve Curve

bessel_y0(x) Double Double Bessel function of second kind, order zero.


Vector Vector
Curve Curve

bessel_y1(x) Double Double Bessel function of second kind, first order.


Vector Vector
Curve Curve

cbrt(x) Double Double Cube root of x.


Vector Vector
Curve Curve

ceil(x) Double Double Approximates to the next integer.


Vector Vector
Curve Curve

cfftim(x,y) x: Vector, Curve Vector Fast Fourier transform, imaginary value.


y: Vector, Curve Curve

cfftre(x,y) x: Vector, Curve Vector Fast Fourier transform, real value.


y: Vector, Curve Curve

cifftim(x,y) x: Vector, Curve Vector Inverse fast Fourier transform, imaginary value.
y: Vector, Curve Curve

cifftre(x,y) x: Vector, Curve Vector Inverse Fourier transform, real value.


y: Vector, Curve Curve

cos(x) Double Double Cosine.


Vector Vector
Curve Curve

Sentaurus Visual User Guide 157


H-2013.03
C: Available Formulas
Available Functions

Table 26 Available functions


Function Arguments Returns Description

cosh(x) Double Double Hyperbolic cosine.


Vector Vector
Curve Curve

diff(c) x: Vector Vector First-order derivative.


diff(y,x) y: Vector Curve
c: Curve

erf(x) Double Double Error function.


Vector Vector
Curve Curve

erfc(x) Double Double Complementary error function.


Vector Vector
Curve Curve

exp(x) Double Double Evaluates e(x).


Vector Vector
Curve Curve

fftabs(y,x) x: Vector, Curve Vector Fast Fourier transform, absolute value.


y: Vector, Curve Curve

fftim(x) Vector Vector Fast Fourier transform, imaginary value.


Curve Curve

fftre(x) Vector Vector Fast Fourier transform, real value.


Curve Curve

floor(x) Double Double Approximates to the previous integer.


Vector Vector
Curve Curve

gamma(x) Double Double Gamma function.


Vector Vector
Curve Curve

ifftim(x) Vector Vector Inverse Fourier transform, imaginary value.


Curve Curve

ifftre(x) Vector Vector Inverse Fourier transform, real value.


Curve Curve

integr(y,x) y: Vector Vector Integrates the vector y over the range specified by x,
integr(c) x: Vector Curve or integrates the curve c.
c: Curve

inverse(x) Double Double Inverse value.


Vector Vector
Curve Curve

158 Sentaurus Visual User Guide


H-2013.03
C: Available Formulas
Available Functions

Table 26 Available functions


Function Arguments Returns Description

lgamma(x) Double Double Logarithmic gamma function.


Vector Vector
Curve Curve

log(x) Double Double Natural logarithm.


Vector Vector
Curve Curve

log10(x) Double Double Common logarithm.


Vector Vector
Curve Curve

pow(x,y) x: Double Double Evaluates xy, where x is a double value, a vector of


x: Vector Vector values, or a curve.
x: Curve Curve
y: Double

rms(x,y) x: Vector Double Root mean square value.


x: Curve
y: Vector
y: Curve

sign(x) Double Double Sign.


Vector Vector
Curve Curve

sin(x) Double Double Sine.


Vector Vector
Curve Curve

sinh(x) Double Double Hyperbolic sine.


Vector Vector
Curve Curve

sqrt(x) Double Double Square root.


Vector Vector
Curve Curve

tan(x) Double Double Tangent.


Vector Vector
Curve Curve

tangent(c,v) x: Vector Vector Creates a tangent line in the point v on the curve c, or
tangent(x,y,v) y: Vector Curve the curve defined by the vectors x and y.
c: Curve
v: Double

tanh(x) Double Double Hyperbolic tangent.


Vector Vector
Curve Curve

Sentaurus Visual User Guide 159


H-2013.03
C: Available Formulas
Available Functions

Table 26 Available functions


Function Arguments Returns Description

vecmax(x) x: Vector Double Returns the maximum y-value of a curve, or the


vecmax(c) c: Curve maximum value of a vector.

vecmin(x) x: Vector Double Returns the minimum y-value of a curve, or the


vecmin(c) c: Curve minimum value of a vector.

vecvalx(x,y,v) x: Vector Double Returns the x-value when y=v of a curve.


vecvalx(c,v) y: Vector
c: Curve
v: Double

vecvaly(x,y,v) x: Vector Double Returns the y-value when x=v of a curve.


vecvaly(c,v) y: Vector
c: Curve
v: Double

veczero(x,y) x: Vector Double Returns the x-value when y=0 of a curve.


veczero(c) y: Vector
c: Curve

160 Sentaurus Visual User Guide


H-2013.03
APPENDIX D Inspect Support in Sentaurus
Visual

This appendix provides information about the level of support for


running Inspect scripts in Sentaurus Visual.

Fully Supported Commands


The following Inspect commands are fully supported in this version of Sentaurus Visual:
■ load_library
■ ft_scalar
■ proj_getDataSet
■ proj_getList
■ proj_getNodeList
■ proj_load
■ proj_unload
■ cv_create
■ cv_createDS
■ cv_createFromScript
■ cv_createWithFormula
■ cv_delete
■ cv_display
■ cv_logScale
■ cv_log10Scale
■ cv_split
■ cv_split_disc
■ cv_lineColor
■ cv_lineStyle
■ gr_createLabel
■ gr_mappedAxis
■ gr_setGridAttr

Sentaurus Visual User Guide 161


H-2013.03
D: Inspect Support in Sentaurus Visual
Partially Supported Commands

■ cv_getVals
■ cv_getValsX
■ cv_getValsY
■ cv_getXaxis
■ cv_getYaxis
■ cv_printVals
■ cv_abs
■ f_Gamma
■ f_gm
■ f_IDSS
■ f_KP
■ f_Ron
■ f_Rout
■ f_TetaG
■ f_VT
■ cv_compute
■ cv_getZero
■ macro_define
■ script_exit
■ script_sleep
■ gr_formatAxis
■ gr_precision
■ gr_setLegend
■ gr_setLegendPos

Partially Supported Commands


Sentaurus Visual only partially supports the Inspect commands listed in Table 27.

Table 27 Partially supported Inspect commands


Command Limitations

cv_renameCurve Works only if the curve is not displayed.

cv_set_interpol Works only if the curve is displayed.

162 Sentaurus Visual User Guide


H-2013.03
D: Inspect Support in Sentaurus Visual
Not Supported Commands

Table 27 Partially supported Inspect commands


Command Limitations

cv_setCurveAttr Cannot set color and width of the marker outline.


Cannot set the fill color of the marker.
Triangle marker is not available.

gr_setAxisAttr Cannot set color and width of the axis line.


Cannot set number of secondary ticks and angle at which the tick labels are
drawn.

gr_setGeneralAttr Only background color can be set.

gr_setLegendAttr Cannot set frame color, width position, and anchor.

gr_setTitleAttr Cannot set title justification.

script_break Suspends the script, displaying a message.

Not Supported Commands


The following Inspect commands are not supported in this version of Sentaurus Visual:
■ cv_write
■ fi_writeBitmap
■ fi_writeEps
■ fi_writePs
■ graph_load
■ graph_write
■ param_load
■ param_write
■ proj_write
■ gb_setpreferences
■ gr_deleteLabel
■ cv_delPts
■ cv_inv
■ cv_reset
■ f_hideInternalCurves
■ f_showInternalCurves
■ f_VT1
■ f_VT2

Sentaurus Visual User Guide 163


H-2013.03
D: Inspect Support in Sentaurus Visual
Script Library Support

Script Library Support


This section explains the support Sentaurus Visual provides for different Inspect script
libraries.

Extraction Library
All the commands from this library are fully supported only if they are calculated over
displayed curves:
■ ExtractEarlyV
■ ExtractGm
■ ExtractGmb
■ ExtractIoff
■ ExtractMax
■ ExtractRon
■ ExtractSS
■ ExtractValue
■ ExtractVtgm
■ ExtractVtgmb
■ ExtractVti

If the curve is created but not displayed, the result will be the same for all commands except
ExtractIoff because the interpolation will be linear not logarithmic.

Curve Comparison Library


Both commands generate a new curve with specific visual properties of the marker, which are
not necessarily the same as in Inspect, that is, there is a visual difference:
■ cvcmp_CompareTwoCurves
■ cvcmp_DeltaTwoCurves

164 Sentaurus Visual User Guide


H-2013.03
D: Inspect Support in Sentaurus Visual
Script Library Support

The extend Library

Partially Supported Commands

Sentaurus Visual only partially supports the commands listed in Table 28.

Table 28 Partially supported commands of extend library


Command Limitations

cv_autoIncrStyle Depends on cv_setCurveAttr, which is not fully supported. For more


cv_disp details on the limitations of cv_setCurveAttr, see Table 27 on
page 162.

cv_nextSymbol Triangle marker is not available.


cv_setSymbol

Not Supported Commands

The following commands are not supported in this version of Sentaurus Visual:
■ cv_exists
■ cv_resetFillColor
■ cv_setFillColor
■ ds_getValue
■ proj_check
■ proj_datasetExists
■ proj_getGroups
■ proj_groupExists

Sentaurus Visual User Guide 165


H-2013.03
D: Inspect Support in Sentaurus Visual
Script Library Support

166 Sentaurus Visual User Guide


H-2013.03
APPENDIX E Extraction Library

This appendix provides information about the procedures of the


extraction library.

The procedures of the extraction library are used to extract various parameters from the I–V
characteristics of various device types. The extraction library takes I–V data in the form of two
Tcl lists: one list contains the voltages points and the other list contains the corresponding
current values.

The extraction library is loaded with the command:


load_library extract

Syntax Conventions
The extraction library uses a unique namespace identifier (ext::) for its procedures. All
procedures and variables associated with this library are called with the namespace identifier
prepended, for example:
ext::<proc_name>

The extraction library uses an input parser that accepts arguments of the form:
keyword= <value>

NOTE You can insert whitespace between the keyword and the equal sign, for
example, keyword = <value>. Omitting the whitespace between the
equal sign and the value field will result in a failure if the value is a de-
referenced Tcl variable. Use keyword= $val (not keyword=$val).

The parser accepts arguments in any order. For some arguments, default values are predefined.
Such arguments may be omitted. If arguments for which no defaults are predefined are omitted,
the procedure will exit with an error message. In addition, unrecognized arguments result in an
error message.

Instead of using the standard Tcl method of using the return value of the procedure to pass
results back to the calling program, the extraction library uses a passing-by-reference method
to return the results to the calling program. The procedure keyword out is used to pass the
results back to the calling program:
out= <var_name>, <list_name>, or <array_name>

Sentaurus Visual User Guide 167


H-2013.03
E: Extraction Library
Help for Procedures

The following conventions are used for the syntax of Tcl commands:
■ Angle brackets – <> – indicate text that must be replaced, but they are not part of the
syntax. In particular, the following type identifiers are used:
• <r>: Replace with a real number, or a de-referenced Tcl variable that evaluates to a real
number. For example: $val.
• <i>: Replace with an integer, or a de-referenced Tcl variable that evaluates to an
integer. For example: $i.
• <string>: Replace with a string, or a de-referenced Tcl variable that evaluates to a
string. For example: $file.
• <list_of_r>: Replace with a list of real numbers, or a de-referenced Tcl variable that
evaluates to a list of real numbers. For example: $values.
• <list_of_strings>: Replace with a list of strings, or a de-referenced Tcl variable
that evaluates to a list of strings. For example: $files.
• <var_name>: Replace with the name of a local Tcl variable.
For example: val (not $val).
• <list_name>: Replace with the name of a local Tcl list.
For example: values (not $values).
• <array_name>: Replace with the name of a local Tcl array.
For example: myarray (not $myarray).
■ Brackets – [] – indicate that the argument is optional, but they are not part of the syntax.
■ A vertical bar – | – indicates options, only one of which can be specified.

Help for Procedures


To request help on a specific procedure, set the help keyword to 1:
ext::<proc_name> help= 1

If this command is included in a Sentaurus Visual file, the help information is printed to the
run-time output file of the corresponding Sentaurus Visual node. You also can type this
command in the Tcl Command panel of the graphical user interface, in which case, the help
information is displayed in a terminal window.

168 Sentaurus Visual User Guide


H-2013.03
E: Extraction Library
Output of Procedures

Output of Procedures
As discussed in Syntax Conventions on page 167, all procedures of the extraction library pass
the results back to the calling program by storing the results in a Tcl variable. The name of this
Tcl variable is specified as the value of the out keyword. All procedures beginning with
ext::Extract extract a device parameter. For example, the procedure ext::ExtractVtgm
extracts the threshold voltage:
ext::ExtractVtgm out= Vt name= "Vtgm" v= $Vgs i= $absIds

Here, since out= Vt, the extracted threshold voltage is stored in the Tcl variable Vt.

All procedures of the extraction library beginning with ext::Extract pass the extracted
value to the Sentaurus Workbench Family Tree (if the name keyword differs from
"noprint"). The extracted quantity is displayed as a Sentaurus Workbench variable.

If name= "noprint", the extracted variable is not passed to the Sentaurus Workbench Family
Tree. If name= "out", the name of the variable specified by the out keyword also is used as
the name that appears in the Sentaurus Workbench Family Tree.

Here, since name= "Vtgm", the extracted threshold voltage value is displayed as the
Sentaurus Workbench variable Vtgm.

All procedures also print several messages to the Sentaurus Visual output file (with the
extension .out). The amount of information printed in the output file depends on the
information level specified by the procedure ext::SetInfoDef. Irrespective of the specified
information level, the extracted value is printed in the output file by the procedures beginning
with ext::Extract.

For example, if the information level is set to 0 for all procedures:


ext::SetInfoDef 0
ext::ExtractVtgm out= Vt name= "Vtgm" v= $Vgs i= $absIds

the following message is printed in the Sentaurus Visual output file:


DOE: Vtgm 0.316

If the information level for the procedure ext::ExtractVtgm is set to 1 using the info
keyword:
ext::SetInfoDef 0
ext::ExtractVtgm out= Vt name= "Vtgm" v= $Vgs i= $Ids vo= 1e-4 info= 1

Sentaurus Visual User Guide 169


H-2013.03
E: Extraction Library
Output of Procedures

the following message is printed in the Sentaurus Visual output file:


DOE: Vtgm 0.316
Vtgm (Max gm method): 0.316

If the extraction library procedure cannot extract the parameter, the parameter is set to the
character ‘x’ and a message is printed in the output file. In the case of ext::ExtractVtgm,
the following message is printed:
DOE: Vtgm x
ext::ExtractVtgm: Vtgm not found!

If there are errors in an extraction library procedure, Sentaurus Visual exits and an error
message is printed in the Sentaurus Visual error file (with the extension .err).

170 Sentaurus Visual User Guide


H-2013.03
E: Extraction Library
ext::AbsList

ext::AbsList
Computes the absolute value of all elements of a list.

Syntax
ext::AbsList out= <list_of_r> x= <list_of_r> \
[info= 0 | 1 | 2 | 3] [help= 0 | 1]

Argument Description

out Variable name to store the list of absolute values.


(List of real numbers, no default)

x Input list. (List of real numbers, no default)

info Sets local info level. Default: 0

help Prints a help screen if set to 1. Default: 0

Returns

None.

Example
load_file IdVg_des.plt -name DC
set Ids [get_variable_data "drain TotalCurrent" -dataset DC]
puts "Ids= $Ids"
ext::AbsList out= Idabs x= $Ids
puts "Idabs= $Idabs"
#-> Ids= -1.42055e-08 -3.64403e-08 -9.11723e-08 ... -3.6233e-5
#-> Idabs= 1.42055e-08 3.64403e-08 9.11723e-08 ... 3.6233e-5

Sentaurus Visual User Guide 171


H-2013.03
E: Extraction Library
ext::DiffList

ext::DiffList
Computes the first-order derivative of a curve. The curve is represented by two Tcl lists: one
contains the x-values (independent variable) and one contains the corresponding y-values
(dependent variable).

NOTE The procedure ext::DiffList uses the central finite difference


method to compute the derivative at a data point. This method uses the
x- and y-values of two adjacent points, which are computed internally
by the procedure using either linear or logarithmic interpolation.

Syntax
ext::DiffList out= <var_name> x= <list_of_r> y= <list_of_r> \
[yLog= 0 | 1] [xLog= 0 | 1] [info= 0 | 1 | 2 | 3] [help= 0 | 1]

Argument Description

out Variable name to store the first-order derivative.

x List containing the x-values (independent variable).


(List of real numbers, no default)

y List containing the y-values (dependent variable).


(List of real numbers, no default)

yLog Selects linear (0) or logarithmic (1) interpolation for y-axis values for
computing the derivative. Default: 0

xLog Selects linear (0) or logarithmic (1) interpolation for x-axis values for
computing the derivative. Default: 0

info Sets local info level. Default: 0

help Prints a help screen if set to 1. Default: 0

Returns

None.

172 Sentaurus Visual User Guide


H-2013.03
E: Extraction Library
ext::DiffList

Example
set Xs [list 1 1.5 2.5 6 7 7.5 8.5 8.7 8.8 10]
# Generate Ys using y=exp(x)+1
set Ys [list]
foreach x $Xs {
lappend Ys [expr exp($x) + 1]
}
puts "y= $Ys"
# For exponential function, use logarithmic interpolation for y-axis values
set yLog 1
ext::DiffList out= dydx x= $Xs y= $Ys yLog= $yLog
puts "dydx= $dydx"
#-> y= 3.718 5.481 13.182 ... 22027.465
#-> dydx= 2.887 4.532 12.231 ... 22012.323

Sentaurus Visual User Guide 173


H-2013.03
E: Extraction Library
ext::ExtractBVi

ext::ExtractBVi
Extracts the breakdown voltage from an I–V curve. The breakdown voltage is defined as the
bias voltage at which the current reaches a certain level. The curve is represented by two Tcl
lists: one contains the voltage points and one contains the corresponding current values.

Syntax
ext::ExtractBVi out= <var_name> v= <list_of_r> i= <list_of_r> io= <r> \
[name= <string>] [f= <string>] [info= 0 | 1 | 2 | 3] [help= 0 | 1]

Argument Description

out Variable name to store the value of the breakdown voltage.

v List containing the voltage values. (List of real numbers, no default)

i List containing the current values. (List of real numbers, no default)

io Current level. (Real number, no default)

name Name of the extracted variable to appear in the Sentaurus Workbench Family
Tree.
NOTE If name= "noprint", Sentaurus Workbench extraction is
suppressed.
NOTE If name= "out", the name of the variable specified by the out
keyword also is used as the name that appears in the Sentaurus Workbench
Family Tree.
(String, default: "BVi")

f Format string used to write the extracted variable to the Sentaurus


Workbench Family Tree. (String, default: "%.3e")

info Sets local info level. Default: 0

help Prints a help screen if set to 1. Default: 0

Returns

None.

Example
load_file IcVc_des.plt -name BV
set Vcs [get_variable_data "collector InnerVoltage" -dataset BV]
set Ics [get_variable_data "collector TotalCurrent" -dataset BV]
ext::ExtractBVi out= BVcboi name= "out" v= $Vcs i= $Ics io= 1e-12
puts "BVi is [format %.3e $BVcbov] V"
#-> BVi is 9.199e+00 V

174 Sentaurus Visual User Guide


H-2013.03
E: Extraction Library
ext::ExtractBVv

ext::ExtractBVv
Extracts the breakdown voltage from an I–V curve. The breakdown voltage is defined as the
maximum voltage that can be applied to a contact. The curve is represented by two Tcl lists:
one contains the voltage points and one contains the corresponding current values.

Syntax
ext::ExtractBVv out= <var_name> v= <list_of_r> i= <list_of_r> sign= <+1 | -1> \
[name= <string>] [f= <string>] [info= 0 | 1 | 2 | 3] [help= 0 | 1]

Argument Description

out Variable name to store the value of the breakdown voltage.

v List containing the voltage values. (List of real numbers, no default)

i List containing the current values. (List of real numbers, no default)

sign Distinguishes different types of bipolar transistor:


+1: n-p-n transistor
-1: p-n-p transistor
In general, set sign= -1 if the breakdown occurs at a negative bias.
(No default)

name Name of the extracted variable to appear in the Sentaurus Workbench Family
Tree.
NOTE If name= "noprint", Sentaurus Workbench extraction is
suppressed.
NOTE If name= "out", the name of the variable specified by the out
keyword also is used as the name that appears in the Sentaurus Workbench
Family Tree.
(String, default: "BVv")

f Format string used to write the extracted variable to the Sentaurus


Workbench Family Tree. (String, default: "%.2e")

info Sets local info level. Default: 0

help Prints a help screen if set to 1. Default: 0

Returns

None.

Sentaurus Visual User Guide 175


H-2013.03
E: Extraction Library
ext::ExtractEarlyV

Example
load_file IcVc_des.plt -name BV
set Vcs [get_variable_data "collector InnerVoltage" -dataset BV]
set Ics [get_variable_data "collector TotalCurrent" -dataset BV]
ext::ExtractBVv out= BVcbov name= "out" v= $Vcs i= $Ics sign= 1
puts "BVv is [format %.2e $BVcbov] V"
#-> BVv is 9.20e+00 V

ext::ExtractEarlyV
Extracts the Early voltage from an Ic–Vce curve. The curve is represented by two Tcl lists: one
contains the voltage points and one contains the corresponding current values.

Syntax
ext::ExtractEarlyV out= <var_name> v= <list_of_r> i= <list_of_r> vo= <r> \
[name= <string>] [f= <string>] [info= 0 | 1 | 2 | 3] [help= 0 | 1]

Argument Description

out Variable name to store the value of the Early voltage.

v List containing the voltage values. (List of real numbers, no default)

i List containing the collector current values. (List of real numbers, no default)

vo Bias point at which the slope of the Ic–Vce curve is determined for the
computation of the Early voltage. (Real number, no default)

name Name of the extracted variable to appear in the Sentaurus Workbench Family
Tree.
NOTE If name= "noprint", Sentaurus Workbench extraction is
suppressed.
NOTE If name= "out", the name of the variable specified by the out
keyword also is used as the name that appears in the Sentaurus Workbench
Family Tree.
(String, default: "Va")

f Format string used to write the extracted variable to the Sentaurus


Workbench Family Tree. (String, default: "%.3e")

info Sets local info level. Default: 0

help Prints a help screen if set to 1. Default: 0

176 Sentaurus Visual User Guide


H-2013.03
E: Extraction Library
ext::ExtractEarlyV

Returns

None.

Example
# Extract Early voltage for a p-n-p bipolar transistor
load_file IcVc_des.plt -name IcVce
set Vcs [get_variable_data "collector OuterVoltage" -dataset IcVce]
set Ics [get_variable_data "collector TotalCurrent" -dataset IcVce]
ext::AbsList out= absIcs x= $Ics ;# Compute absolute value of collector current
ext::ExtractEarlyV out= Va name= "out" v= $Vcs i= $absIcs vo= -1.25
puts "Early Voltage is [format %.3e $Va] V"
#-> Early Voltage is 1.897e+01 V

Sentaurus Visual User Guide 177


H-2013.03
E: Extraction Library
ext::ExtractExtremum

ext::ExtractExtremum
Extracts the maximum or minimum of a curve. The curve is represented by two Tcl lists: one
contains the x-values and one contains the corresponding y-values.

Syntax
ext::ExtractExtremum out= <var_name> x= <list_of_r> y= <list_of_r> \
extremum= "min" | "max" [name= <string>] [f= <string>] \
[info= 0 | 1 | 2 | 3] [help= 0 | 1]

Argument Description

out Variable name to store the maximum or minimum of the curve.

x List containing the x-values. (List of real numbers, no default)

y List containing the y-values. (List of real numbers, no default)

extremum Selects whether to extract the minimum ("min") or maximum ("max") of


a curve. (String, no default)

name Name of the extracted variable to appear in the Sentaurus Workbench Family
Tree.
NOTE If name= "noprint", Sentaurus Workbench extraction is
suppressed.
NOTE If name= "out", the name of the variable specified by the out
keyword also is used as the name that appears in the Sentaurus Workbench
Family Tree.
(String, default: "out")

f Format string used to write the extracted variable to the Sentaurus


Workbench Family Tree. (String, default: "%.3e")

info Sets local info level. Default: 0

help Prints a help screen if set to 1. Default: 0

Returns

None.

Example
load_file IdVg_des.plt -name DC
set Vgs [get_variable_data "gate OuterVoltage" -dataset DC]
set Ids [get_variable_data "drain TotalCurrent" -dataset DC]

178 Sentaurus Visual User Guide


H-2013.03
E: Extraction Library
ext::ExtractGm

ext::ExtractExtremum out= IdSat name= "out" x= $Vgs y= $Ids extremum= "max"


puts "IdSat is [format %.3e $IdSat] A/um"
#-> IdSat is 4.028e-4 A/um

ext::ExtractGm
Extracts the maximum transconductance from an Id–Vgs curve. The transconductance g m is
defined as:

dI d
gm = (1)
d Vg

The gate bias at which the maximum transconductance occurs is computed using parabolic
interpolation. The curve is represented by two Tcl lists: one contains the voltage points and one
contains the corresponding current values.

Syntax
ext::ExtractGm out= <var_name> v= <list_of_r> i= <list_of_r> \
[name= <string>] [f= <string>] [info= 0 | 1 | 2 | 3] [help= 0 | 1]

Argument Description

out Variable name to store the value of the maximum transconductance.

v List containing the gate voltage values. (List of real numbers, no default)

i List containing the drain current values. (List of real numbers, no default)

name Name of the extracted variable to appear in the Sentaurus Workbench Family
Tree.
NOTE If name= "noprint", Sentaurus Workbench extraction is
suppressed.
NOTE If name= "out", the name of the variable specified by the out
keyword also is used as the name that appears in the Sentaurus Workbench
Family Tree.
(String, default: "gm")

f Format string used to write the extracted variable to the Sentaurus


Workbench Family Tree. (String, default: "%.3e")

info Sets local info level. Default: 0

help Prints a help screen if set to 1. Default: 0

Sentaurus Visual User Guide 179


H-2013.03
E: Extraction Library
ext::ExtractGm

Returns

None.

Example
# Extract gm for a PMOSFET
load_file IdVg_des.plt -name DC
set Vgs [get_variable_data "gate OuterVoltage" -dataset DC]
set Ids [get_variable_data "drain TotalCurrent" -dataset DC]
ext::AbsList out= absIds x= $Ids
ext::ExtractGm out= gm name= "out" v= $Vgs i= $absIds
puts "gm is [format %.3e $gm] S/um"
#-> gm is -6.780e-05 S/um

180 Sentaurus Visual User Guide


H-2013.03
E: Extraction Library
ext::ExtractIoff

ext::ExtractIoff
Extracts the drain leakage current at the specified gate voltage from an Id–Vgs curve (computed
for a high drain bias). The curve is represented by two Tcl lists: one contains the voltage points
and one contains the corresponding current values. The drain leakage current is extracted at a
small nonzero gate voltage value to avoid noise.

Syntax
ext::ExtractIoff out= <var_name> v= <list_of_r> i= <list_of_r> vo= <r> \
[log10= 0 | 1] [name= <string>] [f= <string>] \
[info= 0 | 1 | 2 | 3] [help= 0 | 1]

Argument Description

out Variable name to store the value of the drain leakage current.

v List containing the gate voltage values. (List of real numbers, no default)

i List containing the drain current values. (List of real numbers, no default)

vo Gate voltage at which the drain leakage current is extracted. It is


recommended to use a small but nonzero value, such as 0.1 mV for an NMOS
device and –0.1 mV for a PMOS device. (Real number, no default)

log10 Procedure returns log10(Ioff) if set to 1. Otherwise, the procedure returns Ioff.
Default: 0

name Name of the extracted variable to appear in the Sentaurus Workbench Family
Tree.
NOTE If name= "noprint", Sentaurus Workbench extraction is
suppressed.
NOTE If name= "out", the name of the variable specified by the out
keyword also is used as the name that appears in the Sentaurus Workbench
Family Tree.
(String, default: "Ioff")

f Format string used to write the extracted variable to the Sentaurus


Workbench Family Tree. (String, default: "%.3e")

info Sets local info level. Default: 0

help Prints a help screen if set to 1. Default: 0

Returns

None.

Sentaurus Visual User Guide 181


H-2013.03
E: Extraction Library
ext::ExtractIoff

Example
load_file IdVg_des.plt -name DC
set Vgs [get_variable_data "gate OuterVoltage" -dataset DC]
set Ids [get_variable_data "drain TotalCurrent" -dataset DC]
ext::ExtractIoff out= Ioff name= "out" v= $Vgs i= $Ids vo= 1e-4 log10= 0
puts "Ioff is [format %.3e $Ioff] A/um"
ext::ExtractIoff out= log10Ioff name= "out" v= $Vgs i= $Ids vo= 1e-4 log10= 1
puts "Log10Ioff is [format %.3e $log10Ioff]"
#-> Ioff is 1.151e-7 A/um
#-> Log10Ioff is -6.939e+00

182 Sentaurus Visual User Guide


H-2013.03
E: Extraction Library
ext::ExtractRdiff

ext::ExtractRdiff
Extracts the differential resistance R diff from an I–V curve at a specified voltage. R diff is
defined as:

dV
R diff = (2)
dI

The curve is represented by two Tcl lists: one contains the voltage points and one contains the
corresponding current values.

Syntax
ext::ExtractRdiff out= <var_name> v= <list_of_r> i= <list_of_r> vo= <r> \
[yLog= 0 | 1] [xLog= 0 | 1] [name= <string>] [f= <string>] \
[info= 0 | 1 | 2 | 3] [help= 0 | 1]

Argument Description

out Variable name to store the value of the differential resistance.

v List containing the voltage values. (List of real numbers, no default)

i List containing the current values. (List of real numbers, no default)

vo Voltage at which the differential resistance is extracted.

yLog Selects linear (0) or logarithmic (1) interpolation for y-axis values for
computing the derivative. See note in ext::DiffList on page 172.
Default: 0

xLog Selects linear (0) or logarithmic (1) interpolation for x-axis values for
computing the derivative. See note in ext::DiffList on page 172.
Default: 0

name Name of the extracted variable to appear in the Sentaurus Workbench Family
Tree.
NOTE If name= "noprint", Sentaurus Workbench extraction is
suppressed.
NOTE If name= "out", the name of the variable specified by the out
keyword also is used as the name that appears in the Sentaurus Workbench
Family Tree.
(String, default: "Rdiff")

f Format string used to write the extracted variable to the Sentaurus


Workbench Family Tree. (String, default: "%.3f")

info Sets local info level. Default: 0

help Prints a help screen if set to 1. Default: 0

Sentaurus Visual User Guide 183


H-2013.03
E: Extraction Library
ext::ExtractRdiff

Returns

None.

Example
# Extract on-state output resistance of a p-n-p bipolar transistor
load_file IcVc_des.plt -name IcVce
set Vcs [get_variable_data "collector OuterVoltage" -dataset IcVce]
set Ics [get_variable_data "collector TotalCurrent" -dataset IcVce]
ext::AbsList out= absIcs x= $Ics
ext::ExtractRdiff out= Ron name= "out" v= $Vcs i= $absIcs vo= -1.25
puts "Ron is [format %.3e $Ron] Ohm-um"
#-> Ron is 38077.106 Ohm um

184 Sentaurus Visual User Guide


H-2013.03
E: Extraction Library
ext::ExtractSS

ext::ExtractSS
Extracts the subthreshold voltage swing, for a given gate voltage Vgo, from an Id–Vgs curve. The
subthreshold voltage swing (SS) is defined as:
1000
SS = ---------------------- (3)
d
log I d
d Vg

where Vg is given in V, Id is given in A/μm or A, and SS is given in mV/decade. The curve is


represented by two Tcl lists: one contains the voltage points and one contains the
corresponding current values.

NOTE The slope may be noisy at the beginning of the curve or at very low
current levels. Better results are often obtained when setting Vgo to a
small but nonzero value.

Syntax
ext::ExtractSS out= <var_name> v= <list_of_r> i= <list_of_r> vo= <r> \
[name= <string>] [f= <string>] [info= 0 | 1 | 2 | 3] [help= 0 | 1]

Argument Description

out Variable name to store the value of the subthreshold voltage swing.

v List containing the gate voltage values. (List of real numbers, no default)

i List containing the absolute value of the drain currents.


(List of real numbers, no default)

vo Gate voltage at which the slope is extracted. It should be a value well below
the threshold voltage. (Real number, no default)

name Name of the extracted variable to appear in the Sentaurus Workbench Family
Tree.
NOTE If name= "noprint", Sentaurus Workbench extraction is
suppressed.
NOTE If name= "out", the name of the variable specified by the out
keyword also is used as the name that appears in the Sentaurus Workbench
Family Tree.
(String, default: "SS")

f Format string used to write the extracted variable to the Sentaurus


Workbench Family Tree. (String, default: "%.3f")

info Sets local info level. Default: 0

help Prints a help screen if set to 1. Default: 0

Sentaurus Visual User Guide 185


H-2013.03
E: Extraction Library
ext::ExtractSS

Returns

None.

Example
set Vgo 1e-2
load_file IdVg_des.plt -name DC
set Vgs [get_variable_data "gate OuterVoltage" -dataset DC]
set Ids [get_variable_data "drain TotalCurrent" -dataset DC]
ext::ExtractSS out= SS name= "out" v= $Vgs i= $Ids vo= $Vgo
puts "SS (subthreshold voltage swing) is [format %.3f $SS] mV/dec"
#-> SS (subthreshold voltage swing) is 89.555 mV/dec

186 Sentaurus Visual User Guide


H-2013.03
E: Extraction Library
ext::ExtractValue

ext::ExtractValue
For a given target x-value, the procedure extracts the (first) corresponding interpolated y-value
in a curve. The curve is represented by two Tcl lists: one contains the x-values and one contains
the corresponding y-values.

NOTE To find the interpolated x-value for a given y-value, swap the arguments
x and y.

Syntax
ext::ExtractValue out= <var_name> x= <list_of_r> y= <list_of_r> xo= <r> \
[yLog= 0 | 1] [xLog= 0 | 1] [name= <string>] [f= <string>] \
[info= 0 | 1 | 2 | 3] [help= 0 | 1]

Argument Description

out Variable name to store the first found y-value.

x List containing the x-values. (List of real numbers, no default)

y List containing the y-values. (List of real numbers, no default)

xo Target x-value. (Real number, no default)

yLog Selects linear (0) or logarithmic (1) interpolation for y-axis values.
Default: 0

xLog Selects linear (0) or logarithmic (1) interpolation for x-axis values.
Default: 0

name Name of the extracted variable to appear in the Sentaurus Workbench Family
Tree.
NOTE If name= "noprint", Sentaurus Workbench extraction is
suppressed.
NOTE If name= "out", the name of the variable specified by the out
keyword also is used as the name that appears in the Sentaurus Workbench
Family Tree.
(String, default: "out")

f Format string used to write the extracted variable to the Sentaurus


Workbench Family Tree. (String, default: "%.3e")

info Sets local info level. Default: 0

help Prints a help screen if set to 1. Default: 0

Sentaurus Visual User Guide 187


H-2013.03
E: Extraction Library
ext::ExtractValue

Returns

None.

Example
load_file ac_des.plt -name AC
set Vgs [get_variable_data "v(g)" -dataset AC]
set Cggs [get_variable_data "c(g,g)" -dataset AC]
ext::ExtractValue out= CggP name= "out" x= $Vgs y= $Cggs xo= 1.2
puts "CggP is [format %.3e $CggP]"
#-> CggP is 1.426e-15

188 Sentaurus Visual User Guide


H-2013.03
E: Extraction Library
ext::ExtractVtgm

ext::ExtractVtgm
Extracts the threshold voltage from an Id–Vgs curve using the maximum transconductance
method. The threshold voltage is defined as the gate–voltage axis intercept of the tangent line
at the maximum transconductance g m point. The gate bias at which the maximum
transconductance occurs is computed using parabolic interpolation. The curve is represented
by two Tcl lists: one contains the voltage points and one contains the corresponding current
values.

Syntax
ext::ExtractVtgm out= <var_name> v= <list_of_r> i= <list_of_r> \
[name= <string>] [f= <string>] [info= 0 | 1 | 2 | 3] [help= 0 | 1]

Argument Description

out Variable name to store the value of the threshold voltage.

v List containing the gate voltage values. (List of real numbers, no default)

i List containing the drain current values. (List of real numbers, no default)

name Name of the extracted variable to appear in the Sentaurus Workbench Family
Tree.
NOTE If name= "noprint", Sentaurus Workbench extraction is
suppressed.
NOTE If name= "out", the name of the variable specified by the out
keyword also is used as the name that appears in the Sentaurus Workbench
Family Tree.
(String, default: "Vtgm")

f Format string used to write the extracted variable to the Sentaurus


Workbench Family Tree. (String, default: "%.3f")

info Sets local info level. Default: 0

help Prints a help screen if set to 1. Default: 0

Returns

None.

Sentaurus Visual User Guide 189


H-2013.03
E: Extraction Library
ext::ExtractVtgm

Example
# Extract Vtgm for a p-MOSFET
load_file IdVg_des.plt -name DC
set Vgs [get_variable_data "gate OuterVoltage" -dataset DC]
set Ids [get_variable_data "drain TotalCurrent" -dataset DC]
ext::AbsList out= absIds x= $Ids
ext::ExtractVtgm out= Vtgm name= "out" v= $Vgs i= $absIds
puts "Vt (Max gm method) is [format %.3f $Vtgm] V"
#-> Vt (Max gm method) is -0.232 V

190 Sentaurus Visual User Guide


H-2013.03
E: Extraction Library
ext::ExtractVti

ext::ExtractVti
Extracts the threshold voltage for a given subthreshold current level from an Id–Vgs curve. The
threshold voltage is defined as the gate voltage at which the drain current reaches the current
level. The curve is represented by two Tcl lists: one contains the voltage points and one
contains the corresponding current values.

Syntax
ext::ExtractVti out= <var_name> v= <list_of_r> i= <list_of_r> io= <r> \
[name= <string>] [f= <string>] [info= 0 | 1 | 2 | 3] [help= 0 | 1]

Argument Description

out Variable name to store the value of the threshold voltage.

v List containing the gate voltage values. (List of real numbers, no default)

i List containing the drain current values. (List of real numbers, no default)

io Subthreshold current level. (Real number, no default)

name Name of the extracted variable to appear in the Sentaurus Workbench Family
Tree.
NOTE If name= "noprint", Sentaurus Workbench extraction is
suppressed.
NOTE If name= "out", the name of the variable specified by the out
keyword also is used as the name that appears in the Sentaurus Workbench
Family Tree.
(String, default: "Vti")

f Format string used to write the extracted variable to the Sentaurus


Workbench Family Tree. (String, default: "%.3f")

info Sets local info level. Default: 0

help Prints a help screen if set to 1. Default: 0

Returns

None.

Sentaurus Visual User Guide 191


H-2013.03
E: Extraction Library
ext::ExtractVti

Example
load_file IdVg_des.plt -name DC
set Vgs [get_variable_data "gate OuterVoltage" -dataset DC]
set Ids [get_variable_data "drain TotalCurrent" -dataset DC]
ext::ExtractVti out= Vti name= "out" v= $Vgs i= $Ids io= 1e-7
puts "Vti (Vg at Io= 1e-7 A/um) is [format %.3f $Vti] V"
#-> Vti (Vg at Io= 1e-7 A/um) is 0.282 V

192 Sentaurus Visual User Guide


H-2013.03
E: Extraction Library
ext::FilterTable

ext::FilterTable
Processes data from the Sentaurus Workbench Family Tree for the purpose of creating a graph
of one Sentaurus Workbench parameter (y-values) as a function of another Sentaurus
Workbench parameter (x-values) for a certain subset of experiments. The data is specified in
the form of two lists identifying the x- and y-values, which are preprocessed to create a graph.
The condition that an experiment must fulfill to be included in the graph is specified using a
pair of target values and a corresponding list of Sentaurus Workbench parameters.

Syntax
ext::FilterTable out= <array_name> x= <list_of_r> y= <list_of_r> \
conditions= <array_name> ncond= <i> [info= 0 | 1 | 2 | 3] [help= 0 | 1]

Argument Description

out Name of an array to store the results. The array has one string-valued index.
The index contains the elements X and Y. The values of the X element are a
subset of a list of values, specified using the keyword x. These values are in
ascending order. The values of the Y element are a subset of a list of values,
specified using the keyword y. All entries of the ‘y’-list that contain a
nonnumeric value are ignored. (Array name, no default)

x List containing the values of a Sentaurus Workbench parameter to be


preprocessed: the x-values. (List of real numbers, no default)

y List containing the values of a Sentaurus Workbench parameter to be


preprocessed: the y-values. (List of real numbers, no default)

conditions Array with two indices. The string-indexed array contains the elements
"Target" and "Values". The value of the "Target" element
contains the required value of a Sentaurus Workbench parameter to be used
as a filter condition. The "Values" element contains the corresponding
value list of the Sentaurus Workbench parameter for all the experiments.
The second integer counter enumerates the conditions. The enumerations
start with 1. (Array name, no default)

ncond Number of conditions contained in the array specified using the keyword
conditions. (Integer, no default)
info Sets local info level. Default: 0

help Prints a help screen if set to 1. Default: 0

Returns

None.

Sentaurus Visual User Guide 193


H-2013.03
E: Extraction Library
ext::FilterTable

Example
# Plot Vt roll-off curve for PMOS under stress
set Types [list nMOS nMOS nMOS nMOS nMOS nMOS nMOS nMOS \
pMOS pMOS pMOS pMOS pMOS pMOS pMOS pMOS]
set Lgs [list 0.090 0.090 0.045 0.045 0.130 0.130 0.065 0.065 \
0.065 0.065 0.045 0.045 0.130 0.130 0.090 0.090]
set Stress [list no yes no yes no yes no yes \
no yes no yes no yes no yes]
set Vtgms [list 0.424 0.0374 0.313 0.263 0.414 0.364 0.408 0.358 \
-0.344 -0.294 -0.232 -0.182 x x -0.374 -0.324]
set Conditions(Target,1) "pMOS"
set Conditions(Values,1) $Types
set Conditions(Target,2) "yes"
set Conditions(Values,2) $Stress
ext::FilterTable out= LgVt x= $Lgs y= $Vtgms conditions= Conditions ncond= 2
create_variable -name Lg -dataset VtgmLg -values $LgVt(X)
create_variable -name Vtgm -dataset VtgmLg -values $LgVt(Y)
create_plot -1d -name Plot_VtRollOff
create_curve -name VtRollOff -dataset VtgmLg -axisX "Lg" -axisY "Vtgm"
puts "Lg= $LgVt(X)"
puts "Vtgm= $LgVt(Y)"
#-> Lg= 0.045 0.065 0.090
#-> Vtgm= -0.182 -0.294 -0.324

Usage under Sentaurus Workbench

In a Sentaurus Visual script, you can use the dynamic preprocessing feature of Sentaurus
Workbench @<parameter_name>:all@ to access a list of input parameters and extracted
values for all Sentaurus Workbench experiments. For example, the lists Types, Lgs, Stress,
and Vtgms in the above example are generated automatically as a result of the following
commands in the Sentaurus Visual script:
set Types [list @Type:all@]
set Lgs [list @lgate:all@]
set Stress [list @stress:all@]
set Vtgms [list @Vt:all@]

Here, the Tcl list Types contains, for all experiments, the values of the Sentaurus Workbench
input parameter Type, which for example takes on the values nMOS or pMOS, depending on
whether in this experiment an NMOS or a PMOS structure is created.

Similarly, the Tcl list Lgs contains, for all experiments, a ‘parallel’ list of values of another
Sentaurus Workbench input parameter, which for example contains the value of the gate length
of the given MOSFETs. The corresponding extracted parameter can be accessed in the same

194 Sentaurus Visual User Guide


H-2013.03
E: Extraction Library
ext::FilterTable

way. For example, the Tcl list Vtgms contains the extracted values for the threshold voltage for
each respective experiment.

NOTE The values in the various lists may or may not be numeric, and the
values may not necessarily be ordered.

The lists of x- and y-values, which will be processed (filtered) to create the graph, are specified
using the keywords x and y in the procedure ext::FilterTable. In the above example, the
lists of gate lengths (x= $Lgs) and Vtgm values (y= $Vtgms) are processed by
ext::FilterTable.

The keyword conditions controls the conditions an experiment must fulfill to be included in
the graph. The total number of conditions is specified by the keyword ncond. All the
conditions are specified in a string-indexed array using the keyword conditions. Each
condition is defined by both a target value and a corresponding list of Sentaurus Workbench
parameters. The target value is the required value of the parameter to be used as a filter
condition.

Each element of the string-indexed array has two indices. The first index is either "Target"
or "Values". The second index is the condition number. For each condition number:
■ The target value is specified using the "Target" element (element with first index named
"Target") of the array.
■ The corresponding list of Sentaurus Workbench parameters is specified using the
"Values" element (element with first index named "Values") of the array.

In the above example, the following code filters out the gate length (Lg) and threshold voltage
(Vtgm) values for PMOS devices (condition number 1). This condition is defined using the array
named Conditions:
set Conditions(Target,1) "pMOS"
set Conditions(Values,1) $Types

Here, the target value is "pMOS" and the corresponding list of Sentaurus Workbench
parameters is Types.

To filter out Lg and Vtgm values for devices under stress (condition number 2), the following
additional elements of the Conditions array are defined:
set Conditions(Target,2) "yes"
set Conditions(Values,2) $Stress

As a result of specifying both the conditions (conditions= Conditions ncond= 2), the
procedure ext::FilterTable filters out Lg and Vtgm values for PMOS devices under stress.

Sentaurus Visual User Guide 195


H-2013.03
E: Extraction Library
ext::FilterTable

In the above example, if both the conditions are defined in the Conditions array but the
number of conditions is set to 1 (conditions= Conditions ncond= 1), the procedure
filters out the gate length and Vtgm values for all the PMOS devices (with and without stress).
The second condition will not be taken into account.

The procedure returns an array (specified by the keyword out) with a one string-valued index.
The index contains the elements X and Y. The values of the X element are a subset of a list of
values, specified using the keyword x. These values are in ascending order. The values of the
Y element are a subset of a list of values, specified using the keyword y. These lists in the array
can be used to create a graph.

In the above example, the procedure returns the array LgVt (out= LgVt) consisting of a list
of Lg values and a list of Vtgm values for PMOS devices under stress. These lists can be used
directly to create the Vt roll-off curve:
create_variable -name Lg -dataset VtgmLg -values $LgVt(X)
create_variable -name Vtgm -dataset VtgmLg -values $LgVt(Y)
create_plot -1d -name Plot_VtRollOff
create_curve -name VtRollOff -dataset VtgmLg -axisX "Lg" -axisY "Vtgm"

As an additional feature, the ext::FilterTable procedure ignores all entries of the y-values
that contain a nonnumeric value. Use this feature to omit failed extractions. In the tool input
file that performs the extraction, for example, a previous Sentaurus Visual tool instance, use the
#set directive to preset the extracted variable to the value x:
#set Vtgm x
...
ext::ExtractVtgm out= Vtgm name= "out" v= $Vgs i= $absIds

The actual extraction process, here using the ext::ExtractVtgm procedure, overwrites the
preset value x with the actual value. However, if the extraction process fails, the preset value
persists.

The output of the above example shows that the Vtgm value (= x) for the 130 nm gate length
(Lg=0.130) PMOS device under stress is not included in the array LgVt. In addition, the gate
lengths in the array LgVt are in ascending order:
puts "Lg= $LgVt(X)"
puts "Vtgm= $LgVt(Y)"
#-> Lg= 0.045 0.065 0.090
#-> Vtgm= -0.182 -0.294 -0.324

196 Sentaurus Visual User Guide


H-2013.03
E: Extraction Library
ext::FindVals

ext::FindVals
For a given target x-value, this procedure extracts all of the corresponding interpolated y-values
in a curve. The curve is represented by two Tcl lists: one contains the x-values and one contains
the corresponding y-values.

NOTE To find the interpolated x-values for a given y-value, swap the
arguments x and y.

Syntax
ext::FindVals out= <var_name> x= <list_of_r> y= <list_of_r> xo= <r> \
[yLog= 0 | 1] [xLog= 0 | 1] [info= 0 | 1 | 2 | 3] [help= 0 | 1]

Argument Description

out Variable name to store the y-values.

x List containing the x-values. (List of real numbers, no default)

y List containing the y-values. (List of real numbers, no default)

xo Target x-value. (Real number, no default)

yLog Selects linear (0) or logarithmic (1) interpolation for y-axis values.
Default: 0

xLog Selects linear (0) or logarithmic (1) interpolation for x-axis values.
Default: 0

info Sets local info level. Default: 0

help Prints a help screen if set to 1. Default: 0

Returns

None.

Example
set Xs [list 0.0 1.0 2.0 3.0 4.0]
set Ys [list 0.0 2.0 4.0 2.0 0.0]
# Find all the elements of Xs corresponding to Ys= 2.0
ext::FindVals out= xos x= $Ys y= $Xs xo= 2.0
puts "The elements of Xs corresponding to Ys= 2.0 are $xos"

Sentaurus Visual User Guide 197


H-2013.03
E: Extraction Library
ext::FindVals

# Find the first element of Xs corresponding to Ys= 2.0


ext::ExtractValue out= xos name= "noprint" x= $Ys y= $Xs xo= 2.0
puts "The first element of Xs corresponding to Ys= 2.0 is $xos"
#-> The elements of Xs corresponding to Ys= 2.0 are 1.0 3.0
#-> The first element of Xs corresponding to Ys= 2.0 is 1.0

198 Sentaurus Visual User Guide


H-2013.03
E: Extraction Library
ext::LinTransList

ext::LinTransList
Applies a linear transformation to the elements of a list. The elements of the list are replaced
by the transformed values given by:
X' = X • m + b (4)

Syntax
ext::LinTransList out= <list_of_r> x= <list_of_r> [m= <r>] [b= <r>] \
[info= 0 | 1 | 2 | 3] [help= 0 | 1]

Argument Description

out Variable name to store the list of transformed values.


(List of real numbers, no default)

x Input list. (List of real numbers, no default)

m Slope of the linear transformation. (Real number, default: 1.0)

b Offset of the linear transformation. (Real number, default: 0.0)

info Sets local info level. Default: 0

help Prints a help screen if set to 1. Default: 0

Returns

None.

Example
load_file IdVg_des.plt -name DC
create_plot -1d -name Plot_IdVg
set Vgs [get_variable_data "gate OuterVoltage" -dataset DC]
set Ids [get_variable_data "drain TotalCurrent" -dataset DC]
ext::LinTransList out= VgTrans x= $Vgs b= 0.55 ;# Shift Vg values by 0.55 V
ext::LinTransList out= IdTrans x= $Ids m= 1e6
;# Scale Id values from A/um to mA/mm
# Create the shifted and scaled Id-Vg curve
create_variable -name VgTrans -dataset IdVgTrans -values $VgTrans
create_variable -name IdTrans -dataset IdVgTrans -values $IdTrans
create_curve -name IdVgTrans -dataset IdVgTrans \
-axisX "VgTrans" -axisY "IdTrans

Sentaurus Visual User Guide 199


H-2013.03
E: Extraction Library
ext::RemoveDuplicates

ext::RemoveDuplicates
For a pair of lists x and y, removes duplicate elements of the list x and the corresponding
elements of the list y.

Syntax
ext::RemoveDuplicates out= <array_name> x= <list_of_r> y= <list_of_r> \
[eps= <r>] [info= 0 | 1 | 2 | 3] [help= 0 | 1]

Argument Description

out Name of an array to store the results. The array has one string-valued index.
The index contains the elements X and Y. The values of the X element are a
subset of a list of values, specified using the keyword x. These do not contain
duplicate values. The corresponding elements of the list specified using the
keyword y are stored in the Y element. The values of the Y element are a
subset of a list of values, specified using the keyword y.
(Array name, no default)

x Input list. (List of real numbers, no default)

y Input list. (List of real numbers, no default)

eps If the difference between two adjacent elements of the list specified using the
keyword x is less than eps, the first element is removed.
(Real number, no default)

info Sets local info level. Default: 0

help Prints a help screen if set to 1. Default: 0

Returns

None.

Example
set [list 1 1 2 3 1 1 2 2 2 3]
set y [list 10 20 30 40 50 60 70 80 90 100]
ext::RemoveDuplicates out= XY x= $x y= $y
set Xs $XY(X)
set Ys $XY(Y)
puts "Xs= $Xs"
puts "Ys= $Ys"
==> Xs= 1 2 3 1 2 3
==> Ys= 20 30 40 60 90 100

200 Sentaurus Visual User Guide


H-2013.03
E: Extraction Library
ext::SetInfoDef

ext::SetInfoDef
Sets the default information level.

NOTE Level 0: Warning, error, or status messages only.


Level 1: Echo results.
Level 2: Show progress and some debug information.
Level 3: Show all debug information.

The local info level also can be set using the info keyword of the procedures in the extraction
library.

Syntax
ext::SetInfoDef 0 | 1 | 2 | 3

Argument Description

<info_level> Sets the default info level. Default: 0

Returns

None.

Example
ext::SetInfoDef 2

Sentaurus Visual User Guide 201


H-2013.03
E: Extraction Library
ext::SetInfoDef

202 Sentaurus Visual User Guide


H-2013.03
APPENDIX F Impedance Field Method Data
Postprocessing Library

This appendix provides information about the impedance field


method data postprocessing library.

Overview
The impedance field method in Sentaurus Device provides an accurate and efficient way to
evaluate the effects of random variability on the electrical behavior of semiconductor devices
(see Sentaurus Device User Guide, Chapter 23 on page 597).

Within the statistical impedance field method (sIFM), Sentaurus Device generates many
randomized realizations of a reference device. For example, 10000 realizations with different
randomized doping distributions, different randomized gate oxide thicknesses, different
randomized metal grain boundaries, and so on.

For each of these individual randomizations, Sentaurus Device computes, at each bias point,
the linear current response of the randomizations with respect to the reference device.

The impedance field method (IFM) data postprocessing library helps to manage and analyze
large amounts of linear current response data. For example, the IFM library allows you to
conveniently apply standard statistical analysis methods to data such as computing and
visualizing the distribution and comparing it to a Gaussian distribution.

The IFM library also supports the construction of the individual electrical characteristics of the
randomized devices from the electrical characteristics of the reference device and the linear
current response data.

The IFM library is loaded with the command:


load_library ifm

Sentaurus Visual User Guide 203


H-2013.03
F: Impedance Field Method Data Postprocessing Library
Syntax Conventions

Syntax Conventions
The IFM library uses a unique namespace identifier (ifm::) for its procedures. All procedures
and variables associated with this library are called with the namespace identifier prepended,
for example:
ifm::<proc_name>

The IFM library uses an input parser that accepts arguments of the form:
keyword= <value>

NOTE You can insert whitespace between the keyword and the equal sign, for
example, keyword = <value>. Omitting the whitespace between the
equal sign and the value field will result in a failure if the value is a de-
referenced Tcl variable. Use keyword= $val (not keyword=$val).

The parser accepts arguments in any order. For some arguments, default values are predefined.
Such arguments may be omitted. If arguments for which no defaults are predefined are omitted,
the procedure will exit with an error message. In addition, unrecognized arguments result in an
error message.

Some procedures of the IFM library compute large and complex data structures. For such data
structures, the standard Tcl method of using the return value of the procedure to pass results
back to the calling program is not suitable. Therefore, for some datasets, the IFM library uses
a passing-by-reference method to exchange information between the procedure and the calling
program. Procedure arguments that use the passing-by-reference method are identified with
keyword= <var_name>, <list_name>, or <array_name>.

The following conventions are used for the syntax of Tcl commands:
■ Angle brackets – <> – indicate text that must be replaced, but they are not part of the
syntax. In particular, the following type identifiers are used:
• <r>: Replace with a real number, or a de-referenced Tcl variable that evaluates to a real
number. For example: $val.
• <i>: Replace with an integer, or a de-referenced Tcl variable that evaluates to an
integer. For example: $i.
• <string>: Replace with a string, or a de-referenced Tcl variable that evaluates to a
string. For example: $file.
• <list_of_r>: Replace with a list of real numbers, or a de-referenced Tcl variable that
evaluates to a list of real numbers. For example: $values.

204 Sentaurus Visual User Guide


H-2013.03
F: Impedance Field Method Data Postprocessing Library
ifm::Gauss

• <list_of_strings>: Replace with a list of strings, or a de-referenced Tcl variable


that evaluates to a list of strings. For example: $files.
• <var_name>: Replace with the name of a local Tcl variable.
For example: val (not $val).
• <list_name>: Replace with the name of a local Tcl list.
For example: values (not $values).
• <array_name>: Replace with the name of a local Tcl array.
For example: myarray (not $myarray).
■ Brackets – [] – indicate that the argument is optional, but they are not part of the syntax.
■ A vertical bar – | – indicates options, only one of which can be specified.

ifm::Gauss
Computes the y-value of a normalized Gaussian distribution for a given x-value:

1 x–μ 2
y = -------------- exp  – ---  ------------ 
N
(5)
σ 2π 2 σ 

where N is the norm of the Gaussian distribution, μ is the average, and σ is the standard
deviation.

Syntax
ifm::Gauss out= <var_name> x= <r> moments= <array_name> [help= 0 | 1]

Argument Description

out Variable name to store the corresponding y-value of the normalized Gaussian
distribution.

x The x-value. (Real number, no default)

moments Name of an array with one string-valued index, which contains the elements
norm, ave, and std_dev. The values of these elements contain the
requested norm, the average, and the standard deviation of the Gaussian.
(Array name, no default)

help Prints a help screen if set to 1. Default: 0

Returns

None.

Sentaurus Visual User Guide 205


H-2013.03
F: Impedance Field Method Data Postprocessing Library
ifm::GetDataQuantiles

Example
set Moments(norm) 1.0
set Moments(ave) 0.0
set Moments(std_dev) 1.0
ifm::Gauss out= G x= 0.1 moments= Moments
puts "The result is $G"

ifm::GetDataQuantiles
Computes quantiles for a list of random variables.

This procedure sorts a list of random values and associates each value with the corresponding
quantile (a value between 0 and 1).

Syntax
ifm::GetDataQuantiles out= <array_name> rvs= <list_of_r> [help= 0 | 1]

Argument Description

out Name of an array to store the results.


The array has one string-valued index, which contains the elements X and Y.
The values of these elements contain the sorted random variables (X) and the
corresponding quantiles (Y). (Array name, no default)

rvs List of random variables. (List of real numbers, no default)

help Prints a help screen if set to 1. Default: 0

Returns

None.

Example
set RanVals [list -1.657 0.7661 2.142 1.189 -1.919 -0.6670 -0.1915 0.3662]
ifm::GetDataQuantiles out= DataQ rvs= $RanVals
puts $DataQ(X)
#-> -1.919 -1.657 -0.6670 -0.1915 0.3662 0.7661 1.189 2.142
puts $DataQ(Y)
#-> 0.0625 0.1875 0.3125 0.4375 0.5625 0.6875 0.8125 0.9375

206 Sentaurus Visual User Guide


H-2013.03
F: Impedance Field Method Data Postprocessing Library
ifm::GetGaussian

ifm::GetGaussian
Computes either a Gaussian curve:

1 x–μ 2
G ( x ) = -------------- exp  – ---  ------------ 
N

(6)
σ 2π 2 σ  

or the quantiles of a Gaussian curve:


x
Q(x) = xmin G ( x ) dx (7)

where N is the norm of the Gaussian distribution, μ is the average, and σ is the standard
deviation.

Syntax
ifm::GetGaussian out= <array_name> moments= <array_name> \
[nsam= <i>] [type= f | q] [xmin= <r>] [xmax= <r>] [help= 0 | 1]

Argument Description

out Name of an array to store the results.


The array has one string-valued index, which contains the elements X and Y.
The values of these elements represent the lists of x- and y-values of the
Gaussian or quantile. (Array name, no default)

moments Name of an array with one string-valued index, which contains the elements
norm, ave, and std_dev. The values of these elements contain the
requested norm, the average, and the standard deviation of the Gaussian.
(Array name, no default)

nsam Number of sample points. (Integer, default: 80)

type f: A Gaussian curve defined by the given moments is returned.


q: The quantiles of this Gaussian are returned.
Default: f

xmin Starting x-value. (Real number, default: -3.0)

xmax Ending x-value. (Real number, default: 3.0)

help Prints a help screen if set to 1. Default: 0

Returns

None.

Sentaurus Visual User Guide 207


H-2013.03
F: Impedance Field Method Data Postprocessing Library
ifm::GetGaussian

Example
create_plot -1d -name Gaussian
select_plots Gaussian
set Moments(norm) 1.0
set Moments(ave) 0.0
set Moments(std_dev) 1.0
ifm::GetGaussian out= Gaussian type= f moments= Moments \
nsam= 100 xmin= -3.5 xmax= 3.5
create_variable -name "GX" -dataset GXY -values $Gaussian(X)
create_variable -name "GY" -dataset GXY -values $Gaussian(Y)
create_curve -name gauss -dataset GXY -axisX "GX" -axisY "GY"

208 Sentaurus Visual User Guide


H-2013.03
F: Impedance Field Method Data Postprocessing Library
ifm::GetHistogram

ifm::GetHistogram
Computes x- and y-lists to be used to plot a histogram for a given list of random variables, a
given plotting range, and a given number of bins.

Syntax
ifm::GetHistogram out= <array_name> rvs= <list_of_r> xmin= <r> xmax= <r> \
[nbin= <i>] [info= 0 | 1 | 2 | 3] [help= 0 | 1]

Argument Description

out Name of an array to store the results.


The array has one string-valued index, which contains the elements X and Y.
The values of these elements represent the lists of x- and y-values of the
histogram. (Array name, no default)

rvs List of random variables. (List of real numbers, no default)

xmin Starting x-value of histogram. (Real number, no default)

xmax Ending x-value of histogram. (Real number, no default)

nbin Number of bins for the histogram. (Integer, default: 40)

info Sets local info level. Default: 0

help Prints a help screen if set to 1. Default: 0

Returns

None.

Example
create_plot -1d -name Histogram
select_plots Histogram
set Rxs [list 1 1.1 2 5 5.1 5.3 6]
ifm::GetHistogram out= Histogram rvs= $Rxs xmin= 0 xmax= 6 nbin= 6
create_variable -name "X" -dataset XY -values $Histogram(X)
create_variable -name "Y" -dataset XY -values $Histogram(Y)
create_curve -name his -dataset XY -axisX "X" -axisY "Y"

Sentaurus Visual User Guide 209


H-2013.03
F: Impedance Field Method Data Postprocessing Library
ifm::GetMoments

ifm::GetMoments
Computes the norm, the average, and the standard deviation for a given list of random
variables:
N
1
μ = ----  x i (8)
N
i

N
1
----  ( x i – μ )
2
σ = (9)
N
i

where the norm N is given by the number of random values, the index i enumerates the
random values, μ is the average, and σ is the standard deviation.

Syntax
ifm::GetMoments out= <array_name> rvs= <list_of_r> [info= 0 | 1 | 2 | 3] \
[help= 0 | 1]

Argument Description

out Name of a string-valued array to store the computed moments. This array
contains the elements norm, ave, and std_dev. The values of these
elements contain the computed norm, the average, and the standard deviation
of the list of random variables. (Array name, no default)

rvs List of random variables. (List of real numbers, no default)

info Sets local info level. Default: 0

help Prints a help screen if set to 1. Default: 0

Returns

None.

Example
set Vs [list 1 2 3 4 5]
ifm::GetMoments out= Moments rvs= $Vs
puts $Moments(norm)
#->5

210 Sentaurus Visual User Guide


H-2013.03
F: Impedance Field Method Data Postprocessing Library
ifm::GetMOSIVs

puts $Moments(ave)
#->3
puts $Moments(std_dev)
#->1.41421356237

ifm::GetMOSIVs
Constructs the randomized Id–Vg curves for MOS-type devices for one or more randomization
sources.

The boundary condition that links the linear current response δI ν, d to the nodal drain current
dI ν, d and the gate voltage dV ν, g variations is given by:
dI ν, d = δI ν, d + y d, g dV ν, g (10)

The index ν enumerates the randomizations. The given equation gives the freedom to interpret
the linear current response directly as a change of the drain current:
dI ν, d = δI ν, d (11)

Alternatively, you can interpret it as an adjustment of the gate bias:


δI ν, d
dV ν, g = – ------------ (12)
y d, g

For the linearized system, the following two methods yield identical results:
■ The gate voltage adjustment method (dV):
I ν, d = I ref, d ( V ref, g – dV ν, g ) (13)

■ The drain current adjustment method (dI):


I ν, d = I ref, d ( V ref, g ) + dI ν, d (14)

The drain current and the gate voltage of the reference device are given by I ref, d and V ref, g ,
respectively.

The equivalence of these two methods can be verified by expanding the two equations into a
Taylor series. For a nonlinear system, the two formulations are not equivalent and, depending
on the details of the nonlinearity, one or the other method may give more accurate results. To
better understand the implications, consider two limiting cases:

(i) Steeply rising Id–Vg in the subthreshold and near-threshold regime


In this regime, variability effects are well approximated by a threshold voltage shift. This

Sentaurus Visual User Guide 211


H-2013.03
F: Impedance Field Method Data Postprocessing Library
ifm::GetMOSIVs

means that, while both δI ν, d and y d, g increase exponentially with increasing gate bias, the ratio
of the two quantities dV ν, g remains approximately constant. While large values of dI ν, d can
result in unphysical negative output currents for some randomizations, when using the drain
current adjustment method, the gate voltage adjustment method always guarantees positive and
physical output currents.

(ii) Saturating Id–Vg at low drain bias and high gate bias
In this regime, the transconductance y d, g vanishes and, therefore, dV ν, g diverges, while δI ν, d
remains approximately constant. Consequently, the large values of dV ν, g can result in
unphysical gate voltages (non-monotonous, or less than ground, or larger than the supply
voltage) for some randomizations, when using the gate voltage adjustment method. The drain
current adjustment method, however, always guarantees monotonous and physical input
voltages.

For the Id–Vg characteristic, the transition point between the subthreshold and near-threshold
regime and the saturation regime can be defined as the point of maximal transconductance and,
therefore, you can apply either the gate voltage adjustment method or the drain current
adjustment method, depending on the sign of the derivative of the transconductance. This
observation is the foundation of the third method:
■ The weighted method (weighted):

I ν, d = I ref, d  V ref, g – -------------- dV ν, g


1+W
(15)
2
1–W
I ν, d = I ref, d ( V ref, g ) + -------------- dI ν, d
2

The weights W are computed internally by calling ifm::GetMOSWeights on page 215.

The weighted method switches between the gate voltage adjustment method and the drain
current adjustment method to avoid artificial over-adjustments of the currents or voltages. In
situations with relatively large adjustments at the transition point, discontinuities and overlaps
may be observed. The smooth option activates a smoothening procedure to eliminate these
artifacts at the transition point.

For most applications, the weighted method is the recommended method.

Finally, the conceptually simpler exponential method ensures nonnegative currents and also
avoids gate bias overshoots. This method often gives satisfactory results, but it violates the
linearity assumption:
■ The exponential method (exp):
dI ν, d
I ν, d = I ref, d exp  ------------ (16)
 I ref, d 

212 Sentaurus Visual User Guide


H-2013.03
F: Impedance Field Method Data Postprocessing Library
ifm::GetMOSIVs

Syntax
ifm::GetMOSIVs out= <array_name> sifm= <array_name> nrow= <var_name> \
ncol= <var_name> v= <list_of_r> i= <list_of_r> y= <list_of_r> \
id= <string> [type= IdVg] [method= dV | dI | weighted | exp] \
[smooth= yes | no] [sgn= 1 | -1] [info= 0 | 1 | 2 | 3] [help= 0 | 1]

Argument Description

out Name of a two-indexed array to store the constructed I–V curves.


The first index is string valued. The elements are X and Y.
The second index is integer valued. It represents the randomization index.
The array element values contain the x- and y-value lists of the respective
I–V curves. (Array name, no default)

sifm Name of an array that contains the sIFM data. The array has three indices:
The first index is string valued. The elements are the variability source
identifiers.
The second index is integer valued. It represents the row or bias index.
The third index is integer valued. It represents the column or randomization
index.
The array element values contain the sIFM linear current response.
(Array name, no default)

nrow Name of a variable containing the number of rows (bias points) in the sIFM
data. (Variable name, no default)

ncol Name of a variable containing the number of columns (randomizations) in


the sIFM data. (Variable name, no default)

v List containing the reference voltage values.


(List of real numbers, no default)

i List containing the reference current values. (List of real numbers, no default)

y List containing the relevant reference Y-matrix values.


(List of real numbers, no default)

id ID of the sIFM variability source. (String, no default)

type Currently, only IdVg is supported. Default: IdVg

method Selects the I–V construction method. Default: weighted

smooth Activates I–V smoothening for the weighted method. Default: no

sgn Set to 1 for NMOS or -1 for PMOS. Default: 1

info Sets local info level. Default: 0

help Prints a help screen if set to 1. Default: 0

Returns

None.

Sentaurus Visual User Guide 213


H-2013.03
F: Impedance Field Method Data Postprocessing Library
ifm::GetMOSIVs

Example
set IDs [list rdf ift SUM]
set FILEs [list]
foreach ID $IDs {
lappend FILEs mos_${ID}_I_ndrain.csv
}

load_file mos_circuit_des.plt -name Data(DC)


load_file mos_ac_des.plt -name Data(AC)

set adgs [get_variable_data "a(ndrain,ngate)" -dataset Data(AC)]


set Vgs [get_variable_data "v(ngate)" -dataset Data(DC)]
set Ids [get_variable_data "i(mos,ndrain)" -dataset Data(DC)]

ifm::ReadsIFM out= sIFM nrow= Nrow ncol= Ncol files= $FILEs ids= $IDs

create_plot -1d -name RanIV


select_plots RanIV

set j 42
ifm::GetMOSIVs out= IV_rdf sifm= sIFM nrow= Nrow ncol= Ncol method= "weighted"
sgn= 1.0 v= $Vgs i= $Ids y= $adgs id= "rdf" smooth= yes
create_variable -name V -dataset RanIV(rdf,$j) -values $IV_rdf(X,$j)
create_variable -name I -dataset RanIV(rdf,$j) -values $IV_rdf(Y,$j)
create_curve -name IV_rdf($j) -dataset RanIV(rdf,$j) -axisX "V" -axisY "I"

ifm::GetMOSIVs out= IV_ift sifm= sIFM nrow= Nrow ncol= Ncol method= "weighted"
sgn= 1.0 v= $Vgs i= $Ids y= $adgs id= "ift" smooth= yes
create_variable -name V -dataset RanIV(ift,$j) -values $IV_ift(X,$j)
create_variable -name I -dataset RanIV(ift,$j) -values $IV_ift(Y,$j)
create_curve -name IV_ift($j) -dataset RanIV(ift,$j) -axisX "V" -axisY "I"

ifm::GetMOSIVs out= IV_SUM sifm= sIFM nrow= Nrow ncol= Ncol method= "weighted"
sgn= 1.0 v= $Vgs i= $Ids y= $adgs id= "SUM" smooth= yes
create_variable -name V -dataset RanIV(SUM,$j) -values $IV_SUM(X,$j)
create_variable -name I -dataset RanIV(SUM,$j) -values $IV_SUM(Y,$j)
create_curve -name IV_SUM($j) -dataset RanIV(SUM,$j) -axisX "V" -axisY "I"

214 Sentaurus Visual User Guide


H-2013.03
F: Impedance Field Method Data Postprocessing Library
ifm::GetMOSWeights

ifm::GetMOSWeights
Computes the weights for the construction of randomized MOSFET Id–Vg curves.

This procedure computes, for each bias point, a value of either 1 or –1 to indicate that the gate
voltage adjustment method or the drain current adjustment method is to be used, depending on
the sign of the derivative of the transconductance.

Syntax
ifm::GetMOSWeights out= <list_name> y= <list_of_r> [type= IdVg] [help= 0 | 1]

Argument Description

out Name of a list to store the computed weights. (List name, no default)

y List containing the relevant reference Y-matrix values.


(List of real numbers, no default)

type Currently, only IdVg is supported. Default: IdVg

help Prints a help screen if set to 1. Default: 0

Returns

None.

Example
load_file mos_ac_des.plt -name Data(AC)
set adgs [get_variable_data a(ndrain,ngate) -dataset Data(AC)]
ifm::GetMOSWeights out= Ws y= $adgs
create_variable -name W -dataset Data(AC) -values $Ws
create_plot -1d -name Weights
select_plots Weights
create_curve -name W -dataset Data(AC) -axisX "v(ngate)" -axisY "W"
create_curve -name Y -dataset Data(AC) -axisX "v(ngate)" \
-axisY2 "a(ndrain,ngate)"

Sentaurus Visual User Guide 215


H-2013.03
F: Impedance Field Method Data Postprocessing Library
ifm::GetNoiseStdDev

ifm::GetNoiseStdDev
Computes the drain current σ ( I d ) and the gate voltage σ ( V g ) standard deviation from the
drain current noise spectral density S d, d (see Sentaurus Device User Guide, Chapter 23 on
page 597), and the gate-to-drain admittance y d, g :

σ ( Id ) = S d, d ⋅ 1Hz (17)

S d, d ⋅ 1Hz
σ ( V g ) = ----------------------------- (18)
y d, g

Syntax
ifm::GetNoiseStdDev out= <array_name> s= <list_of_r> y= <list_of_r> \
[help= 0 | 1]

Argument Description

out Name of an array to store the results. The array has one string-valued index.
The index contains the elements I and V.
The value of the I element is a list with the current standard deviations.
The value of the V element is a list with the voltage standard deviations.
(Array name, no default)

s List containing the current noise spectral density values.


(List of real numbers, no default)

y List containing the relevant reference Y-matrix values.


(List of real numbers, no default)

help Prints a help screen if set to 1. Default: 0

Returns

None.

Example
load_file "mos_ac_des.plt" -name Data(AC)
set adgs [get_variable_data a(ndrain,ngate) -dataset Data(AC)]
set S_Ids(noise) [get_variable_data S_I(ndrain) -dataset Data(AC)]

ifm::GetNoiseStdDev out= sigIV s= $S_Ids(noise) y= $adgs


create_plot -1d -name Sig
create_variable -name sigId(noise) -dataset Data(AC) -values $sigIV(I)
create_curve -name sigId(noise) -dataset Data(AC) \
-axisX "v(ngate)" -axisY "sigId(noise)"

216 Sentaurus Visual User Guide


H-2013.03
F: Impedance Field Method Data Postprocessing Library
ifm::GetQQ

create_variable -name sigVg(noise) -dataset Data(AC) -values $sigIV(V)


create_curve -name sigVg(noise) -plot Sig -dataset Data(AC) \
-axisX "v(ngate)" -axisY2 "sigVg(noise)"

ifm::GetQQ
Compares the quantiles of a given data distribution with the quantiles of a Gaussian
distribution.

For each value in the quantiles of the Gaussian distribution, the matching (interpolated) value
of the data distributions is found. Then, the data x-values corresponding to this match are
plotted against the normalized Gaussian x-values ( x – μ ) ⁄ σ .

Syntax
ifm::GetQQ out= <array_name> dq= <array_name> gq= <array_name> \
moments= <array_name> [help= 0 | 1]

Argument Description

out Name of an array to store the results. The array has one string-valued index,
which contains the elements X and Y. The values of these elements represent
the lists of x- and y-values of a quantile–quantile comparison curve.
(Array name, no default)

dq, gq Name of arrays containing the quantiles of the given data distribution (dq)
and the quantiles of a corresponding Gaussian distribution (gq).
The arrays dq and gq each have one string-valued index, which contains the
elements X and Y. The values of these elements represent the lists of x- and y-
values of the quantiles. (Array name, no default)

moments Name of an array with one string-valued index, which contains the elements
norm, ave, and std_dev. The values of these elements contain the
requested norm, the average, and the standard deviation of the Gaussian.
(Array name, no default)

help Prints a help screen if set to 1. Default: 0

Returns

None.

Sentaurus Visual User Guide 217


H-2013.03
F: Impedance Field Method Data Postprocessing Library
ifm::GetsIFMStdDev

Example
set RanVals [list -1.657 0.7661 2.142 1.189 -1.919 -0.6670 -0.1915 0.3662]
ifm::GetDataQuantiles out= DataQ rvs= $RanVals
ifm::GetMoments out= Moments rvs= $RanVals
ifm::GetGaussian out= GaussianQ type= q moments= Moments \
nsam= 40 xmin= -3.5 xmax= 3.5

ifm::GetQQ out= QQ dq= DataQ gq= GaussianQ moments= Moments


create_plot -1d -name QQplot
select_plots QQplot
create_variable -name "QQX" -dataset QQXY -values $QQ(X)
create_variable -name "QQY" -dataset QQXY -values $QQ(Y)
create_curve -name qq -dataset QQXY -axisX "QQX" -axisY "QQY"

ifm::GetsIFMStdDev
Computes the drain current and the gate voltage standard deviation from the sIFM linear
current responses and the gate-to-drain admittance.

For each bias point in the sIFM data file, this procedure reads the linear current responses and
calls ifm::GetMoments to compute the drain current standard deviation σ ( I d ) . The gate
voltage σ ( V g ) standard deviation is obtained by dividing the drain current standard deviation
by the gate-to-drain admittance y d, g .

Syntax
ifm::GetsIFMStdDev out= <array_name> sIFM= <string> y= <list_of_r> \
[help= 0 | 1]

Argument Description

out Name of an array to store the results. The array has one string-valued index.
The index contains the elements I and V.
The value of the I element is a list with the current standard deviations.
The value of the V element is a list with the voltage standard deviations.
(Array name, no default)

sIFM Name of a comma-separated value (CSV) file containing the sIFM linear
current responses. (String, no default)

y List containing the relevant reference Y-matrix values.


(List of real numbers, no default)

help Prints a help screen if set to 1. Default: 0

218 Sentaurus Visual User Guide


H-2013.03
F: Impedance Field Method Data Postprocessing Library
ifm::GetsIFMStdDev

Returns

None.

Example
load_file "mos_ac_des.plt" -name Data(AC)
set adgs [get_variable_data a(ndrain,ngate) -dataset Data(AC)]

ifm::GetsIFMStdDev out= sigIV sIFM= "mos_rdf_I_ndrain.csv" y= $adgs

create_plot -1d -name Sig


set_plot_prop -plot Sig -title "Standard Deviations"

create_variable -name sigId(stat) -dataset Data(AC) -values $sigIV(I)


create_curve -name sigId(stat) -dataset Data(AC) \
-axisX "v(ngate)" -axisY "sigId(stat)"
create_variable -name sigVg(stat) -dataset Data(AC) -values $sigIV(V)
create_curve -name sigVg(stat) -dataset Data(AC) \
-axisX "v(ngate)" -axisY2 "sigVg(stat)"

Sentaurus Visual User Guide 219


H-2013.03
F: Impedance Field Method Data Postprocessing Library
ifm::GetSNM

ifm::GetSNM
Computes the static noise margins (SNMs) from butterfly curves for one or more
randomization sources.

This procedure takes as input the voltage transfer characteristics (VTC) curves of the left and
the right inverters of an SRAM cell. One plot of all VTC curves is known as a butterfly curve.
The left (right) SNM is defined as the axis-aligned biggest square that can be fitted into the left
(right) lob of the butterfly curve. The effective SNM is defined as the smaller value of the two.

Syntax
ifm::GetSNM out= <array_name> squares= <array_name> vtc_left= <array_name> \
vtc_right= <array_name> ncol= <var_name> [info= 0 | 1 | 2 | 3] [help= 0 | 1]

Argument Description

out Name of a string-indexed array to store the results. The elements are left,
right, and eff for the left, right, and effective SNMs. Each array entry
contains a list of the respective SNM values for all randomizations. (Array
name, no default)

squares Name of a three-indexed array to store the fitted squares representing the
SNM in the butterfly curve.
The first index is integer valued. The elements are 1 or 2 for the square of the
left or right lob of the butterfly curve.
The second index is string valued. The elements are X or Y for the x-values
and y-values of the fitted square.
The third index is integer valued and represents the randomization index.
(Array name, no default)

vtc_left, vtc_right Names of two-indexed arrays containing the left and right VTC curves.
The first index is string valued. The elements are Header or Data, where
the Header contains the names of the columns, such as Vi(0). The
corresponding Data field contains a list of voltage values.
The second index is integer valued and represents the randomization index.
(Array name, no default)

ncol Name of a variable containing the number of randomizations in the VTC


data. (Variable name, no default)

info Sets local info level. Default: 0

help Prints a help screen if set to 1. Default: 0

Returns

None.

220 Sentaurus Visual User Guide


H-2013.03
F: Impedance Field Method Data Postprocessing Library
ifm::GetSNM

Example
ifm::ReadCSV out= VTC_L file= Left_VTC.csv ncol= Ncol
ifm::ReadCSV out= VTC_R file= Right_VTC.csv ncol= Ncol
set j 42
set i_in [expr 2*$j]
set i_ot [expr 2*$j+1]

create_variable -name Vi($j) -dataset VTC(L) -values $VTC_L(Data,$i_in)


create_variable -name Vo($j) -dataset VTC(L) -values $VTC_L(Data,$i_ot)
create_curve -name VTC(L,$j) -dataset VTC(L) -axisX "Vi($j)" -axisY "Vo($j)"

create_variable -name Vi($j) -dataset VTC(R) -values $VTC_R(Data,$i_ot)


create_variable -name Vo($j) -dataset VTC(R) -values $VTC_R(Data,$i_in)
create_curve -name VTC(R,$j) -dataset VTC(R) -axisX "Vi($j)" -axisY "Vo($j)"

ifm::GetSNM out= SNM squares= SQ vtc_left= VTC_L vtc_right= VTC_R ncol= Ncol

create_variable -name SQ1_x($j) -dataset SQs -values $SQ(1,X,$j)


create_variable -name SQ1_y($j) -dataset SQs -values $SQ(1,Y,$j)
create_variable -name SQ2_x($j) -dataset SQs -values $SQ(2,X,$j)
create_variable -name SQ2_y($j) -dataset SQs -values $SQ(2,Y,$j)

create_curve -name SQ1($j) -dataset SQs -axisX "SQ1_x($j)" -axisY "SQ1_y($j)"


create_curve -name SQ2($j) -dataset SQs -axisX "SQ2_x($j)" -axisY "SQ2_y($j)"

puts "Left SNM: [lindex $SNM(left) $j]"


puts "Right SNM: [lindex $SNM(right) $j]"
puts "Effective SNM: [lindex $SNM(eff) $j]"

Sentaurus Visual User Guide 221


H-2013.03
F: Impedance Field Method Data Postprocessing Library
ifm::GetSRAMVTC

ifm::GetSRAMVTC
Constructs randomized VTC curves for an SRAM cell for one or more randomization sources.

To compute the randomized VTC of an inverter from an SRAM cell, a method similar to the
weighted method outlined in ifm::GetMOSIVs on page 211 for the single transistor is used.
Unlike in a single transistor, in an SRAM cell, the output node is not connected to an external
voltage source and, therefore, Kirchhoff’s law requires that dI ν, o = 0 .

For the extraction of SRAM SNMs, you cannot require that the output small-signal voltage
variation vanishes because, during the read operation of the SRAM cell (access transistor is
switched on) in the region of low output bias (PMOS transistor is switched off), the actual
voltage of the output node is defined by the voltage divider formed by the access transistor and
the NMOS transistor. The current flow fluctuations through the access transistor cannot be
adequately compensated by adjusting the gate voltage of the NMOS (and PMOS) transistor. A
solution for the ν -th randomized SRAM cell for which all currents through the inverters are
the same, as in the reference SRAM cell, while additionally requiring that the voltage at the
output is also the same in the reference inverter would not be physical. For example, for certain
bias conditions, unrealistically large gate voltage adjustments would be needed to
overcompensate the random dopant fluctuation effects in the access transistor.

To obtain physically relevant VTC curves, both the output and input voltages are adjusted:
δI ν, o = – y o, i dV ν, i – y o, o dV ν, o (19)

A method, which results in physical VTC curves, consists of adjusting both dV ν, i and dV ν, o
based on an automatic analysis of the current flow in the reference device. For this method, the
voltage variations dV ν, i and dV ν, o are expressed in terms of voltage variations in the
coordinate system that is rotated:

dV ν, o cos ( ϕ ) sin ( ϕ ) dV ν, 1
= (20)
dV ν, i – sin ( ϕ ) cos ( ϕ ) dV ν, 2

In the rotated coordinate system, the boundary condition is imposed such that dV ν, 1 = 0 ,
resulting in:
δI ν, o
dV υ, 2 = – ----------------------------------------------------------- (21)
y o, i sin ( ϕ ) + y o, o cos ( ϕ )

At each bias point, an angle is selected that ensures a monotonous and physical solution.

For example, you can find out whether you are in the hold-like inverter regime (access
transistor is closed) or in the voltage divider regime (PMOS transistor is closed) by monitoring

222 Sentaurus Visual User Guide


H-2013.03
F: Impedance Field Method Data Postprocessing Library
ifm::GetSRAMVTC

the current flows in the reference SRAM cell. The reference current through the inverter is the
sum of the currents through the PMOS and the access transistors. If the main contribution
comes from the PMOS device, you are in the hold-like inverter regime, and you set ϕ to π ⁄ 2 .
On the other hand, if the main contribution comes from the access transistor, you are in the
voltage divider regime, and you set ϕ to 0. Therefore, you can use the reference current to
select the appropriate angle and then compute dV υ, 2 .

An example of a script to compute the current-controlled angle is:


set Ips [get_variable_data "$pSOURCE TotalCurrent" -dataset Data(DC)]
set Ias [get_variable_data "$aDRAIN TotalCurrent" -dataset Data(DC)]
foreach Ip $Ips Ia $Ias {
set It [expr $Ip + $Ia]
lappend fis [expr 0.5*$pi*$Ip/$It]
}

Here, pSOURCE points to the source contact of the PMOS transistor, and aDRAIN points to the
drain contact of the access transistor of the inverters of interest in the SRAM cell.

Syntax
ifm::GetSRAMVTC out= <array_name> vin= <list_of_r> vout= <list_of_r> \
fi= <list_of_r> aoi= <list_of_r> aoo= <list_of_r> id= <string> \
sifm= <array_name> nrow= <var_name> ncol= <var_name> \
[info= 0 | 1 | 2 | 3] [help= 0 | 1]

Argument Description

out Name of a two-indexed array to store the constructed VTC curves.


The first index is string valued. The elements are Header or Data, where
the Header contains the names of the columns, such as Vi(0). The
corresponding Data field contains a list of voltage values.
The second index is integer valued. It represents the randomization index.
(Array name, no default)

vin List containing the reference VTC input voltage values.


(List of real numbers, no default)

vout List containing the reference VTC output voltage values.


(List of real numbers, no default)

fi List containing the current-controlled angle values.


(List of real numbers, no default)

aoi List containing the reference ReY(out,in) matrix values.


(List of real numbers, no default)

aoo List containing the reference ReY(out,out) matrix values.


(List of real numbers, no default)

id ID of the sIFM variability source. (String, no default)

Sentaurus Visual User Guide 223


H-2013.03
F: Impedance Field Method Data Postprocessing Library
ifm::GetSRAMVTC

sifm Name of an array that contains the sIFM data. The array has three indices:
The first index is string valued. The elements are the variability source
identifiers.
The second index is integer valued and represents the row or bias index.
The third index is integer valued and represents the column or randomization
index. The array element values contain the sIFM linear current response.
(Array name, no default)

nrow Name of a variable containing the number of rows (bias points) in the sIFM
data. (Variable name, no default)

ncol Name of a variable containing the number of columns (randomizations) in


the sIFM data. (Variable name, no default)

info Sets local info level. Default: 0

help Prints a help screen if set to 1. Default: 0

Returns

None.

Example
load_file sys_des.plt -name SYSTEM
load_file SRAM_des.plt -name DC
load_file sram_ac_des.plt -name AC

set Vins [get_variable_data v($IN) -dataset SYSTEM]


set Vots [get_variable_data v($OUT) -dataset SYSTEM]
set aois [get_variable_data a($OUT,$IN) -dataset AC]
set aoos [get_variable_data a($OUT,$OUT) -dataset AC]
set Ips [get_variable_data "SourceP2 TotalCurrent" -dataset DC]
set Ias [get_variable_data "DrainACC2 TotalCurrent" -dataset DC]

foreach Ip $Ips Ia $Ias {


set It [expr $Ip + $Ia]
lappend fis [expr 0.5*$ifm::pi*$Ip/$It]
}
ifm::ReadsIFM out= sIFM nrow= Nrow ncol= Ncol \
files= "flipL_n12_sram_rdf_I_OR.csv" ids= "rdf"
ifm::GetSRAMVTC out= VTC id= "rdf" vin= $Vins vout= $Vots \
fi= $fis aoi= $aois aoo= $aoos sifm= sIFM nrow= Nrow ncol= Ncol
create_plot -1d -name RanVTC
select_plots RanVTC
set j 42
set i_in [expr 2*$j]
set i_ot [expr 2*$j+1]

224 Sentaurus Visual User Guide


H-2013.03
F: Impedance Field Method Data Postprocessing Library
ifm::ReadCSV

create_variable -name Vi($j) -dataset RanVTC(rdf) -values $VTC(Data,$i_in)


create_variable -name Vo($j) -dataset RanVTC(rdf) -values $VTC(Data,$i_ot)

create_curve -name VTC($j) -dataset RanVTC(rdf) \


-axisX "Vi($j)" -axisY "Vo($j)"

ifm::ReadCSV
Reads a CSV file, and passes the read data to the calling program in the form of a Tcl array.

NOTE The CSV files are assumed to have the following format: One header
line containing the names of the datasets (no whitespace) followed by a
number of rows containing the values in the dataset, for example,
-1.11e-12,3.92e-14,-1.66e-13,-6.09e-13,...
(no whitespace).

Syntax
ifm::ReadCSV out= <array_name> file= <string> ncol= <var_name> \
[info= 0 | 1 | 2 | 3] [help= 0 | 1]

Argument Description

out Name of an array with two indices to store the read data.
The first index is string valued and contains the elements Header and
Data.
The second index is integer valued and enumerates the number of columns in
the CSV file.
The values of the Header elements are the dataset names.
The values of the Data elements contain lists with the values in the dataset.
(Array name, no default)

file Name of the CSV file to be read. (String, no default)

ncol Name of a variable containing the number of columns found in the CSV file.
(Variable name, no default)

info Sets local info level. Default: 0

help Prints a help screen if set to 1. Default: 0

Returns

None.

Sentaurus Visual User Guide 225


H-2013.03
F: Impedance Field Method Data Postprocessing Library
ifm::ReadCSV

Example
set Ncol 3
set CSV(Header,0) "A"
set CSV(Header,1) "B"
set CSV(Header,2) "C"
set CSV(Data,0) [list 1.1 1.2 1.3 1.4]
set CSV(Data,1) [list 2.1 2.2 2.3 2.4]
set CSV(Data,2) [list 3.1 3.2 3.3 3.4]
ifm::WriteCSV csv= CSV ncol= Ncol file= "my.csv"
ifm::ReadCSV out= ReadCSV ncol= ReadNcol file= "my.csv"
for {set icol 0} {$icol < $ReadNcol} {incr icol} {
puts "Column name is: $ReadCSV(Header,$icol)"
puts "Column data is: $ReadCSV(Data,$icol)"
}
Column name is: A
Column data is: 1.1 1.2 1.3 1.4
Column name is: B
Column data is: 2.1 2.2 2.3 2.4
Column name is: C
Column data is: 3.1 3.2 3.3 3.4

226 Sentaurus Visual User Guide


H-2013.03
F: Impedance Field Method Data Postprocessing Library
ifm::ReadsIFM

ifm::ReadsIFM
Reads one or more sIFM CSV files containing the linear current responses, and passes the read
data to the calling program in the form of a Tcl array.

NOTE The CSV files are assumed to have the following format: One header
line containing the names of the datasets (no whitespace) followed by a
number of rows containing the values in the dataset, for example,
-1.11e-12,3.92e-14,-1.66e-13,-6.09e-13,...
(no whitespace).

Syntax
ifm::ReadsIFM out= <array_name> nrow= <var_name> ncol= <var_name> \
files= <list_of_strings> ids= <list_of_strings> \
[info= 0 | 1 | 2 | 3] [help= 0 | 1]

Argument Description

out Name of an array to store the read data. The array has three indices:
The first index is string valued. The elements are the variability source
identifiers.
The second index is integer valued and represents the row or bias index.
The third index is integer valued and represents the column or randomization
index.
The array element values contain the sIFM linear current response.
(Array name, no default)

files List containing the names of the sIFM CSV data files.
(List of strings, no default)

ids List containing the variability source identifiers. If the list contains the
special identifier SUM, the combined data from all variability sources will
also be computed. (List of strings, no default)

nrow Name of a variable to store the number of rows (bias points) found in the
sIFM CSV file. (Variable name, no default)

ncol Name of a variable to store the number of columns (randomizations) found in


the sIFM CSV file. (Variable name, no default)

info Sets local info level. Default: 0

help Prints a help screen if set to 1. Default: 0

Returns

None.

Sentaurus Visual User Guide 227


H-2013.03
F: Impedance Field Method Data Postprocessing Library
ifm::ReadsIFM

Example
set IDs [list rdf ift SUM]
set FILEs [list rdf_I_ndrain.csv ift_I_ndrain.csv SUM_I_ndrain.csv]
ifm::ReadsIFM out= sIFM nrow= Nrow ncol= Ncol files= $FILEs ids= $IDs
puts "The linear drain current response due to random dopant fluctuations in
the 123th randomization at 12th bias point is: sIFM(rdf,12,42) =
$sIFM(rdf,12,42). The corresponding response to interface traps is
sIFM(ift,12,42) = $sIFM(ift,12,42). The combined response is sIFM(SUM,12,42) =
$sIFM(SUM,12,42)"

NOTE The CSV file associated with the SUM ID is not actually read and,
therefore, it does not have to exist. The actual dataset is computed
automatically by summing all previously read datasets.

228 Sentaurus Visual User Guide


H-2013.03
F: Impedance Field Method Data Postprocessing Library
ifm::SetInfoDef

ifm::SetInfoDef
Sets the default information level.

NOTE Level 0: Error or status messages only.


Level 1: Echo results.
Level 2: Show progress and some debug information.
Level 3: Show all debug information.

The local info level also can be set using the info keyword of the procedures in the IFM
library.

Syntax
ifm::SetInfoDef 0 | 1 | 2 | 3

Argument Description

<info_level> Sets the default info level. Default: 0

Returns

None.

Example
ifm::SetInfoDef 2

Sentaurus Visual User Guide 229


H-2013.03
F: Impedance Field Method Data Postprocessing Library
ifm::WriteCSV

ifm::WriteCSV
Writes a Tcl array to a CSV file.

Syntax
ifm::WriteCSV file= <string> csv= <array_name> ncol= <var_name> \
[info= 0 | 1 | 2 | 3] [help= 0 | 1]

Argument Description

file Name of a CSV file to be written. (String, no default)

csv Name of an array with two indices, containing the data to be written.
The first index is string valued and contains the elements Header and
Data.
The second index is integer valued and enumerates the number of columns in
the CSV file.
The values of the Header elements are the dataset names.
The values of the Data elements contain lists with the values in the dataset.
(Array name, no default)

ncol Name of a variable containing the number of columns in the CSV data to be
written. (Variable name, no default)

info Sets local info level. Default: 0

help Prints a help screen if set to 1. Default: 0

Returns

None.

Example
set Ncol 3
set CSV(Header,0) "A"
set CSV(Header,1) "B"
set CSV(Header,2) "C"
set CSV(Data,0) [list 1.1 1.2 1.3 1.4]
set CSV(Data,1) [list 2.1 2.2 2.3 2.4]
set CSV(Data,2) [list 3.1 3.2 3.3 3.4]
ifm::WriteCSV csv= CSV ncol= Ncol file= "my.csv"

230 Sentaurus Visual User Guide


H-2013.03

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy