(Manual) Sentaurus Visual
(Manual) Sentaurus Visual
www.synopsys.com
Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Customer Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Statement on Inclusivity and Diversity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2. Basic Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Loading Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Supported File Formats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3
Contents
Loading Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Reloading Plot Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
Automatically Reloading Datasets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
Managing Loaded Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Customizing Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Creating Custom Buttons to Access Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Working With Plots. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Modes When Interacting With Plots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Common Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
XY Plot–Only Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
2D Plot–Only Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
3D Plot–Only Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Linking Plots. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Automatically Linking Plots. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Undoing Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Displaying Multiple Plots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Grid Orientation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Vertical Orientation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Horizontal Orientation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Managing Frames . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Drawing Inside Plots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Inserting Text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Drawing Rectangles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Drawing Ellipses. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Drawing Lines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Exporting Plots. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
Exporting Movies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
Starting a New Movie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
Adding Frames in a Movie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
Exporting a Movie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Printing Plots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Zooming and Panning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Zoom Tool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Reset Tool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Deleting Plots. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Performance Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Fast Draw (3D Plots Only) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
4
Contents
5
Contents
6
Contents
7
Contents
8
Contents
Fonts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
Lines. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
Markers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
add_custom_button . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
add_frame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
calculate. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
calculate_field_value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
calculate_scalar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
create_angle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
create_curve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
create_cut_boundary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
create_cutline. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
create_cutplane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
create_cutpolyline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232
create_cutpolyplanes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
create_field . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
create_iso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
create_plot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
create_projection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
create_projection_path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
create_ruler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
create_streamline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242
create_surface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
create_variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
diff_plots. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
draw_ellipse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248
draw_line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
draw_rectangle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250
draw_textbox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
echo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252
exit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252
9
Contents
export_curves . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
export_movie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
export_settings. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
export_variables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
export_view . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256
extract_path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
extract_streamlines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
extract_value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260
find_values. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262
get_angle_prop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
get_axis_prop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
get_camera_prop. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
get_contour_labels_prop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
get_curve_data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270
get_curve_prop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
get_cutline_prop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273
get_cutplane_prop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275
get_ellipse_prop. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276
get_field_prop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277
get_grid_prop. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279
get_input_data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280
get_interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
get_legend_prop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282
get_light_prop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
get_line_prop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
get_material_prop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
get_plot_prop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289
get_rectangle_prop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292
get_region_prop. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293
get_ruler_prop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
get_streamline_prop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
10
Contents
get_textbox_prop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298
get_variable_data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300
get_vector_prop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301
get_vertical_lines_prop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
help . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304
import_settings. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
integrate_field . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306
link_plots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308
list_curves . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310
list_custom_buttons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311
list_cutlines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312
list_cutplanes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313
list_datasets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314
list_ellipses. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315
list_fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316
list_files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317
list_lines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318
list_materials . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319
list_movie_frames . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320
list_plots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320
list_rectangles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
list_regions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322
list_streamlines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323
list_tdr_states. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324
list_textboxes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325
list_variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326
list_vertical_lines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327
load_file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328
load_file_datasets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
load_library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330
load_netlist. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331
11
Contents
load_script_file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332
move_plot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333
overlay_plots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334
probe_curve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335
probe_field . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336
reload_datasets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337
reload_files. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337
remove_curves . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338
remove_custom_buttons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338
remove_cutlines. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339
remove_cutplanes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339
remove_datasets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340
remove_ellipses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341
remove_fields. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342
remove_lines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343
remove_plots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344
remove_rectangles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344
remove_rulers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345
remove_streamlines. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346
remove_textboxes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347
render_mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348
reset_settings. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348
rotate_plot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
save_plot_to_script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350
select_plots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
set_angle_prop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352
set_axis_prop. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353
set_band_diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357
set_best_look. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357
set_camera_prop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358
set_capacitance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359
12
Contents
set_contour_labels_prop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360
set_curve_prop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361
set_cutline_prop. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364
set_cutplane_prop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365
set_deformation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366
set_ellipse_prop. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367
set_field_prop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368
set_grid_prop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370
set_legend_prop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371
set_light_prop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374
set_line_prop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376
set_material_prop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377
set_plot_prop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379
set_rectangle_prop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383
set_region_prop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384
set_ruler_prop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386
set_streamline_prop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387
set_tag_prop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389
set_textbox_prop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390
set_transformation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392
set_value_blanking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393
set_vector_prop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394
set_vertical_lines_prop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396
set_window_full . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397
set_window_size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397
show_msg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398
start_movie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399
stop_movie. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399
undo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400
unload_file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400
version . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401
13
Contents
windows_style . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402
zoom_plot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403
14
Contents
15
Contents
ext::ExtractSS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454
ext::ExtractSsub. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 456
ext::ExtractValue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457
ext::ExtractVdlin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 459
ext::ExtractVdlog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 460
ext::ExtractVglin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 461
ext::ExtractVglog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463
ext::ExtractVtgm. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 464
ext::ExtractVti. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465
ext::ExtractVtsat. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 467
ext::FilterTable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 468
ext::FindExtrema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 472
ext::FindVals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473
ext::LinFit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475
ext::Linspace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 477
ext::LinTransList. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 478
ext::Log10List. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 479
ext::RemoveDuplicates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 480
ext::RemoveZeros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481
ext::SubLists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482
lib::SetInfoDef . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 484
References. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 484
16
Contents
ifm::GetHistogram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493
ifm::GetMoments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 494
ifm::GetMOSIVs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495
ifm::GetMOSWeights . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 500
ifm::GetNoiseStdDev . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 501
ifm::GetQQ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 503
ifm::GetsIFMStdDev. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 504
ifm::GetSNM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 505
ifm::GetSRAMVTC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 507
ifm::ReadCSV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 511
ifm::ReadsIFM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 512
ifm::WriteCSV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 515
lib::SetInfoDef . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 516
17
Contents
18
Contents
rfx::Cart2Polar_c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 582
rfx::Cart2Polar_v . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 583
rfx::Conj_c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 584
rfx::Conj_v . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 585
rfx::Div_c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 586
rfx::Div_v . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 587
rfx::Im_c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 588
rfx::Mul_c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 588
rfx::Mul_v . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 589
rfx::Mulsc_c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 590
rfx::Phase_c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 591
rfx::Phase_v . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 592
rfx::Polar2Cart_c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 593
rfx::Polar2Cart_v . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 594
rfx::Re_c. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 595
rfx::Sign . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 595
rfx::Sub_c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 596
rfx::Sub_v . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 597
lib::SetInfoDef . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 598
References. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 598
References. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 601
19
About This Guide
The Synopsys® Sentaurus™ Visual tool is part of Sentaurus Workbench Visualization. It is
a plotting software for visualizing data from simulations and experiments. Sentaurus Visual
allows users to work interactively with data using both a user interface and a scripting
language for automated tasks.
For additional information, see:
• The TCAD Sentaurus release notes, available on the Synopsys SolvNetPlus site (see
Accessing SolvNetPlus on page 21)
• Documentation available on the SolvNetPlus site
Conventions
The following conventions are used in Synopsys documentation.
Convention Description
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 enter. 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,
choose New).
Customer Support
Customer support is available through the SolvNetPlus site.
Accessing SolvNetPlus
The SolvNetPlus site includes a knowledge base of technical articles and answers to
frequently asked questions about Synopsys tools. The site also gives you access to a wide
range of Synopsys online services including software downloads, documentation, and
technical support.
To access the SolvNetPlus site:
1. Go to https://solvnetplus.synopsys.com.
2. Enter your user name and password. (If you do not have a Synopsys user name and
password, follow the instructions to register.)
includes internal initiatives to remove biased language from our engineering and working
environment, including terms that are embedded in our software and IPs. At the same time,
we are working to ensure that our web content and software applications are usable to
people of varying abilities. You may still find examples of non-inclusive language in our
software or documentation as our IPs implement industry-standard specifications that are
currently under review to remove exclusionary language.
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 user interface provides direct and easy-to-use functionality, as well as advanced
controls for expert users. With the user interface of Sentaurus Visual, you can systematically
visualize devices as xy, 2D, and 3D plots.
The following example loads the dataset associated with a file and generates its plot:
svisual n2_fps.tdr
When starting Sentaurus Visual from the command line, you can use the following options
(which are displayed by entering svisual -h):
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] : Run Sentaurus Visual with Mesa driver
(20.2 OpenSWR).
-custom_mesa | -cm : Run Sentaurus Visual with Mesa driver
(23.1 LLVMpipe).
-glx : Run Sentaurus Visual with GLX driver.
-vgl : Run Sentaurus Visual in VirtualGL
environment.
-noavx : Run Sentaurus Visual without AVX support
(by default, AVX support is active when Mesa
is switched on).
-b[atch] : Run in pure batch mode (requires a script
file).
-batchx | -bx : Run in batch mode that allows export of
graphics (virtual X server, requires
a script file).
-retry_count <integer> : Number of attempts to find a free virtual X
screen buffer. Specify 0 to retry
indefinitely. Default is 15.
-retry_time <integer> : The maximum time to wait (in seconds) for a
free virtual X screen buffer to become
available. Default is 0 (no time-out).
-diagnostics : Execute the diagnostics process, analyzing
the environment, the system, and the setup.
-p[ython] : Run Sentaurus Visual in Python mode,
overriding user preferences.
-t[cl] : Run Sentaurus Visual in Tcl mode,
overriding user preferences.
-s[cript] <string> : Execute listed files as Sentaurus Visual
scripts in Tcl or Python mode, according
to user preferences, or -t[cl] or -p[ython]
option.
-i[nspect] | -f <string> : Execute listed files as Inspect scripts.
-librarypath <string> : Add library path to default path.
-nolibrary : Switch off Tcl library auto-loading.
-nowait : Do not wait for a license to become
available.
-verbose : Print every Tcl or Python command executed
to the log file.
-slowscript | -ss : Redraw plots automatically after each command
(script execution is slower).
-spi : Launch Sentaurus Process interface.
-geoms <string> : Load only the geometries listed.
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.
As a D-Bus Session
Sentaurus Visual can be run in a special mode in which it creates its own D-Bus session.
This feature is useful, for example, for certain grid configurations that cannot close D-Bus
sessions, even if Sentaurus Visual has already exited.
To switch on this feature, set the SVISUAL_DBUS_RUN_SESSION environment variable to 1
before starting Sentaurus Visual as follows:
# For C shell
setenv SVISUAL_DBUS_RUN_SESSION 1
# For bash
export SVISUAL_DBUS_RUN_SESSION=1
Figure 1 Main window of Sentaurus Visual showing different plots in the plot area
Menu Bar
You use the menu bar 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.
Menu Description
File Loads plots and scripts, reloads data, and exports and prints plots.
View Shows and hides toolbars and panels; plot settings and performance options.
Toolbars
Toolbars offer quick access to commonly used functions that are also available from the
different menus (see Toolbars on page 416).
Note:
One toolbar is always visible to allow you to show or hide the Tcl or Python
Console and to organize the data selection and properties panels into tabs.
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.
Custom Buttons Accesses custom buttons. See Creating Custom Buttons to Access Scripts on
page 48.
Plot Area
The plot area displays the active plots. You can select or deselect plots as follows:
• To select one plot, click inside the plot.
• To select multiple plots, hold the Shift key while you click inside the plots.
• If you click a selected plot while holding the Shift key, then that plot is deselected.
Toolbars and panels change depending on the types of plot selected.
• The Properties panel lists the selected object properties. By default, it shows the plot
properties. It will change after an object is selected. This panel can also be displayed (if
it is arranged behind the Data Selection panel or if it is hidden) at its last position in the
main window if you double-click the object.
If the plot area is empty (no plots are created or all plots are hidden), then these panels are
always hidden. After a plot is created, by default, both panels open even if both were closed
by the user in the last session.
To change this default behavior:
1. Choose Edit > Preferences.
The User Preferences dialog box opens.
2. Expand Application > Common.
3. Under Force Panels to Show, deselect Data Selection Panel or Properties Panel or
both options.
4. Click Save.
The Plot Properties panel or the Axis Properties panel must be already open for these quick
access operations to work. To open the Plot Properties panel, double-click an empty part of
the plot if another panel is active. To open the Axis Properties panel, double-click any axis in
the plot area.
You can quickly access different tabs of the Plot Properties panel or the Axis Properties
panel by clicking particular parts of a plot in the plot area:
• Click the plot title to display the Main tab of the Plot Properties panel.
• Click an axis title (for example, X) to display the Title/Scale tab of the Axis Properties
panel.
• Click any tick label on an axis (for example, -5) to display the Ticks tab of the Axis
Properties panel. This operation applies only to 2D plots.
• Click an axis line to display the Main tab of the Axis Properties panel.
Wildcard Filtering
Wildcard filtering is based on command shell filtering to filter files. Wildcard filtering is
simpler than full regular expression filtering. Wildcard filtering is selected when the regular
expression button (.*) button is deselected.
Syntax Description
c Any character represents itself apart from those mentioned in the following table entries.
Therefore, c matches the character c.
Note:
If the character c appears at the start of the filter expression, then the regular
expression only matches from the start.
* Matches zero or more characters, of any character. It is the same as .* in full regular
expressions.
[...] Sets of characters can be represented in brackets, similar to full regular expressions.
Within the character class, the backslash has no special meaning.
• x{1,5} means match a sequence of x characters that contains at least one x but no
more than five.
Suppose you want a regular expression to match integers in the range from 0 to 99. At least
one digit is required, so you start with the expression [0-9]{1,1}, which matches a single
digit exactly once.
With regard to assertions, when $ is the last character of a regular expression, it means the
regular expression must match to the end of the string.
For more information about regular expressions, see J. E. F. Friedl, Mastering Regular
Expressions, Sebastopol, California: O’Reilly Media, 3rd ed., 2006.
Figure 3 Interface to Sentaurus Process: upper part of Simulation Control panel shows
command file and lower part of panel shows log file
Figure 4 Interface to Sentaurus Interconnect: upper part of Simulation Control panel shows
command file and lower part of panel shows log file
Button Description
Button Description
The Run Step button runs the next step in the flow.
When you click this button, either a single step (command) is executed or a group of
commands enclosed in braces is executed. You must repeatedly click this button to
execute the next steps.
5. Under Simulator, from the Breakpoint Behavior list, select one of the following:
◦ Breakpoint Only: Pauses the flow execution at the required step.
◦ Breakpoint as Checkpoint: This is the same as Breakpoint Only, but as well as
pausing the flow, it also saves the step result. This allows the Undo button to
reach the last stored checkpoint.
◦ Breakpoint and Checkpoint: With this option, the Undo button functionality is
separated from breakpoints. A first click creates a breakpoint without saving the step
result, behaving like the Breakpoint Only option. A subsequent click transforms this
step into a checkpoint, saving the step result but not stopping the flow execution.
6. Click Save.
To delete a breakpoint:
► Click the red circle in the left margin until the circle disappears.
Figure 5 Simulation Control panel showing (left)Sentaurus Process command file and (right)
Sentaurus Interconnect command file with breakpoints and checkpoints
Checkpoint insertions
Breakpoint insertions
To delete a checkpoint:
► Click the blue circle in the left margin until the circle disappears.
Multithreading Support
Sentaurus Visual provides multithreading capabilities for the following features to improve
their performance:
• Loading new TDR format files
• Visualizing Sentaurus Topography structures and Sentaurus Process Explorer structures
• Field integration (see Integration Tool on page 158)
• Value blanking (see Value Blanking on page 169)
• Cutting structures (see Cutting Structures on page 175)
• Projection (see Two-Dimensional Projections on page 189)
• Streamlines (see Streamlines on page 206)
In addition, Sentaurus Visual provides multithreading support for some internal
computations, improving the general performance of the application. Most of the features
work on a region basis, which translates to better speedups when regions are similar in size
or complexity.
You can configure the number of threads used by Sentaurus Visual in user preferences:
expand Common > Miscellaneous and, under Threads, specify the maximum number of
threads (see Figure 145 on page 209). You can select Auto next to the Max Number field
to let Sentaurus Visual compute the ideal number of threads to use or set a preferred value.
This number is usually the number of available CPUs on the machine. You also can select
a fixed number of threads to use.
For convenience, you can specify the command-line options --threads and
--max_threads to control the number of threads used. Both options accept an integer value
and can be specified when launching Sentaurus Visual:
• --threads <integer>: The specified value overrides any setting specified in user
preferences. This option is convenient when you want to use a different number of
threads occasionally without modifying user preferences. Specifying 0 yields to
automatic detection, which usually allocates one thread per available CPU on the
machine.
• --max_threads <integer>: The specified value enforces an overall limit on either user
preferences or --threads usage. In any case, the number of threads to run concurrently
is constrained by the specified value. If you specify 0, then it does not limit user
preferences or the --threads option.
Note:
Sentaurus Visual might use more threads than specified for other internal
functionalities. For example, the Mesa driver uses threads for each 2D and 3D
plot. Nevertheless, the number of concurrent threads in execution is constrained
by user preferences or the --threads or --max_threads option.
This chapter describes the basic operations that are common to all plot types.
Loading Files
You can load files from the user interface or the command line. For example:
svisual [file1.tdr file2.tdr ...]
Loading Scripts
Sentaurus Visual can load scripts from the command line. For example, you can simply
enter svisual with the path of a Tcl (.tcl) or Python (.py) script, and Sentaurus Visual
detects the script mode automatically and starts with that scripting language.
You can set a preferred scripting language in user preferences if you do not start Sentaurus
Visual with the path of a script:
1. Choose Edit > Preferences.
The User Preferences dialog box opens.
2. Expand Common > Miscellaneous.
3. Under Preferred Scripting Language, select the required language.
4. Click Save.
Note:
If you start Sentaurus Visual with the -t[cl] or -p[ython] command-line option,
then this enforces the selection, ignoring the preferred scripting language
selected in user preferences.
Tcl and Python scripts run native Sentaurus Visual commands, while Inspect scripts need
the -inspect or -f option to 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 E on page 430. For detailed
information about Inspect commands, see the Inspect User Guide.
From the user interface, choose File > Run Script. A dialog box opens where you can
select the script to load. The scripts loaded using the user interface run native commands
only.
4. Select whether the reload applies to the current selected plots or all plots.
5. Click OK.
Customizing Settings
You can customize the settings of Sentaurus Visual using the User Preferences dialog box
(see Figure 7).
To display the User Preferences dialog box, choose Edit > Preferences.
You can also import or export settings to a file by clicking Import or Export. To restore the
preferences to their defaults, click Reset.
Alternatively, you can import and export settings using Tcl commands:
• To import previously saved settings, use the import_settings command (see
import_settings on page 305).
• To export the current settings, use the export_settings command (see export_settings
on page 255).
Note:
Settings are applied the next time you launch Sentaurus Visual.
An additional option that can be modified in the configuration file converts the traditional
(DF–ISE) coordinate system orientation to the unified coordinate system (UCS) orientation.
The Boolean parameter is called convert/oldCoordinateSystemToUCS and belongs to the
PlotHD group.
On Linux operating systems, user preferences are stored in the following file:
~/.config/Synopsys/SVisual.conf
Custom buttons can be loaded at the start of a Sentaurus Visual session when it loads
scripts stored in the Tcl or Python script library (see Script Library on page 215).
When you click the button, Sentaurus Visual displays a message before and after the script
is executed, so you can identify the section of the commands that is executed using the
button. The message identifies the button that has been clicked by its name and description.
For more information, see add_custom_button on page 221, get_input_data on page 280,
list_custom_buttons on page 311, and remove_custom_buttons on page 338.
Figure 8 User Preferences dialog box showing Plot Mode option selected (the default)
Common Modes
All modes are activated by clicking a toolbar button. The current mode remains active until
you select another mode:
• The Selection mode (the default mode) allows you to select and move all objects
inside plots (such as curves, legend, rectangles, and ellipses).
• The Zoom mode allows you to drag the left mouse button to draw a box. When you
release the mouse button, the area delimited by the box will be magnified.
• The Probe mode allows you to extract data by clicking in the plot. For xy plots, curve
data is extracted (see Probing on page 94). For 2D and 3D plots, structure data is
extracted (see Probing on page 160).
XY Plot–Only Modes
All modes are activated by clicking a toolbar button. The Drawing mode displays a
submenu of drawing options:
• The Draw Line mode allows you to draw a line with the left mouse button.
• The Draw Rectangle mode allows you to draw a rectangle with the left mouse button.
• The Draw Ellipse mode allows you to draw an ellipse with the left mouse button.
• The Insert Text mode allows you to insert a text box with the left mouse button at a
specified position.
Note:
For all of these drawing options, when you release the mouse button, the current
mode finishes and it changes to the Selection mode.
2D Plot–Only Modes
All modes are activated by clicking a toolbar button. The modes specific to 2D plots only are:
• The Cut X mode , the Cut Y mode , and the Cut Z mode allow you to
generate an axis-aligned (x, y, or z) cutline at a specified position (see Cutlines in 2D
Plots on page 179). When you release the mouse button, the current mode finishes and
it changes to the Selection mode.
• The Cutline mode allows you to draw a cutline with the left mouse button. When you
release the mouse button, the current mode finishes and it changes to the Selection
mode.
• The Ruler mode allows you to draw a line with the left mouse button to perform a
measurement. If you hold the Ctrl key while you click the mouse button, the
snap-to-mesh mode is activated (see Measuring Distances on page 154). This mode
remains active until you select another mode.
• The Drawing mode displays a submenu of drawing options:
• The Draw Line mode allows you to draw a line with the left mouse button.
• The Draw Rectangle mode allows you to draw a rectangle with the left mouse button.
• The Insert Text mode allows you to insert a text box with an arrow that can be
repositioned using the left mouse button.
Note:
For all of these drawing options, when you release the mouse button, the current
mode finishes and it changes to the Selection mode.
3D Plot–Only Modes
All modes are activated by clicking a toolbar button. The modes specific to 3D plots only are:
• The Spherical Rotation mode allows you to perform a rotation in spherical
coordinates using the left mouse button. This mode overrides the Selection mode as the
default mode and remains active until you select another mode.
• The Rotation Axis X mode , Rotation Axis Y mode , and Rotation Axis Z mode
allow you to perform a rotation around a fixed x-axis, y-axis, or z-axis with the left mouse
button. This mode cannot select plot elements (aside from the legend) and remains
active until you select another mode.
• The Cut X mode , Cut Y mode , and Cut Z mode allow you to generate an
axis-aligned (x, y, or z) cutplane at a specified position (see Cutplanes in 3D Plots on
page 193). When you release the mouse button, the current mode finishes and it
changes to the Selection mode or the Spherical Rotation mode (depending on which
mode was last active).
• The Ruler mode allows you to draw a line with the left mouse button to perform a
measurement. If you hold the Ctrl key while you click the mouse button, the
snap-to-mesh mode is activated (see Measuring Distances on page 154). This mode
remains active until you select another mode.
Linking Plots
The feature of linking plots can be used to compare 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 by holding the Shift key and clicking the required plots.
2. Click the toolbar button.
The linking operation links all properties except for y-axes and y2-axes in xy plots and
streamlines in 2D and 3D plots. For customized linking properties, special linking can be
used to link only specified properties and to set the remaining properties individually.
Plot linking also links the plot mode. This behavior is switched on by default and can be
changed in the User Preferences dialog box (expand Common > Miscellaneous) by
deselecting Plot Mode (see Figure 8 on page 50). However, special linking can be used to
change this behavior for particular groups of linked plots.
Note:
All plot properties are linked by default, including the properties of the plot title,
except the text of the title, which is independent of the other plots regardless of
which linking option is selected.
When linking is set to automatic, plots are linked only if the following criteria are met:
• Plots must be dimension compatible, that is, the plots must have the same dimensions.
In addition, 2D plots can be linked to xy plots when generated by cutline operations (they
will share the range of the common axis). Three-dimensional plots cannot be linked to xy
plots.
• Plots must use the same coordinate system orientation. For example, a 3D plot using the
UCS orientation and a 3D plot using the traditional coordinate system orientation cannot
be linked.
• Plots must use the same unit for axes. For example, if several 2D plots all use µm as the
unit for their axes, then all these plots are linked. On the other hand, if one 2D plot uses
µm and another 2D plot uses no units, then these two plots are not linked.
When linking is set to automatic, to distinguish plots, the following applies:
• The prefix A1 indicates an xy plot.
• The prefix A2 indicates a 2D plot.
• The prefix A3 indicates a 3D plot.
• Linked 2D and 3D plots have the same suffix, such as .1, .2, and .3.
• Linked xy plots have no suffix.
Figure 9 shows two linked plots, indicated by A2.2 in their upper-right corners. Both are 2D
plots and both use the same units for their axes (µm). The other 2D plot is not linked (A2.1)
because it is unitless. It has the suffix .1 because it is the first 2D plot in the plot area.
Figure 9 (Top row) Unitless 2D plot and 3D plot that are not linked to other plots, and (bottom
row) two automatically linked plots with the same dimension and the same units
used for their axes
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 400).
Grid Orientation
To display plots in a grid configuration (see Figure 10), choose Window > Tile Grid.
By default, the aspect ratio between plots is preserved, but this can be changed by
deselecting Keep Aspect Ratio in the Manage Frames dialog box (see Figure 14 on
page 59). Figure 11 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.
Vertical Orientation
To arrange plots vertically (see Figure 12), choose Window > Tile Vertically.
Horizontal Orientation
To arrange plots horizontally (see Figure 13), choose Window > Tile Horizontally.
Managing Frames
More advanced sorting options can be configured in the Manage Frames dialog box (see
Figure 14). To open the dialog box, choose Window > Manage 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. In addition, you can manage plots by
minimizing them or restoring them using the Visible option.
Inserting Text
To insert text inside a plot, click the toolbar button, or use the draw_textbox command
(see draw_textbox on page 251).
The text properties such as font size, font color, and position can be changed using the
set_textbox_prop command (see set_textbox_prop on page 390). This feature is
available for xy and 2D plots.
There is a difference between the behavior of text boxes in xy plots and 2D plots, which is
related to the coordinate system:
• In xy plots, the lower-left corner of the text box is placed at a specified point using the
world coordinate system {x, y}. The text box keeps its position even if you perform a
panning operation.
The world coordinate system is a Cartesian coordinate system where the positions of
objects, such as curves and drawn objects, are defined. The scale of the axes shows the
world coordinate values.
• In 2D plots, the anchor arrow also exhibits this behavior, so it is placed at a specified
point using the world coordinate system. However, the text box in 2D plots always retains
its specified visual position even if you perform a panning operation. This is because the
text box uses relative normalized screen coordinates, so its position is defined by
numbers from 0.0 to 1.0, that is, {0.0, 0.0} for the lower-left corner of the plot area and
{1.0, 1.0} for the upper-right corner of the plot area.
Drawing Rectangles
Note:
This feature is available only for xy and 2D plots.
To draw a rectangle, click the toolbar button or use the draw_rectangle command (see
draw_rectangle on page 250).
You can edit a rectangle using the user interface or the set_rectangle_prop command
(see set_rectangle_prop on page 383).
To delete a rectangle, select the rectangle and press the Delete key.
To delete multiple rectangles simultaneously, use the remove_rectangles command (see
remove_rectangles on page 344).
To list the rectangles inside a plot, use the list_rectangles command (see list_rectangles
on page 321).
Drawing Ellipses
Note:
This feature is available only for xy plots.
To draw an ellipse, click the toolbar button or use the draw_ellipse Tcl command (see
draw_ellipse on page 248).
You can edit an ellipse using the user interface or the set_ellipse_prop command (see
set_ellipse_prop on page 367).
To delete an ellipse, select the ellipse and press the Delete key.
To delete multiple ellipses simultaneously, use the remove_ellipses command (see
remove_ellipses on page 341).
To list the ellipses inside a plot, use the list_ellipses command (see list_ellipses on
page 315).
Drawing Lines
Note:
This feature is available only for xy and 2D plots.
To draw a line, click the toolbar button or use the draw_line Tcl command (see
draw_line on page 249).
You can edit a line using the user interface or the set_line_prop command (see
set_line_prop on page 376).
To delete a line, select the line and press the Delete key.
To delete multiple lines simultaneously, use the remove_lines command (see
remove_lines on page 343).
To list the lines inside a plot, use the list_lines command (see list_lines on page 318).
Exporting Plots
You can export plots to an image file. Sentaurus Visual supports exporting plots to the
following file formats: BMP, EPS, JPG, JPEG, PNG, PPM, TIF, TIFF, XBM, and XPM.
To export plots:
1. Choose File > Export Plot, press Ctrl+E, or click the toolbar button.
The Export Plot dialog box opens.
Exporting Movies
You can export several captures of one or more plots to generate an animated GIF file.
Exporting a Movie
To export a movie:
1. Choose Tools > Movies > Stop Recording, or click the toolbar button.
The Export Movie dialog box opens.
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.
Click Cancel to delete the entire frame buffer.
7. In the dialog box that opens, ensure that the file has the .gif extension. Add the
extension if it is missing.
Printing Plots
You can print selected plots by either clicking the toolbar button, or choosing File > Print
Plots, or pressing Ctrl+P.
The Printer dialog box opens, where you can select a printer and set print properties.
Note:
All plots are printed on one page.
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:
► Choose Data > Delete Selected Plots or press Ctrl+D.
Note:
Deleting a plot does not delete the associated dataset. To delete the datasets or
the plots or both, choose Data > View Info Loaded (see Figure 6 on page 47).
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.
Advanced options include setting the rendering delay after a mouse operation, modifying the
quality of the subsampled interactive structure, and activating the caching functionality for
fields:
• 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 allows 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 allows drawing of the boundaries only of 3D structures.
• The Enable Field Caching option helps you to obtain faster transitions between different
field visualizations. When it is selected, this option avoids the recalculation of
visualization field data that has already been loaded and for which its configuration has
not changed.
• The Disable Drawing option helps you to improve the loading of files in Sentaurus
Visual. This option switches off plot drawing when loading several files and then switches
it on when the loading of files is finished.
• The Show Borders option switches on or off the default visualization of region border
lines in 2D and 3D plots.
• The Projection options allow you to set the default value of the camera projection to
either perspective or parallel coordinates (see Interacting With 3D Plots on page 121).
• The Show Label option sets the default behavior for the ruler to show the distance label
in the plot or to not show the distance label (see set_ruler_prop on page 386).
Note:
These changes are active only when in GUI mode. When the operation is
completed, the full rendering is shown.
Figure 17 shows the effects of rendering the structure with subsampling or with the Enable
Fast Draw option selected.
Figure 17 (Left) Fast draw activated, (middle) subsampling selected, and (right) original
structure
By default, Sentaurus Visual generates a standard log file with all the commands executed
during a session, named SVisualTcl.log for Tcl or SVisualPy.log for Python. This log file
does not store commands executed by a script or procedure. If this log file already exists,
then Sentaurus Visual renames this file by adding the .BAK extension.
In addition, by default, another Tcl log file is created if Sentaurus Visual is executed from the
command line (or Sentaurus Workbench) with a script. For example:
% svisual scriptFile.tcl
This additional log file not only stores Tcl commands executed during the session, but also
writes Sentaurus Visual Tcl commands executed from a script. In this case, the log file
contains more detailed information than the standard Tcl log file. This additional log file is
named according to the script executed from the command line (or Sentaurus Workbench),
changing the file extension of the script from .tcl to .log, for example, scriptFile.log.
To change the selection of log files:
1. Choose Edit > Preferences.
2. In the User Preferences dialog box, expand Application > Common.
4. Click Save.
Loading XY Plots
Loading an xy file does not automatically plot the dataset associated with it. Instead, the
loaded datasets appear in the Data Selection panel, and a blank plot is created as shown in
Figure 18.
Figure 18 Data Selection panel showing (left) active datasets of xy plot and (right) active
datasets of cutline plot
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 and cutline plots, the x-axes and y-axes are assigned
automatically, and the respective curve is generated onto the active plot.
-0.0001
I(vs,s)
-0.0002
0 0.5 1
V(g)
4e-05
Y
2e-05
0
0 0.5 1
X
When you display multiple curves in an xy plot, the curves are colored according to
user-defined rules set in the User Preferences dialog box (expand 1D > Curve Colors). By
default, Sentaurus Visual displays curves using a round-robin logic from a list of colors as
shown in Figure 21 on page 75.
To add a custom color to the list of colors:
1. Under Curve Color Behavior, select List Colors.
2. Under Curve Color Selection, click Add.
3. In the dialog box that opens, specify a custom color.
4. Click OK to close the dialog box.
5. Click Save.
Figure 22 User Preferences dialog box showing a constant curve color has been specified
Figure 24 Navigation area displaying state name and state index of curve
The navigation area allows you to switch between displayed states quickly with the:
• Next State button
• Previous State button
• First State button
• Last State button
With any change to the state index, the plot title will be updated reflecting the state name.
In addition, the Play button allows you to automatically go through all the states, with a
1 second delay between changes, in ascending order. If the last state is reached and the
Play button is still active, the sequence will restart.
If displayed curves do not have the same states, the navigation area changes to display the
generic state name state and the state index of all curves (see Figure 25).
When displaying more than one curve with different state lengths, if you increase the state
index to be displayed and one of the curves already reaches its maximum state number, that
curve will remain in the maximum valid state number and only the other curves will continue
changing accordingly. Switching the state of a curve is a property of a plot, but it cannot be
handled in isolation for a single curve being plotted with other curves with different state
lengths.
Plotting a multistate curve together with non-multistate (normal) curves will still display the
navigation area and the navigation of the multistate curves as previously described.
However, normal curves are not affected by any state changes.
Cutline Plots
Cutline plots have a special interface that allows you to plot new curves by simply selecting
one or more variables from a single dataset or a set of datasets. The curve visualization
depends only on the datasets and variables selected in the Data Selection panel (see
Figure 26 and Figure 27). You only need to select a new variable (or a set of them) to
remove the old curves and to create new ones.
The Data Selection panel does not have the buttons to assign variables to the x-axis or
y-axis, but it maintains the New Variable button and implements the Duplicate Plot button
that is used to duplicate the current plot as an xy plot, which es the features of an xy plot for
the currently displayed cutline plot by cloning it.
Cutline plots have a special plot title that follows the format: Cutline_* Plot, where * can be
X, Y, Z, or Free, depending on the type of cut. This helps to distinguish cutline plots from xy
plots.
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 Data Selection panel. You also can select multiple curves in the Data
Selection panel and apply properties to all of them. The Curve Properties panel is displayed
(see Figure 28).
In the Curve Properties panel:
• On the Main tab, you can change the label of the curve, and select to show or hide the
legend and named curve.
• On the Shape tab, you can change properties such as curve color, line style, line width,
and data pointers.
• 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. In addition, you can shift and scale the
selected curve in the x-axis and y-axis.
• On the Analysis tab, you can perform certain analyses on the dataset. For a detailed
explanation, see Computing Electrical Characteristics on page 96.
Figure 29 Data Selection panel showing Curves tab with (left) Style subtab and (right)
Transformations subtab
See Quick Access to Tabs of Plot Properties and Axis Properties Panels on page 30.
Figure 32 Advanced Title dialog box for inserting Greek and math symbols and applying
formatting
Legend Properties
Legend properties such as position, font attributes, and colors can be changed in the
Legend Properties panel (see Figure 33). To open the panel, double-click the legend of an
xy plot.
Axis Properties
The appearance of axes can be modified using the Axis Properties panel (see Figure 34).
To open the Axis Properties panel, double-click any axis in the plot area.
See Quick Access to Tabs of Plot Properties and Axis Properties Panels on page 30.
Figure 35 Axis Properties panel showing the Title/Scale tab where you can change the
precision of the axis manually
By default, the precision is chosen automatically based on the dimension of the plot, but this
can be manually changed:
1. Deselect Auto.
2. In the Precision box, select the precision required.
Duplicating XY Plots
To duplicate an xy plot, choose Data > Duplicate Plot. All properties of the selected plot are
replicated in a new plot.
Table 4 lists the defined words that are allowed in the <math> tag. Only one word is allowed
in the <math> tag.
Table 4 Defined words that are allowed in <math> tag
The text in xy plots also supports HTML symbols without using an XML tag pair, so as to
avoid conflicts with reserved characters such as < and >. To use HTML symbols, you can
use either the entity number with the &# prefix or the entity name with the & prefix, for
example, ΔI [mA/μm] shows as I [mA/µm]. Table 5 lists some of the frequently
used HTML symbols.
Note:
Not all entities have a name, but all can be referenced by a number.
Figure 36 Plot showing Greek symbols, math symbols, and scientific notation in axis labels
and legend
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 37).
Figure 37 Axis Properties dialog box showing the selection of scientific notation
The dataset must have the following variables defined (variable names are italicized):
• Electron density (eDensity)
• Hole density (hDensity)
• At least one of the following doping fields:
◦ DopingConcentration
◦ NetActive
◦ NetDoping
If the dataset does not meet these requirements, then the toolbar button is not available.
Figure 38 Example of visualizing edges of depletion regions; edges are indicated by black
lines
Cutline_Y Plot
1e+20 DopingConcentration(C1(n60_des))
1e+19
1e+18
1e+17
1e+16
1e+15
-10
1 0 10
X
You can change the color, style, and width of the edges by using either the
set_vertical_lines_prop command (see set_vertical_lines_prop on page 396) or the
Vertical Lines Properties dialog box (double-click one of the edges to open the dialog box).
-5
Ec
Ev
Efn
Efp
0 0.2 0.4
X
The dataset must have the following variables defined (variable names are italicized):
• Conduction band energy (ConductionBandEnergy)
• Valence band energy (ValenceBandEnergy)
• Electron quasi-Fermi energy (eQuasiFermiEnergy) or electron quasi-Fermi potential
(eQuasiFermiPotential) but not both in the same dataset
• Hole quasi-Fermi energy (hQuasiFermiEnergy) or 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.
Discrete traps have three components: position, energy, and scalar field. The scalar field is
used to color the discrete traps from red to blue, with red indicating the maximum value and
blue indicating the minimum value. You can use the probe tool to obtain the value of each
discrete trap (see Probing on page 94).
Figure 42 (Left) Typical visualization of data and (right) visualization of data as a step-like plot
The generated file has a particular structure that you can edit for customized loads:
• Plot Configuration Module: This module updates the plot with the saved properties,
which is performed with the set_axis_prop, set_grid_prop, set_legend_prop, and
set_plot_prop commands (the set_axis_prop command is executed for x-axes,
y-axes, and y2-axes).
• Curves Configuration Module: This module updates the curves with their saved
properties such as color and line width. The update is performed with the
set_curve_prop command.
• Drawings Restoration Module: This module places the drawings in the plot and restores
their properties.
Note:
Only text box properties are restored. Other drawings properties must be
updated manually.
• Data Initialization Module: This module initializes the curve data using a Tcl array
structure. The final data is stored as:
set datasetList(<curveName>) { {<xAxisData>} {<yAxisData>} }
• Plot and Curves Restoration Module: After its initialization, the data module creates the
xy plot and then creates the curves using the datasetList data. In general, this module
should never be modified.
Probing
You can sample the intersection value for a horizontal or vertical line depending on whether
probing is performed on the x-axis or y-axis. In xy plots, the probe tool uses the interpolation
that matches the axis to obtain the value: linear when the axis is in normal mode and log
when the axis is in log mode.
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 Only Active Curve.
• To show guide lines while probing, select Show Guide Lines.
• To show and use the closest point on the curve, select Snap to Point.
Figure 43 Calculate Scalar dialog box showing the results from the mathematical operations
in the Function field
In the dialog box, you create a formula by inserting functions and operators, and using
existing 1D data. For the latter, you must select whether the formula will operate on variables
(from a dataset) or curves (from a plot).
Note:
The last operation that encloses the entire set of functions must be a scalar value
function. Otherwise, the calculation will fail.
Figure 44 Create New Curve dialog box showing available mathematical operations
Curves can have different values of x or length, and all operations are allowed. When this
happens, the original curves are interpolated to obtain two curves with the same values of x
that allow the operations to be performed point by point.
maximum transconductance value, the drain saturation current, the leakage current, and the
output resistances in the linear or saturation region.
To use the analysis tool, click the toolbar button.
Table 6 Types of curve analysis
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.
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.
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 results in the analysis
tool, see Inspect User Guide, Chapter 8.
4. Export all variables (click the >> button), or export only the variables you need (click the
> button) to the Variables to Export pane.
5. Define the order of variables or curves in the export list using the Move Up or Move
Down buttons to the right of the Variables to Export pane.
6. Click Export.
7. In the dialog box that opens, select the file format in which to export the data.
Note:
The precision of the data exported can be changed in the User Preferences dialog
box (expand Application > Common and, under Export, specify the precision).
When you export 1D plot variables to a .csv file, Sentaurus Visual might add a
row to the file. The data in this row is only used internally. This additional row is
always the second row and contains only none and SELECTED values. You can
delete this row.
This chapter presents specific topics about working with 2D and 3D plots.
-10
-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
0 5 10 15 20
Y
The Axes tab allows you to show or hide the axes, to interchange the axes (only for 2D
plots), and to show or hide the cube axes (only for 3D plots).
The Colors tab allows you to change the background and foreground colors of plots. The
Palette tab allows you to select the color scheme to use for contouring and materials.
Figure 48 (Left) Colors tab and (right) Palette tab for 2D and 3D plots
For 2D plots, the Scaling tab lets you change the x-to-y ratio. For 3D plots, this tab lets you
scale plot axes.
The Contacts tab lets you customize the behavior of the contact color by selecting the
behavior from the list.
The Markers tab lets you display a location marker for minimum and maximum values.
For 2D plots only, the Grid tab allows you to customize the color and width of grid lines.
3. From the Material Color Scheme list, select Classic Colors or Vivid Colors.
The Classic color scheme is the one that has been traditionally used.
4. Click Save.
3. On the Palette tab, from the Material list, select Classic Colors or Vivid Colors.
Figure 53 Comparison of (left) Classic color scheme and (right) Vivid color scheme
To adjust the font size and leader visibility of the caption as well as whether region or
material names are shown, use the caption-related arguments of the set_plot_prop
command (see set_plot_prop on page 379).
Nitride_1.1
PolySilicon_1
Nitride_1.2
drain
source
Silicon_1
substrate
Visualizing Fields
The active field to be visualized in a plot can be chosen in the Data Selection panel (see
Figure 55). The fields can be either scalar or vector. For scalar fields, you can choose the
number of colors in which the visualization will be divided as well as the scale, which can be
linear, logarithmic, hyperbolic arcsine (Asinh), logarithmic of the absolute (LogAbs), or some
custom list of points that you define. Interface and particle fields are on separate tabs from
scalar fields.
Figure 56 Scale options for field visualization: (upper left) linear scale, (upper right) logarithmic
scale, (lower left) Asinh, and (lower right) LogAbs
-10 -10
-5 -5
X
0 0
X
2.463e+05 2.463e+05
1.194e+05 3.474e-07
5 -7.541e+03 5 4.901e-19
-1.345e+05 6.914e-31
-2.614e+05 -1.025e-18
-3.883e+05 -7.268e-07
-5.152e+05 -5.152e+05
10 10
0 5 10 15 20 0 5 10 15 20
Y Y
-10 -10
-5 -5
0 0
X
X
Figure 57 Interface data displayed in 2D plots for: (left) regular region field and (right) field
defined on interface region
Plot 2D Plot 2D
0 0
0.5 0.5
X 1
X 1
tS Int(tS)
2.419e-21
2.021e-21
1.5 1.5
1.623e-21
0.0 1.225e-21
8.276e-22
4.298e-22
3.205e-23
2 2
0 0.5 1 1.5 0 0.5 1 1.5
Y Y
Figure 58 Interface data displayed in 3D plots for: (left) regular region field and (right) field
defined on interface region
Plot 3D Plot 3D
Z Z
Y Y
X X
nS Int(nS)
4.658e-08
3.882e-08
3.105e-08
0.0 2.329e-08
1.553e-08
7.763e-09
0.000e+00
Note:
When rendering 3D plots, you can observe the stitching phenomenon. It occurs
when interface regions share their points with other regions. Both these types of
region consist of coplanar polygons where two faces occupy essentially the same
space, but neither is in front of the other. The result is a visible flickering as
affected pixels are rendered from one polygon and then another polygon
randomly.
For this reason, when working with 3D plots, you must switch on translucency of
other regions to minimize the flickering effect.
Junction Lines
Sentaurus Visual calculates automatically the junction line in semiconductor regions where
the Doping field is present.
The junction line is visualized as a dark-red contour line and is defined where Doping
(DopingConcentration or NetActive) is equal to zero (Doping=0).
Depletion Regions
Sentaurus Visual calculates automatically the depletion region in semiconductor regions
where the Doping field (DopingConcentration or NetActive) and the electron and hole
density fields (eDensity and hDensity, respectively) are present.
The edge of the depletion region is visualized as a white contour line. The depletion region
is defined by:
eDensity hDensity
n --------------------- – p --------------------- = DepletionEdgeValue
Doping Doping
where:
n = max --------------------------------------- 0
Doping
abs(Doping) + 1
p = max --------------------------------------- 0
– Doping
abs(Doping) + 1
The DepletionEdgeValue is equal to 0.05 by default. You can modify this value by
changing the Sentaurus Visual configuration file (~/.config/Synopsys/SVisual.conf).
The parameter that defines the DepletionEdgeValue is called depletion\edgeValue and
belongs to the PlotHD group:
...
[PlotHD]
...
depletion\edgeValue=0.05
...
Figure 59 Navigation area for 2D and 3D plots generated from TDR file containing multiple
states
The navigation area allows you to switch between displayed states quickly with the:
• Next State button
• Previous State button
The navigation area for 2D and 3D plots also has the Expand/Collapse States button
that opens the Expand States dialog box where you can select the states to expand (see
Figure 61):
• Click the > button to add one state only.
• Click the < button to remove one state only.
When you click the Expand button in the dialog box, all the selected states are expanded to
separate plots, so that you can analyze each state one by one (see Figure 62).
If you click the Expand/Collapse States button again in any expanded plot or the parent plot,
all of the expanded plots will collapse, but not the parent plot.
Figure 62 Example of 3D kinetic Monte Carlo TDR file expanded to show the same structure
with changes to the state over time
Such plots can also have different field data for each state. Switching states or expanding
plots can help you to visualize data (see Figure 63).
Figure 63 Example of multistate TDR file that has been expanded to show field data as
separate plots
-2 -2
-1 -1
YY YY
0 0
1 1
2 2
0 5 10 15 0 5 10 15
X X
4. Click Save.
Note:
If a TDR file is loaded with this option selected, then field data is not loaded for
regions with multiple parts.
The Regions tab and the Lines/Particles tab of the Data Selection panel show the
hierarchy of regions and parts. All parts are shown under the parent region. Therefore, if you
modify a property of the parent region (such as visibility), all its parts are also modified (see
Figure 64 on page 116).
Figure 64 Regions tab showing (left) no regions with parts, (middle) one region (region_4) with
parts, and (right) region with parts expanded
Figure 65 Regions of particles (blue box) and fields of particles (red box)
Discrete traps are displayed as spheres of an initial size defined in the User Preferences
dialog box. However, you can change the size by using the Region Properties dialog box.
To change the initial size of spheres:
1. Choose Edit > Preferences.
2. In the User Preferences dialog box, expand 2D/3D > Plot.
3. Under Particles, from the Initial Sphere Size list, select the value.
4. Click Save.
To change the size of spheres in a plot:
1. Select the plot.
2. Choose Data > Region Properties, or click the toolbar button.
The Region Properties dialog box opens.
3. Select Lines/Particles.
X
Y
Par(Occupancy)
1.000e+00
8.333e-01
6.667e-01
5.000e-01
3.333e-01
1.667e-01
0.000e+00
Alternatively, you can load a netlist file with the load_netlist command (see load_netlist
on page 331).
To manage the capacitance state, you can click on its respective check box to turn on and
off its region pair. When the capacitance is checked, its regions are displayed with captions
while all the other regions are hidden (see Figure 68). This can also be done using the
set_capacitance command (see set_capacitance on page 359).
3D View
The 3D view is described by the position and the orientation of the camera in the world
coordinate system.
Camera
Position
n
io
Focal Point ct
Dire
Elevation
Azimuth
The orientation of the camera is described by the vector formed between its position and
focal point. This vector is called the direction of propagation. Initially, the center of the
structure is located at the focal point.
The position can be described in a spherical coordinate system by the distance between the
center of the camera and the focal point, also known as the depth distance, and two angles
(azimuth and elevation).
The camera has its own coordinate system that is defined by three vectors: the view up, the
direction of propagation, and the horizontal vector.
The view is defined by the view angle of the camera and the location of the focal plane,
which is the plane defined by the focal point and the view up vector. The projection of this
plane in the screen will be the view observed. Figure 70 shows the variables that describe
the camera and the final view given by these variables.
Figure 70 Camera properties: (left) perspective view, (upper right) horizontal view, and (lower
right) vertical view
View Up
Focal Plane
Depth Distance
Focal Plane
View Up
Camera Position
Horizontal Vector
Figure 71 (Left) Rotation of axes in relation to rotation center and (right) spherical rotation
Z
z
Alpha
Psi
Y
y
Theta
x
X
You can also zoom in to the plot, changing the depth distance using the mouse wheel.
Furthermore, with the zoom_plot command, you can specify a factor to change the view
angle of the camera (see zoom_plot on page 403). The factor given to the command is
multiplied by the view up vector (the reflection of the view angle in the focal plane), resulting
in zooming in when the factor is greater than 1 and zooming out when it is less than 1.
In addition, you can change the position of the camera and its focal point, in the world
coordinate system, in the Camera Properties panel (choose View > Camera
Configuration). See Editing Camera Properties on page 122.
You can change the projection mode to a parallel projection, rather than a perspective
projection, by any of the following methods:
• Set the -parallel option of the set_camera_prop command (see set_camera_prop on
page 358).
• Choose View > Camera Configuration. In the Camera Properties panel, click the More
tab. Under Projection, select Parallel (see Figure 72 on page 124).
• Choose Edit > Preferences. In the User Preferences dialog box, expand 2D/3D >
Rendering. Under Projection, select Parallel. Click Save.
The term parallel projection means that the lines of sight from an object to the projection
plane are parallel to each other. Lines that are parallel in 3D space remain parallel in the 2D
projected image. In addition, parallel projection corresponds to a perspective projection with
an infinite focal length, that is, the distance from the lens of a camera to the focal point.
• The Position tab allows you to modify the position and the focal point of the camera.
• The Rotation Point tab allows you to set the properties of the rotation point (see
Rotation Point on page 147).
• The More tab allows you to configure the view up and the view angle. You can also select
the type of projection as well as whether to use the dolly zoom.
The Perspective projection is the default and helps to visualize objects as they are seen in
real life: near objects look bigger than distant objects. When using Parallel projection, the
sizes of objects are proportional to their real sizes, so distance does not affect the final
visualization.
The Dolly Zoom option is available only for perspective projection. By default, this option is
not selected, which means zoom operations are performed by modifying the view angle.
When you select this option, the camera moves towards and away from the focal point of an
object.
Note:
When you select the Dolly Zoom option, the camera might move inside
visualized objects.
Figure 72 Camera Properties panel: (left) Position tab and (right) More tab
2D View
The visualization of a 2D plot is described by the same camera values as the 3D
visualization, but the difference is that, in a 2D view, the direction of propagation never
changes, thereby maintaining constant azimuth and elevation angles.
Light Kit
To provide clear visualization of 3D structures, Sentaurus Visual uses a light kit instead of a
single light source. The light kit consists of the following different light sources (see
Figure 73):
• A key light, which is the main light source, represents the sun or a ceiling light. It is
located in front of the displayed structure, above the camera, and displaced slightly to the
right.
• A fill light, which represents ambient light, is located in front of the displayed structure
and under the key light.
• A head light is located in the same place as the camera.
• Two back lights, located behind the displayed structure, are evenly spaced from the
vertical center.
Key light
Fill light
The light kit is designed so that the key light is the brightest reference for all the other light
sources, whose intensity can be adjusted directly. For the other light sources (head, fill, and
back lights), the Key Ratio parameter can be adjusted, which represents the relative
intensity of the key light to each of the other lights (default ratio is 1:3).
The position of the key, fill, and back light sources can be adjusted by changing the elevation
and azimuth (latitude and longitude) with respect to the origin of the coordinate system. Due
to its nature, the head light is always located at zero elevation and azimuth.
Azimuth
Elevation 0.0°
Azimuth 0.0°
Besides position, the warmth of the light sources can be adjusted from 0.0 to 1.0, where 0.0
represents a cold blue-tinted light and 1.0 represents a warm red-tinted light. Values around
0.5 provide white light.
0.0 1.0
The loading options work as set up in the User Preferences dialog box, unless you execute
Sentaurus Visual with the -alldata command-line option to overwrite the settings. When
you use -alldata, the -alldata option is added to the Tcl commands related to loading
and reloading files, so that you can set the condition explicitly if needed. However, the
-alldata option of these commands always overwrites the user preference settings,
meaning all data is loaded. See load_file on page 328, load_file_datasets on page 329,
reload_datasets on page 337, and reload_files on page 337.
To change loading options for data:
1. Choose Edit > Preferences.
The User Preferences dialog box opens.
Rendering Options
Two-dimensional or 3D plots are composed of materials that are distributed in regions with
properties defined in contour maps (scalars, interfaces, and particles) or flux lines (vectors).
All these properties can be found on the Data Selection panel (see Figure 77).
Double-clicking a cell of a structure in the plot area highlights the region or material to which
that cell belongs in the Data Selection panel.
Table 7 Icons relevant for materials and regions
Icon Description
Shows or hides the material or region completely. If deactivated, it hides the bulk, contour
fields, mesh, borders, and vector fields independent of their state.
If you select multiple rows of materials or regions, when you click an icon itself, it shows or
hides that specific property only for all the selected materials or regions.
If no materials or regions are selected, clicking an icon affects all materials or regions. These
operations are immediately shown in the plot area.
Contact Regions
The contact material and its regions can be colored in a special way defined in the User
Preferences dialog box. This feature allows you to differentiate the contacts for better
understanding of the types of region. Any change to the user preferences is applied to the
next created plots. Nevertheless, the changes can be applied to the current plot using the
Contacts tab of the Plot Properties panel.
In the User Preferences dialog box, expand 2D/3D > Contacts. In the Contact Color
Behavior box, select from one of the options:
• Constant Color
• List Colors
• Map Colors
The Constant Color option loads all the contacts with the same color as a configurable
default value. Magenta is the default.
The List Colors option loads the contacts with a set of colors using round robin logic.
The Map Colors option loads the specified contacts with the specified colors; otherwise,
they are displayed with a constant color. The Contact Name column supports wildcards for
reference contacts with common patterns in their names. This list is empty by default.
To apply changes to the user preferences without reloading a plot, use the Contacts tab of
the Plot Properties panel to select the color behavior and to apply changes (see Figure 50
on page 101).
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.
The Legend Properties panel opens (see Figure 82) 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.
• Customize the font for the title and the labels.
• Set the orientation of the legend.
The font size of the legend is related to the diagonal of the plot, and Sentaurus Visual
internally sets a value so that the legend is visible in plots that are 600 × 600 pixels or larger.
To change this value, you must apply a font scale diagonal factor to the font base every time
that you rescale a plot. You can do this with the -title_font_factor and
-label_font_factor arguments of the set_legend_prop command to change the title
and labels of the legend, respectively (see set_legend_prop on page 371).
In addition, you can set this factor in the User Preferences dialog box.
To set a new font scale diagonal factor:
1. Choose Edit > Preferences.
2. In the User Preferences dialog box, expand 2D/3D > Legend.
3. Under Fonts, click the button next to the Title Font or Label Font field.
4. In the Font dialog box, set a font scale diagonal factor.
Values greater than 1.0 will increase the font size, and values less than 1.0 but greater
than zero will decrease it.
Figure 83 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
On the Lines tab, you can change the properties of the contour lines of the selected field,
such as color and width, and then show several contour lines at the same time.
When a file is not a TDR file, all the default values for field scaling and field units are defined
in the datexcodes.txt file for each field (see Utilities User Guide, Variables).
In the case of a TDR file, all field units shown are those contained in the TDR file. However,
for field scaling, the values are obtained from the datexcodes.txt file.
Despite the input file format, if a field is defined (in the datexcodes.txt file) to be present
in only one type of material (for example, semiconductor), no data is loaded or displayed for
regions of a different material type.
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
Data Selection panel (see Figure 77).
If a field unit has a question mark (?), it means the unit is undefined and, most likely, comes
from an old file that you must update.
In addition, in the User Preferences dialog box (expand 2D/3D > Plot), the Convert
Element To Nodal Data option is selected by default.
Figure 85 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 Data Selection panel. Select a
check box next to a field to display it on the plot. Vector lines can be displayed uniformly or
with a size proportional to the magnitude of the field.
Uniform scaling means that all vectors have the same size. The length of the arrow is the
value of the scaling.
With the grid scaling option, the length of the arrow is given by the vector field magnitude (or
the absolute value if required) multiplied by the scaling factor.
The default uniform value can be set in the User Preferences dialog box (expand 2D/3D >
Fields). In the Vector group box, if no value is set, Sentaurus Visual uses 0.1 as the default.
Figure 86 (Left) Scaling options for vectors and (right) Head tab showing property options for
arrowheads
The Head tab lists the properties of the arrowhead such as shape, size, angle, and color
(only available when the shape selected is Arrow Solid or Head Solid).
The Constant option maintains the size of the arrowhead regardless of the zoom level or
the vector length.
3. In the Name field, enter a name for the new dataset containing the image data.
2. Specify two points of the screen: the first is the x-coordinate and the second is the
y-coordinate.
3. In the Scale field, specify the length and unit that will be the scale used for the distance
between the two points.
4. Click Apply.
Zero point displacement rates are displayed as gray cones pointing to the specific location,
while point force conditions are displayed as gray arrows.
Figure 89 (Left) Zero point displacement rate and (right) point force condition
2. Change the scale and shift values for each axis for a certain geometry.
3. Click Apply.
Press the N key while dragging the Activates standard rotation until you
cursor. release the N key.
Press the S key while dragging the Activates spherical rotation until you
cursor. release the S key.
Press the X key while dragging the Fixes the rotation around the x-axis
cursor. until you release the X key.
Press the Y key while dragging the Fixes the rotation around the y-axis
cursor. until you release the Y key.
Press the Z key while dragging the Fixes the rotation around the z-axis
cursor. until you release the Z key.
Rotation Point
The rotation point is the reference location for free rotation, that is, when not rotating around
an axis. Default coordinates are calculated for every plot, locating the rotation point in the
center of the initial visible structure. The same rotation point also is used in Spherical
Rotation mode.
The rotation-point coordinates can be changed along with the properties of the rotation point
by using either:
• The menu bar (choose View > Camera Configuration and, in the Camera Properties
panel, click the Rotation Point tab)
• The set_camera_prop command (see set_camera_prop on page 358)
Figure 90 (Left) Three-dimensional structure showing the default rotation point (translucency
activated) and (right) the Rotation Point tab in the Camera Properties panel
Position Sets the location of the set_camera_prop -rotation_point {0.0 1.0 -0.8}
rotation point. The position
is defined by three
floating-point values.
Using the user interface, the position of the rotation point can be set by either exact
coordinates or the cursor. In both cases, you must show the Rotation Point tab by choosing
View > Camera Configuration to display the Camera Properties panel. On the Rotation
Point tab, the Position fields allow you to introduce the values of the x-axis, y-axis, and
z-axis of the position. The position is updated every time you leave any of the fields or if you
press the Return key.
Another option is to use the Set With Mouse button. To set the position of the rotation point
with this feature:
1. Click Set With Mouse.
The button remains selected. Note that the cursor changes appearance to a cross when
it hovers over the plot.
2. Click the structure at the required location to set the position of the rotation point. Note
that the point will be set at the surface of the structure.
After this, the Set With Mouse button is released, and the cursor returns to its previous
state.
The rotation point is visible while the Set With Mouse button remains selected. Since the
rotation point is in the inner part of the structure by default, it is not visible unless
translucency is activated or any region obstructing its view is hidden.
To make the rotation point permanently visible, select Show (see Figure 90 on page 147
(right)). Deselect the option to hide the rotation point.
Note:
A shortcut exists to set the rotation point when using the Set With Mouse button:
Hover the cursor in the required location over the structure and press the O key.
This will set the position of the rotation point in the same way as the Set With
Mouse button.
To set the rotation point inside the structure, you can either:
• Set the rotation point on the surface and, then modify it by using the set_camera_prop
command or by setting the values in the Position fields.
• Hide regions or materials before setting the rotation point with the cursor.
Note:
The position of the rotation point is constant with regard to deformation, value
blanking, and other Sentaurus Visual features that alter the structure.
• On the Spherical tab, you can rotate the structure using spherical coordinates (see 3D
View on page 120 and Figure 71) with a defined number of steps, or you can change the
angles directly.
The Step field applies to both tabs and is used to define the number of steps.
Figure 91 Rotate dialog box showing (left) XYZ Axis tab and (right) Spherical tab
The Planes group area is independent of the rotation mode. You can change the view of the
structure to a specific plane using the View Plane XY, View Plane YZ, and View Plane XZ
buttons, or you can rotate the structure 90° in different directions using the arrow buttons.
Down Arrow
The rotations performed by the arrow buttons are equivalent to the rotations performed by
mouse operations when the rotation mode is in its default state (see Figure 92):
• The Left Arrow button and the Right Arrow button rotate the plot around an imaginary,
completely vertical vector that is located at the rotation point of the plot.
• The Up Arrow button and the Down Arrow button rotate the plot around an imaginary,
completely horizontal vector (perpendicular to the vertical vector) that is located at the
rotation point of the plot.
You can use the arrow keys of the keyboard as shortcut keys to rotate the plot in the same
way as the arrow buttons of the Rotate dialog box. This functionality is available when a 3D
plot is selected or when the Rotate dialog box is open.
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.
When plots are overlaid, the Data Selection panel changes to a tree view to allow for the
visualization of different geometries as shown in Figure 94.
Figure 94 Data Selection panel showing tree view when plots are overlaid
The geometries can be easily distinguished by selecting different boundary or contour line
colors.
To select a specific boundary line color:
1. On the Materials tab, double-click the filled rectangle preceding the geometry name.
2. Choose a color from the list, and press the Enter key.
To select a specific contour line color:
1. On the Scalars tab, Interfaces tab, and Particles tab, double-click the filled rectangle
preceding the geometry name.
2. Choose a color from the list, and press the Enter key.
If you want to change the colors of specific materials or regions, then you must use the
Region Properties dialog box (press Ctrl+Shift+E). See Modifying Properties in Multiple
Materials and Regions on page 132.
Measuring Distances
You can measure the distance between two points in a plane or in space for 2D and 3D
plots.
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.
Note:
You also can create a new ruler by using the create_ruler command (see
create_ruler on page 241.
Note:
Holding the Alt key while dragging limits the movement horizontally or vertically
only.
You also can modify a ruler by using set_ruler_prop command (see
set_ruler_prop on page 386.
You can keep a selected ruler on screen and create a new one by clicking the + tab on the
Ruler panel. Each ruler has its own numbered tab and you can click tabs to move between
rulers.
The Data tab of the Ruler panel shows the coordinates and distances calculated. Clicking
the Remove button deletes the ruler from the plot and the Ruler panel (see Figure 97).
The Properties tab shows the ruler properties and provides a snap-to-nearest point
function. When you select Snap to Mesh, Sentaurus Visual automatically selects the
nearest point in the grid to the one clicked when measuring distances. You can also change
ruler properties by using set_ruler_prop on page 386.
While measuring distances, you can rotate a structure using any of the shortcut keys (see
Rotating Structures (3D Plots Only) on page 146).
You can also choose the selection mode and rotate the structure (the ruler is permanent). In
this mode, you cannot select the ruler until the ruler mode is reactivated.
Figure 97 Ruler panel showing (left) Data tab and (right) Properties tab
Measuring Angles
You can measure angles in 2D plots with the Angle tool.
To measure an angle:
1. Click the Angle toolbar button.
2. On the plot, click to place the start point of the angle.
3. Click to place the vertex of the angle.
4. Click one last time to place the end point of the angle.
You can also create an angle by using the create_angle command (see create_angle on
page 226.)
To modify an angle:
1. Move the cursor over the start point, vertex, or end point of the angle.
2. Drag the handle of the point to the required location.
3. Click again to lock the point in position.
Note:
Holding the Alt key while placing or moving the angle limits the movement to the
horizontal or vertical direction. Holding the Ctrl key snaps the cursor to the
nearest grid point. You also can modify the angle points by using the
set_angle_prop command (see set_angle_prop on page 352).
The Data tab of the Angle panel shows the coordinates and the calculated angle. Clicking
the Remove button deletes the angle from the plot. The Properties tab shows the angle
style properties and movement options such as Snap to Mesh and Use Orthogonal
Movement. When you select Snap to Mesh, Sentaurus Visual automatically selects the
nearest point in the grid to the one clicked when measuring angles. The Use Orthogonal
Movement option limits the movement of a point to the horizontal or vertical direction.
You also can change angle properties by using the set_angle_prop command (see
set_angle_prop on page 352). While measuring an angle, you can zoom or pan the plot
using the mouse wheel or the right mouse button, which changes the mode to selection
mode. In this mode, you cannot select the angle until the angle mode is reactivated.
Figure 100 Angle panel showing (left) Data tab and (right) Properties tab
Integration Tool
You can integrate the active field on all the materials of the current 2D or 3D plot.
To activate the integration tool, click the toolbar button.
The Field Integration dialog box opens (see Figure 101) 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 user interface.
Note:
Not all cell types that a TDR file can contain are supported for integration. The
supported cell types are:
• Cuboid
• Hexahedron
• Prism
• Pyramid
• Quadrilateral
• Rectangle
• Tetrahedron
• Triangle
Figure 101 Field Integration dialog box showing (top) Domain tab, (lower left) Region/Material
tab, and (lower right) Polygonal Domain tab
Probing
For 2D and 3D plots, you can 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 fields and information about the cell (see Figure 102).
Note:
If you hold the Ctrl key when you click the point to be evaluated, then the cursor
(crosshairs) snaps to the closest mesh point. The same is achieved by selecting
Snap to Mesh on the Probe panel, which provides information about the closest
edge to the probed point of the structure.
You can have multiple probe points. Each point has its own numbered tab, and you click the
tabs to switch the active point and highlight the cursor (crosshairs) in the plot. In the Probe
panel, each tab has a Remove button that deletes the probe point with the corresponding
tab. If there is only one tab and you click Remove, then the Probe panel is reset.
In addition, you can display information from different plot groups at the same time.
However, only information that is available for all group members will be shown (see
Figure 103). If one member of the plot group does not have the same information as the plot
group leader, it will show nan (not a number) as the current value. This feature is compatible
with displaying multiple crosshairs (see Figure 104).
Figure 103 Probe panel showing multiple probe points on linked plots
You can control the number of significant digits after a decimal point to be displayed. To
specify the number of significant digits displayed after a decimal point:
1. Choose Edit > Preferences.
The User Preferences dialog box opens.
2. Expand Application > Common.
3. Under Tcl, change the value of Precision.
4. Click Save.
Figure 105 (Left) User Preferences dialog box with precision set to 4 and (right) Probe panel
showing results with four significant digits after decimal point
The total number of points and elements of a 2D or 3D dataset is displayed at any time at
the bottom of the main window. It is important to mention that this value might not be the
same at the one displayed in this dialog box, since this value is extracted directly from the
geometry and the dialog box sums the points and elements of each region separately.
Figure 107 Maximum marker (black circle with cross hairs) and minimum marker (gray circle
with cross hairs) shown to left of structure
You also can define constraints for the search pool in the Minimum/Maximum Field Value
dialog box. To display this dialog box, choose Tools > Min/Max Field Value.
In the Minimum/Maximum Field Value dialog box, you can select certain regions or materials
for the search, and you can define a 3D box limiting the search area.
In the Minimum/Maximum Field Value dialog box, you can select certain regions or materials
for the search on the Region/Material tab (see Figure 108), and you can define a 3D box
limiting the search area on the Domain tab. The Reset button on the Domain tab allows you
to return to the initial values of all ranges (see Figure 108 (right)).
If you select the Full Domain type, then the minimum/maximum field value from the entire
structure is returned. Otherwise, if you select the Polygonal Domain type, then the
Polygonal Domain tab becomes available and the value is calculated from a defined
polyhedron as shown in Figure 109.
First, select the Extrusion Axis (vertical axis in the resulting polygon). Then, define the
Selected Points manually or click the Add by Click button. If a user-defined height is
needed, then select Height to set the top and bottom heights of the polyhedron. A minimum
of three points is required to perform this analysis.
Figure 108 Minimum/Maximum Field Value dialog box: (left) Region/Material tab and (right)
Domain tab
Figure 109 Minimum/Maximum Field Value dialog box showing Polygonal Domain tab
You can change the color, the size, and the visualization of both the minimum and maximum
markers. When you save the settings, they will be used in the next session of Sentaurus
Visual.
Value Blanking
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 opens (see Figure 111)
where you can insert constraints on the required fields.
Value blanking keeps the activated constraints even after closing the window. If you want to
revert the changes, you must deactivate the specified constraint or reset all the constraints
to return to the usual plot display.
Choosing Constraints
In the Value Blanking dialog box, you can create a maximum of 10 constraints including
different field values. Each constraint creates a particular set of data to be blanked. The sets
constructed can be united or intersected, depending of the option selected for the particular
constraint.
For example, if cons1 defines set A and cons2 defines set B, the result set to be blanked C
can be either C = A B or C = A B depending of the option selected in cons2 (that is,
either the Union option or the Intersection option) (see Figure 112).
Figure 114 Example of value blanking using the all vertices option
Figure 115 Example of value blanking using the any vertex option
Figure 116 Example of value blanking using the interpolate vertices option
Figure 118 (Left) Original structure, (middle) structure deformed by a factor of 3, and (right)
structure deformed by a factor of 10
Cutting Structures
Sentaurus Visual provides tools for generating xy and 2D cuts, custom cutlines, and cutlines
or cutplanes orthogonal to an axis.
Table 10 Tools for cutting structures
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.
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 deactivated.
Note:
Cut tools ignore shifting or scaling transformations applied to the structure,
regardless of visual appearance.
In linked plots, the newly cut structures are created by frame order not load order.
For 3D structures, you can perform cuts in one of the following ways:
• Orthogonally, by specifying an axis and a value
• Non-orthogonally, by specifying a normal and an origin point
• With a polyplane, by specifying an axis and the points of a polyline
• Creating a cutline directly from the structure
In addition, other cuts can be performed for 2D plots such as a polyline cut or a cut along
boundaries. The Cutlines and Cutplanes dialog box provides various Add by Click buttons
that allow you to click a point in the plot and to add it to a specific text box. The point clicked
in this way will be marked in the plot.
To display the Cutlines and Cutplanes dialog box, click the toolbar button.
For 2D and 3D structures, when Cut Type is set to Cutline, you can specify the regions to
use as the source for the cutlines and specify the resulting target plot where the cutline curve
will be displayed.
For the source, the following options are available under Source:
• All Regions (default): All regions are cut.
• Visible Regions Only: All visible regions are cut.
• Custom Selection: You select the regions or materials to be cut in the Custom Selection
dialog box (see Figure 120).
The default target plot is Related Plot (see Figure 119). A related plot refers to any xy plot
that has already displayed at least one cutline dataset with the same type of the current cut.
For example, if you perform an orthogonal x-cut, a related plot would be a plot created to
display another orthogonal x-cut.
The list of the Related Plot option shows the plots associated with the cutline type specified:
• For 2D plots, this is for all cutline types (X, Y, Z, or Free), including polyline cuts and cuts
along boundaries.
• For 3D plots, this is for free-type cutlines only.
You can use the User Preferences dialog box (see Figure 121) to override the default option
of the Cutlines and Cutplanes dialog box.
Figure 121 Specifying the default for cutline target plots in the User Preferences dialog box
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 122.
In the generated xy plot, the y-axis will be displayed in logarithmic scale if the active scalar
field in the original 2D plot is visualized using one of the following scales: logarithmic (Log),
logarithmic of the absolute (LogAbs), or hyperbolic arcsine (Asinh). Otherwise, the y-axis will
be displayed in linear scale.
If the active scalar field uses a custom scale, the y-axis will also be displayed in linear scale.
See Visualizing Fields on page 106.
Note:
Visualization of the cutline result is confined to the current visible portion of the
2D plot. This occurs regardless of whether or not the auto-link or linking features
are activated. This helps to maintain focus on the area of interest. To access all
the data, click the Reset Zoom button.
Figure 122 (Left) Cutline drawn on 2D plot and (right) xy plot generated from cut
Manipulating Cutlines
Cutlines can be moved and resized by dragging the cutline handles (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.
The points that define the polyline can be added by using the keyboard, or using the fields
in the Point group box, or clicking directly in the plot after clicking the Start Add by Click
button. When a point is added, the position of the point is marked on the plot. For example,
the points added in Figure 123 will produce the marks shown in Figure 124.
Figure 124 Marks indicate position of points generated from values in Figure 123
When all the points have been added, the cut is created by clicking Create Cuts. An xy plot
is created immediately, showing the active field versus distance of the line. In addition, a
new dataset is created containing the values along the line in all fields. Figure 125 shows the
plot created.
Figure 127 Step 2: adding vertex points in (left) 2D plot and (right) free cutplane
The resulting plot shows the values along the selected regions of the active field versus
distance. In addition, a dataset containing all the respective fields is created (see
Figure 129).
Figure 129 (Left) Original 2D plot and (right) resulting xy plot from cutting along boundaries
Doping Concentration [cm−3]
2.457e+20
5.750e+14 1e+20
5.954e+11
-12 -1.858e+14
-1.214e+17
-7.939e+19
-10
X
0
-8
-6
0 2 4 6 8 0 5 10
Y Distance
Figure 131 (Left) Cutplane on the surface of a PMC structure and (right) xy plot generated from
the surface cut
n44_surface_plots_etch_1_t=00000000
C2
0.001 I_total_flux(C2(n44_surface_plots_etch_1_t=00000000))
Z
Y
X
0.0001
I_total_flux
1.402e-03
1.168e-03
9.344e-04
1e-05
7.008e-04
4.672e-04
2.336e-04
0.000e+00
0 0.5 1
Z
Two-Dimensional Projections
Two-dimensional projections can be obtained from 3D plots. The resulting plot is either the
maximum or minimum field value projected to one plane, which can be aligned to the
orthogonal axes or arbitrarily defined. In addition, you can define a polyline path to create a
sequence of projected planes.
You can create a 2D projection of a 3D plot by either using the GUI (choose Tools > Create
Projection) or using the command create_projection or create_projection_path
(see create_projection on page 237 and create_projection_path on page 239).
Figure 132 2D Projection dialog box showing (left) Region/Material tab and (right) Domain tab
4. On the Region/Material tab, select whether you want to perform the projection on all
regions or selected regions or materials (see Figure 132 on page 190 (left)).
5. Under Resolution, specify the number of points to consider on each axis.
Greater resolution means more accurate data extraction, but with a longer processing
time.
6. When are finished, click Create Projection.
The projection can be performed in all domains or in a smaller window defined on the
Domain tab as shown in Figure 132 (right). This functionality is valid only for projection
types X, Y, and Z.
Figure 133 2D Projection dialog box showing (left) Free tab and (right) Path tab
The projection can be performed in arbitrary planes defined by you. You must select Free
from the Type list. The Free tab becomes available and allows you to define the origin and
normal for the plane (see Figure 133 (left)). If you select Width, then it restricts the domain
considered for the projection to all the points between a half-width distance to the plane.
To define a path across the plot to perform a projection:
1. From the Type list, select Path.
The Path tab becomes available (see Figure 133 (right)).
2. Select the Extrusion Axis (vertical axis in the resulting 2D plot).
3. Define the points manually or use the Add by Click button.
4. If a user-defined width is needed, then select Custom Width to allow you to set either
the same width for all planes (Constant) or individual widths for each plane (Custom
Values).
Note that the number of widths equals the number of planes to be generated. The
number of planes to be generated equals the number of points previously defined minus
one. At least two points are required to perform this type of analysis.
5. After you have defined the variables, click Create Projection.
Figure 134 shows the final plot for the maximum value of a yz projection.
Figure 134 (Left) Original 3D plot and (right) 2D projection of the 3D plot
-0.08
-0.04
1.52e+00
1.27e+00
0.04 1.02e+00
7.78e-01
5.30e-01
0.08
0 0.02
0.02 0.04
0.04 0.06
0.06 0.08
0.08 0.1
Z
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 135. Such a 2D plot can be cut further by a cutline to generate an xy cut.
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.
Figure 135 Cutplane in a 3D plot and the generated 2D plot, which is cut further to generate an
xy plot
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.
The mesh shown on the cutplane is recalculated by triangulating the resulting
points of the cut, which means, for example, that an axis-aligned cut of a
rectangular mesh shows a triangular mesh.
Figure 136 Examples of selecting cutplanes (highlighted in light green) for manipulation
The Extract Path dialog box has different modes of operation that use different algorithms
for extracting the path:
• The 2D mode applies to 2D plots and its algorithm extracts the minimum or maximum
values of a specified scalar field along the horizontal axis. This extraction does not refer
to a specific axis, so interchanging the x-axis and y-axis of a 2D plot generates different
results.
The 2D algorithm recalculates the mesh for the 2D structure, normalizing the mesh to the
smallest cell width in the horizontal direction. However, if this recalculation exceeds
millions of divisions, Sentaurus Visual resolves this to one million divisions to maintain
tool performance (see Figure 137 on page 200).
• The 3D mode applies to 3D plots and its algorithm extracts the minimum or maximum
values of a specified scalar field along the mesh of the structure. This algorithm does not
depend on the orientation of the structure.
The 3D algorithm analyzes the existing mesh to find the minimum or maximum path
between two points that can be constructed using the mesh elements.
To extract a path:
1. Choose Tools > Extract Path.
The Extract Path dialog box opens.
2. Leave the plot name in the Plot field. This is the name of the active plot.
3. Select the geometry from the Geometry list.
4. Select the scalar field for extraction from the Scalar Field list.
5. Select which values you want to extract: Minimum Path or Maximum Path.
6. On the Region/Material tab, select one of the following:
◦ All: To extract the path over all materials and regions
◦ Materials: To extract the path over selected materials
◦ Regions: To extract the path over selected regions
The materials and regions shown in the Available pane depend on which ones are
present in the plot.
7. (Optional) For greater precision, click the Domain tab and specify the start and end
points of a smaller window of analysis.
8. If the plot is three dimensional, then the Start/End Points tab and Polygonal Domain
tab are available.
Specify the start and end points of the path on the Start/End Points tab.
9. The domain of the path can be bounded by a polyhedron that results from extruding a
polygon drawn in the 3D model through any of the x-, y-, or z-axis. This can be
configured on the Polygonal Domain tab.
Specify the start and end points, the polygon points, and the extrusion axis. Optionally,
the top and bottom faces can be set if the start or end points are inside the model.
10.Click OK.
Figure 137 (Left) Original 2D structure and (right) extracted path over the entire 2D structure
Path
The extraction results in the creation of a new geometry in the structure that behaves like an
interface region, allowing you to visualize the field values in the path, even if the main
geometry does not display field data (see Figure 138).
Figure 138 Field values along the extracted path, with main geometry displaying no field data
n60_des
-10
X -8 ElectrostaticPotential [V]
6.539e+01
5.440e+01
4.341e+01
-6 3.242e+01
2.143e+01
1.044e+01
-4 -5.519e-01
4 6 8 10 12
Y
In addition, in 3D mode, the new geometry has an extra field that represents the saddle
points of the extracted path. See find_values on page 262 for more information about how
to obtain the exact position of the saddle points.
See Visualizing Fields on page 106 for more information about visualizing scalar fields.
When you extract a path using the Extract Path dialog box, which is not a cutting operation,
in addition to the path shown in the plot, a regular xy plot is generated showing a curve of
the extracted path field (see Figure 139). This xy plot is generated using the create_curve
and create_plot commands.
Figure 139 Extracted path displayed as an xy plot; curve represents the banded field
(ElectrostaticPotential)
60
Electrostatic Potential [V]
40
20
0
0 5 10
Distance [µm]
Surface Plots
A surface plot is a 3D plot generated from a 2D dataset (or plot), where the constant
component (the z-axis if the original structure plane is the xy plane) is filled with an existing
scalar field. As the new dataset contains the three components (x-axis, y-axis, and z-axis)
defined, it behaves as a typical 3D dataset. If a 3D dataset is created, it will be shown as a
new plot.
The new 3D dataset will contain the same regions and fields as the source dataset, which
can be independent of the source plot. In addition, Sentaurus Visual recalculates the
junction line and the depletion region, to show them according to the new surface.
The created 3D surface plot inherits the current field with filled contour bands and the
visibility options of all regions. This means that the surface plot hides regions that are not
shown in the source plot.
Figure 140 Surface Plot dialog box: (left) creating a surface plot and (right) modifying the newly
created surface plot
After the new surface plot is created, the dialog box does not close. It changes appearance
to allow you to modify the last generated surface plot (see Figure 140, right). Some fields are
deactivated. The remaining fields can be changed to fine-tune the surface plot. With each
change that is applied, the plot is updated.
Figure 141 (Left) Two-dimensional source plot and (right) generated surface plot using the
ElectrostaticPotential field
ElectrostaticPotential [V]
6.539e+01
5.440e+01
4.341e+01
3.242e+01
2.143e+01
1.044e+01
-5.519e-01
Creating Iso-Geometries
You can create a new iso-geometry using either the Create Isovalue Geometry dialog box or
the create_iso command (see create_iso on page 235).
Note:
After you create an iso-geometry, the Create Isovalue Geometry dialog box
remains open and changes automatically to the modification mode, so that you
can modify the iso-geometry if required (see Modifying Iso-Geometries on
page 205).
To create a new iso-geometry using the Create Isovalue Geometry dialog box:
1. Choose Tools > Create Isovalue.
The Create Isovalue Geometry dialog box opens. The New option is selected by default.
2. Select the geometry of the plot (if there is more than one).
3. Select the field to be used.
4. Enter the name of the new iso-geometry (or dataset).
5. Select the color with which to display the new iso-geometry.
6. In the Value field, enter the isovalue to use to build the iso-geometry.
7. In the Factor field, enter a factor.
For nonlinear fields, the Factor field defines how the slider value changes between
steps. By default, this value is 10. For linear fields, the Delta value defines the size
between steps.
8. Use the Range slider or the - and + buttons to identify where the value lies in the range
of the field.
The slider responds according to the selected field scale, shown to the right of the Field
list.
9. Click Create.
Figure 142 (Left) Source geometry with translucency showing the new iso-geometry generated
(ElectrostaticPotential = 0 V) and (right) iso-geometry displaying the
DopingConcentration field
Modifying Iso-Geometries
You can modify iso-geometries using either the Create Isovalue Geometry dialog box (see
Creating Iso-Geometries on page 203) or the create_iso command (see create_iso on
page 235).
To modify an iso-geometry using the Create Isovalue Geometry dialog box:
1. Ensure the Modify option is selected.
3. Click Apply.
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.
Streamlines are created only in the active plot by default, even if the active plot is part of a
linked plot group. This is mainly because the velocity vector might not be present in all plots
belonging to the group and the extensibility of the create_streamlines,
extract_streamlines, and set_streamlines_prop commands cannot be ensured.
However, if you want to apply streamlines to a plot group, you must create a special linked
plot group to allow streamlines for that plot group (see Linking Plots on page 52 and
link_plots on page 308).
Note:
If plot group members do not have similar data, then the results might be
unexpected.
Displaying Streamlines
Click the toolbar button to display the Streamlines dialog box (see Figure 143), where
you can select the vector field, the starting point, and the display properties.
In this dialog box, several properties can be defined to customize the display of the
streamlines.
Figure 143 Streamlines dialog box showing Position tab, before creating streamlines
Position Tab
The fields of the Position tab are:
• 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 Rake option allows you to create multiple streamlines between the start and
end points. The number of streamlines is defined by the value in the Streamlines per
Rake box.
• The Add by Click button allows you to add the start point and the endpoint for the rake
using the mouse to click the selected plot. If the Create Rake option is selected, you can
add two positions. If the Create Rake option is not selected, you can add one position.
• The Create Streamlines button allows you to create a family of streamlines going from
a starting point to a rake end point. This button also changes its behavior when existing
streamlines are selected from the list, allowing you to modify their attributes without
creating new 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.
Integration Tab
By default, the Runge-Kutta 4 (RK4) algorithm is used for numeric integration of the fields.
Some details about this integration can be modified. These values are included in the
create_streamline command (see create_streamline on page 242). When you use the
Streamlines dialog box, you can select between the values calculated by Sentaurus Visual
or the default values specified in the User Preferences dialog box.
Step options are:
• Initial sets the initial step for the vector field integration. In the Runge-Kutta 4 (RK4)
algorithm, the initial step is also a constant length for all steps.
• Max Step sets the maximum number of steps until the end of the integration. For
termination constraints, either the Max Step value or the Terminal Speed value can be
changed.
Others options are:
• Maximum Propagation controls the length of the streamline. If the Both Direction
option is selected, the maximum length will be two times this value.
• Terminal Speed sets an end constraint for the numeric integration. If the particle speed
is reduced to a value less than this number, then the integration ends. For termination
constraints, either the Terminal Speed value or the Max Step value can be changed.
In the update mode, the Streamlines dialog box executes the set_streamline_prop Tcl
command, which changes the representation of the streamlines by updating their properties
without creating new ones in a faster way. Selecting a streamline in the Streamline Names
pane also highlights the streamline in the plot, allowing you to easily identify the active
streamline.
Figure 145 User Preferences dialog box showing (left) parameters for streamlines and (right)
parameters for threads (used by streamlines)
Sentaurus Visual calculates the best integration parameters depending on the selected
structure and vector fields. You can define the number of threads used to create rakes of
streamlines in the User Preferences dialog box: expand Common > Miscellaneous and,
under Threads, define the maximum number of threads. You can select Auto next to the
Max Number field to let Sentaurus Visual compute the ideal number of threads to use or set
a preferred value (see Figure 145).
Figure 146 Streamlines dialog box showing Representation tab: streamlines have been created
and some are selected, and the Extract button is available
Figure 147 (Top) Two-dimensional plot displaying three streamlines and (bottom) xy plot
displaying three curves from the data extracted from the streamlines
-0.2
0.2
0.4
Y
ElectrostaticPotential [V]
0.6 4.349e-01
5.919e-02
-3.165e-01
-6.921e-01
0.8
-1.068e+00
-1.443e+00
-1.819e+00
1
-1 -0.5 0 0.5 1
X
Streamlines(2D)
Streamline_1(Plot_2D)
Streamline_2(Plot_2D)
Streamline_3(Plot_2D)
ElectrostaticPotential [V]
-1
0 0.5 1 1.5
Distance [µm]
This chapter presents how to automate tasks with Tcl or Python scripting and Inspect
compatibility.
To run a script from the user interface, choose File > Run Script.
The following examples illustrate some typical scripting uses in the context of batch scripts.
# 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"]
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 148).
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
0.0001 nMOS
1e-05
Idrain [A/µm]
1e-06
-
1e-07
1e-08
-
1e-09
0 0.5 1
Vgate [V]
Example: Create Cutline and Export 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]
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
Script Library
Tcl Libraries
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 330).
A script library has the file name formatted as <libraryName>.tcl.
The default library path is $STROOT/tcad/$STRELEASE/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.
The STROOT environment variable indicates where the Synopsys TCAD distribution has
been installed.
Both paths can be checked for Tcl scripts (any file with the extension .tcl) for auto-loading
at startup, which can be switched on or off in the user preferences.
The following options related to launching Sentaurus Visual are only valid when the
auto-loading of the script library is switched on:
• -nolibrary deactivates the auto-loading of scripts from the library.
• -librarypath <customPath> adds a custom path to the list of library paths to look for
script files when auto-loading is switched on.
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.
Python Modules
Python modules (scripts) can also be added to Sentaurus Visual, both automatically at
startup or manually with Python built-in commands.
To enable auto import of Python modules, you must set the user preference
"pythonLibrary\auto" to true in their configuration file. When the setting is active, every
file with a .py extension located in ${HOME}/svisuallib is imported at startup.
To add Python modules manually, you can use the following Python snippet:
import sys
sys.path.append("<path/to/modules>")
import <user_module>
This appendix describes the tool command language commands used in Sentaurus Visual.
The tool command language (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.
If you do not specify the -name argument in a command, then Sentaurus Visual generates
an internal name that will remain consistent in a script. If the name generated conflicts with
a name defined later in a script for the same type of element (such as a curve or cutline),
Sentaurus Visual will print an error message and stop execution of the command.
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.
Table 11 Common colors
Fonts
For Tcl commands that allow you to adjust font properties, Sentaurus Visual defines a
specific list of font families and attributes.
Table 12 Font families and their attributes
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.
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. You can provide the name of the style
or its short form directly.
Table 13 Line styles
Markers
Different markers are 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 14 Marker types
circle o
circlef of
diamond
diamondf
square
squaref
plus + +
cross x x
add_custom_button
Adds a custom button to the Scripts toolbar.
Note:
This command works only in interactive mode. It has no effect in batch mode.
If both -icon and -name are specified, then only the icon is shown in the toolbar.
Syntax
add_custom_button
-file <stringValue> | -script <stringValue> | -separator
[-desc <stringValue>] [-icon <stringValue>]
[-label <stringValue>] [-name <stringValue>]
Argument Description
-desc <stringValue> Text that describes the button. This appears as the tooltip of the
button.
-icon <stringValue> Specifies a graphics file to be used as the button icon. Supported file
formats are BMP, GIF, PNG, and SVG.
-name <stringValue> Name of the button in the Scripts toolbar. See Object Names: -name
Argument on page 217.
Returns
String with the name of the custom button specified by -name. If this argument is not
specified, the command returns the default name, which is S<number>, where <number>
starts at 1 and increases each time a custom button is created.
Example
add_custom_button -script "echo Hello World!" -name Greetings \
-desc "Echoes a Hello World Message."
#-> Greetings
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 <stringValue] [-plot <stringValue>]
Argument Description
-name <stringValue> Name of the new frame to be captured. See Object Names: -name
Argument on page 217.
-plot <stringValue> 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 399
calculate
This function extracts FET parameters from Id–Vd or Id–Vg curves.
Note:
This command applies to xy plots only.
Syntax
calculate <stringValue> -op vth | gmmax | idsat | ioff | rout | ron
[-plot <stringValue>]
Argument Description
-op vth | gmmax | idsat | Parameter to be extracted from the curve. For more detailed
ioff | rout | ron information about the extraction parameters, see Computing
Electrical Characteristics on page 96.
-plot <stringValue> Name of the plot on which to apply the parameter extraction.
Returns
Double
Example
calculate Curve_1 -op ron
#-> 0.0554013
calculate_field_value
Calculates the minimum and maximum values of a particular field, and shows (with a
marker) the location of these values.
Note:
This command applies to 2D and 3D plots only.
Syntax
calculate_field_value -min | -max
[-dataset <stringValue> | -plot <stringValue>]
[-field <stringValue>]
[-geom <stringValue>]
[-materials <stringList> | -regions <stringList>]
[-ranges {<x1> <x2> <y1> <y2> [<z1> <z2>]}]
Argument Description
-min | -max Selects whether the point returned will be the minimum or
maximum value.
-dataset <stringValue> | Selects either the dataset (for batch mode only) or the plot from
-plot <stringValue> which the data should be extracted.
-field <stringValue> Name of the field from which the data will be obtained. If not
specified, the command uses the current contour-band field
displayed in the plot.
-geom <stringValue> Selects the geometry from which the data will be extracted.
-materials <stringList> | Sets a list of materials or regions that will be used to find the
-regions <stringList> minimum or maximum value.
-ranges {<x1> <x2> <y1> Sets a specific range of values to find the minimum or maximum
<y2> [<z1> <z2>]} value. After the command is executed, the minimum or maximum
value and its position are returned.
Returns
Double and a list of coordinate values
Example
calculate_field_value -plot Plot_n9_des \
-field Abs(TotalCurrentDensity-V) -min
# position:
# min: 271.172 5.39062 0 value 0.0206237
calculate_scalar
Calculates a scalar value.
This command operates over curves or variables. If -curves is specified, -plot can specify
a plot in memory. Otherwise, the command uses the curve in the selected plot.
Note:
This command applies to xy plots only.
Syntax
calculate_scalar
(-curves [-plot <stringValue>] | -variables)
-function <stringValue>
Argument Description
-curves | -variables Select whether the command parses the specified formula as a
function of curves or variables.
-plot <stringValue> Name of the plot where the command will search for curves. If not
specified, the command uses the selected xy plot.
Returns
Double
Example
calculate_scalar -curves -plot Plot_1 \
-function vecmax(<Curve_1>)+vecmin(<Curve_1>)
#-> 0.000351277048757
create_angle
Measures an angle defined by three points.
Note:
This command applies to 2D plots only.
Syntax
create_angle
-point1 {x y} -center {x y} -point2 {x y}
[-plot <stringValue>] [-snap_on | -snap_off]
Argument Description
-plot <stringValue> Name of the plot where the angle will be measured. If not
specified, the command draws the curve on the selected 2D plot.
Returns
String (measured angle)
Example
create_angle -point1 {0.02 -0.04} -center {0.11 -0.04} \
-point2 {0.07 0.04}
#-> 63.4349488229
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
-dataset <stringList> -axisX <stringValue>
(-axisY <stringValue> | -axisY2 <stringValue>) |
-function <stringValue>
[-name <stringValue>] [-plot <stringValue>] [-y <intValue>]
Argument Description
-dataset <stringList> | Specify either a list of dataset names where the information is
-function <stringValue> extracted or a formula from which to create a curve.
-axisY <stringValue> | Specifies the variable to be used for the y-axis or the y2-axis.
-axisY2 <stringValue>
-name <stringValue> Name of the new curve. If not specified, the command assigns a
default curve name. See Object Names: -name Argument on
page 217.
-plot <stringValue> Name of the plot where the new curve will be displayed. If not
specified, the command draws the curve on the selected xy plot.
Returns
List
Example
create_curve -plot Plot_1 -dataset IdVd_example \
-axisX "drain OuterVoltage" \
-axisY "drain TotalCurrent"
#-> Curve_1
create_cut_boundary
Creates a cutline along the specified structure boundary.
The command produces a list of line segments that define the cutline. A segment is defined
as the union of two vertices, where a vertex is a point that defines a region (angle > 30° with
its neighboring points).
If -plot or -dataset is not specified, the command uses the selected 2D plot dataset or
free cutplane.
Note:
This command applies to 2D plots and free cutplanes only.
Syntax
create_cut_boundary
(-materials <stringList> | -regions <stringList>)
-points <pointList>
[-dataset <stringValue> | -plot <stringValue>] [-name <stringValue>]
[-reverse] [-segments <stringList>]
Argument Description
-points <stringList> Vertices on the boundary through which the cutline will pass.
Points must be defined as:{"x0 y0 [z0]" "x1 y1
[z1]" ...}Any component not present in the plot must be set to
0.
-dataset <stringValue> | Specifies the plot or dataset from which to retrieve the regions or
-plot <stringValue> materials. If not specified, the command uses the selected plot.
-name <stringValue> Name of the cutline dataset. If not specified, the command
generates a default name. See Object Names: -name Argument
on page 217.
Argument Description
-segments <stringList> Specifies the regions from which the data will be extracted in each
segment line. The length of the list must be exactly the number of
vertices along the cutline minus 1.
Returns
String (the name of the resultant 1D dataset).
Example
create_cut_boundary -plot Plot_2D -regions {R.Gateox R.PolyReox} \
-segments {R.Gateox R.PolyReox}
-points {"-0.5125 -0.002 0" "-0.6 -0.002 0" "-0.6 0 0"} -name myCut
#->myCut
create_cutline
Creates a new cutline.
If the type of cutline is aligned to an axis, you must specify the -at argument.
If -type free is specified, you must specify the -points argument.
The new plot created has the same name as the cutline dataset, with the prefix Plot_.
Note:
This command applies to 2D and 3D plots only. Axis-aligned cutlines can be
generated from 3D plots only if they are particle Monte Carlo (PMC) structures,
even though they accept only -type free cutlines.
Syntax
create_cutline
-type x | y | z
-at <doubleValue> [-axisX x | y | z [-surface]] |
-type free -points {<x1> <y1> [<z1>] <x2> <y2> [<z2>]}
[-dataset <stringValue> | -plot <stringValue>]
[-materials <stringList> | -regions <stringList>]
[-name <stringValue>]
Argument Description
-at <doubleValue> If an axis is selected using -type, the -at argument must
[-axisX x | y | z [-surface]] | be used. If -type free is specified, two (x,y) points must
-points {<x1> <y1> [<z1>] be specified with the -points argument. (In 3D plots, you
<x2> <y2> [<z2>]} must specify two (x, y, z) points.)
If the source structure is a 3D PMC structure, you can
specify -surface to extract the surface data as a 1D
dataset.
If -surface is specified, -axisX sets the reference axis
against which curves are displayed.
-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.
-dataset <stringValue> | Name of the dataset or plot from where the cutline is
-plot <stringValue> generated. If neither is specified, the command uses the
selected 2D or 3D plot dataset.
-name <stringValue> Name of the new cutline dataset. If not specified, the
command generates a default name. See Object Names:
-name Argument on page 217.
Returns
String (the name of the resultant 1D dataset).
Example
create_cutline -plot Plot_2D -type free -points {-0.45 -0.15 0.30 0.80} \
-name myCutlineDataset
#-> myCutlineDataset
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
-type x | y | z | free -at <doubleValue> |
-type free -origin {<x> <y> <z>} -normal {<x> <y> <z>}
[-dataset <stringValue> | -plot <stringValue>] [-name <stringValue>]
Argument Description
-at <doubleValue> | With -at, cuts the structure at the value specified in the axis
-origin { <x> <y> <z>} defined by -type (it must not be free).
-normal {<x> <y> <z>}
With -origin and -normal, cuts the structure with a plane defined
by the given origin and normal. The argument -type must be free.
-type x | y | z | free Selects the axis from which the cutplane is generated.
-dataset <stringValue> | Name of the dataset or plot from where the cutplane is generated.
-plot <stringValue> If not specified, the command uses the selected plot.
-name <stringValue> Name of the new cutplane dataset. If not specified, the command
generates a default name as a function of the original 3D dataset.
See Object Names: -name Argument on page 217.
Returns
String (the name of the resultant 2D dataset).
Example
create_cutplane -plot Plot_3D -name Cut1 -type y -at 0.3
#-> Cut1
create_cutpolyline
Creates a new cutline with the specified number of vertex points.
Note:
This command applies to 2D plots only.
Syntax
create_cutpolyline -points <pointList>
[-dataset <stringValue> | -plot <stringValue>]
[-materials <stringList> | -regions <stringList>]
[-name <stringValue>]
Argument Description
-points <pointList> Points in the region where the cutline will pass through. Points
must be defined as {"x0 y0" "x1 y1" ...}.
-dataset <stringValue> | Name of the dataset or plot from where the cutline will be created.
-plot <stringValue> If neither is specified, the command uses the selected 2D plot
dataset.
-materials <stringList> | If specified, the cutline will be performed only on the materials or
-regions <stringList> regions listed.
-name <stringValue> Name of the cutline. See Object Names: -name Argument on
page 217.
Returns
String
Example
create_cutpolyline -plot Plot_2D \
-points {"0.05872 -0.260434" "0.46536 -0.034674" "0.26 0.074126"}
#-> C1(2D)
create_cutpolyplanes
Creates a series of cutplanes using a polyline as input. The new plot has the name of the
cutplane.
Note:
This command applies to 3D plots only.
Syntax
create_cutpolyplanes
-type x | y | z
-points <pointList>
[-dataset <stringValue> | -plot <stringValue>]
[-geom <stringValue>] [-name <stringValue>]
Argument Description
-type x | y | z Selects the extrusion axis for the polyline defined by the points.
-points <pointList> Sets the vertices for the polyline to be extruded along the chosen
axis to create cutplanes. Points must be defined as:
{ {x0 y0 z0} {x1 y1 z1} ...}
-dataset <stringValue> | Name of the dataset or plot from where the cutplanes will be
-plot <stringValue> created. If neither is specified, the command uses the selected
3D plot dataset.
-geom <stringValue> Name of the geometry to use for the cut. If not specified, the
command uses the first geometry of the plot.
-name <stringValue> Name of the new dataset. If not specified, the command
generates a default name as a function of the original 3D dataset.
Returns
String (the name of the resultant 2D dataset).
Example
create_cutpolyplanes -type x
-points { {0.3 0.1 0.2} {0.1 0.5 1.6} {2.4 0.5 1.3} }
-plot Plot_3D -name Cut1
#-> Cut1
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 -function <stringValue> -name <stringValue>
[-dataset <stringValue> | -plot <stringValue> [-geom <stringValue>]]
[-overwrite] [-show]
Argument Description
-name <stringValue> Name of the new field. See Object Names: -name Argument on
page 217.
-dataset <stringValue> | Name of the plot or dataset from where the field is created. If not
-plot <stringValue> specified, the command uses the active plot.
[-geom <stringValue>]
The argument -geom can be used only with -plot. It specifies the
name of the geometry in the plot. If not specified, the command
uses the first geometry associated with the plot.
Returns
String
Example
create_field -name newFld -dataset 3D -function "log(<ElectricField>)"
#-> newFld
create_iso
Creates a new iso-geometry using an isovalue from the field of a geometry, or modifies an
existing iso-geometry.
Note:
This command applies to 2D and 3D plots only.
Syntax
create_iso -field <stringValue> -value <doubleValue>
[-color <#rrggbb>] [-geom <stringValue>]
[-modify | -name <stringValue>]
[-plot <stringValue>]
Argument Description
-field <stringValue> Selects the field on which the isovalue is used. If not
specified, the command uses the current contour band field
displayed in the plot.
-value <doubleValue> Specifies the isovalue with which to create the new
iso-geometry.
-color <#rrggbb> Specifies the color to be used for the new iso-geometry. If not
specified, the command uses the default color (gray).
-geom <stringValue> Name of the geometry in the plot. If not specified, the
command uses the first geometry associated with the plot.
If -modify is specified, this argument is the name of the
iso-geometry to be modified.
-modify | -name <stringValue> Specifies either the name of the new iso-geometry to be
created or that the geometry defined by -geom will be
modified by the arguments in the command. See Object
Names: -name Argument on page 217.
-plot <stringValue> Specifies the plot from which to retrieve the geometry. If not
specified, the command uses the selected plot.
Returns
String naming the new geometry or the modified geometry
Example
create_iso -plot Plot_3D -geom 3D -field ElectrostaticPotential \
-value 0.0 -name Iso1(3D) -color blue
#-> Iso1(3D)
create_plot
Creates an empty xy plot, or creates a plot from 2D or 3D datasets.
Syntax
create_plot
-1d | -dataset <stringValue> | -duplicate <stringValue>
[-name <stringValue>]
[-ref_plot <stringValue>]
[-tdr_state_index <intValue>]
Argument Description
-name <stringValue> Name of the new plot. See Object Names: -name Argument
on page 217.
-tdr_state_index <intValue> The new plot will load only the specified TDR state index
from an already loaded dataset. The resulting plot is not
considered be to a multistate plot. This argument applies to
2D and 3D plots only.
Returns
String
Example
create_plot -dataset 3D
#-> Plot_3D
create_projection
Creates a 2D plot with maximum or minimum values along a 3D plot axis.
The argument -resolution increases the precision of the maximum or minimum
calculation. Higher values of resolution lead to longer calculation times.
Note:
This command applies to 3D plots only.
Syntax
create_projection
-field <stringValue>
-function max | min
-type x | y | z | free
[-dataset <stringValue> | -plot <stringValue>] [-geom <stringValue>]
[-materials <stringList> | -regions <stringList>]
[-name <stringValue>] [-normal <doubleList>]
[-origin <doubleList>] [-resolution <x>x<y>x<z>]
[-width <doubleValue>] [-window {<x1> <y1> [<z1>] <x2> <y2> [<z2>]}]
Argument Description
-function max | min Specifies either the maximum values projection or minimum
values projection.
-dataset <stringValue> | Specifies the plot or dataset from which to retrieve the regions or
-plot <stringValue> materials. If not specified, the command uses the selected plot.
-geom <stringValue> Geometry that has the given field. If not specified, the command
uses the first shown geometry from the selected dataset.
Argument Description
-normal <doubleList> For free projection types, -normal sets the normal for the plane.
It must contain three values, which will be normalized if
required.
-origin <doubleList> Sets the origin for the plane of free projection types.
-width <doubleValue> Sets the width of the domain considered for free projection
types.
-window {<x1> <y1> [<z1>] If -window is used, then all regions inside that window are
<x2> <y2> [<z2>]} selected.
Returns
String
Example
create_projection -plot Plot_3D -field DopingConcentration \
-function max -normal x -resolution 50x50x50
#-> Projection_max(3D)
create_projection_path
Creates a 2D plot with maximum or minimum values extracted from several planes across
a path defined by points.
Note:
This command applies to 3D plots only.
Syntax
create_projection_path
-field <stringValue>
-function max | min
-points <pointList>
-type x | y | z
[-dataset <stringValue> | -plot <stringValue>]
[-geom <stringValue>]
[-name <stringValue>]
[-resolution <x>x<y>x<z>]
[-width <doubleList>]
Argument Description
-function max | min Specifies either the maximum values projection or minimum
values projection.
-points <pointList Specifies the points in the structure defining the path to
construct the projection. Points must be defined as:
{"x0 y0 z0" "x1 y1 z1" ...}
-type x | y | z Specifies the extrusion axis for the projection. The resulting 2D
plot will have the axis selected as the vertical axis.
-dataset <stringValue> | Specifies the dataset or plot from which to retrieve the regions or
-plot <stringValue> materials. If not specified, the command uses the selected plot.
-geom <stringValue> Specifies the geometry that has the given field. If not specified,
the command uses the first shown geometry from the selected
dataset.
Argument Description
-width <doubleList> Sets the width for every plane in the path. If not set, then the full
extent of the structure is used. If a single value is used, then all
planes use the same width extent. A list can be provided to set
each plane width individually (the number of width values must
equal the number of points minus one).
Returns
String
Example
create_projection_path -plot Plot_3D -field DopingConcentration
-type x -function max -resolution 50x50x50 -width {0.1 0.14}
-points {"2.5e-05 -0.0669983 0.0378416" "-0.0950691 -0.0272096
0.0251004" "-0.100966 0.00648555 0.0243684"}
#-> Projection_max(3D)
create_ruler
Measures the distance between two points.
Note:
The command applies to 2D and 3D plots only.
Syntax
create_ruler -id <intValue> -point1 {x y [z]} -point2 {x y [z]}
[-plot <stringValue>] [-snap_on | -snap_off]
Argument Description
-plot <stringValue> Name of the plot where the command will measure the distance
between two points. If not specified, the command uses the
selected plot.
Returns
The distance between the ruler points
Example
create_ruler -id 2 -point1 {0.1 0.1 0.1} -point2 {0.5 0.5 0.2} -snap_off
#-> 0.574456264654
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
-direction forward | backward | both
-field <stringValue>
(-point {<x> <y> [<z>]} |
-p1 {<x> <y> [<z>]} -p2 {<x> <y> [<z>]} -nofpoints <intValue>)
[-geom <stringValue>]
[-integ_initial_step <doubleValue>]
[-integ_max_propagation <doubleValue>]
[-integ_max_steps <intValue>]
[-integ_terminal_speed <doubleValue>]
[-materials <stringList> | -regions <stringList>]
[-name <stringValue>] [-plot <stringValue>]
Argument Description
-point {<x> <y> [<z>]} | Use the -point argument to create one streamline as follows:
-p1 {<x> <y> [<z>]} • If the direction is forward, the point specified is the starting
-p2 {<x> <y> [<z>]}
point of the streamline.
-nofpoints <intValue>
• If the direction is backward, the point specified is the end point
of the streamline.
• If the direction is both, the point specified is the middle of the
streamline.
Use the -nofpoints argument to create a custom number of
streamlines going from point 1 to point 2 with the -p1 and -p2
arguments. For example, if you specify -nofpoints 9, then
7 streamlines in addition to the streamlines originating from
point 1 and point 2 are created. Analogous to the -point
argument, the direction determines the type of point.
-geom <stringValue> Name of the geometry in the plot. If not specified, the command
uses the first geometry associated with the plot.
Argument Description
-integ_initial_step Specifies the initial step used in all the calculations of the
<doubleValue> Runge-Kutta 4 algorithm. This step remains unchanged in all the
mathematical processes.
-name <stringValue> Identifier for the new streamline created. If not specified, the
command generates a default name. See Object Names: -name
Argument on page 217.
-plot <stringValue> Name of the plot. If not specified, the command uses the selected
plot.
Returns
List
Example
create_streamline -field ElectricField -point {0.5 0.2} -direction both
#-> Streamline_1
create_surface
Creates a new 3D dataset using a 2D dataset or geometry of a plot as source, or modifies
an existing 3D surface dataset.
Note:
This command applies to 2D datasets (or plots) and 3D surface datasets (or plots)
only.
Syntax
create_surface
[-dataset <stringValue> | -plot <stringValue> [-geom <stringValue>]]
[-factor <doubleValue>] [-field <stringValue>] [-name <stringValue>]
[-range <doubleList>] [-scale linear | logabs | asinh]
Argument Description
-dataset <stringValue> Specifies the dataset to be used to build the surface dataset.
-factor <doubleValue> Specifies the factor that is used to multiply the coordinate to
generate the surface. If not specified, the command uses one (1).
-field <stringValue> Selects the field on which the surface is used. If not specified, the
command uses the current contour band field displayed in the
plot.
-geom <stringValue> Name of the geometry in the plot. If not specified, the command
uses the first geometry associated with the plot.
-plot <stringValue> Specifies the plot from which to retrieve the geometry. If the plot is
not specified, the command uses the selected plot.
-range <doubleList> Pair of values (min and max) that defines the range to be used to
limit the new coordinate values that generate the surface. If not
specified, the command uses the entire range of the field.
Argument Description
-scale linear | logabs | Specifies the scale to be used on the coordinates to generate the
asinh surface dataset. If not specified, the command uses the linear
scale.
Returns
String naming the new dataset.
Example
create_surface -plot Plot_2D -geom 2D -field ElectrostaticPotential \
-factor 0.2 -name Surface1(2D)
#-> Surface1(2D)
create_variable
Creates a new variable.
Note:
This command applies to xy plots only.
Syntax
create_variable
-dataset <stringValue>
(-function <stringValue> | -values <doubleList>)
-name <stringValue>
Argument Description
-dataset <stringValue> Dataset from which values are obtained to evaluate functions.
-function <stringValue> | Expression to evaluate or the list of values to add to the dataset
-values <doubleList> specified.
-name <stringValue> Name of the new variable. If the variable name already exists,
then it is overwritten.
Returns
String
Example
create_variable -name nVar -dataset idvd -values {0.1 0.3 0.5 0.7 0.9}
#-> nVar
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 <stringList> [-display] [-normalized]
Argument Description
Returns
String
Example
diff_plots {Plot1 Plot2}
#-> Plot1-Plot2
draw_ellipse
Draws an ellipse at the specified position. The ellipse is represented in relation to the
rectangle that envelops it, although the rectangle is not drawn.
Note:
This command applies to xy plots only.
Syntax
draw_ellipse -p1 {<x1> <y1>} -p2 {<x2> <y2>}
[-plot <stringValue>]
Argument Description
-p1 {<x1> <y1>} Specifies the upper-left corner of the rectangle that envelops the
ellipse.
-p2 {<x2> <y2>} Specifies the lower-right corner of the rectangle that envelops the
ellipse.
-plot <stringValue> Name of the plot where the ellipse will be drawn. If not specified, the
command uses the selected plot.
Returns
Returns a string naming the ellipse. The ellipse will be numbered if other ellipses are already
drawn.
Example
draw_ellipse -plot Plot_XY -p1 {0 0.5} -p2 {0.75 0.25}
#-> Ellipse_1
draw_line
Draws a line connecting two points.
Note:
This command applies to xy and 2D plots only.
Syntax
draw_line -p1 <doubleList> -p2 <doubleList>
[-plot <stringValue>]
Argument Description
-p1 <doubleList> List of double values representing a point in the plot. This point is the
first point of the line.
-p2 <doubleList> List of double values representing a point in the plot. This point is the
second point of the line.
-plot <stringValue> Name of the plot in which the line will be drawn.
Returns
Returns a string naming the line. The line will be numbered if other lines are already drawn.
Example
draw_line -plot Plot_n9_des -p1 {62.9161 49.8411} -p2 {138.117 60.5841}
#-> Line_1
draw_rectangle
Draws a rectangle in the current plot.
Note:
This command applies to xy and 2D plots only.
Syntax
draw_rectangle -p1 <doubleList> -p2 <doubleList>
[-plot <stringValue>]
Argument Description
-p1 <doubleList> List of double values representing the upper-left corner of the rectangle.
-p2 <doubleList> List of double values representing the lower-right corner of the
rectangle.
-plot <stringValue> Name of the plot in which the rectangle will be drawn.
Returns
Returns a string naming the rectangle. The rectangle will be numbered if other rectangles
are already drawn.
Example
draw_rectangle -plot Plot_n9_des -p1 {46.0341 38.0749} \
-p2 {97.1916 112.253}
#-> Plane_1
draw_textbox
Draws a text box with a label at a position indicated by the -at argument, and inserts an
arrow that points to the direction of the text box indicated by the -anchor argument.
Note:
This command applies to xy and 2D plots only. The arrow and its properties work
only in 2D plots.
Syntax
draw_textbox -at <doubleList> -label <stringValue>
[-anchor <doubleList>] [-plot <stringValue>]
Argument Description
-at <doubleList> List of two double values indicating the lower-right corner of the text
box.
-anchor <doubleList> List of double values representing a position where the arrow will point
to.
-plot <stringValue> Name of the plot in which the text box will be drawn.
Returns
Returns a string naming the text box. The text box will be numbered if other text boxes are
already drawn.
Example
draw_textbox -at {219.458 41.6559} -anchor {219.458 41.1443} -label Text
#-> Text
echo
Prints a string in the Console.
Syntax
echo [<stringValue>]
Argument Description
Returns
None
Example
echo "Hello World"
#-> Hello World
exit
Exits Sentaurus Visual with the status given as an argument.
Syntax
exit [<intValue>]
Argument Description
Returns
None
Example
exit 1
#-> Exit status: 1
export_curves
Exports a curve to the specified file format.
Syntax
export_curves -filename <stringValue> -plot <stringValue>
[<stringList>] [-format csv | plx] [-overwrite]
Argument Description
Returns
Integer
Example
export_curves -plot Plot_1 -filename testFile.csv -format csv
#-> 0
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 <stringValue>
[-frame_duration <intValue>]
[-frames <stringList>] [-overwrite]
Argument Description
-filename <stringValue> Name of the file for the new movie. Add .gif extension if
necessary.
-frame_duration <intValue> Specifies the duration of each frame with 1/100 s as unit.
Default: 50.
-frames <stringList> Specifies a list of frames to be exported. The entire frame buffer
is used by default.
Returns
String
Example
export_movie -filename Movie.gif -frame_duration 2 -overwrite
#-> Movie.gif
See Also
add_frame on page 222
start_movie on page 399
export_settings
Exports Sentaurus Visual settings to a file.
Syntax
export_settings <stringValue>
Argument Description
<stringValue> Specifies the name of the file. It must have the file extension .conf.
Returns
Integer
Example
export_settings settings.conf
#-> 0
export_variables
Exports variables from a curve to a file.
Syntax
export_variables -dataset <stringValue> -filename <stringValue>
[-overwrite] [<stringList>]
Argument Description
-dataset <stringValue> Specifies the name of the dataset where specified variables (by
default, all) are read for export.
Returns
Integer
Example
export_variables -dataset Data_1 -filename exportedVars.csv
#-> 0
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 <stringValue>
[-format <stringValue>] [-overwrite] [-plots <stringList>]
[-resolution <width>x<height>]
Argument Description
-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.
-plots <stringList> Exports the list of plots specified. If not specified, the
command exports all the plots.
Returns
Integer
Example
export_view /path/to/examplePlot.bmp -format bmp
#-> 0
extract_path
Extracts the path of the minimum or maximum values of a scalar field. This command
returns the name of a new geometry that is added automatically to the plot. See Extracting
the Path of Minimum or Maximum Values of a Scalar Field on page 194.
Syntax
extract_path <stringValue> -max | -min
[-bottom <doubleValue>] [-geom <stringValue>]
[-materials <stringList> | -regions <stringList>]
[-plot <stringValue>] [-points <pointList>]
[-start {<x> <y> <z>} -end {<x> <y> <z>}]
[-top <doubleValue>] [-type x | y | z]
[-window {<x1> <y1> [<z1>] <x2> <y2> [<z2>]}]
Argument Description
<stringValue> Name of the scalar field whose values are extracted along a
path.
-bottom <doubleValue> Sets the axis coordinate of the bottom face of the extruded
polygon.
-geom <stringValue> Specifies the dataset (or geometry) where the command will
search for the scalar field. If not specified, the command uses
the main one from the active plot.
-materials <stringList> | Specifies either a list of materials or a list of regions where the
-regions <stringList> field values will be extracted. If not specified, the command uses
the entire plot.
-plot <stringValue> Name of the plot. If not specified, the command uses the
selected plot.
-start {<x> <y> <z>} Specifies the start point and the end point of the 3D path to be
-end {<x> <y> <z>} extracted. Available for 3D plots only.
-top <doubleValue> Sets the axis coordinate of the top face of the extruded polygon.
Argument Description
-type x | y | z Selects the axis where the polygon specified by -points should
be extruded.
-window {<x1> <y1> [<z1>] Specifies a window defined by x1, y1, [z1] and x2, y2, [z2].
<x2> <y2> [<z2>]} These values must be specified in Cartesian coordinates. If not
specified, the command uses the entire plot.
Returns
String
Example
extract_path ElectrostaticPotential -plot Plot_2D -geom 2D \
-materials {Oxide Silicon} -window {-10.32 0 10 10} -max
#-> PathGeometry_2D
extract_streamlines
Extracts the fields and coordinates data from one or more streamlines created in 2D or 3D
plots.
Note:
This command applies to 2D and 3D plots only.
Syntax
extract_streamlines <stringList> [-plot <stringValue>]
Argument Description
-plot <stringValue> Name of the plot. If not specified, the command uses the selected plot.
Returns
List (names of the 1D datasets created).
Example
extract_streamlines {Streamline} -plot Plot_2D
#-> {Streamline(Plot_2D)}
extract_streamlines {Streamline_1 Streamline_2 Streamline_3} \
-plot Plot_2D
#-> {Streamline_1(Plot_2D) Streamline_1(Plot_2D) Streamline_1(Plot_2D)}
extract_value
Calculates the minimum and maximum field value of a defined polyhedron and shows (with
a marker) the location of these values.
Note:
This command applies to 3D plots only.
Syntax
extract_value -min | -max
[ -bottom <doubleValue>] [-dataset <stringValue>]
[ -field <stringValue>] [-geom <stringValue>]
[ -materials <stringList> | -regions <stringList>]
[ -plot <stringValue>] [-points <pointList>]
[ -top <doubleValue>] [-type x | y | z]
Argument Description
-min | -max Selects whether the point returned is the minimum or maximum
value.
-bottom <doubleValue> Sets the value of the height bottom of the vertical axis of the
polyhedron.
-dataset <stringValue> Selects the dataset (for batch mode only) from which the data
should be extracted.
-field <stringValue> Name of the field from which the data is obtained. If not
specified, the command uses the current contour-band field
displayed in the plot.
-geom <stringValue> Selects the geometry from which the data is extracted.
-materials <stringValue> | Sets a list of materials or regions that will be used to find the
-regions <stringList> minimum or maximum value.
-plot <stringValue> Selects the plot from which the data should be extracted.
-points <pointList> Selects the points in the structure defining the polygon to
construct the polyhedron. Points must be defined as
{"x0 y0 z0" "x1 y1 z1" ...}.
-top <doubleValue> Sets the value of the height top of the vertical axis of the
polyhedron.
Returns
Double and a list of coordinate values.
Example
extract_value -plot Plot_n10_des -field Abs(TotalCurrentDensity-V)
-min -type z -top 0.05 -bottom 0
-points {{0 -0.04 0.05} {0 0.04 0.05} {0.1 0.04 0.05}
{0.1 -0.04 0.05}}
# position:
# min: 0.00781 0.01 0.00625 value -6.41e+18
# max: 1.92e-5 0.03 0.05 value 6e+20
#-> -6.41e+18 {0.00781 0.01 0.00625}
find_values
Returns the positions of all points with the specified value in a scalar field.
Note:
This command applies to 2D and 3D plots only.
Syntax
find_values <doubleValue> -field <stringValue>
[-geom <stringValue>] [-plot <stringValue>]
[-window {<x1> <y1> [<z1>] <x2> <y2> [<z2>]}]
Argument Description
-geom <stringValue> Specifies the dataset (or geometry) where the command
searches for the scalar field. If not specified, the command uses
the main one from the active plot.
-plot <stringValue> Name of the plot. If not specified, the command uses the
selected plot.
-window {<x1> <y1> [<z1>] Specifies a window whose values must be specified in Cartesian
<x2> <y2> [<z2>]} coordinates. If not specified, the command uses the entire
geometry.
Returns
Positions of all points in the specified field with the specified value.
Example
find_values 1.0 -field ElectrostaticPotential
#-> {3.53079 -0.0263978 0.392817} {6.41207 -1.7982327 3.289376}
{2.76445 -9.8237643 9.238764}
get_angle_prop
Returns angle properties.
Note:
The command returns only one property at a time.
Syntax
get_angle_prop
(
-center | -color | -orthogonal_on | -pos1 | -pos2 | -precision |
-show_label | -snap_on | -width
)
[-plot <stringValue>]
Argument Description
-plot <stringValue> Name of the plot from where the angle properties will be returned. If not
specified, the command uses the selected plot.
Returns
The value of the queried property.
Example
get_angle_prop -color
#-> #000000
get_axis_prop
Returns axis properties.
Note:
The command returns only one property at a time for the specified axis.
Syntax
get_axis_prop -axis x | y | z | y2
(
-anchor | -auto_padding | -auto_precision | -auto_spacing |
-inverted |
-label_angle | -label_font_att | -label_font_color |
-label_font_factor | -label_font_family | -label_font_size |
-label_format | -label_padding | -label_precision |
-major_ticks_length | -major_ticks_width |
-max | -max_fixed | -min | -min_fixed |
-min | -min_fixed | -minor_ticks_length | -minor_ticks_position |
-minor_ticks_width | -nof_minor_ticks | -padding | -range |
-show | -show_minor_ticks | -show_label | -show_ticks |
-show_title | -spacing | -ticks_position | -title |
-title_font_att | -title_font_color | -title_font_factor |
-title_font_family | -title_font_size | -type
)
[-plot <stringValue>]
Argument Description
-axis x | y | z | y2 Specifies from which axis the properties will be returned. The axis
identifier y2 is valid only for xy plots.
Argument Description
-minor_ticks_position Shows the position of minor ticks (in, out, or center) (applies to 2D
plots only).
-padding Padding value of the axis scale, in pixels (applies to xy plots only).
-show_label Shows labels if values for the major ticks are displayed.
Argument Description
-title_font_factor Font size factor of the axis label (applies to 2D and 3D plots only).
-plot <stringValue> Name of the plot from where the axis properties will be returned.
Returns
The value of the queried property.
Example
get_axis_prop -axis x -type
#-> linear
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
(
-dolly_zoom_on | -focal_point | -parallel | -position | -rot_color |
-rot_size | -rot_width | -rotation_point | -setup |
-show_rotation_point | -view_angle | -view_up
)
[-plot <stringValue>]
Argument Description
-plot <stringValue> Name of the plot from which to obtain the required property. If not
specified, the command uses the selected plot.
Returns
The value of the queried property.
Example
get_camera_prop -position
#-> 3.53079 -0.0263978 0.392817
get_contour_labels_prop
Returns properties of the contour labels.
Note:
The command returns only one property at a time.
Syntax
get_contour_labels_prop <stringValue>
(
-anchor | -color_bg | -font_att | -font_color | -font_factor |
-font_family | -format | -level_skip | -precision | -show_bg |
-show_index | -spacing
)
[-geom <stringValue>] [-plot <stringValue>]
Argument Description
<stringValue> Name of the field. If not specified, then the command uses the active
field.
-level_skip Returns level skip of the contour labels. The value 0 means every level is
labeled.
Argument Description
-geom <stringValue> Name of the dataset (or geometry). If not specified, then the command
uses the main one from the active plot.
-plot <stringValue> Name of the plot. If not specified, then the command uses the active plot.
Returns
The value of the queried property.
Example
get_contour_labels_prop DopingConcentration -format
#-> engineering
get_curve_data
Returns data from the specified curve axis.
Syntax
get_curve_data <stringValue> -axisX | -axisY | -scalar
[-plot <stringValue>]
Argument Description
-axisX | -axisY | -scalar Curve axis or scalar field from where data is retrieved.
Returns
The value of the queried property.
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
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 <stringValue>
(
-axis | -color | -deriv | -function | -integ | -label | -line_style |
-line_width | -markers_size | -markers_type | -selected | -show |
-show_legend | -show_line | -show_markers | -xScale | -xShift |
-yScale | -yShift
)
[-plot <stringValue>]
Argument Description
Argument Description
-plot <stringValue> Name of the plot. If not specified, the command uses the selected plot.
Returns
The value of the queried property.
Example
get_curve_prop Curve_1 -deriv
#-> 2
get_cutline_prop
Returns the properties of cutlines.
Note:
This command returns only one property at a time. It applies to 2D and 3D plots
only.
Syntax
get_cutline_prop <stringValue> -plot <stringValue>
(
-handles_color | -hide_handles | -label_op | -label_pos |
-label_size | -line_color | -line_style | -line_width |
-pos1 | -pos2 | -show_handles | -show_label
)
Argument Description
<stringValue> Name of the cutline from which the property will be returned.
-label_op The side of the cutline where the label is displayed. It returns false (0) if
it is the “normal” position or true (1) if it is the opposite position.
Argument Description
Returns
The value of the queried property.
Example
get_cutline_prop C1 -plot Plot_2D -pos1
#-> 0.1 2.7891 0
get_cutplane_prop
Returns cutplane properties.
Note:
This command applies to 3D plots only.
Syntax
get_cutplane_prop <stringValue> -plot <stringValue>
(
-at | -hide_label | -label_position | -label_size | -normal |
-origin | -show_label
)
Argument Description
Returns
The value of the queried property.
Example
get_cutplane_prop C1 -plot Plot_3D -at
#-> 0.483
get_ellipse_prop
Returns ellipse properties.
Note:
This command returns only one property at a time and applies only to xy plots.
Syntax
get_ellipse_prop <stringValue>
( -fill_color | -line_color | -line_style | -line_width | -p1 | -p2 )
[-plot <stringValue>]
Argument Description
<stringValue> Name of the ellipse object from which the property will be returned.
-p1 Returns a list of double values representing the start point of the ellipse
(upper-left corner).
-p2 Returns a list of double values representing the end point of the ellipse
(lower-right corner).
-plot <stringValue> Name of the plot. If not specified, the command uses the selected plot.
Returns
The value of the queried property.
Example
get_ellipse_prop Ellipse_1 -plot Plot_1 -line_style
#-> dashdotdot
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 [<stringValue>]
(
-contour_labels_on | -custom_levels | -interpolated_values | -label |
-levels | -line_color | -line_width | -max | -max_fixed | -min |
-min_fixed | -range | -scale | -show | -show_bands
)
[-geom <stringValue>] [-plot <stringValue>]
Argument Description
<stringValue> Name of the field. If not specified, the command uses the active 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).
Argument Description
-geom <stringValue> Name of the dataset (or geometry). If not specified, the command uses
the main one from the active plot.
-plot <stringValue> Name of the plot. If not specified, the command uses the active plot.
Returns
The value of the queried property.
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 and 2D plots only.
Syntax
get_grid_prop
(
-align | -line1_color | -line1_style | -line1_width | -line2_color |
-line2_style | -line2_width | -show | -show_minor_lines
)
[-plot <stringValue>]
Argument Description
-plot <stringValue> Name of the plot. If not specified, the command uses the selected plot.
Returns
The value of the queried property.
Example
get_grid_prop -line1_color
#-> #ff0000
get_input_data
Displays a customizable dialog box that requires user input.
Note:
This command works only in interactive mode. Otherwise, it fails unless a default
value is provided.
Syntax
get_input_data [-default <stringValue>] [-desc <stringValue>]
[-double | -file | -int | -list | -string | -yesno]
[-elements <stringList>]
Argument Description
-double | -file | -int | Sets the type of input to be expected. Options are:
-list | -string | -yesno • -double: Sets the input to expect a double number.
• -file: Sets the input to be selected from the file dialog box.
• -int: Sets the input to expect an integer.
• -list: Sets the input to be selected from a list.
• -string: Sets the input to expect a string. This is the default if
no type input is specified.
• -yesno: Sets the input to expect a Yes or No value. It returns 1
for Yes and 0 for No.
Returns
The result of the input as a string.
If you cancel the input, the result is equal to the default value. If a default value is not
specified, the command generates an error message.
Example
get_input_data -desc "Variable that defines the cut point." \
-default 0.0 -double
#-> 1.5
get_interfaces
Traverses a line and finds the positions of all points where a material or region has an
interface with another one. The line can be specified with either a pair of points or two axes
and their values.
Note:
The command applies to 2D and 3D plots only.
Syntax
get_interfaces
-points {<x1> <y1> [<z1>] <x2> <y2> [<z2>]} |
-x <doubleValue> -y <doubleValue> [-z <doubleValue>]
[-dataset <stringValue> | -plot <stringValue>]
[-materials <stringList> | -regions <stringList>]
Argument Description
-points {<x1> <y1> [<z1>] Specifies a pair of points to check the interfaces of the given
<x2> <y2> [<z2>]} material between them.
-x <doubleValue> Specify two axes and their coordinates to search for interfaces
-y <doubleValue> along a line orthogonal to the axes.
[-z <doubleValue>]
-dataset <stringValue> | Name of the dataset or plot from where the command is executed.
-plot <stringValue> If neither is specified, then the command uses the selected 2D or
3D plot dataset.
-materials <stringList> Specifies the materials or regions in which to search for interfaces.
| -regions <stringList>
Returns
Positions of all points where a material or region has an interface with another one.
Example
get_interfaces -plot Plot_n1_mesh -material Silicon \
-points {-9 1 0 -9 1 2}
#-> {-9 1 0.600000023842} {-9 1 1.39999997616}
get_legend_prop
Returns legend properties.
Note:
The command returns only one property at a time.
Syntax
get_legend_prop
(
-color_bg | -color_fg | -label_font_att | -label_font_color |
-label_font_factor | -label_font_family | -label_font_size |
-label_format | -location | -margins | -nof_labels | -orientation |
-position | -precision | -show_background | -size | -title_font_att |
-title_font_color | -title_font_factor | -title_font_family
)
[-plot <stringValue>]
Argument Description
-location Location in the plot area where the legend is displayed (only for xy
plots).
Argument Description
-plot <stringValue> Name of the plot. If not specified, the command uses the selected plot.
Returns
The value of the queried property.
Example
get_legend_prop -orientation
#-> vertical
get_light_prop
Returns light configuration properties.
Note:
The command returns only one property at a time and applies only to 3D plots.
Syntax
get_light_prop
(
-back_azimuth | -back_elevation | -back_ratio | -back_warmth |
-fill_azimuth | -fill_elevation | -fill_ratio | -fill_warmth |
-head_ratio | -head_warmth |
-key_azimuth | -key_elevation | -key_intensity | -key_warmth
)
[-plot <stringValue>]
Argument Description
Argument Description
-plot <stringValue> Name of the plot from where to obtain the required property. If not
specified, then the command uses the selected plot.
Returns
Double
Example
get_light_prop -key_warmth
#-> 0.75
get_line_prop
Returns line properties.
Note:
This command returns only one property at a time and applies only to xy and 2D
plots.
Syntax
get_line_prop <stringValue>
( -line_color | -line_style | -line_width | -p1 | -p2 )
[-plot <stringValue>]
Argument Description
<stringValue> Name of the line object from which the property is returned.
-p1 Returns a list of double values representing the start point of the line.
-p2 Returns a list of double values representing the end point of the line.
-plot <stringValue> Name of the plot. If not specified, the command uses the selected plot.
Returns
The value of the queried property.
Example
get_line_prop Line_1 -plot Plot_1 -line_width
#-> 4
get_material_prop
Returns material properties.
Note:
The command returns only one property at a time and applies only to 2D and 3D
plots.
Syntax
get_material_prop <stringValue>
(
-border_color | -border_width | -color | -mesh_color | -mesh_width |
-on | -particles_size | -show_all | -show_border |
-show_bulk | -show_field | -show_mesh | -show_vector |
-translucency_level | -translucency_on
)
[-geom <stringValue>] [-plot <stringValue>]
Argument Description
Argument Description
-show_vector Shows the status of the vector field visibility of the material.
-geom <stringValue> Specifies the geometry from where the material property will be
requested. If not specified, the command uses first geometry of given
-plot.
-plot <stringValue> Name of the plot from where the material property will be requested. If
not specified, the command uses selected plot.
Returns
The value of the queried property.
Example
get_material_prop Silicon -plot Plot_2D -show_mesh
#-> false
get_plot_prop
Returns plot properties.
Note:
The command returns only one property at a time.
Syntax
get_plot_prop
(
-axes_interchanged | -bg_gradient | -caption_font_size |
-caption_leader_on | -caption_material | -color_bg | -color_fg |
-color_map | -color_palette | -e_path_limit | -frame_width |
-gradient_colors | -keep_aspect_ratio | -material_colors |
-path_depth | -ratio_xtoy | -show | -show_axes |
-show_axes_label | -show_axes_title | -show_cube_axes |
-show_curve_lines | -show_curve_markers | -show_grid |
-show_legend | -show_major_ticks |
-show_max_marker | -show_min_marker | -show_minor_ticks |
-show_path | -show_regions_bg | -show_title |
-tdr_state | -tdr_state_index | -title |
-title_font_att | -title_font_color | -title_font_factor |
-title_font_family | -title_font_size | -transformation
)
[-plot <stringValue>]
Argument Description
-axes_interchanged Returns a value indicating whether the axes are interchanged (only for
2D plots).
-caption_font_size Returns the size of the caption font (3D plots only).
-caption_leader_on Returns whether the leaders of the captions are displayed (3D plots
only).
-caption_material Returns whether material names or region names are displayed in the
caption.
-color_bg Shows the background color used when a solid background is active.
Argument Description
-color_map Returns a value indicating whether the color map is the default (full
palette), grayscale, or custom (see -color_palette).
-color_palette Returns a vector with the color components used for a custom color
palette.
-frame_width Returns a value that is a positive integer less than 8, denoting the frame
width in pixels.
-gradient_colors Returns a list of colors used when a gradient background is active (2D
and 3D plots only).
-keep_aspect_ratio Returns a value indicating whether the aspect ratio is maintained (only
for 2D plots).
-material_colors Returns a value indicating whether the color scheme is Classic or Vivid.
-ratio_xtoy Returns the transformation ratio between the x-axis and y-axis (only for
2D plots).
-show_axes_label Returns a value indicating whether axes labels are present (only for xy
plots).
-show_axes_title Returns a value indicating whether the axes titles are displayed (only for
xy plots).
-show_cube_axes Returns a value indicating whether cube axes are displayed (only for 3D
plots).
-show_curve_lines Returns a value indicating whether the curve lines are displayed (only
for xy plots).
-show_curve_markers Returns a value indicating whether the markers are activated (only for xy
plots).
-show_grid Returns a value indicating whether the grid is displayed (only for xy and
2D plots).
Argument Description
-show_major_ticks Returns a value indicating whether the major ticks are displayed (only
for 3D plots).
-show_minor_ticks Returns a value indicating whether the minor ticks are displayed (only
for 3D plots).
-tdr_state Returns the name of the TDR state currently displayed in the plot.
-tdr_state_index Returns the index of the TDR state currently displayed in the plot.
-title_font_att Shows the plot label attribute (normal, bold, italic, underline or strikeout).
-title_font_factor Returns a value indicating the font factor size (only for 2D and 3D plots).
-title_font_family Shows the label font family used (arial, courier or times).
-title_font_size Returns a value indicating the label font size (only for xy plots).
-plot <stringValue> Name of the plot. If not specified, the command uses the selected plot.
Returns
The value of the queried property.
Example
get_plot_prop -title
#-> Test Plot
get_rectangle_prop
Returns rectangle properties.
Note:
This command returns only one property at a time and applies only to xy plots and
2D plots.
Syntax
get_rectangle_prop <stringValue>
(
-fill_color | -line_color | -line_style | -line_width | -p1 | -p2
)
[-plot <stringValue>]
Argument Description
<stringValue> Name of the rectangle object from which the property is returned.
-p1 Returns a list of double values representing the start point of the
rectangle (lower-left corner in 2D plots or upper-left corner in xy plots).
-p2 Returns a list of double values representing the end point of the
rectangle (upper-right corner in 2D plots or lower-right corner in xy
plots).
-plot <stringValue> Name of the plot. If not specified, the command uses the selected plot.
Returns
The value of the queried property.
Example
get_rectangle_prop Rectangle_1 -plot Plot_1 -fill_color
#-> #00FF3B
get_region_prop
Returns region properties.
Note:
The command returns only one property at a time and applies only to 2D and 3D
plots.
Syntax
get_region_prop <stringValue>
(
-border_color | -border_width | -color | -mesh_color | -mesh_width |
-on | -particles_size |
-show_all | -show_border | -show_bulk | -show_caption |
-show_field | -show_mesh | -show_vector |
-translucency_level | -translucency_on
)
[-geom <stringValue>] [-plot <stringValue>]
Argument Description
-particles_size Current particles size. Applies only to particle (kinetic Monte Carlo)
regions.
Argument Description
-show_field Shows the status of the scalar field visibility of the region.
-show_vector Shows the status of the vector field visibility of the region.
-geom <stringValue> Specifies the geometry from where the region property will be
requested. If not specified, the command uses the first geometry of the
given -plot.
-plot <stringValue> Name of the plot from where the region property will be requested. If
not specified, the command uses the selected plot.
Returns
The value of the queried property.
Example
get_region_prop RGate -plot Plot_2D -border_color
#->#0000FF
get_ruler_prop
Returns ruler properties.
Note:
This command returns only one property at a time.
Syntax
get_ruler_prop -color | -pos1 | -pos2 | -precision | -show_label |
-snap_on | -snap_type | -width
[-id <intValue>] [-plot <stringValue>]
Argument Description
-snap_type Status of the snap type for Sentaurus Process Explorer structures.
Values are none, both, corner, and edge.
-id <intValue> The ID of the ruler where the command will search for properties. If not
specified, the command uses the last selected ruler.
-plot <stringValue> Name of the plot where the command will search for properties. If not
specified, the command uses the selected plot.
Returns
The value of the queried property.
Example
get_ruler_prop -width
#-> 4
get_streamline_prop
Returns the specified property of a streamline.
Note:
This command applies to 2D and 3D plots only.
Syntax
get_streamline_prop <stringValue> -plot <stringValue>
(
-arrow_angle | -arrow_color | -arrow_size | -arrow_step |
-arrow_style | -arrow_width | -constant_arrow |
-line_color | -line_resolution | -line_style |
-line_width | -positive_direction | -show_arrows | -show_line
)
Argument Description
<stringValue> Name of the streamline from which the specified property will be
returned.
-plot <stringValue> Name of the plot from where the streamline property will be requested.
If not specified, the command uses the selected plot.
-constant_arrow Returns whether the zoom for the streamline arrowheads is constant in
the plot area.
Argument Description
-positive_direction Shows whether the arrow is displayed in the normal view or inverted
view.
Returns
The value of the queried property.
Example
get_streamline_prop Streamline_1 -plot Plot_2D -arrow_angle
#-> 30
get_textbox_prop
Returns the specified property of a text box.
Note:
This command applies to xy and 2D plots only.
Syntax
get_textbox_prop <stringValue>
(
-anchor_pos | -arrow_size | -font_att | -font_color | -font_factor |
-font_family | -font_size | -line_color | -line_style | -line_width |
-pos | -rotation | -show_anchor | -show_border | -text
)
[-plot <stringValue>]
Argument Description
-anchor_pos Returns anchor position using the world coordinate system (only for 2D
plots).
-line_style Returns the representation style of the text box line (only for 2D plots).
-line_width Returns width of text box and anchor line (only for 2D plots).
Argument Description
-rotation Returns the rotation of the text box in degrees (only for xy plots).
-show_anchor Returns true if the text box anchor is shown (only for 2D plots).
-show_border Returns true if the text box border is shown (only for 2D plots).
-plot <stringValue> Name of the plot where the command will search for the text box. If not
specified, the command uses the selected plot.
Returns
The value of the queried property
Example
get_textbox_prop Textbox_1 -text
#-> Hello World
get_variable_data
Returns a list of variable values.
Note:
This command applies to xy plots only.
Syntax
get_variable_data <stringValue> -dataset <stringValue>
Argument Description
Returns
List
Example
get_variable_data X -dataset plotXY
#-> 1 2 3 4 5
get_vector_prop
Returns the specified property of a vector field.
Note:
This command applies to 2D and 3D plots only.
Syntax
get_vector_prop <stringValue>
(
-constant_heads | -fill_color | -head_angle | -head_shape |
-head_size | -line_color | -line_pattern | -line_width |
-scale | -scale_factor_grid | -scale_factor_uniform | -show
)
[-geom <stringValue>] [-plot <stringValue>]
Argument Description
-constant_heads Shows whether the arrows are constant to the plot area regardless of
the vector magnitude or proportional (normal) to the vector magnitude.
-scale Scale for displaying the arrows, either uniform size or a grid display.
-geom <stringValue> Specifies the geometry where the command will search for the vector.
Argument Description
-plot <stringValue> Name of the plot where the command will search for the geometry. If
not specified, the command uses the selected plot.
Returns
The value of the queried property.
Example
get_vector_prop ElectricField-V -plot Plot_2D -geom 2D -scale
#-> uniform
get_vertical_lines_prop
Returns the properties of vertical lines.
Note:
This command applies to xy plots only.
Syntax
get_vertical_lines_prop <stringValue>
( -line_color | -line_style | -line_width | -show | -values )
[-plot <stringValue>]
Argument Description
-values Returns a list of double values representing the x-values of the vertical
line.
-plot <stringValue> Name of the plot where the command searches for the vertical line. If
not specified, the command uses the selected plot.
Returns
The value of the queried property
Example
get_vertical_lines_prop VerticalLine_1 -values
#-> 0.001 0.0156
help
Displays information about Sentaurus Visual Tcl commands.
Without any arguments, the command returns a complete list of the available Tcl
commands.
Syntax
help [<stringValue>]
Argument Description
Returns
String
Example
help import_settings
#-> import_settings <stringValue>
import_settings
Imports Sentaurus Visual settings from a previously saved configuration file.
Syntax
import_settings <stringValue>
Argument Description
Returns
Integer
Example
import_settings /path/to/settings.conf
#-> 0
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
[-bottom <doubleValue>] [-top <doubleValue>]
[-dataset <stringValue> | -plot <stringValue>]
[-field <stringValue>]
[-geom <stringValue>]
[-materials <stringList> | -regions <stringList>]
[-points <pointList>] [-returndomain]
[-type x | y | z]
[-window {<xmin> <ymin> [<zmin>] <xmax> <ymax> [<zmax>]}]
Argument Description
-bottom <doubleValue> Sets the lower bound of the polyhedron domain in the
extrusion axis.
-top <doubleValue> Sets the upper bound of the polyhedron domain in the
extrusion axis.
-dataset <stringValue> | Name of the plot or dataset. If not specified, uses the
-plot <stringValue> selected plot.
-field <stringValue> Specifies the field to integrate. If not specified, uses the
current active field.
-points <pointList> Sets the vertices for the polyline to be extruded along the
chosen axis to create a polyhedron domain. Points must be
defined as: { {x0 y0 z0} {x1 y1 z1} ...}
-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).
-type x | y | z Selects the extrusion axis for the polyline defined by the
points.
Argument Description
Returns
Double
Example
integrate_field -field Abs(ElectricField) -regions {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]
# ----------------------------------
# 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 <stringList>
[-id <intValue>]
[-special {axes_prop axis_x axis_y axis_y2 blanking curve_prop cuts
deformation field_prop field_sel grid_prop legend_prop matreg move
plot_mode plot_prop streamlines tags}]
[-unlink]
Argument Description
axis_x, axis_y, axis_y2 Links properties of the x-, y-, and y2-axis, respectively (only for
xy plots).
cuts Links cuts such as cutlines and cutplanes (only for 2D and 3D
plots).
field_prop Links the properties of fields such as the range, scale, and
number of levels (only for 2D and 3D plots).
field_sel Links the selection of fields (on and off for contour band and line
fields) (only for 2D and 3D plots).
Argument Description
move Links movements such as zoom, pan, and rotation (only for 3D
plots).
plot_mode Links the plot mode, such as select, zoom window, and probe.
plot_prop Links plot properties, except the text of the plot title.
tags Links TDR tags and custom text tag properties (only for 2D and
3D plots).
Returns
Integer
Example
link_plots {Plot_1 Plot_2} -id 10
#-> 10
list_curves
Returns a list of curve names.
Note:
The command applies to xy plots only.
Syntax
list_curves [<stringValue>] [-plot <stringValue>]
[-selected | -not_selected] [-show | -hide]
Argument Description
-selected | -not_selected Returns a list of curves that are selected or are not selected.
Returns
List
Example
list_curves _1
#-> Curve_1 Curve_12
list_custom_buttons
Returns a list of custom buttons.
Syntax
list_custom_buttons [<stringValue>]
Argument Description
<stringValue> Specifies the search pattern to use. If not specified, the command lists all
custom buttons.
Returns
List of all custom buttons and separators that match the pattern. If no search pattern is
specified, the command returns all custom buttons.
Example
list_custom_buttons Buttons
#-> Buttons1 Custom_Button2 MyButton
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 [<stringValue>] [-plot <stringValue>]
[-type x | y | z | free]
Argument Description
-plot <stringValue> Searches on a specific plot. If not specified, the command searches
on the selected plot.
Returns
List
Example
list_cutlines -type y
#-> C1 C2
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 [<stringValue>] [-plot <stringValue>]
[-type x | y | z | free]
Argument Description
-plot <stringValue> Searches on a specific plot. If not specified, the command searches
on the selected plot.
Returns
List
Example
list_cutplanes -type y
#-> C3
list_datasets
Returns a list of dataset names according to the given pattern. If no pattern is specified, then
all datasets are returned. You can filter the returned datasets by dimension, a given plot, or
the selected plot. The dimension filter can be combined with the given plot or selected plot
filter.
Syntax
list_datasets [<stringValue>] [-dim <intValue>]
[-plot <stringValue | -selected]
Argument Description
-plot <stringValue> | Specifies whether to filter by plot name or by the selected plot.
-selected If you specify one of these arguments, then the list of returned datasets
is restricted to those contained in the named plot, for the -plot
argument, or those contained in the selected plot, for the -selected
argument.
Returns
List
Example
list_datasets -dim 3
#-> 3D_3
list_ellipses
Returns a list of names of ellipses.
Note:
This command applies to xy plots only.
Syntax
list_ellipses [<stringValue>] [-plot <stringValue>]
Argument Description
<stringValue> Specifies the search pattern to use. If no search pattern is specified, the
names of all ellipses are returned.
-plot <stringValue> Name of a plot to search. If not specified, the command uses the
selected plot.
Returns
List of names of ellipses matching the search pattern
Example
list_ellipses -plot Plot_1
#-> Ellipse_1 Ellipse_2
list_fields
Returns a list of field names.
Note:
This command applies to 2D and 3D plots only.
Syntax
list_fields [<stringValue>]
[-dataset <stringValue> | -geom <stringValue> | -plot <stringValue>]
[-show | -hide] [-show_bands | -hide_bands]
Argument Description
Returns
List
Example
list_fields ElectricField -plot Plot_3D
#-> Abs(ElectricField) ElectricField-X ElectricField-Y ElectricField-Z
list_files
Returns a list of opened files according to the given pattern. If no pattern is specified, all files
are returned. You can filter the returned files by only those contained in the selected plot.
Syntax
list_files [<stringValue>] [-fullpath] [-selected]
Argument Description
-fullpath Specifies the full path to where the directory resides that contains the opened
files. If not specified, uses the current work directory.
-selected Specifies to retrieve only the files contained in the selected plot.
Returns
List
Example
list_files
#-> 2D_file.tdr 3D_file.tdr
list_lines
Returns a list of line names.
Note:
This command applies to xy and 2D plots only.
Syntax
list_lines [<stringValue>] [-plot <stringValue>]
Argument Description
<stringValue> Specifies the search pattern to use. If no search pattern is specified, the
names of all lines are returned.
-plot <stringValue> Name of the plot. If not specified, the command uses the selected plot.
Returns
List of names of lines matching the search pattern
Example
list_lines -plot Plot_1
#-> Line_1 Line_2
list_materials
Returns a list of material names.
Note:
The command applies to 2D and 3D plots only.
Syntax
list_materials [<stringValue>]
[-dataset <stringValue> | -geom <stringValue> | -plot <stringValue>]
[-show_all | -hide_all] [-show_border | -hide_border]
[-show_bulk | -hide_bulk] [-show_field | -hide_field]
[-show_mesh | -hide_mesh]
Argument Description
Returns
List
Example
list_materials -plot Plot_3D
#-> Contact DepletionRegion JunctionLine nitride Oxide PolySi Silicon
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
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 [<stringValue>] [-dim <intValue>] [-link <intValue>]
[-selected] [-show | -hide]
Argument Description
-link <intValue> Returns only linked plots with the ID link equal to <intValue>.
-show | -hide Specifies whether only visible plots (-show) or only hidden plots (-hide) will
be listed.
Returns
List
Example
list_plots -dim 3
#-> 3D
list_rectangles
Returns a list of rectangle names.
Note:
This command applies to xy and 2D plots only.
Syntax
list_rectangles [<stringValue>] [-plot <stringValue>]
Argument Description
<stringValue> Specifies the search pattern to use. If no search pattern is specified, the
names of all rectangles are returned.
-plot <stringValue> Name of the plot. If not specified, the command uses the selected plot.
Returns
List of names of rectangles matching the search pattern
Example
list_rectangles -plot Plot_1
#-> Rectangle_1 Rectangle_2 Rectangle_3
list_regions
Returns a list of region names.
Note:
The command applies to 2D and 3D plots only.
Syntax
list_regions [<stringValue>]
[-dataset <stringValue> | -geom <stringValue> | -plot <stringValue>]
[-material <stringValue>] [-parts]
[-show_all | -hide_all] [-show_border | -hide_border]
[-show_bulk | -hide_bulk] [-show_field | -hide_field]
[-show_mesh | -hide_mesh]
Argument Description
-dataset <stringValue> | Returns the regions of the specified plot, dataset, or geometry.
-geom <stringValue> | If not specified, the command returns the regions of the
-plot <stringValue> selected plot.
-show_border | -hide_border Filters by whether materials have their border 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.
Returns
List
Example
list_regions -dataset 3D
#-> bulk gate drain DepletionRegion JunctionLine source
list_streamlines
Returns a list of streamlines created on the plot.
Note:
The command applies to 2D and 3D plots only.
Syntax
list_streamlines [<stringValue>] [-plot <stringValue>]
Argument Description
-plot <stringValue> 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
list_tdr_states
Returns a list of state names for the geometry visualized in a plot.
Syntax
list_tdr_states [<stringValue>] [-plot <stringValue>]
Argument Description
<stringValue> Specifies the search pattern that the state name must match. If not
specified, all state names are returned.
-plot <stringValue> Specifies the name of the plot where the geometry of interest is
visualized. If not specified, the command uses the selected plot.
Returns
List
Example
list_tdr_states state_1* -plot Plot_2D
#-> state_1 state_10 state_100
list_textboxes
Returns a list of text box names.
Note:
This command applies to xy and 2D plots only.
Syntax
list_textboxes [<stringValue>] [-plot <stringValue>]
Argument Description
<stringValue> Specifies the search pattern to use. If no search pattern is specified, the
names of all text boxes are returned.
-plot <stringValue> Name of the plot. If not specified, the command uses the selected plot.
Returns
List of names of text boxes matching the search pattern
Example
list_textboxes -plot Plot_1
#-> TextBox_1 TextBox_2 TextBox_3
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 -dataset <stringValue> [<stringValue>]
Argument Description
Returns
List
Example
list_variables -dataset testDataset
#-> drainCurrent gateToSourceVoltage time
list_vertical_lines
Returns a list of the names of vertical lines.
Note:
This command applies to xy plots only.
Syntax
list_vertical_lines [<stringValue>] [-plot <stringValue>]
Argument Description
<stringValue> Specifies the search pattern to use. If no search pattern is specified, the
names of all vertical lines are returned.
-plot <stringValue> Name of the plot. If not specified, the command uses the selected plot.
Returns
List of names of vertical lines matching the search pattern
Example
list_vertical_lines -plot Plot_1
#-> DE(C1(n_10)) DE(C2(n_10))
load_file
Loads the specified file, and returns a string with the dataset name associated with the file.
Syntax
load_file <stringValue>
[-alldata] [-fod] [-geoms <intList>] [-name <stringValue>] [-parts]
Argument Description
-alldata Loads all data from the file regardless of the user preference settings.
-name <stringValue> Specifies a custom dataset name. See Object Names: -name Argument
on page 217.
-parts This option specifies that, if regions have parts, the parts are displayed
and controlled independently.
Returns
String
Example
load_file /pathTo/Structure.tdr -geoms {0 2}
#-> Structure_geometry_0
load_file_datasets
Loads datasets from the specified file.
Syntax
load_file_datasets <stringValue> [-alldata] [-geoms <intList>] [-parts]
Argument Description
-alldata Loads all data from the file regardless of the user preference settings.
-parts This option specifies that, if regions have parts, the parts are displayed and
controlled independently.
Returns
List
Example
load_file_datasets /pathTo/IdVg.tdr
#-> IdVg
load_library
Loads a Sentaurus Visual library. It can load either all libraries located at the default paths,
or only libraries located at the given path, or only the library given by the specified path and
the library name.
Syntax
load_library
-all |
-path <stringValue> [<stringValue>]
Argument Description
Returns
Integer
Example
load_library -path ~/mySVLibs myLibrary1
#-> 0
load_netlist
Loads a netlist file from Raphael FX.
Syntax
load_netlist <stringValue> [-plot <stringValue>]
Argument Description
-plot Name of the plot or data set from where the field is created. If not
specified, the command uses the active plot.
Returns
Integer
Example
load_netlist_localData/capacitances/netlist.spf
#-> 0
load_script_file
Loads a Tcl script or Inspect script.
Syntax
load_script_file <stringValue> [-inspect]
Argument Description
Returns
Integer
Example
load_script_file testScript.tcl
#-> 0
move_plot
Moves the selected plot.
Syntax
move_plot -position <doubleList>
[-absolute] [-plot <stringValue>]
Argument Description
-position <doubleList> Sets the new position of the plot. Arguments of type Double are
expected.
-plot <stringValue> Name of the plot to be moved. If not specified, the current active plot
is used.
Returns
Integer
Example
move_plot -position {1.5 0.5} -absolute
#-> 0
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 <stringList>
[-datasets <stringList>] [-name <stringValue>]
Argument Description
<stringList> List of plots to be overlaid onto the first plot. If only one plot is given,
the command overlays the plot onto the list of datasets.
-datasets <stringList> Overlays this list of datasets to the list of plots specified.
-name <stringValue> Name of the new plot to be created. If not specified, creates a new
plot with a generic name. See Object Names: -name Argument on
page 217.
Returns
String
Example
overlay_plots {Plot_3D Plot_3D_2} –name Plot_Overlay
#-> Plot_Overlay
probe_curve
Probes a curve using the interpolation that matches the axis (linear if the axis is in normal
mode or log if the axis is in log mode).
Note:
The command applies to xy plots only. For 2D and 3D plots, use the command
probe_field (see probe_field on page 336).
Syntax
probe_curve <stringValue>
-valueX <doubleValue> | -valueY <doubleValue> | -valueY2 <doubleValue>
[-extrapolate | -snap] [-plot <stringValue>]
Argument Description
-extrapolate | -snap Specifies either that the probe can extrapolate values or that the
probe returns the curve closest point.
-plot <stringValue> Name of the plot with the curve to be probed. If not specified, the
command uses the selected plot.
Returns
Double
Example
probe_curve idvg_1_des -valueX 0.85
#-> 0.5433e-6
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
-coord {<x> <y> [<z>]} |
-point <intValue> -region <stringValue>
[-field <stringValue>] [-geom <stringValue> | -plot <stringValue>]
[-position] [-snap]
Argument Description
-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 <stringValue> Specifies the region where the field will be probed. Use with the
-point option.
-field <stringValue> Name of the field to probe in the plot. If not specified, probes the
active field.
-geom <stringValue> | Name of the plot or geometry to be probed. If not specified, the
-plot <stringValue> command probes the selected plot.
Returns
Double
Example
probe_field -field DopingConcentration -coord {0.2 0.3 -0.2}
#-> -2e18
reload_datasets
Reloads all the specified datasets.
Syntax
reload_datasets <stringList> [-alldata]
Argument Description
-alldata Reloads all data from the files regardless of the user preference settings.
Returns
Integer
Example
reload_datasets {3D 3D_2}
#-> 0
reload_files
Reloads the specified files.
Syntax
reload_files <stringList> [-alldata]
Argument Description
-alldata Reloads all data from the files regardless of the user preference settings.
Returns
Integer
Example
reload_files {2D.tdr 3D.tdr}
#-> 0
remove_curves
Removes curves from an xy plot.
Syntax
remove_curves <stringList> [-plot <stringValue>]
Argument Description
-plot <stringValue> 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
remove_custom_buttons
Removes custom buttons.
Syntax
remove_custom_buttons <stringList>
Argument Description
Returns
List of all custom buttons and separators removed
Example
remove_custom_buttons {Buttons1 MyButton}
#-> Buttons1 MyButton
remove_cutlines
Removes the specified cutlines.
Syntax
remove_cutlines <stringList> [-plot <stringValue>]
Argument Description
-plot <stringValue> Name of plot from where the cutlines will be removed. If not specified,
the command uses the active plot.
Returns
List
Example
remove_cutlines {C1 C2}
#-> C1 C2
remove_cutplanes
Removes the specified cutplanes.
Syntax
remove_cutplanes <stringList> [-plot <stringValue>]
Argument Description
-plot <stringValue> Name of plot from where the cutplanes will be removed.
Returns
List
Example
remove_cutplanes {C1 C2}
#-> C1 C2
remove_datasets
Removes the specified datasets.
Syntax
remove_datasets <stringList>
Argument Description
Returns
Integer
Example
remove_datasets {dataSet1 dataSet2 dataSet3}
#-> 0
remove_ellipses
Removes ellipses from a plot.
Note:
This command applies to xy plots only.
Syntax
remove_ellipses <stringList> [-plot <stringValue>]
Argument Description
-plot <stringValue> Name of the plot. If not specified, the command uses the selected plot.
Returns
List of deleted ellipses
Example
remove_ellipses {Ellipse_1 Ellipse_2} -plot Plot_1
#-> Ellipse_1 Ellipse_2
remove_fields
Removes fields from a dataset.
The command uses the selected 2D or 3D dataset if -dataset or -plot is not specified.
Note:
This command applies to 2D and 3D plots only.
Syntax
remove_fields <stringList>
[-dataset <stringValue> | -plot <stringValue>]
[-geom <stringValue>]
Argument Description
-dataset <stringValue> Name of the dataset from where the fields will be removed. If not
specified, then the command uses the active plot.
-geom <stringValue> Name of the geometry in the plot from where the fields will be
removed. The argument -geom can be used only with -plot. If not
specified, then the command uses the first geometry associated with
the plot.
-plot <stringValue> Name of the plot from where the fields will be removed. If not
specified, then the command uses the selected plot.
Returns
Integer
Example
remove_fields { DopingConcentration X } -plot Plot_n10_des
#-> 0
remove_lines
Removes lines from a plot.
Note:
This command applies to xy and 2D plots only.
Syntax
remove_lines <stringList> [-plot <stringValue>]
Argument Description
-plot <stringValue> Name of the plot. If not specified, the command uses the selected plot.
Returns
List of deleted lines
Example
remove_lines Line_1 -plot Plot_n60_des
#-> Line_1
remove_plots
Removes the specified plots.
Syntax
remove_plots <stringList>
Argument Description
Returns
Integer
Example
remove_plots {plotXY plot2D plot3D}
#-> 0
remove_rectangles
Removes rectangles from a plot.
Note:
This command applies to xy and 2D plots only.
Syntax
remove_rectangles <stringList> [-plot <stringValue>]
Argument Description
-plot <stringValue> Name of the plot. If not specified, the command uses the selected plot.
Returns
List of deleted rectangles
Example
remove_rectangles {Rectangle_1 Rectangle_2} -plot Plot_n60_des
#-> Rectangle_1 Rectangle_2
remove_rulers
Removes the specified rulers from a plot.
Syntax
remove_rulers <intList> [-plot <stringValue>]
Argument Description
-plot <stringValue> Name of the plot from where the rulers will be removed. If not specified,
the command uses the selected plot.
Returns
Integer
Example
remove_rulers {1 2 3}
#-> 0
remove_streamlines
Removes the specified streamlines.
Syntax
remove_streamlines <stringList> [-plot <stringValue>]
Argument Description
-plot <stringValue> 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
remove_textboxes
Removes text boxes from a plot.
Note:
This command applies to xy and 2D plots only.
Syntax
remove_textboxes <stringList> [-plot <stringValue>]
Argument Description
-plot <stringValue> Name of the plot. If not specified, the command uses the selected plot.
Returns
List of deleted text boxes
Example
remove_textboxes {TextBox_1 TextBox_2 TextBox_3} -plot Plot_1
#-> TextBox_1 TextBox_2 TextBox_3
render_mode
Updates the rendering status when plots are loaded. If rendering is switched off, you must
switch it on when plots are finished loading; otherwise, no plots are displayed.
Note:
This command applies to 2D and 3D plots only.
Syntax
render_mode [-on | -off]
Argument Description
-on | -off Switches on or off rendering when plots are loaded. If no option is specified, the
command displays the current status of rendering
Returns
Current status of rendering mode.
Example
render_mode -on
#-> on
reset_settings
Reset Sentaurus Visual settings to their default values.
Syntax
reset_settings
Returns
None
Example
reset_settings
rotate_plot
Rotates a 3D plot by specifying either axes, or angles, or a direction, or a plane. Different
axes can be rotated simultaneously. The axis and angles used are explained in Figure 71 on
page 122.
Note:
This command applies to 3D plots only and is supported in batch mode in
Sentaurus Visual.
Syntax
rotate_plot
-alpha <doubleValue> -psi <doubleValue> -theta <doubleValue> |
-angle <doubleValue> -direction (up | down | left | right) |
-plane (xy | yz | xz) |
-x <doubleValue> -y <doubleValue> -z <doubleValue> |
[-absolute] [-plot <stringValue>]
Argument Description
-alpha <doubleValue> Rotates the plot using alpha spherical coordinate (in degrees).
-psi <doubleValue> Rotates the plot using psi spherical coordinate (in degrees).
-theta <doubleValue>
Rotates the plot using theta spherical coordinate (in degrees).
-angle <doubleValue> Rotates the plot in the specified direction by the angle specified by
-direction up | -angle.
down | left | right Rotates the plot by the specified angle (in degrees) in the direction
defined by -direction.
-plot <stringValue> Name of the plot. If not specified, the command uses the selected plot.
Returns
Integer
Example
rotate_plot -x 10.5 -y 20
#-> 0
rotate_plot -plane xz
#-> 0
rotate_plot -direction up -angle 90
#-> 0
save_plot_to_script
Exports the plot properties and curve data of the current plot to a Tcl file.
Note:
This command applies to xy plots only.
Syntax
save_plot_to_script <stringValue>
[-overwrite] [-plot <stringValue>]
Argument Description
<stringValue> Specifies the path (either absolute or relative) where the resulting Tcl
file will be located.
-overwrite Specifies whether the target Tcl file should be overwritten if it already
exists.
-plot <stringValue> Name of the plot to be exported. If not specified, the command uses the
selected plot.
Returns
Integer
Example
save_plot_to_script testFile.tcl -plot Plot_1 -overwrite
#-> 0
select_plots
Selects the plots.
Syntax
select_plots <stringList>
Argument Description
Returns
List
Example
select_plots {plot2D anotherPlot2D}
#-> plot2D anotherPlot2D
set_angle_prop
Sets angle properties.
Note:
The command applies to 2D plots only.
Syntax
set_angle_prop
[-center <doubleList>] [-color <#rrggbb>]
[-orthogonal_on | orthogonal_off]
[-plot <stringValue>]
[-pos1 <doubleList>] [-pos2 <doubleList>]
[-precision <intValue>] [-show_label | -hide_label]
[-snap_on | -snap_off] [-width <intValue>]
Argument Description
-center <doubleList> Sets the position of the center or vertex of the angle.
-plot <stringValue> Name of the plot. If not specified, the command applies the
attributes to the selected plot.
-pos1 <doubleList> Sets the position of the first point of the angle.
-pos2 <doubleList> Sets the position of the second point of the angle.
Returns
String
Example
set_angle_prop -color #FF0000
#-> 0
set_axis_prop
Sets axis properties.
If -axis is not specified, the properties are set for all axes.
Note:
The command applies to xy and 2D plots only.
Syntax
set_axis_prop
[-anchor <doubleValue>]
[-auto_padding | -manual_padding]
[-auto_precision | -manual_precision]
[-auto_spacing | -manual_spacing]
[-axis x | y | z | y2]
[-inverted | -not_inverted]
[-label_angle <doubleValue>]
[-label_font_att normal | bold | italic | underline | strikeout]
[-label_font_color <#rrggbb>]
[-label_font_factor <doubleValue>]
[-label_font_family arial | courier | times]
[-label_font_size <intValue>]
[-label_format preferred | scientific | engineering | fixed]
[-label_padding <intValue>] [-label_precision <intValue>]
[-major_ticks_length <intValue>]
[-major_ticks_width <intValue>]
[-max <doubleValue>] [-max_auto | -max_fixed]
[-min <doubleValue>] [-min_auto | -min_fixed]
[-minor_ticks_length <intValue>]
[-minor_ticks_position center | in | out]
[-minor_ticks_width <intValue>]
[-nof_minor_ticks <intValue>]
[-padding <intValue>]
[-plot <stringValue>]
[-range {<x1> <x2>}] [-reset]
[-show | -hide] [-show_minor_ticks | -hide_minor_ticks]
[-show_label | -hide_label] [-show_ticks | -hide_ticks]
[-show_title | -hide_title] [-spacing <doubleValue>]
[-ticks_position out | in | center] [-title <stringValue>]
[-title_font_att normal | bold | italic | underline | strikeout]
[-title_font_color <#rrggbb>]
[-title_font_factor <doubleValue>]
Argument Description
-axis x | y | z | y2 Axis to apply the settings. If not specified, the command applies
the attributes to all axes.
-label_angle <doubleValue> Sets the rotation angle applied to the labels of major ticks
(applies to xy plots only). Only values between –90 and 90, and
including –90 and 90, are valid.
-label_font_factor Sets the size factor of the axis (applies to 2D and 3D plots only).
<doubleValue>
-label_font_size <intValue> Sets the font size of the axis (applies to xy plots only).
Argument Description
-max_auto | -max_fixed Sets the maximum of the axis automatically, or fixes the
maximum of the axis to a user-defined value (applies to xy plots
only).
If -max_fixed is specified, any change to the data will not
update the range.
-min_auto | -min_fixed Sets the minimum of the axis automatically, or fixes the
minimum of the axis to a user-defined value (applies to xy plots
only).
If -min_fixed is specified, any change to the data will not
update the range.
-padding <intValue> Sets the padding of the axis in pixels (applies to xy plots only).
If -auto_padding is specified, -padding has no effect.
-plot <stringValue> Name of the plot. If not specified, the command applies the
attributes to the selected plot.
Argument Description
-title_font_factor Sets the font size factor (2D and 3D plots only).
<doubleValue>
-title_font_size <intValue> Sets the font size of the axis label font size (xy plots only).
-type linear | log Sets the axis scale (applies to xy plots only).
Returns
String
Example
set_axis_prop -axis y1 -title "Drain Current"
#-> 0
set_band_diagram
Creates a band diagram. For details, see Plotting Band Diagrams on page 91.
Syntax
set_band_diagram [<stringList>]
Argument Description
Returns
Integer
Example
set_band_diagram Plot_1
#-> 0
set_best_look
Automatically configures various plot parameters. For details, see Best Look Option on
page 89.
Syntax
set_best_look [<stringList>]
Argument Description
Returns
Integer
Example
set_best_look {Plot_1 Plot_2}
#-> 0
set_camera_prop
Sets camera properties.
Note:
The command applies to 3D plots only.
Syntax
set_camera_prop
[-dolly_zoom_on | -dolly_zoom_off]
[-focal_point {<x> <y> <z>}]
[-parallel | -perspective]
[-plot <stringValue>]
[-position {<x> <y> <z>}] [-reset]
[-rot_color <#rrggbb>] [-rot_size <intValue>]
[-rot_width <intValue>]
[-rotation_point {<x> <y> <z>}]
[-setup <listdoubleList>]
[-show_rotation_point | -hide_rotation_point]
[-view_angle <doubleValue>] [-view_up <doubleList>]
Argument Description
-dolly_zoom_on | Sets to use dolly zoom instead of modifying the view angle
-dolly_zoom_off when zooming.
-focal_point {<x> <y> <z>} Sets the focal point of the camera.
-parallel | -perspective Sets the projection mode in which to display the plot; either
parallel or perspective projection.
-plot <plotName> Name of the plot. If not specified, the command uses the
selected plot.
-rotation_point {<x> <y> <z>} Sets the rotation point of the structure.
Argument Description
Returns
Integer
Example
set_camera_prop -rotation_point {0.2 0.35 -0.25}
#-> 0
set_capacitance
Changes the state of the capacitance.
Syntax
set_capacitance<stringValue> -plot<stringValue> [-on | -off]
Argument Description
-plot Name of the plot or data set from where the field is created.
If not specified, the command uses the active plot.
Returns
Integer
Example
set_capacitance Cap1 -on
#-> 0
set_contour_labels_prop
Sets properties of contour labels.
Syntax
set_contour_labels_prop <stringList>
[-anchor left | center | right]
[-color_bg <#rrggbb>]
[-font_att normal | bold | italic | underline | strikeout]
[-font_color <#rrggbb>]
[-font_factor <doubleValue>]
[-font_family arial | courier | times]
[-format engineering | fixed | preferred | scientific]
[-geom <stringValue>]
[-level_skip <intValue>]
[-plot <stringValue>]
[-precision <intValue>]
[-reset]
[-show_bg | -hide_bg]
[-show_index | -hide_index]
[-spacing <intValue>]
Argument Description
-font_att normal | bold | Sets the font attribute of the contour labels.
italic | underline | strikeout
-font_family arial | courier | Sets the font type of the contour labels.
times
-geom <stringValue> Name of the dataset (or geometry). If not specified, then the
command uses the main one from the active plot.
-level_skip <intValue> Sets the level skip of the contour labels. The value 0 means
every level is labeled.
Argument Description
-plot <stringValue> Name of the plot. If not specified, then the command uses
the selected plot.
Returns
Integer
Example
set_contour_labels_prop {BandGap DopingConcentration} -precision 3
#-> 0
set_curve_prop
Sets curve properties.
Note:
The command applies to xy plots only.
Syntax
set_curve_prop <stringList>
[-axis left | right] [-color <#rrggbb>] [-deriv <intValue> | -integ]
[-function <stringValue>] [-label <stringValue>]
[-line_style solid | dot | dash | dashdot | dashdotdot]
[-line_width <intValue>]
[-markers_size <intValue>]
[-markers_type circle | circlef | square | squaref | diamond |
diamondf | cross | plus]
[-plot <stringValue>]
[-reset]
[-show | -hide] [-show_legend | -hide_legend]
[-show_line | -hide_line]
[-show_markers | -hide_markers]
[-xScale <doubleValue>] [-xShift <doubleValue>]
Argument Description
-color <#rrggbb> Sets color of the curve. Does not apply to discrete traps.
-line_style solid | dot | Sets style of the curve line. Does not apply to discrete traps.
dash | dashdot | dashdotdot
-line_width <intValue> Sets line width of the curve line. Does not apply to discrete
traps.
-plot <stringValue> Name of the plot. If not specified, the command uses the
selected plot.
-show_legend | -hide_legend Shows or hides the curve title from the legend.
-show_line | -hide_line Shows or hides the curve line. Does not apply to discrete
traps.
-show_markers | -hide_markers Shows or hides the curve markers. Does not apply to discrete
traps.
Argument Description
Returns
None
Example
set_curve_prop Curve_1 -label "NetActive Field (Cut from structure_1 at
x=0)"
set_cutline_prop
Changes cutline properties.
Note:
This command applies to 2D and 3D plots only.
Syntax
set_cutline_prop <stringValue> -plot <stringValue>
[-handles_color <#rrggbb>]
[-label_normal | -label_op] [-label_pos 0 | 1]
[-label_size <doubleValue>] [-line_color <#rrggbb>]
[-line_style solid | dot | dash | dashdot | dashdotdot]
[-line_width <intValue>]
[-pos1 {<x> <y> [<z>]}] [-pos2 {<x> <y> [<z>]}]
[-show_handles | -hide_handles] [-show_label | -hide_label]
Argument Description
<stringValue> Name of the cutline from which the property will be returned.
-label_normal | -label_op Sets the side of the label with respect to the endpoint of the
label where the label will be displayed.
-pos1 {<x> <y> [<z>]} Sets the position of the first point of the cutline.
-pos2 {<x> <y> [<z>]} Sets the position of the second point of the cutline.
Returns
Integer
Example
set_cutline_prop C1 -plot Plot_2D -pos1 {0.1 2.7891 0}
#-> 0
set_cutplane_prop
Changes cutplane properties.
Note:
This command applies to 3D plots only.
Syntax
set_cutplane_prop <stringValue> -plot <stringValue>
[-at <doubleValue> | -normal {<X> <Y> <Z>} -origin {<X> <Y> <Z>}]
[-label_position <intValue>]
[-label_size <doubleValue>]
[-show_label | -hide_label]
Argument Description
-label_position <intValue> Sets the label position. The value can be 0, 1, or 2, indicating
different corners of the cutplane.
Returns
Integer
Example
set_cutplane_prop C1 -plot Plot_3D -at 0.483
#-> 0
set_deformation
Sets the deformation properties for a structure, or creates a plot with an already deformed
structure.
Note:
The command applies to 2D and 3D plots only.
Syntax
set_deformation <stringValue>
[-factor <doubleValue> | -reset] [-new_plot]
[-plot <stringValue>]
Argument Description
-factor <doubleValue> | Factor to be applied to the deformation. The value must be greater
-reset than zero. If not specified, the default value is 1.
Alternatively, reset the current deformation.
-plot <stringValue> Name of the plot to be used to deform the structure. If not specified,
the command uses the selected plot.
Returns
String (name of affected plot)
Example
set_deformation -plot Plot_n60_des Displacement-V -factor 1e2
#-> Plot_n60_des
set_ellipse_prop
Sets the properties of an ellipse.
Syntax
set_ellipse_prop <stringValue>
[-fill_color <#rrggbb>] [-line_color <#rrggbb>]
[-line_style solid | dot | dash | dashdot | dashdotdot]
[-line_width <intValue>] [-p1 <doubleList>] [-p2 <doubleList>]
[-plot <stringValue>]
Argument Description
-fill_color <#rrggbb> Specifies the fill color for the ellipse. Default: transparent.
-p1 <doubleList> Specifies the upper-left corner of the invisible rectangle in which
the ellipse is drawn.
-plot <stringValue> Name of the plot where the command will search for the ellipse.
If not specified, the command uses the selected plot.
Returns
String
Example
set_ellipse_prop Ellipse_1 -fill_color red -line_style dash
#-> 0
set_field_prop
Sets field properties for the specified field name (<stringValue>). If the field name is not
specified, the properties are set for the selected field.
Note:
The command applies to 2D and 3D plots only.
Syntax
set_field_prop <stringValue>
[-contour_labels_on | -contour_labels_off]
[-custom_levels <doubleList> |
-scale (linear | log | asinh | logabs) -levels <intValue>]
[-geom <stringValue>] [-interpolated_values | -primary_values]
[-label <stringValue>] [-line_color <stringValue>]
[-line_width <intValue>]
[-max <doubleValue>] [-max_auto | -max_fixed]
[-min <doubleValue>] [-min_auto | -min_fixed]
[-plot <stringValue>] [-range {<min> <max>} | -reset]
[-show | -hide] [-show_bands | -hide_bands]
Argument Description
-geom <stringValue> Name of the dataset (or geometry). If not specified, the
command uses the main one from the active plot.
Argument Description
-max_auto | -max_fixed Sets the maximum value of the field automatically, or fixes the
maximum value of the field.
If -max_fixed is specified and, for example, plots are linked,
the change to the field values does not update the range.
-min_auto | -min_fixed Sets the minimum value of the field automatically, or fixes the
minimum value of the field.
If -min_fixed is specified and, for example, plots are linked,
the change to the field values does not update the range.
-plot <stringValue> 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 the specified <intValue> levels. The default
logabs is linear.
-levels <intValue>
Do not use with the -custom_levels argument.
Returns
Integer
Example
set_field_prop -range {-1e20 1e20}
#-> 0
set_grid_prop
Sets grid properties.
Note:
The command applies to xy and 2D plots only.
Syntax
set_grid_prop
[-align left | right]
[-line1_color <#rrggbb>]
[-line1_style solid | dot | dash | dashdot | dashdotdot]
[-line1_width <intValue>]
[-line2_color <#rrggbb>]
[-line2_style solid | dot | dash | dashdot | dashdotdot]
[-line2_width <intValue>]
[-plot <stringValue>]
[-reset] [-show | -hide] [-show_minor_lines | -hide_minor_lines]
Argument Description
-align left | right Aligns of the grid to the left or right (applies to xy plots only).
-line1_style solid | dot | Sets style of the major grid lines (applies to xy plots only).
dash | dashdot | dashdotdot
-line2_style solid | dot | Sets style of the minor grid lines (applies to xy plots only).
dash | dashdot | dashdotdot
-plot <stringValue> Name of the plot. If not specified, the command uses the
selected plot.
Returns
None
Example
set_grid_prop -show_minor_lines
set_legend_prop
Sets legend properties.
These properties apply to xy plots only: -color_bg, -color_fg, -label_font_size,
-location, and -margins.
Syntax
set_legend_prop
[-color_bg <#rrggbb>]
[-color_fg <#rrggbb>]
[-label_font_att normal | bold | italic | underline | strikeout]
[-label_font_color <#rrggbb>]
[-label_font_factor <doubleValue>]
[-label_font_family arial | courier | times]
[-label_font_size <intValue>]
[-label_format preferred | scientific | engineering | fixed]
[-location top_left | top_right | bottom_left | bottom_right]
[-margins <intList>] [-nof_labels <intValue>]
[-orientation vertical | horizontal]
[-plot <stringValue>]
[-position {<x> <y>}]
[-precision <intValue>] [-reset]
[-show_background | -hide_background] [-size {<x> <y>}]
[-title_font_att normal | bold | italic | underline | strikeout]
[-title_font_color <#rrggbb>]
[-title_font_factor <doubleValue>]
[-title_font_family arial | courier | times]
Argument Description
Argument Description
-label_font_factor Sets the font size of labels by specifying a factor for resizing the
<doubleValue> font (2D and 3D plots only).
-label_font_size <intValue> Sets the font size for the labels by specifying an integer (xy
plots only).
-plot <stringValue> Name of the plot. If not specified, the command uses the
selected plot.
-position {<x> <y>} Sets the legend position that is normalized to the window
coordinates between 0 and 1.
-size {<x> <y>} Sets the legend size normalized to window coordinates.
-title_font_att normal | Sets the attribute for the legend title font.
bold | italic | underline |
strikeout
Argument Description
-title_font_factor Sets legend title font size using a factor to resize the font.
<doubleValue>
Returns
None
Example
set_legend_prop -nof_labels 4 -orientation horizontal
set_light_prop
Sets light configuration properties.
Note:
The command applies only to 3D plots.
Syntax
set_light_prop
[-back_azimuth <doubleValue>] [-back_elevation <doubleValue>]
[-back_ratio <doubleValue>] [-back_warmth <doubleValue>]
[-fill_azimuth <doubleValue>] [-fill_elevation <doubleValue>]
[-fill_ratio <doubleValue>] [-fill_warmth <doubleValue>]
[-head_ratio <doubleValue>] [-head_warmth <doubleValue>]
[-key_azimuth <doubleValue>] [-key_elevation <doubleValue>]
[-key_intensity <doubleValue>] [-key_warmth <doubleValue>]
[-plot <stringValue>] [-reset]
Argument Description
Argument Description
-plot <stringValue> Name of the plot in which to set the required properties. If
not specified, then the command uses the selected plot.
Returns
Integer
Example
set_light_prop -key_elevation 78.5
#-> 0
set_line_prop
Sets the properties of a line.
Syntax
set_line_prop <stringValue>
[-line_color <#rrggbb>]
[-line_style solid | dot | dash | dashdot | dashdotdot]
[-line_width <intValue>] [-p1 <doubleList>] [-p2 <doubleList>]
[-plot <stringValue>]
Argument Description
-line_style solid | dot | Specifies the line style (xy plots only).
dash | dashdot | dashdotdot
-plot <stringValue> Name of the plot where the command will search for the line. If
not specified, the command uses the selected plot.
Returns
String
Example
set_line_prop Line_1 -line_style dot -line_width 2
#-> 0
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 <stringList>
[-border_color <#rrggbb>] [-border_width <intValue>]
[-color <#rrggbb>]
[-geom <stringValue>]
[-mesh_color <#rrggbb>] [-mesh_width <intValue>]
[-on | -off]
[-particles_size <doubleValue>]
[-plot <stringValue>]
[-show_all | -hide_all] [-show_border | -hide_border]
[-show_bulk | -hide_bulk] [-show_field | -hide_field]
[-show_mesh | -hide_mesh] [-show_vector | -hide_vector]
[-translucency_level <doubleValue>]
[-translucency_on | -translucency_off]
Argument Description
-border_color <#rrggbb> Specifies the border color of the materials. Color in format RGB
is expected (see Colors on page 218).
-border_width <intValue> Specifies the border width (in pixels) of the selected materials.
The default width is 1 pixel with the following exceptions:
• For depletion regions and overlays, the default width is
2 pixels.
• For junction lines, the default width is 3 pixels.
• For contacts and interfaces, the default width is 2 pixels for
2D geometries and 3 pixels for 3D geometries.
-color <#rrggbb> Specifies the bulk color of the materials. Color in format RGB is
expected (see Colors on page 218).
-geom <stringValue> Name of the dataset (or geometry). If not specified, uses the
main one from the active plot.
-mesh_color <#rrggbb> Specifies the mesh color of the materials. Color in format RGB
is expected (see Colors on page 218).
Argument Description
-mesh_width <intValue> Specifies the mesh width (in pixels) of the selected materials.
The default width is 1 pixel with the following exception: for
interface regions, the default width is 2 pixels.
-plot <stringValue> Name of the plot. If not specified, the command uses the
selected plot.
Returns
Integer
Example
set_material_prop {Oxide Silicon} -show_field
#-> 0
set_plot_prop
Sets plot properties.
Syntax
set_plot_prop
[-axes_interchanged | -not_axes_interchanged]
[-bg_gradient | -bg_solid]
[-caption_font_size <intValue>]
[-caption_leader_on | -caption_leader_off]
[-caption_material | -caption_region]
[-color_bg <#rrggbb>] [-color_fg <#rrggbb>]
[-color_map default | grayscale | custom]
[-color_palette <doubleList>]
[-contacts_color constant | list | map]
[-e_path_limit | -disable_path_limit]
[-frame_width <intValue>] [-gradient_colors <stringValue>]
[-keep_aspect_ratio | -not_keep_aspect_ratio]
[-material_colors classic | vivid]
[-path_depth <intValue>]
[-plot <stringList>]
[-ratio_xtoy <doubleValue>] [-reset]
[-show | -hide] [-show_axes | -hide_axes]
[-show_axes_label | -hide_axes_label]
[-show_axes_title | -hide_axes_title]
[-show_cube_axes | -hide_cube_axes]
[-show_curve_lines | -hide_curve_lines]
[-show_curve_markers | -hide_curve_markers]
[-show_grid | -hide_grid] [-show_legend | -hide_legend]
[-show_major_ticks | -hide_major_ticks]
[-show_max_marker | -hide_max_marker]
[-show_min_marker | -hide_min_marker]
[-show_minor_ticks | -hide_minor ticks] [-show_path | -hide_path]
[-show_regions_bg | -hide_regions_bg] [-show_title | -hide_title]
[-tdr_state <stringValue> | -tdr_state_index <intValue>]
[-title <stringValue>]
[-title_font_att normal | bold | italic | underline | strikeout]
[-title_font_color <#rrggbb>]
[-title_font_factor <doubleValue>]
[-title_font_family arial | courier | times]
[-title_font_size <intValue>]
[-transformation {<x> <y> <z>}]
Argument Description
-bg_gradient | -bg_solid Sets the plot background to display either a gradient or a solid
color (2D and 3D plots only).
-caption_font_size Sets the size of the caption font (3D plots only).
<intValue>
-caption_leader_on | Sets the visibility of the caption leaders (3D plots only).
-caption_leader_off
-color_bg <#rrggbb> Sets the background color used when a solid background is
active.
-color_map default | Sets the color map used in the plot (2D and 3D plots only).
grayscale | custom Values are:
• When set to default, uses normal color map (full palette).
• When set to grayscale, uses only grayscale colors.
• When set to custom, uses a custom palette set with the
-color_palette argument.
-color_palette <doubleList> Sets the values of a custom color palette. The list provided
must have three values between 0.0 and 1.0 for each required
RGB color, for example, {0.0 0.0 0.0 1.0 0.0 0.0} for a
black-to-red palette.
-contacts_color constant | Sets the behavior of the contact colors. The list and map
list | map options must be configured in the user preferences first.
-frame_width <intValue> Sets the plot frame width, which must be a positive integer
value less than 8 (xy plots only).
Argument Description
-material_colors classic | Sets the color scheme to be used for materials (2D and 3D
vivid plots only).
-plot <stringList> Specifies a list of plot names. If not specified, the command
uses the selected plot.
-ratio_xtoy <doubleValue> Sets the x to y ratio of the plot (2D plots only).
-show_grid | -hide_grid Shows or hides the grid (xy and 2D plots only).
-show_max_marker | Shows or hides the maximum marker (2D and 3D plots only).
-hide_max_marker
Argument Description
-show_min_marker | Shows or hides the minimum marker (2D and 3D plots only).
-hide_min_marker
-tdr_state <stringValue> | Sets the current TDR state from the state name or the state
-tdr_state_index <intValue> index (2D and 3D plots only). To display the last state,
specify:-tdr_state_index -1
-title_font_factor Multiplies the font size by a factor (2D and 3D plots only).
<doubleValue>
-title_font_size <intValue> Sets the font size of the title (xy plots only).
-transformation {<x> <y> <z>} Sets a linear coordinate transformation (3D plots only).
Returns
None
Example
set_plot_prop -title "Example 3D Structure"
set_plot_prop -plot "Plot_n98_des Plot_n99_des" -color_bg #aa4534
set_rectangle_prop
Sets the properties of a rectangle.
Syntax
set_rectangle_prop <stringValue>
[-fill_color <#rrggbb>] [-line_color <#rrggbb>]
[-line_style solid | dot | dash | dashdot | dashdotdot]
[-line_width <intValue>] [-p1 <doubleList>] [-p2 <doubleList>]
[-plot <stringValue>]
Argument Description
-fill_color <#rrggbb> Specifies the fill color of the rectangle. Transparency is the
default (only for xy plots).
-line_style solid | dot | Specifies the line style of the rectangle (only for xy plots).
dash | dashdot | dashdotdot
-plot <stringValue> Name of the plot where the command will search for the
rectangle. If not specified, the command uses the selected plot.
Returns
String
Example
set_rectangle_prop Rectangle_1 -line_width 5
#-> 0
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 <stringList>
[-border_color <#rrggbb>] [-border_width <intValue>]
[-color <#rrggbb>]
[-geom <stringValue>]
[-mesh_color <#rrggbb>] [-mesh_width <intValue>]
[-on | -off]
[-particles_size <doubleValue>]
[-plot <stringValue>]
[-show_all | -hide_all] [-show_border | -hide_border]
[-show_bulk | -hide_bulk] [-show_caption | -hide_caption]
[-show_field | -hide_field]
[-show_mesh | -hide_mesh] [-show_vector | -hide_vector]
[-translucency_level <doubleValue>]
[-translucency_on | -translucency_off]
Argument Description
<stringList> List of regions of the plot where the properties will be applied.
-plot <stringValue> Name of the plot. If not specified, the command uses the
selected plot.
-geom <stringValue> Name of the dataset (or geometry). If not specified, the
command uses the main one from the active plot.
-border_color <#rrggbb> Specifies the border color of the region. Color in format RGB is
expected (see Colors on page 218).
-border_width <intValue> Specifies the border width (in pixels) of the selected regions.
The default width is 1 pixel with the following exceptions:
• For depletion regions and overlays, the default width is
2 pixels.
• For junction lines, the default width is 3 pixels.
• For contacts and interfaces, the default width is 2 pixels for
2D geometries and 3 pixels for 3D geometries.
Argument Description
-color <#rrggbb> Specifies the bulk color of the region. Color in format RGB is
expected (see Colors on page 218).
-mesh_color <#rrggbb> Specifies the mesh color of the regions. Color in format RGB is
expected (see Colors).
-mesh_width <intValue> Specifies the mesh width (in pixels) of the selected regions.
The default width is 1 pixel with the following exception: for
interface regions, the default width is 2 pixels.
Returns
Integer
Example
set_region_prop {source gate drain} -show_mesh
#-> 0
set_ruler_prop
Sets ruler properties.
Note:
This command applies to 2D and 3D plots only.
Syntax
set_ruler_prop
[-color <#rrggbb>] [-id <intValue>]
[-plot <stringValue>]
[-pos1 <stringValue>] [-pos2 <stringValue>]
[-precision <intValue>]
[-show_label | -hide_label]
[-snap_on | -snap_off] [-snap_type none | both | corner | edge]
[-width <intValue>]
Argument Description
-id <intValue> Specifies the ID of the ruler where the command will search for
properties. If not specified, the command uses the last selected
ruler.
-plot <stringValue> Name of the plot where the command will apply the properties. If
not specified, the command uses the selected plot.
-pos1 <stringValue> Sets the position of the first point of the ruler.
-pos2 <stringValue> Sets the position of the second point of the ruler.
-snap_type none | both | Specifies the type of snapping to apply to Sentaurus Process
corner | edge Explorer structures.
The options none and both are aliases for -snap_off and
-snap_on, respectively.
The corner and edge options control whether to attach to region
corners or region edges.
Returns
String
Example
set_ruler_prop -width 5 -precision 2
#-> 0
set_streamline_prop
Sets the properties of streamlines.
Note:
This command applies to 2D and 3D plots only.
Syntax
set_streamline_prop <stringList> -plot <stringValue>
[-arrow_angle <intValue>] [-arrow_color <#rrggbb>]
[-arrow_size <doubleValue>] [-arrow_step <doubleValue>]
[-arrow_style solid | dash | dot | dashdot | dashdotdot]
[-arrow_width <intValue>] [-constant_arrow | -normal_arrow]
[-line_color <#rrggbb>] [-line_resolution <doubleValue>]
[-line_style solid | dash | dot | dashdot | dashdotdot]
[-line_width <intValue>]
[-positive_direction | -negative_direction]
[-show_arrows | -hide_arrows] [-show_line | -hide_line]
Argument Description
-plot <stringValue> Name of the plot where the command will search for
streamlines. If not specified, the command uses the selected
plot.
-arrow_step <doubleValue> Specifies the step between arrows. This value must be greater
than the line resolution.
Argument Description
-line_resolution Specifies the distance between the points that conform the line.
<doubleValue> Lower values imply better line quality but lower performance.
-positive_direction | Specifies whether the arrow will be shown in the normal view or
-negative_direction inverted view. Default: -positive_direction.
Returns
Integer
Example
set_streamline_prop Streamline_1 -plot Plot_2D -arrow_angle 45
#-> 0
set_tag_prop
Sets visibility for TDR tags or text for a custom text box in the plot.
Note:
The command applies only to 2D and 3D plots.
Syntax
set_tag_prop [-key <stringList> | -custom_text <stringValue>]
[-plot <stringValue>]
[-show | -hide]
Argument Description
-key <stringList> Specifies a TDR tag to show or hide. The tag is specified as
group1 group2 ... grouN tag_name, defining the group
hierarchy and tag name. The tag is displayed in the plot as
tag_name: tag_value, sorted by the order in which they are
defined in the TDR file.
-custom_text <stringValue> Specifies the text for the custom label. The text is not shown
unless -show is specified.
-plot <stringValue> Names of the plot where the tag will be displayed. If not
specified, the command uses the selected plot.
Returns
None
Example
set_tag_prop -key Name -show
#->
set_textbox_prop
Sets the specified properties of a text box.
Note:
This command applies to xy and 2D plots only.
Syntax
set_textbox_prop <stringValue>
[-anchor_pos {<x> <y>}] [-arrow_size <intValue>]
[-font_att normal | bold | italic | underline | strikeout]
[-font_color <#rrggbb>] [-font_factor <doubleValue>]
[-font_family arial | courier | times] [-font_size <intValue>]
[-line_color <#rrggbb>]
[-line_style solid | dot | dash | dashdot | dashdotdot]
[-line_width <intValue>]
[-plot <stringValue>]
[-pos {<x> <y>}] [-rotation <intValue>]
[-show_anchor | -hide_anchor] [-show_border | -hide_border]
[-text <stringValue>]
Argument Description
-anchor_pos {<x> <y>} Specifies the anchor position using the world coordinate
system (only for 2D plots).
-font_att normal | bold | Specifies the font attribute of the text. Several attributes can be
italic | underline | combined using braces.
strikeout
For example: -font_att {bold italic}
-font_factor <doubleValue> Specifies the multiplier for the text font (only for 2D plots).
-line_color <#rrggbb> Specifies the line and arrow color (only for 2D plots).
-line_style solid | dot | Specifies the representation style of the text box line (only for
dash | dashdot | dashdotdot 2D plots).
Argument Description
-line_width <intValue> Specifies the width of the text box and anchor line (only for 2D
plots).
-plot <stringValue> Name of the plot where the command will search for the text
box. If not specified, the command uses the selected plot.
-pos {<x> <y>} Specifies the lower-left corner position of the text box.
For xy plots, this is a point in the world coordinate system {x, y}.
For 2D plots, this is a relative normalized screen coordinates
pair (from 0.0 to 1.0).
-rotation <intValue> Specifies the rotation of the text box in degrees (only for xy
plots).
-show_anchor | -hide_anchor Shows or hides the text box anchor (only for 2D plots).
-show_border | -hide_border Shows or hides the text box border (only for 2D plots).
Returns
Integer
Example
set_textbox_prop Textbox_1 -text "Label Text" -font_color #ff0000
#-> 0
set_transformation
Applies a transformation to a certain geometry. You can scale a geometry, shift a geometry,
or both scale and shift a geometry.
Note:
This command applies to 2D and 3D plots only.
Syntax
set_transformation
-scale {<scaleX> <scaleY> <scaleZ>} |
-shift {<shiftX> <shiftY> <shiftZ>} |
-scale {<scaleX> <scaleY> <scaleZ>} -shift {<shiftX> <shiftY> <shiftZ>}
[-geom <stringValue>] [-plot <stringValue>]
Argument Description
-scale {<scaleX> <scaleY> Sets or returns the scale value of the axis. The list has the form
<scaleZ>} {x y z} where the parameters x, y, and z are positive doubles
that represent the scale value applied to each axis.
-shift {<shiftX> <shiftY> Sets or returns the shift value of the axis. The list has the form
<shiftZ>} {x y z} where the parameters x, y, and z are doubles that
represent the shift value applied to each axis.
-plot <stringValue> Name of the plot from which the geometry will be obtained.
Returns
Integer
Example
set_transformation -scale {0.5 1 1}
#-> 0
set_value_blanking
Sets value blanking.
If -field is not specified, the command uses the selected field.
Note:
The command applies to 2D and 3D plots only.
Syntax
set_value_blanking -field <stringValue>
-less <doubleValue> | -greater <doubleValue> | -reset
[-blank all | any | inter] [-cons <intValue>]
[-plot <stringValue>] [-union | -intersection]
Argument Description
-less <doubleValue> | If you specify -less, all values less than the specified value are
-greater <doubleValue> | blanked.
-reset
If you specify -greater, all values greater than the specified
value are blanked.
Specify -reset to remove value blanking rules.
-blank all | any | inter Selects the value blanking option where:
• all is all vertices.
• any is any vertex.
• inter is interpolate vertices.
If not specified, the command uses the all option.
-cons <intValue> Number of the value blanking rule. Options are between 1 and 8.
Default: 1.
-plot <stringValue> Name of the plot. If not specified, the command uses the selected
plot.
-union | -intersection Sets whether the constraints will be united or will intersect.
If not specified, the command uses the -union option.
Returns
Integer
Example
set_value_blanking -field DopingConcentration -greater 0.0
#-> 0
set_vector_prop
Sets the properties of a vector field.
Note:
This command applies to 2D and 3D plots only.
Syntax
set_vector_prop <stringValue>
[-constant_heads | -normal_heads] [-fill_color <#rrggbb>]
[-geom <stringValue>]
[-head_angle <intValue>]
[-head_shape arrow | arrow_solid | head | head_closed | head_solid]
[-head_size <doubleValue>]
[-line_color <#rrggbb>]
[-line_pattern solid | dot | dash | dashdot | dashdotdot]
[-line_width <intValue>]
[-plot <stringValue>]
[-scale grid | uniform]
[-scale_factor_grid <doubleValue>]
[-scale_factor_uniform <doubleValue>] [-show | -hide]
Argument Description
-constant_heads | Specifies whether the arrows are constant to the plot area
-normal_heads regardless of the vector magnitude or proportional (normal) to
the vector magnitude.
-geom <stringValue> Specifies the geometry where the command will search for the
vector.
Argument Description
-plot <stringValue> Name of the plot where the command will search for the
geometry. If not specified, the command uses the selected plot.
-scale grid | uniform Specifies the scale for displaying the arrows, either uniform
size or a grid display.
Returns
Integer
Example
set_vector_prop ElectricField-V -plot Plot_2D -geom 2D -scale grid
#-> 0
set_vertical_lines_prop
Sets the properties of vertical lines.
Note:
This command applies to xy plots only.
Syntax
set_vertical_lines_prop <stringValue>
[-line_color <#rrggbb>]
[-line_style solid | dot | dash | dashdot | dashdotdot]
[-line_width <intValue>] [-plot <stringValue>] [-show | -hide]
Argument Description
-plot <stringValue> Name of the plot where the command searches for the vertical
line. If not specified, the command uses the selected plot.
Returns
Integer
Example
set_vertical_lines_prop VerticalLine _1 -line_style dot
#-> 0
set_window_full
Sets the full plot view.
Syntax
set_window_full -on | -off
Argument Description
Returns
Integer
Example
set_window_full -on
#-> 0
set_window_size
Sets the size of the main window of the user interface.
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
200×200 pixels).
Returns
Integer
Example
set_window_size 1280x800
#-> 0
show_msg
Displays a message in a dialog box.
Syntax
show_msg <stringValue>
[-error | -info | -warning] [-title <stringValue>]
Argument Description
-error | -info | -warning Specifies the type of message to display. Default: -info.
Returns
None
Example
show_msg -warning -title "Bad Value" "There was a problem extracting the
threshold voltage"
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
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
undo
Undoes the last command implemented or the number of commands specified.
Syntax
undo [<intValue]
Argument Description
Returns
None
Example
undo 2
unload_file
Unloads all the datasets belonging to the specified file.
Syntax
unload_file <stringValue>
Argument Description
Returns
Integer
Example
unload_file structure2D.tdr
#-> 0
version
Returns the version of Sentaurus Visual.
Syntax
version
Returns
String
Example
version
#-> 31.0.7
windows_style
Specifies the type of window style to use for the user interface of Sentaurus Visual.
Syntax
windows_style
[-aspect_ratio_on | -aspect_ratio_off]
[-direction right_down | down_right]
[-max <intValue>]
[-sort <stringList>]
[-style horizontal | vertical | grid | max | custom]
Argument Description
-aspect_ratio_on | Specifies whether the aspect ratio is maintained for all the plots
-aspect_ratio_off displayed.
-direction right_down | Specifies the viewing direction of plots and where they will stretch:
down_right • When 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 <intValue> Specifies the maximum number of columns in which to display the
plots when they are in a custom grid configuration.
-style horizontal | Specifies a horizontal or vertical orientation, or grid style, or the use
vertical | grid | max | of maximum space or custom style.
custom
Returns
Integer
Example
windows_style -style grid
#-> 0
zoom_plot
Zooms into a plot.
Syntax
zoom_plot
-axis (x | y | z) -range {<min> <max>} |
-box {<minX> <maxX> <minY> <maxY> <minZ> <maxZ>} |
-factor <doubleValue> |
-reset |
-window {<x1> <y1> [<z1>]<x2> <y2> [<z2>]}
[-plot <stringValue>]
Argument Description
-box {<minX> <maxX> <minY> Defines the three ranges for the boundary box.
<maxY> <minZ> <maxZ>}
-factor <doubleValue> Sets the 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> [<z1>] Sets the zoom window. It zooms into the specified window
<x2> <y2> [<z2>]} between two x,y pairs. For 2D and 3D plots, the argument
accepts only four values. For 3D plots, the values can be
entered in the form of pixels of the plot frame (integers) or can
be normalized to screen values (doubles between 0 and 1).
Returns
None
Example
zoom_plot -reset
The Python commands apply to the same plots and structures defined in the Tcl commands
in Appendix A on page 217.
General Information
Sentaurus Visual Python Mode imports the svisual package as sv automatically at the start
of the application. This package contains the commands presented in this appendix.
As in Tcl mode, sv.echo() prints to the log file SVisualPy.log, and the print() function
acts as the Tcl puts command printing to standard output.
Syntax Conventions
Each Python command is implemented as a Python function and, as such, it must comply
with the Python syntax conventions.
Common Properties
The following properties are used in several Python commands.
Colors
In commands that allow you to specify color properties (such as the color argument), 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.
Table 15 Common colors
Fonts
For commands that allow you to adjust font properties, Sentaurus Visual defines a specific
list of font families and attributes.
Table 16 Font families and their attributes
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.
Lines
For commands that allow you to adjust line properties (such as the line_style option),
Sentaurus Visual defines a specific list of line styles. You can provide the name of the style
or its short form directly.
Markers
Different markers are available to use in xy plots in Sentaurus Visual. You can use the name
or the short form of each marker.
Table 18 Marker types
circle o
circlef of
diamond
diamondf
square
squaref
plus + +
cross x x
This appendix describes the menus and toolbars of the Sentaurus Visual user interface.
Menus
This section lists the commands of the different menus.
File Menu
Table 19 File menu
Edit Menu
Table 20 Edit menu
View Menu
Table 21 View menu
Scale to Image Displays the Scale to Image dialog box, where you
can overlay an image onto a plot.
Tools Menu
Table 22 Tools menu
Special Link Displays Special Link dialog box where you can set
up special linking to link only specified properties.
Value Blanking Ctrl+Shift+V Displays Value Blanking dialog box. Available for
3D plots only.
Overlay Ctrl+Shift+Y Overlays two or more plots onto one plot. Available
for 2D and 3D plots only.
Surface Plot Displays Surface Plot dialog box, where you can
create a surface plot from a 3D dataset.
Extract Path Displays Extract Path dialog box, where you can
extract a path of either the minimum or maximum
values of a specified scalar field.
Data Menu
Table 23 Data menu
View Info Loaded Displays Manage Loaded Data dialog box, showing
all the datasets and plots currently loaded.
Save Plot Displays a dialog box where you can save all the
plot data and settings to a Tcl file. Available for xy
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 24 Window menu
Next Plot Page Down key Moves to the next loaded plot.
Full Plot View F12 key Hides the toolbars and zooms into a plot using the
entire workspace.
Help Menu
Table 25 Help menu
Note:
The default viewer for the PDF file of the Sentaurus™ Visual User Guide is
Adobe® Reader®. Using another PDF viewer might deactivate some
cross-references or external links in the PDF file.
Toolbars
This section describes the different toolbars.
File Toolbar
Table 26 File toolbar
Edit Toolbar
Table 27 Edit toolbar
Draw Toolbar
Table 28 Draw toolbar (available for xy and 2D plots only)
View Toolbar
Table 29 View toolbar
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)
Tools Toolbar
Table 30 Tools toolbar
Region Properties (2D and 3D plots only) Ruler (2D and 3D plots only)
Plot Band Diagram (xy plots only) Streamlines (2D and 3D plots only)
Precision Cuts (2D and 3D plots only) Overlay (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 31 Movies toolbar
Stop Recording
Look Toolbar
Table 32 Look toolbar
Basic rotation Press the N key while Activates rollerball rotation until you release the N
dragging the cursor key (applies to 3D plots only).
Rotate around x-axis Press the X key while Activates rotation around the x-axis until you
dragging the cursor release the X key (applies to 3D plots only).
Rotate around y-axis Press the Y key while Activates rotation around the y-axis until you
dragging the cursor release the Y key (applies to 3D plots only).
Rotate around z-axis Press the Z key while Activates rotation around the z-axis until you
dragging the cursor release the Z key (applies to 3D plots only).
Spherical rotation Press the S key while Activates spherical rotation until you release the
dragging the cursor S key (applies to 3D plots only).
Change rotation Press O key Updates the rotation point of the structure. A new
center point point will be placed at the cursor position.
Switch on or off 3D Press I key Switches on or off the 3D guide axis. However, to
guide axis see this change, a minor rotation is required.
e zoom navigation Press Ctrl+Shift while Activates zoom navigation (equivalent to clicking
dragging the cursor and dragging the middle mouse button).
Zoom to cursor Press F key When you place the cursor somewhere on the
position structure (you do not click) and then press the F
key, the structure changes view so that the new
center of the plot is where the cursor was placed.
Highlight region Press P key Highlights the selected region using a red box. To
cancel this operation, press the P key when the
cursor is not positioned over any region.
Reset view Press R key Returns the structure to the default view.
e wireframe view Press W key Changes the display of the structure to a mesh
view.
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.
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 Data Selection panel by clicking
New Variable. A dialog box opens, where you can interactively add functions,
operators, and variables to create a new formula.
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>.
Note:
If you want to create a new curve from more than one curve using a function, then
specify, for example:
create_curve -name newCurve_2 -function <Curve_1>*<Curve_2>
Both curves Curve_1 and Curve_2 must share the same x-axis and must have
the same amount of valid data. Otherwise, this might lead to unexpected results.
You can create curves on the Curves tab of the Data Selection panel by clicking
the New button. A dialog box opens where you can interactively add functions,
operators, and curves to create a new curve based on a formula.
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 users. If the name of the new field
already exists, then an error message appears on the console unless the -overwrite
option is specified.
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
The new field is shown automatically in the plot if the Display option is selected. If the name
of the new field already exists, then a dialog box opens where you can either confirm to
overwrite the existing field or overwrite it without confirmation if the Overwrite option is
selected.
Note:
You can delete fields by using the remove_fields command (see remove_fields
on page 342).
Available Functions
Table 34 lists the available functions. The function arguments are:
• Double: Numeric values, scalar field names.
• Vector: Vector field names.
• Curve: 1D curve names.
For example:
-function "sin(<ElectricField-X>+<ElectricField-Y>)" (Double or Scalar)
-function "sin(<ElectricField-V>)" (Vector)
-function "sin(<Curve_1>)" (Curve)
Note:
For functions that only return a Double value and are used as the outer function
in formulas, the result will be displayed only in a dialog box and cannot be used
in Tcl scripts.
Functions with the * return type create more than one field.
crop(y, x, min, max) x: Vector Vector Crops the values depending of the
crop(c, min, max) y: Vector Curve minimum and maximum range of x
min: Double
max: Double
c: Curve
minmax(x, min, x: Vector Vector All values that are less than min are
max) min: Double replaced with min, and all values
greater than max are replaced with
max: Double
max
This appendix describes the level of support for running Inspect scripts in Sentaurus Visual.
The support of Inspect commands is available only if the commands are in a script file and
it is loaded using one of the following options:
• From the command line, for example, pass an Inspect script file as an argument with the
corresponding option:
svisual -inspect test_ins.cmd
• From the user interface, choose File > Run Script. In the Open Script File dialog box,
select Inspect Command File (*.cmd) in the Files of type field.
• Load a Tcl script using the load_script_file Tcl command. For example:
load_script_file test_ins.cmd -inspect
cv_split_disc
ft_scalar
load_library macro_define
proj_unload
script_exit script_sleep
Command Limitations
Extraction Library
All the commands from this library are fully supported only if they are calculated over
displayed curves:
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.
• cvcmp_DeltaTwoCurves
Command Limitations
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 automatically when Sentaurus Visual starts. However, if you
have switched off the automatic loading of extension libraries, then you can load the
extraction library explicitly 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>
Each procedure has several arguments. The extraction library uses an input parser that
accepts arguments of the form:
-keyword <value>
Note:
All Sentaurus Visual libraries support the standard Sentaurus Visual syntax in
which keywords are preceded by a dash. For backward compatibility, all
Sentaurus Visual libraries continue to support the keyword= <value> syntax as
well. For each procedure call, you can use either the -keyword <value> syntax
or the keyword= <value> syntax. However, within any one procedure call, only
one type of syntax can be used. Otherwise, an error message will be generated.
Only the new syntax is documented. If you want to continue using the
keyword= <value> syntax, you also can insert space between the keyword and
the equal sign, for example, keyword = <value>. Omitting the space 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 can 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>
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.
• 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.
If this command is included in a Sentaurus Visual file, when Sentaurus Visual is executed in:
• Batch mode in Sentaurus Workbench, the help information is printed to the runtime
output file (with the extension .out) of the corresponding Sentaurus Visual node.
• Interactive mode in Sentaurus Workbench, the help information is displayed in the Tcl
Console as well as printed in the Sentaurus Visual output file.
You also can enter the command in the Tcl Console of the user interface, in which case, the
help information is displayed in the Console.
Output of Procedures
As discussed in Syntax Conventions on page 434, 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 is used, 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" is used, then the extracted variable is not passed to the Sentaurus
Workbench Family Tree. If -name out is used, 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 is used, the extracted threshold voltage value is displayed as the
Sentaurus Workbench variable Vtgm.
If there are errors in the extraction library procedures, then the behavior of Sentaurus Visual
depends on whether it is executed in batch mode or interactive mode in Sentaurus
Workbench. In batch mode, Sentaurus Visual exits and an error message is printed only in
the Sentaurus Visual error file (with the extension .err). In interactive mode, the error
message is displayed in the Tcl Console as well as printed in the Sentaurus Visual error file.
You can handle the errors raised by the procedures of the extraction library, for example, by
using the Tcl catch command.
All procedures also print several messages (including warning messages). If Sentaurus
Visual is executed in batch mode, the messages are printed only in the Sentaurus Visual
output file; whereas, in interactive mode, the messages are displayed in the Tcl Console as
well as printed in the Sentaurus Visual output file.
The amount of information printed depends on the information level specified by the
procedure lib::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 using the
lib::SetInfoDef procedure:
lib::SetInfoDef 0
ext::ExtractVtgm -out Vt -name Vtgm -v $Vgs -i $absIds
If the information level for the procedure ext::ExtractVtgm is set to 1 using the
lib::SetInfoDef procedure:
lib::SetInfoDef 1
ext::ExtractVtgm -out Vt -name Vtgm -v $Vgs -i $Ids -vo 1e-4
If the extraction library procedure cannot extract the parameter, the parameter is set to the
character ‘x’ and a message is printed. In the case of ext::ExtractVtgm, the following
message is printed:
DOE: Vtgm x
ext::ExtractVtgm: Vtgm not found!
ext::AbsList
Computes the absolute value of all elements of a list.
Syntax
ext::AbsList -out <list_name> -x <list_of_r>
[-info 0 | 1 | 2 | 3] [-help 0 | 1]
Argument Description
-out <list_name> Name of a list to store the list of absolute values. (List name, no
default)
Returns
None
Example
load_file DATA/IdVgLin_pMOS_des.plt -name DC
set Ids [get_variable_data "drain TotalCurrent" -dataset DC]
puts "Ids: $Ids"
ext::DiffForwardList
Computes the first-order derivative of a curve using the forward finite difference method.
The curve is represented by two Tcl lists: one contains the x-values (independent variable)
and one contains the corresponding y-values (dependent variable).
Syntax
ext::DiffForwardList -out <array_name> -x <list_of_r> -y <list_of_r>
[-info 0 | 1 | 2 | 3] [-help 0 | 1]
Argument Description
-out <array_name> Name of an array to store the results. The array has one string-valued
index. The index contains the elements x and dy. The values of the x
element and the dy element are lists of x-values and first-order
derivatives, respectively.
(Array name, no default)
Returns
None
Example
set Xs [list 1.0 2.0 3.0 4.0]
# Generate Ys using y=2*x
set Ys [list]
foreach x $Xs {
lappend Ys [expr 2*$x]
}
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 <list_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 <list_name> Name of a list to store the first-order derivative. (List name, no default)
-yLog 0 | 1 Selects linear (0) or logarithmic (1) interpolation for y-axis values for
computing the derivative. Default: 0
-xLog 0 | 1 Selects linear (0) or logarithmic (1) interpolation for x-axis values for
computing the derivative. Default: 0
Returns
None
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]
}
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 <var_name> Variable name to store the value of the breakdown voltage.
(Real number, no default)
-v <list_of_r> List containing the voltage values. (List of real numbers, no default)
-i <list_of_r> List containing the current values. (List of real numbers, no default)
Argument Description
-name <string> Name of the extracted variable to appear in the Sentaurus Workbench
Family Tree. (String, default: "BVi")
Note:
If -name "noprint" is used, Sentaurus Workbench extraction is
suppressed.
If -name "out" is used, the name of the variable specified by the
-out keyword also is used as the name that appears in the Sentaurus
Workbench Family Tree.
-f <string> Format string used to write the extracted variable to the Sentaurus
Workbench Family Tree. (String, default: "%.3e")
Returns
None
Example
# Extract breakdown voltage of a n-p-n bipolar transistor
load_file DATA/IcVcBV_npn_des.plt -name BV
set Vcbs [get_variable_data "collector InnerVoltage" -dataset BV]
set Ics [get_variable_data "collector TotalCurrent" -dataset BV]
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 <var_name> Variable name to store the value of the breakdown voltage.
(Real number, no default)
-v <list_of_r> List containing the voltage values. (List of real numbers, no default)
-i <list_of_r> List containing the current values. (List of real numbers, no default)
-sign <+1 | -1> 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 <string> Name of the extracted variable to appear in the Sentaurus Workbench
Family Tree. (String, default: "BVv")
Note:
If -name "noprint" is used, Sentaurus Workbench extraction is
suppressed.
If -name "out" is used, the name of the variable specified by the
-out keyword also is used as the name that appears in the Sentaurus
Workbench Family Tree.
-f <string> Format string used to write the extracted variable to the Sentaurus
Workbench Family Tree. (String, default: "%.2e")
Returns
None
Example
# Extract breakdown voltage of a n-p-n bipolar transistor
load_file DATA/IcVcBV_npn_des.plt -name BV
set Vcbs [get_variable_data "collector InnerVoltage" -dataset BV]
set Ics [get_variable_data "collector TotalCurrent" -dataset BV]
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 <var_name> Variable name to store the value of the early voltage.
(Real number, no default)
-v <list_of_r> List containing the voltage values. (List of real numbers, no default)
-i <list_of_r> List containing the collector current values. (List of real numbers, no
default)
-vo <r> 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 <string> Name of the extracted variable to appear in the Sentaurus Workbench
Family Tree. (String, default: "Va")
Note:
If -name "noprint" is used, Sentaurus Workbench extraction is
suppressed.
If -name "out" is used, the name of the variable specified by the
-out keyword also is used as the name that appears in the Sentaurus
Workbench Family Tree.
-f <string> Format string used to write the extracted variable to the Sentaurus
Workbench Family Tree. (String, default: "%.3e")
Returns
None
Example
# Extract Early voltage for a p-n-p bipolar transistor
load_file DATA/IcVc_pnp_des.plt -name IcVce
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>
[-type "max" | "min"] [-name <string>] [-f <string>]
[-info 0 | 1 | 2 | 3] [-help 0 | 1]
Argument Description
-out <var_name> Variable name to store the maximum or minimum of the curve.
(Real number, no default)
-type "max" | "min" Selects whether to extract the minimum ("min") or maximum ("max") of
a curve. Default: "max"
-name <string> Name of the extracted variable to appear in the Sentaurus Workbench
Family Tree. (String, default: "out")
Note:
If -name "noprint" is used, Sentaurus Workbench extraction is
suppressed.
If -name "out" is used, the name of the variable specified by the
-out keyword also is used as the name that appears in the Sentaurus
Workbench Family Tree.
-f <string> Format string used to write the extracted variable to the Sentaurus
Workbench Family Tree. (String, default: "%.3e")
Argument Description
Returns
None
Example
load_file DATA/IdVgLin_nMOS_des.plt -name DC
set Vgs [get_variable_data "gate OuterVoltage" -dataset DC]
set Ids [get_variable_data "drain TotalCurrent" -dataset DC]
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 <var_name> Variable name to store the value of the maximum transconductance.
(Real number, no default)
-v <list_of_r> List containing the gate voltage values. (List of real numbers, no default)
-i <list_of_r> List containing the drain current values. (List of real numbers, no
default)
Argument Description
-name <string> Name of the extracted variable to appear in the Sentaurus Workbench
Family Tree. (String, default: "gm")
Note:
If -name "noprint" is used, Sentaurus Workbench extraction is
suppressed.
If -name "out" is used, the name of the variable specified by the
-out keyword also is used as the name that appears in the Sentaurus
Workbench Family Tree.
-f <string> Format string used to write the extracted variable to the Sentaurus
Workbench Family Tree. (String, default: "%.3e")
Returns
None
Example
# Extract gm for a p-MOSFET
load_file DATA/IdVgLin_pMOS_des.plt -name DC
set Vgs [get_variable_data "gate OuterVoltage" -dataset DC]
set Ids [get_variable_data "drain TotalCurrent" -dataset DC]
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 <var_name> Variable name to store the value of the drain leakage current.
(Real number, no default)
-v <list_of_r> List containing the gate voltage values. (List of real numbers, no default)
-i <list_of_r> List containing the drain current values. (List of real numbers, no
default)
-vo <r> 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)
-name <string> Name of the extracted variable to appear in the Sentaurus Workbench
Family Tree. (String, default: "Ioff")
Note:
If -name "noprint" is used, Sentaurus Workbench extraction is
suppressed.
If -name "out" is used, the name of the variable specified by the
-out keyword also is used as the name that appears in the Sentaurus
Workbench Family Tree.
-f <string> Format string used to write the extracted variable to the Sentaurus
Workbench Family Tree. (String, default: "%.3e")
Returns
None
Example
load_file DATA/IdVgSat_pMOS_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::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 <var_name> Variable name to store the value of the differential resistance.
(Real number, no default)
-v <list_of_r> List containing the voltage values. (List of real numbers, no default)
-i <list_of_r> List containing the current values. (List of real numbers, no default)
-yLog 0 | 1 Selects linear (0) or logarithmic (1) interpolation for y-axis values for
computing the derivative. See note in ext::DiffList on page 440.
Default: 0
-xLog 0 | 1 Selects linear (0) or logarithmic (1) interpolation for x-axis values for
computing the derivative. See note in ext::DiffList on page 440.
Default: 0
-name <string> Name of the extracted variable to appear in the Sentaurus Workbench
Family Tree. (String, default: "Rdiff")
Note:
If -name "noprint" is used, Sentaurus Workbench extraction is
suppressed.
If -name "out" is used, the name of the variable specified by the
-out keyword also is used as the name that appears in the Sentaurus
Workbench Family Tree.
Argument Description
-f <string> Format string used to write the extracted variable to the Sentaurus
Workbench Family Tree. (String, default: "%.3f")
Returns
None
Example
# Extract on-state output resistance of a p-n-p bipolar transistor
load_file DATA/IcVc_pnp_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
puts "Ron (at Vcs= -1.25 V): [format %.2e $Ron] Ohm-um"
#-> Ron: 3.35e+04 Ohm-um
ext::ExtractRsh
Calculates the sheet resistance R sh sq and the p-n junction depth of semiconductor
layers in the vertical direction in a 2D structure by creating an axis-aligned cutline. It also
calculates the total sheet resistance (the sum of the sheet resistance of each layer).
Note:
This procedure applies only to 2D structures.
x dx
0
where d is the thickness of the semiconductor layer, and is its conductivity given by:
x = q n x n x + p x p x (4)
where:
• q is the elementary charge.
• n and p are the electron and hole density, respectively.
• n and p are the electron and hole mobility, respectively.
The resistivity is given by:
1
x = ----------- (5)
x
Note:
The axis-aligned cutline is created using the create_cutline command (see
create_cutline on page 229).
Syntax
ext::ExtractRsh -out <array_name> -dataset <dataName>
-semdataset <dataName>
-type <x | y> -at <r>
[-info 0 | 1 | 2 | 3] [-help 0 | 1]
Argument Description
-out <array_name> Name of an array to store the results. The array has one string-valued
index. The index contains the elements d, Rsh, RshTotal, RshTop,
xjTop, and other elements.
The values of the elements d and Rsh are the thickness and sheet
resistance of each semiconductor layer.
The values of the elements RshTotal, RshTop, and xjTop are the total
sheet resistance, the sheet resistance of the top semiconductor layer,
and the junction depth, respectively. The index also contains the
elements X (for -type y) or Y (for -type x), DopingConcentration,
eMobility, hMobility, eDensity, hDensity, Conductivity, and
Resistivity.
The values of the elements X and Y are lists of x-axis values and y-axis
values, respectively.
The values of the elements DopingConcentration, eMobility,
hMobility, eDensity, hDensity, Conductivity, and Resistivity
are lists of the doping concentration, electron mobility, hole mobility,
electron density, hole density, conductivity, and resistivity, respectively.
(Array name, no default)
-dataset <dataname> Name of the dataset from where the cutline will be generated.
(String, no default)
-semdataset Name of the dataset containing the variables X (for -type y) or Y (for
<dataname> -type x), DopingConcentration, eMobility, hMobility, eDensity,
hDensity, Conductivity, and Resistivity. These variables contain
a list of x-axis values (for -type y), or y-axis values (for -type x),
doping concentration, electron mobility, hole mobility, electron density,
hole density, conductivity, and resistivity, respectively. (String, no
default)
-type x | y Links the cutline to the specified axis. If -type x (-type y) is specified,
the cutline is linked to the x-axis (y-axis), and the cutline is created
axis-aligned to the y-axis (x-axis). Specify -type so that the cutline is
created in the vertical direction. (String, no default)
-at <r> Value where the axis-aligned cutline cuts the axis to which it is linked.
(Real number, no default)
Returns
None
Example
load_file DATA/LDMOS_des.tdr -name Structure2d
create_plot -name Plot_Structure2d -dataset Structure2d
# Create cutline at y=5.0 and extract Rsh
ext::ExtractRsh -out Rsh -dataset Structure2d -semdataset RshProfile \
-type y -at 5.0
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 = --------------------------- (6)
d
log I
d V g 10 d
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 <var_name> Variable name to store the value of the subthreshold voltage swing.
(Real number, no default)
-vo <r> Gate voltage at which the slope is extracted. It should be a value well
below the threshold voltage. (Real number, no default)
-name <string> Name of the extracted variable to appear in the Sentaurus Workbench
Family Tree. (String, default: "SS")
Note:
If -name "noprint" is used, Sentaurus Workbench extraction is
suppressed.
If -name "out" is used, the name of the variable specified by the
-out keyword also is used as the name that appears in the Sentaurus
Workbench Family Tree.
-f <string> Format string used to write the extracted variable to the Sentaurus
Workbench Family Tree. (String, default: "%.3f")
Returns
None
Example
load_file DATA/IdVgLin_nMOS_des.plt -name DC
set Vgs [get_variable_data "gate OuterVoltage" -dataset DC]
set Ids [get_variable_data "drain TotalCurrent" -dataset DC]
ext::ExtractSsub
Extracts the subthreshold voltage swing from an Id–Vgs curve. The subthreshold voltage
swing (SS) is defined as:
1000
SS = -------------------------------------------- (7)
Max
d log
dV 10 I d
g
Argument Description
-out <var_name> Variable name to store the value of the subthreshold voltage swing.
(Real number, no default)
-name <string> Name of the extracted variable to appear in the Sentaurus Workbench
Family Tree. (String, default: "SS")
Note:
If -name "noprint" is used, Sentaurus Workbench extraction is
suppressed.
If -name "out" is used, the name of the variable specified by the
-out keyword also is used as the name that appears in the Sentaurus
Workbench Family Tree.
-f <string> Format string used to write the extracted variable to the Sentaurus
Workbench Family Tree. (String, default: "%.3f")
Returns
None
Example
load_file DATA/IdVgLin_nMOS_des.plt -name DC
set Vgs [get_variable_data "gate OuterVoltage" -dataset DC]
set Ids [get_variable_data "drain TotalCurrent" -dataset DC]
ext::ExtractValue
For a given target x-value, the procedure extracts the n -th 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>
[-occurrence <i>] [-yLog 0 | 1] [-xLog 0 | 1] [-name <string>]
[-f <string>] [-info 0 | 1 | 2 | 3] [-help 0 | 1]
Argument Description
-out <var_name> Variable name to store the first found y-value. (Real number, no default)
-yLog 0 | 1 Selects linear (0) or logarithmic (1) interpolation for y-axis values.
Default: 0
-xLog 0 | 1 Selects linear (0) or logarithmic (1) interpolation for x-axis values.
Default: 0
Argument Description
-name <string> Name of the extracted variable to appear in the Sentaurus Workbench
Family Tree. (String, default: "SS")
Note:
If -name "noprint" is used, Sentaurus Workbench extraction is
suppressed.
If -name "out" is used, the name of the variable specified by the
-out keyword also is used as the name that appears in the Sentaurus
Workbench Family Tree.
-f <string> Format string used to write the extracted variable to the Sentaurus
Workbench Family Tree. (String, default: "%.3f")
Returns
None
Example
set Xs [list 1e2 1e3 1e4 1e5 1e6 1e7 1e8 1e9 1e10 1e11 1e12]
set Ys [list -100 -25 25 50 100 100 75 50 25 -25 -100]
# Extract the first interpolated x-value for the given target y-value
# using the default linear interpolation
ext::ExtractValue -out Xlin -x $Ys -y $Xs -yLog 0 -xo 0
puts "Xlin: [format %.3e $Xlin]"
# Extract the first interpolated x-value for the given target y-value
# using logarithmic interpolation
ext::ExtractValue -out Xlog -x $Ys -y $Xs -yLog 1 -xo 0
puts "Xlog: [format %.3e $Xlog]"
ext::ExtractVdlin
Extracts the drain voltage for a given drain current level from an Id–Vds curve using linear
interpolation. The curve is represented by two Tcl lists: one contains the voltage points and
one contains the corresponding current values.
Syntax
ext::ExtractVdlin -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 <var_name> Variable name to store the value of the drain voltage corresponding to
the specified drain current level. (Real number, no default)
-name <string> Name of the extracted variable to appear in the Sentaurus Workbench
Family Tree. (String, default: "SS")
Note:
If -name "noprint" is used, Sentaurus Workbench extraction is
suppressed.
If -name "out" is used, the name of the variable specified by the
-out keyword also is used as the name that appears in the Sentaurus
Workbench Family Tree.
-f <string> Format string used to write the extracted variable to the Sentaurus
Workbench Family Tree. (String, default: "%.3f")
Returns
None
Example
load_file DATA/IdVd_nMOS_des.plt -name DC
set Vds [get_variable_data "drain OuterVoltage" -dataset DC]
set Ids [get_variable_data "drain TotalCurrent" -dataset DC]
ext::ExtractVdlog
Extracts the drain voltage for a given drain current level from an Id–Vds curve using
logarithmic interpolation. The curve is represented by two Tcl lists: one contains the voltage
points and one contains the corresponding current values.
Syntax
ext::ExtractVdlog -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 <var_name> Variable name to store the value of the drain voltage corresponding to
the specified drain current level. (Real number, no default)
-name <string> Name of the extracted variable to appear in the Sentaurus Workbench
Family Tree. (String, default: "SS")
Note:
If -name "noprint" is used, Sentaurus Workbench extraction is
suppressed.
If -name "out" is used, the name of the variable specified by the
-out keyword also is used as the name that appears in the Sentaurus
Workbench Family Tree.
-f <string> Format string used to write the extracted variable to the Sentaurus
Workbench Family Tree. (String, default: "%.3f")
Argument Description
Returns
None
Example
load_file DATA/IdVd_nMOS_des.plt -name DC
set Vds [get_variable_data "drain OuterVoltage" -dataset DC]
set Ids [get_variable_data "drain TotalCurrent" -dataset DC]
ext::ExtractVglin
Extracts the gate voltage for a given drain current level from an Id–Vgs curve using linear
interpolation. The curve is represented by two Tcl lists: one contains the voltage points and
one contains the corresponding current values.
Syntax
ext::ExtractVglin -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 <var_name> Variable name to store the value of the drain voltage corresponding to
the specified drain current level. (Real number, no default)
Argument Description
-name <string> Name of the extracted variable to appear in the Sentaurus Workbench
Family Tree. (String, default: "SS")
Note:
If -name "noprint" is used, Sentaurus Workbench extraction is
suppressed.
If -name "out" is used, the name of the variable specified by the
-out keyword also is used as the name that appears in the Sentaurus
Workbench Family Tree.
-f <string> Format string used to write the extracted variable to the Sentaurus
Workbench Family Tree. (String, default: "%.3f")
Returns
None
Example
load_file DATA/IdVgLin_nMOS_des.plt -name DC
set Vgs [get_variable_data "gate OuterVoltage" -dataset DC]
set Ids [get_variable_data "drain TotalCurrent" -dataset DC]
ExtractVglin -out Vglin -name "out" -v $Vgs -i $Ids -io 1e-7 -f "%.4f"
ext::ExtractVglog
Extracts the gate voltage for a given drain current level from an Id–Vgs curve using
logarithmic interpolation. The curve is represented by two Tcl lists: one contains the voltage
points and one contains the corresponding current values.
Syntax
ext::ExtractVglog -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 <var_name> Variable name to store the value of the drain voltage corresponding to
the specified drain current level. (Real number, no default)
-name <string> Name of the extracted variable to appear in the Sentaurus Workbench
Family Tree. (String, default: "SS")
Note:
If -name "noprint" is used, Sentaurus Workbench extraction is
suppressed.
If -name "out" is used, the name of the variable specified by the
-out keyword also is used as the name that appears in the Sentaurus
Workbench Family Tree.
-f <string> Format string used to write the extracted variable to the Sentaurus
Workbench Family Tree. (String, default: "%.3f")
Returns
None
Example
load_file DATA/IdVgLin_nMOS_des.plt -name DC
set Vgs [get_variable_data "gate OuterVoltage" -dataset DC]
set Ids [get_variable_data "drain TotalCurrent" -dataset DC]
ExtractVglog -out Vglog -name "out" -v $Vgs -i $Ids -io 1e-7 -f "%.4f"
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 <var_name> Variable name to store the value of the drain voltage corresponding to
the specified drain current level. (Real number, no default)
-name <string> Name of the extracted variable to appear in the Sentaurus Workbench
Family Tree. (String, default: "SS")
Note:
If -name "noprint" is used, Sentaurus Workbench extraction is
suppressed.
If -name "out" is used, the name of the variable specified by the
-out keyword also is used as the name that appears in the Sentaurus
Workbench Family Tree.
-f <string> Format string used to write the extracted variable to the Sentaurus
Workbench Family Tree. (String, default: "%.3f")
Argument Description
Returns
None
Example
# Extract Vtgm for a p-MOSFET
load_file DATA/IdVgLin_pMOS_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::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 <var_name> Variable name to store the value of the drain voltage corresponding to
the specified drain current level. (Real number, no default)
Argument Description
-name <string> Name of the extracted variable to appear in the Sentaurus Workbench
Family Tree. (String, default: "SS")
Note:
If -name "noprint" is used, Sentaurus Workbench extraction is
suppressed.
If -name "out" is used, the name of the variable specified by the
-out keyword also is used as the name that appears in the Sentaurus
Workbench Family Tree.
-f <string> Format string used to write the extracted variable to the Sentaurus
Workbench Family Tree. (String, default: "%.3f")
Returns
None
Example
load_file DATA/IdVgLin_nMOS_des.plt -name DC
set Vgs [get_variable_data "gate OuterVoltage" -dataset DC]
set Ids [get_variable_data "drain TotalCurrent" -dataset DC]
ext::ExtractVtsat
Extracts the threshold voltage from a I d – V gs curve. The threshold voltage is defined as
the intercept with the gate-voltage axis from the point of maximum slope of the I d – V gs
curve. The gate bias at which the maximum slope of the I d – V gs curve 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::ExtractVtsat -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 <var_name> Variable name to store the value of the drain voltage corresponding to
the specified drain current level. (Real number, no default)
-name <string> Name of the extracted variable to appear in the Sentaurus Workbench
Family Tree. (String, default: "SS")
Note:
If -name "noprint" is used, Sentaurus Workbench extraction is
suppressed.
If -name "out" is used, the name of the variable specified by the
-out keyword also is used as the name that appears in the Sentaurus
Workbench Family Tree.
-f <string> Format string used to write the extracted variable to the Sentaurus
Workbench Family Tree. (String, default: "%.3f")
Returns
None
Example
load_file DATA/IdVgLin_nMOS_des.plt -name DC
set Vgs [get_variable_data "gate OuterVoltage" -dataset DC]
set Ids [get_variable_data "drain TotalCurrent" -dataset DC]
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 <array_name> 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)
-conditions Array with two indices. The string-indexed array contains the elements
<array_name> "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)
Argument Description
-ncond <i> Number of conditions contained in the array specified using the
keyword -conditions. (Integer, no default)
Returns
None
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
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 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 might or might not be numeric, and the values might
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.
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"
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
ext::FindExtrema
Computes all local extrema (either maxima or minima) of a curve. The curve is represented
by two Tcl lists, one containing the x-values (independent variable) and one containing the
corresponding y-values (dependent variable).
Note:
If a curve exhibits a flat top or bottom (two or more neighboring x-values have the
same y-value), then the last x-value is returned as the extrema point.
Syntax
ext::FindExtrema -out <array_name> -x <list_of_r> -y <list_of_r>
[-type "max" | "min"] [-eps <r>]
[-info 0 | 1 | 2 | 3] [-help 0 | 1]
Argument Description
-out <array_name> 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 the x-values corresponding to all the extrema. The values
of the Y element are the extrema. (Array name, no default)
-type "max" | "min" Selects whether to extract the maxima ("max") or minima ("min") of a
curve. Default: "max"
-eps <r> If the difference between two adjacent elements of the list specified
using the keyword -y is less than the value of -eps, both elements are
– 10
considered to be equal. (Real number, default: 1 10 )
Returns
None
Example
set Xs [list 0.0 1.5 2.0 3.0]
set Ys [list 0.0 1.0 0.5 2.0]
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 value of the
keywords -x and -y.
Syntax
ext::FindVals -out <list_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 <list_name> Name of a list to store the y-values. (List name, no default)
-yLog 0 | 1 Selects linear (0) or logarithmic (1) interpolation for y-axis values.
Default: 0
-xLog 0 | 1 Selects linear (0) or logarithmic (1) interpolation for x-axis values.
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]
ext::LinFit
Performs a linear fit y = x m + b to a curve using least-squares regression. The curve is
represented by two Tcl lists, one containing the x-values (independent variable) and one
containing the corresponding y-values (dependent variable).
Syntax
ext::LinFit -out <array_name> -x <list_of_r> -y <list_of_r>
-xmin <r> -xmax <r> [-npar 1 | 2] [-weighted "off" | "on"]
[-weights <list_of_r>] [-info 0 | 1 | 2 | 3] [-help 0 | 1]
Argument Description
-out <array_name> Name of an array to store the results. The array has one string-valued
index. The index contains the elements X, Y, Yestimate, residuals,
slope, yintercept, n, dof, and RMSE. The values of the X element are
a subset of a list of values, specified using the keyword -x. The values
of the Y element are a subset of a list of values, specified using the
keyword -y.
The values of the Yestimate, residuals, slope, yintercept (for -npar 2),
dof, and RMSE elements are the estimated Y values ( yˆ i ), the residuals
( e i ), the estimated slope ( mˆ ), the estimated y-intercept ( bˆ ), the
degrees of freedom (dof), and the root-mean-square error (RMSE),
respectively.
The value of the n element is the number of elements ( n ) in the list
represented by the X element. (Array name, no default)
-xmin <r> Minimum x-value in the range of x-values over which the linear fit is
performed. (Real number, no default)
-xmax <r> Maximum x-value in the range of x-values over which the linear fit is
performed. (Real number, no default)
-weighted "off" | "on" Selects either unweighted ("off") or weighted ("on") linear
regression. Default: "off"
-weights <list_of_r> List containing the values of the weights for each x-value.
(List of real numbers, no default)
Argument Description
Returns
None
Example
set Xs [list 20 60 100 140 180 220 260 300 340 380]
set Ys [list 0.18 0.37 0.35 0.78 0.56 0.75 1.18 1.36 1.17 1.65]
yˆ = x m
ˆ + bˆ (11)
SSE (12)
RMSE = ----------
dof
where the degrees of freedom (dof) for n data points is defined as:
dof = n – 2 (13)
ext::Linspace
Creates a list of n linearly spaced values between and including two real numbers (xmin
and xmax).
Syntax
ext::Linspace -out <list_name> -xmin <r> -xmax <r> -n <i>
[-info 0 | 1 | 2 | 3] [-help 0 | 1]
Argument Description
-out <list_name> Name of a list to store the list of linearly spaced values.
(List name, no default)
-xmin <r> Minimum x-value in the range of x-values over which the list is obtained.
(Real number, no default)
-xmax <r> Maximum x-value in the range of x-values over which the list is
obtained. (Real number, no default)
Returns
None
Example
# Create a list of 11 linearly spaced values between 0 and 1
ext::Linspace -out X -xmin 0 -xmax 1 -n 11
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 (14)
Syntax
ext::LinTransList -out <list_name> -x <list_of_r>
[-m <r>] [-b <r>] [-info 0 | 1 | 2 | 3] [-help 0 | 1]
Argument Description
Returns
None
Example
load_file DATA/IdVgLin_nMOS_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::Log10List
Applies the log10 function to the elements of a list. The elements of the list are replaced by
the function values.
Syntax
ext::Log10List -out <list_name> -x <list_of_r>
[-info 0 | 1 | 2 | 3] [-help 0 | 1]
Argument Description
-out <list_name> Name of a list to store the list of values. (List name, no default)
Returns
None
Example
set Xs [list 10 100 1000]
ext::Log10List -out Ys -x $Xs
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 <array_name> 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)
-eps <r> 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, default: 10–40)
Returns
None
Example
set x [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
ext::RemoveZeros
For a pair of lists x and y, removes zero elements of the list x and the corresponding
elements of the list y.
Syntax
ext::RemoveZeros -out <array_name> -x <list_of_r> -y <list_of_r>
[-iplists "x" | "y" | "xy"] [-eps <r>] [-info 0 | 1 | 2 | 3]
[-help 0 | 1]
Argument Description
-out <array_name> 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 zero 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)
-iplists "x" | "y" | "xy" Input list from which zeros are removed. If -iplists "x" is used,
the zeros are removed from the list specified using the keyword -x.
If -iplists "xy" is used, zeros are removed from both lists
specified using the keywords -x and -y. (String, no default)
-eps <r> If an element of the list specified using the keyword -x is less than
value of -eps, it is removed. (Real number, default: 10–40)
Returns
None
Example
set xs [list 0 1 2 3 0 -1]
set ys [list 10 20 30 40 50 0]
ext::SubLists
Creates a pair of sublists from a pair of lists. One of the lists is the list of x-values. The
second list is the list of y-values. The sublist is created using a range of x-values.
Note:
To create a pair of sublists using a range of y-values, swap the keywords -x and
-y, and specify the range of y-values using the keywords -xmin and -xmax. To
create a sublist from a single list, specify the value of the list using both the -x
and -y keywords.
Syntax
ext::SubLists -out <array_name> -x <list_of_r> -y <list_of_r>
-xmin <r> -xmax <r>
[-info 0 | 1 | 2 | 3] [-help 0 | 1]
Argument Description
-out <array_name> 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. The values of the Y element are a subset of
a list of values, specified using the keyword -y.
(Array name, no default)
-xmin <r> Minimum x-value in the range of x-values over which the sublist is
obtained. (Real number, no default)
Argument Description
-xmax <r> Maximum x-value in the range of x-values over which the sublist is
obtained. (Real number, no default)
Returns
None
Example
set xs [list 1 2 3 4 5 6 7]
set ys [list 10 20 30 40 50 60 70]
lib::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 information level also can be set using the -info keyword of the procedures in the
extraction library.
Syntax
lib::SetInfoDef 0 | 1 | 2 | 3
Argument Description
Returns
None
Example
lib::SetInfoDef 2
References
[1] W. H. Press et al., Numerical Recipes in C: The Art of Scientific Computing,
Cambridge: Cambridge University Press, 2nd ed., 1992.
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).
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 automatically when Sentaurus Visual starts. However, if you have
switched off the automatic loading of extension libraries, then you can load the IFM library
explicitly with the command:
load_library ifm
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>
Each procedure has several arguments. The IFM library uses an input parser that accepts
arguments of the form:
-keyword <value>
Note:
All Sentaurus Visual libraries support the standard Sentaurus Visual syntax in
which keywords are preceded by a dash. For backward compatibility, all
Sentaurus Visual libraries continue to support the keyword= <value> syntax as
well. For each procedure call, you can use either the -keyword <value> syntax
or the keyword= <value> syntax. However, within any one procedure call, only
one type of syntax can be used. Otherwise, an error message will be generated.
Only the new syntax is documented. If you want to continue using the
keyword= <value> syntax, you also can insert space between the keyword and
the equal sign, for example, keyword = <value>. Omitting the space 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 can 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.
If this command is included in a Sentaurus Visual file, when Sentaurus Visual is executed in:
• Batch mode in Sentaurus Workbench, the help information is printed to the runtime
output file (with the extension .out) of the corresponding Sentaurus Visual node.
• Interactive mode in Sentaurus Workbench, the help information is displayed in the Tcl
Console as well as printed in the Sentaurus Visual output file.
You also can enter the command in the Tcl Console of the user interface, in which case, the
help information is displayed in the Console.
Output of Procedures
All procedures of the IFM library pass the results back to the calling program by storing the
results in a Tcl variable or a Tcl array. The name of this Tcl variable or array is specified as
the value of the -out keyword.
If there are errors in the IFM library procedures, the behavior of Sentaurus Visual depends
on whether it is executed in batch mode or interactive mode in Sentaurus Workbench. In
batch mode, Sentaurus Visual exits and an error message is printed only in the Sentaurus
Visual error file (with the extension .err). In interactive mode, the error message is
displayed in the Tcl Console as well as printed in the Sentaurus Visual error file.
All procedures also print several messages (including warning messages). If Sentaurus
Visual is executed in batch mode, the messages are printed only in the Sentaurus Visual
output file; whereas, in interactive mode, the messages are displayed in the Tcl Console as
well as printed in the Sentaurus Visual output file.
The amount of information printed depends on the information level specified by the
procedure lib::SetInfoDef.
ifm::Gauss
Computes the y-value of a normalized Gaussian distribution for a given x-value:
1 x– 2
y = -------------- exp – --- ------------
N
(15)
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 <var_name> Variable name to store the corresponding y-value of the normalized
Gaussian distribution.
-moments <array_name> 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)
Returns
None
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
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
ifm::GetGaussian
Computes either a Gaussian curve:
1 x– 2
G x = -------------- exp – --- ------------
N
(16)
2 2
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
-moments <array_name> 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)
Returns
None
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"
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
-nbin <i> Number of bins for the histogram. (Integer, default: 40)
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"
ifm::GetMoments
Computes the norm, the average, the root mean square (rms), the standard deviation, the
skewness, and the excess kurtosis for a given list of random variables:
N
1
= ---- x i (18)
N
i
N
1-
N i
2
x rms = --- x (19)
i
N
1-
N i
2
= --- x – (20)
i
N
1
y = ---------3- x i –
3
(21)
N
i
N
1
k = ---------4- x i – – 3
4
(22)
N
i
where the norm N is given by the number of random values, the index i enumerates the
random values, µ is the average, x rms is the root mean square, is the standard deviation,
y is the skewness, and k is the excess kurtosis.
Syntax
ifm::GetMoments -out <array_name> -rvs <list_of_r>
[-info 0 | 1 | 2 | 3] [-help 0 | 1]
Argument Description
-out <array_name> Name of a string-valued array to store the computed moments. This
array contains the elements norm, ave, rms, std_dev, skew, and
kurtx. The values of these elements contain the computed norm, the
average, the rms, the standard deviation, the skewness, and the
excess kurtosis of the list of random variables.
(Array name, no default)
Returns
None
Example
set Vs [list 1 2 3 4 5]
ifm::GetMoments -out Moments -rvs $Vs
puts $Moments(norm)
#->5
puts $Moments(ave)
#->3
puts $Moments(rms)
#->3.31662479036
puts $Moments(std_dev)
#->1.41421356237
puts $Moments(skew)
#->0.0
puts $Moments(kurtx)
#->-1.3
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 (23)
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 (24)
Alternatively, you can interpret it as an adjustment of the gate bias:
I d
dV g = – ------------ (25)
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 (26)
• The drain current adjustment method (dI):
I d = I ref d V ref g + dI d (27)
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 might 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
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):
This method uses an error function to smooth out the transition, and you can control the
smoothness by setting the normalization parameter dss. The weights are computed
internally by calling ifm::GetMOSWeights on page 500.
For Id–Vg sweeps in the linear regime, it is recommended to use one of the weighted
methods, preferably the one that gives the smoothest resulting I–V curves.
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 ------------ (29)
I ref d
Even when using the most appropriate Id–Vg construction method, it might happen that for
a certain randomization, the linear current response dI d becomes too large compared to
the nominal current I d and the resulting Id–Vg might exhibit an unexpected shape. This
can result in the unreliable extraction of electrical parameters such as the subthreshold
slope or the threshold voltage for these specific randomizations. You can flag and filter out
such curves by looking at the maximum deviation dI d I d . The maximum deviation is
computed within a user-specified bias range for each constructed Id–Vg and is accessible
using the array element maxdev of the array that also contains the x- and y-values of the Id–
Vg curves. You can limit the bias range by specifying the -vmin and -vmax arguments.
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>
-vmin <r> -vmax <r> -id <string>
[-type IdVg] [-method dV | dI | weighted | SSweighted | exp]
[-smooth yes | no] [-sgn 1 | -1] [-ss <r> -dss <r>]
[-info 0 | 1 | 2 | 3] [-help 0 | 1]
Argument Description
-out <array_name> 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.
The array element maxdev contains the maximum deviation:
maxdev = max| dI I | for vmin < V < vmax
for the given I–V curve. It can be used to filter out curves for which
maxdev is too big, for example, greater than 1.
(Array name, no default)
Argument Description
-sifm <array_name> 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 <var_name> Name of a variable containing the number of rows (bias points) in
the sIFM data. (Variable name, no default)
-i <list_of_r> List containing the reference current values. (List of real numbers,
no default)
-smooth yes | no Activates I–V smoothening for the weighted method. Default: no
Argument Description
Returns
None
Example
set IDs [list rdf ift SUM]
set FILEs [list]
foreach ID $IDs {
lappend FILEs mos_${ID}_I_ndrain.csv
}
ifm::ReadsIFM -out sIFM -nrow Nrow -ncol Ncol -files $FILEs -ids $IDs
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::GetMOSWeights
Computes the weights for the construction of randomized MOSFET Id–Vg curves.
This procedure computes, for each bias point, a weight between 1 and –1 to indicate that the
gate-voltage adjustment method or the drain-current adjustment method is to be used.
For -type IdVg_weighted, the weights are set to 1 or –1 depending on the sign of the
derivative of the transconductance.
For -type IdVg_SSweighted, the weights are computed as:
W = erf -----------------
ss – SS
dss
(30)
where SS is the subthreshold slope, and ss is the user-defined switch-over threshold. The
smoothness of the transition is set by the user-defined normalization parameter dss.
Syntax
ifm::GetMOSWeights -out <list_name> -y <list_of_r>
[-type IdVg_weighted | IdVg_SSweighted]
[-i <list_of_r> -ss <r> -dss <r>]
[-help 0 | 1]
Argument Description
-type IdVg_weighted | Selects the method used for the computation of the weights.
IdVg_SSweighted Default: IdVg_weighted
Argument Description
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)"
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),
and the gate-to-drain admittance y d g :
Id = S d d 1Hz (31)
S d d 1Hz
V g = ----------------------------- (32)
y d g
Syntax
ifm::GetNoiseStdDev -out <array_name> -s <list_of_r> -y <list_of_r>
[-help 0 | 1]
Argument Description
-out <array_name> 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)
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)"
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 <array_name> 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 <array_name>, Name of arrays containing the quantiles of the given data distribution
-gq <array_name> (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 <array_name> 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)
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
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
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 .
This procedure also supports the computation of the drain-current and the gate-voltage
standard deviation for contact resistance variability.
Syntax
ifm::GetsIFMStdDev -out <array_name> -sIFM <string> -y <list_of_r>
[-rsig <r> -ydd <list_of_r> -i <list_of_r>] [-help 0 | 1]
Argument Description
-out <array_name> 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 <string> Name of a comma-separated value (CSV) file containing the sIFM linear
current responses. If this string is set to "crv" the contact resistance
variability is computed instead. (String, no default)
-ydd <list_of_r> List containing the reference Y(d,d) matrix elements. Activated when sIFM
is set to "crv".
(List of real numbers, only needed for contact resistance variability)
Argument Description
-i <list_of_r> List containing the reference current values. Activated when sIFM is set to
"crv". (List of real numbers, only needed for contact resistance variability)
Returns
None
Example
load_file "mos_ac_des.plt" -name Data(AC)
set adgs [get_variable_data a(ndrain,ngate) -dataset Data(AC)]
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 <array_name> 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 <array_name> 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 Names of two-indexed arrays containing the left and right VTC curves.
<array_name>, The first index is string valued. The elements are Header or Data,
-vtc_right where the Header contains the names of the columns, such as Vi(0).
<array_name> 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)
Returns
None
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]
-axisY "Vo($j)"
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 495 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 (33)
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 (34)
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 = – ----------------------------------------------------------- (35)
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 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 <array_name> 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_of_r> List containing the reference VTC input voltage values.
(List of real numbers, no default)
-vout <list_of_r> List containing the reference VTC output voltage values.
(List of real numbers, no default)
-sifm <array_name> 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 <var_name> Name of a variable containing the number of rows (bias points) in the
sIFM data. (Variable name, no default)
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]
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 spaces) 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 spaces)
Syntax
ifm::ReadCSV -out <array_name> -file <string> -ncol <var_name>
[-info 0 | 1 | 2 | 3] [-help 0 | 1]
Argument Description
-out <array_name> 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)
-ncol <var_name> Name of a variable containing the number of columns found in the CSV
file. (Variable name, no default)
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]
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.
This procedure also supports the computation of the linear current responses for contact
resistance variability.
Note:
The CSV files are assumed to have the following format: one header line
containing the names of the datasets (no spaces) 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 spaces)
Syntax
ifm::ReadsIFM -out <array_name> -files <list_of_strings>
-ids <list_of_strings> -nrow <var_name> -ncol <var_name>
[-rsig <r> -nrand <i> -rseed <i> -ydd <list_of_r>] -i <list_of_r>
[-info 0 | 1 | 2 | 3] [-help 0 | 1]
Argument Description
-out <array_name> 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_of_strings> List containing the names of the sIFM CSV data files.
(List of strings, no default)
-ids <list_of_strings> 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 <var_name> Name of a variable to store the number of rows (bias points) found
in the sIFM CSV file. (Variable name, no default)
-nrand <i> Number of random samples. Activated when ids contains "crv".
(Integer, only needed for contact resistance variability)
-rseed <i> Random number seed. Activated when ids contains "crv".
(Integer between 1 and 2147483647; only needed for contact
resistance variability)
-ydd <list_of_r> List containing the reference Y(d,d) matrix elements. Activated
when ids contains "crv".
(List of real numbers, only needed for contact resistance variability)
-i <list_of_r> List containing the reference current values. Activated when ids
contains "crv". (List of real numbers, only needed for contact
resistance variability)
Argument Description
Returns
None
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 42th 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.
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
-csv <array_name> 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 <var_name> Name of a variable containing the number of columns in the CSV data
to be written. (Variable name, no default)
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"
lib::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 information level also can be set using the -info keyword of the procedures in the
IFM library.
Syntax
lib::SetInfoDef 0 | 1 | 2 | 3
Argument Description
Returns
None
Example
lib::SetInfoDef 2
This appendix provides information about the procedures of the RF extraction library.
Under the assumption that a transistor can be modeled by a two-port network, the
procedures of the two-port network radio frequency (RF) extraction library are used to
compute:
• RF parameters from AC analysis data.
• Noise parameters from noise analysis data.
The functionality of the RF extraction library includes:
• RF matrix conversion: Converting an admittance (Y-)matrix to a hybrid (h-)matrix, a
scattering (S-)matrix, and an impedance (Z-)matrix.
• Plotting the small-signal data (conductance, capacitance, and RF parameters). In
addition to rectangular plots, polar plots and Smith charts are supported.
• Plotting the following noise spectral densities (NSDs) or power spectral densities (PSDs)
of various representations (noise equivalent circuits) of a noisy transistor:
◦ Noise voltage spectral density (NVSD) for impedance representation.
◦ Noise current spectral density (NISD) for admittance representation.
• RF parameter extraction:
◦ Computing small-signal current gain, stability criteria such as the Rollett stability
factor and the stability condition delta, various power gains such as maximum
available gain (MAG), maximum stable gain (MSG), Mason’s unilateral gain (MUG),
and unilateral figure of merit.
◦ Extracting transistor figures of merit such as cutoff frequency, maximum frequency of
oscillation, and cutoff frequency for stability.
Syntax Conventions
The RF extraction library uses a unique namespace identifier (rfx::) for its procedures. All
procedures and variables associated with this library are called with the namespace
identifier prepended. For example:
rfx::<proc_name>
Each procedure has several arguments. The RF extraction library uses an input parser that
accepts arguments of the form:
-keyword <value>
Note:
All Sentaurus Visual libraries support the standard Sentaurus Visual syntax in
which keywords are preceded by a dash. For backward compatibility, all
Sentaurus Visual libraries continue to support the keyword= <value> syntax as
well. For each procedure call, you can use either the -keyword <value> syntax
or the keyword= <value> syntax. However, within any one procedure call, only
one type of syntax can be used. Otherwise, an error message will be generated.
Only the new syntax is documented. If you want to continue using the
keyword= <value> syntax, you also can insert space between the keyword and
the equal sign, for example, keyword = <value>. Omitting the space 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 can 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 RF 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>
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.
◦ <fileName>: Replace with the name of a file, or a de-referenced Tcl variable that
evaluates to the name of a file.
◦ <plotName>: Replace with the name of a plot.
• 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.
If this command is included in a Sentaurus Visual file, when Sentaurus Visual is executed in:
• Batch mode in Sentaurus Workbench, the help information is printed to the runtime
output file (with the extension .out) of the corresponding Sentaurus Visual node.
• Interactive mode in Sentaurus Workbench, the help information is displayed in the Tcl
Console as well as printed in the Sentaurus Visual runtime output file.
You also can enter the command in the Tcl Console of the user interface, in which case, the
help information is displayed in the Console.
Output of Procedures
As discussed in Syntax Conventions on page 518, all procedures of the RF 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.
If there are errors in the RF extraction library procedures, the behavior of Sentaurus Visual
depends on whether it is executed in batch mode or interactive mode in Sentaurus
Workbench. In batch mode, Sentaurus Visual exits and an error message is printed only in
the Sentaurus Visual error file (with the extension .err). In interactive mode, the error
message is displayed in the Tcl Console as well as printed in the Sentaurus Visual runtime
error file.
All procedures also print several messages (including warning messages). If Sentaurus
Visual is executed in batch mode, the messages are printed only in the Sentaurus Visual
output file; whereas, in interactive mode, the messages are displayed in the Tcl Console as
well as printed in the Sentaurus Visual runtime output file.
The amount of information printed depends on the information level specified by the
procedure lib::SetInfoDef.
point for all contact-to-contact combinations included in the small-signal analysis (see
A-Matrix, C-Matrix, and Y-Matrix on page 522). The RF extraction library assumes that the
transistor can be modeled by a two-port network as shown in Figure 149.
The functionality of the RF extraction library and the corresponding procedures are:
• Loading the Sentaurus Device AC data file, and creating a Y-matrix and PSD matrices:
The Sentaurus Device AC data file is loaded in Sentaurus Visual using the rfx::Load
procedure, which creates the Tcl array rfx::AC containing the conductance and
capacitance values (see rfx::Load on page 563). This data also is converted to
admittance or Y-parameters, and the Y-parameters or the Y-matrix are stored in the Tcl
array rfx::Y. The rfx::Load procedure also creates the PSD Tcl arrays (corresponding
to PSD matrices) and other variables that are summarized in Table 37 on page 539. For
details about these arrays, see A-Matrix, C-Matrix, and Y-Matrix on page 522 and Power
Spectral Density Matrices on page 524.
• Converting a Y-matrix to other matrices:
The Y-matrix is converted to either an h-matrix, an S-matrix, or a Z-matrix (see Matrix
Conversions on page 529) using the matrix conversion procedures rfx::Y2H (see
rfx::Y2H on page 572), rfx::Y2S (see rfx::Y2S on page 573), and rfx::Y2Z (see
rfx::Y2Z on page 574), respectively. All these matrices are complex and the matrix
conversion procedures internally use the complex arithmetic procedures (see Complex
Arithmetic Support on page 575). The RF parameters Y ij , h ij , S ij , and Z ij are the
elements of the Y-, h-, S-, and Z-matrix, respectively.
• Creating Sentaurus Visual datasets containing small-signal data and noise analysis data:
Sentaurus Visual datasets containing the small-signal data ( a ij , c ij , Y ij , h ij , S ij , or Z ij )
as a function of frequency or bias can be created using the procedure
rfx::CreateDataset (see rfx::CreateDataset on page 542). The datasets
corresponding to the RF parameters contain the real and imaginary parts, as well as the
absolute value and the phase of the RF parameters. The absolute value of these
parameters also can be computed in units of decibel (dB). In addition, Sentaurus Visual
ij ij
datasets containing noise analysis data ( S V and S I ) can be created using the
rfx::CreateDataset procedure.
For a 3D device, the Sentaurus Device AC data file contains the following for each
frequency and bias point:
• a ij , the coefficients or elements of the A-matrix
• c ij , the coefficients or elements of the C-matrix
The A-matrix and C-matrix are converted to an admittance matrix (Y-matrix, Y ) using:
Y = A + jC = A + jB (36)
where:
• j is the imaginary unit.
• = 2f is the angular frequency.
• Matrix B is the susceptance matrix, with coefficients b ij .
The RF extraction library assumes that the transistor can be modeled by a two-port network
as shown in Figure 149. Therefore, the RF extraction library reads only a 2×2 matrix,
corresponding to a two-port network setup. If other ports are present, they are ignored.
For a two-port network, the complex Y-matrix at a particular frequency f and bias point v is
represented by:
Y 11 f v Y 12 f v
Y = (37)
Y 21 f v Y 22 f v
where the elements of the Y-matrix, Y ij , are the admittance (Y-)parameters. The real and
imaginary parts of the complex Y-parameters are given by:
Y ij f v = a ij f v (38)
Y ij f v = b ij f v = c ij f v (39)
where:
• ReIm: 0 (real part) or 1 (imaginary part):
Therefore, the rfx::AC array contains the coefficients a ij f v and c ij f v for all
frequency and bias points. The rfx::Y array contains the coefficients a ij f v and
b ij f v .
To access the small-signal data or the RF parameter for a given bias or frequency, the
appropriate array indices (frequency index and bias point index) must be given.
• Chain representation (equivalent input noise representation): Input noise voltage source
vn and input noise current source in are placed at the input terminals (see Figure 150,
lower-right image).
Figure 150 (Upper left) Two-port network with internal noise sources, and noise equivalent
circuits of a two-port network: (upper right) admittance representation, (lower left)
impedance representation, and (lower right) chain representation
Noisy Noiseless
two-port i n1 two-port i n2
The noise sources are characterized by a mean square value and a PSD:
2
• A noise voltage source vn is characterized by the mean square value v n and the NVSD
Sv .n
2
• A noise current source in is characterized by the mean square value i n and the NISD S i .
n
The NVSD determines the mean square value of the noise voltage source, and the NISD
determines the mean square value of the current voltage source within a frequency interval
of width 1 Hz [2]. Therefore, the units of NVSD are V2/Hz or V2 s, and the units of NISD are
A2/Hz or A2 s. The PSD gives the average power P av that the noise source contributes in a
1 Hz bandwidth around frequency f . The PSD spectrum shows how much average power
the noise source contributes at each frequency [3].
For a noise voltage source, its average power and mean square voltage over a frequency
interval f 1 f 2 are related to its NVSD by:
f2
Sv df
2
P av = vn =
n
(40)
f1
ij
For a contact pair i j (or for nodes i and j ), the NVSD is denoted by S V , and the NISD
ij
is denoted by S I . Autocorrelation PSD corresponds to the case when both terminals are the
same ( i = j ); whereas, the cross-correlation PSD corresponds to the case when both
terminals are different ( i j ).
The following PSDs can be defined for the various representations of the noisy two-port (see
PSDs Computed by Sentaurus Device and RF Extraction Library):
11
• S V : Noise voltage spectral density at the input port in the impedance representation.
22
• S V : Noise voltage spectral density at the output port in the impedance representation.
12 21
• S V and S V : Cross-correlation spectral density between the input and output voltage
noise sources (impedance representation).
11
• S I : Noise current spectral density at the input port in the admittance representation.
22
• S I : Noise current spectral density at the output port in the admittance representation.
12 21
• S I and S I : Cross-correlation spectral density between the input and output current
noise sources (admittance representation).
• S vn : Noise voltage spectral density of the input noise voltage source vn in the chain
representation.
• S in : Noise current spectral density of the input noise current source in in the chain
representation.
• S v i and S i v : Cross-correlation spectral density of the equivalent input noise voltage
andn n
noise current
n n
source (chain representation).
The NISDs in the admittance representation are used to compute the noise correlation
coefficient between the input and output noise current sources C i :
n
12
SI
C i = --------------------
n
(41)
11 22
SI SI
The NISDs are computed for the current through the selected circuit nodes, assuming a
fixed voltage at these nodes. The NVSDs are computed for the voltages at these nodes,
assuming the net current to these nodes is fixed [4].
The NISD is saved as S_I and the NVSD is saved as S_V in the AC data file. In the case of
the autocorrelation coefficient for node i , the NISD is denoted by S_I(i). The
cross-correlation coefficients have both real and imaginary parts. The real part of the NISD
for nodes i and j is denoted by ReS_IXI(i,j). The imaginary part is denoted by
ImS_IXI(i,j). Similar conventions apply to the NVSD.
In addition to the previously mentioned NISD and NVSD, Sentaurus Device writes several
partial noise spectral densities that describe the contribution of specific noise sources.
For example, S_V_ee is the NVSD due to electrons and S_V_eeDiff is the electron NVSD
due to diffusion noise. For a list of all these spectral densities, see the Sentaurus™ Device
User Guide [4].
11 12
S V f v S V f v
SV = (42)
21 22
S V f v S V f v
Similarly, the complex SI-matrix (NISD matrix) at a particular frequency f and bias point v is
represented by:
11 12
S I f v S I f v
SI = (43)
21 22
S I f v S I f v
ij ij
The coefficients S V f v and S I f v are defined in Power Spectral Densities on
page 524.
When the Sentaurus Device AC data file is loaded in Sentaurus Visual using the rfx::Load
procedure, the PSD Tcl arrays (see Table 38 on page 544) are also created if the file
contains PSD data. A Tcl array is created for each PSD data stored in the AC data file. For
example, the Tcl arrays rfx::SV and rfx::SI are created and contain the coefficients
ij ij
S V f v and S I f v (see Table 40 on page 545).
The form of these PSD Tcl arrays is the same as the Tcl arrays rfx::AC and rfx::Y. For
example, the arrays rfx::SV and rfx::SI have the form:
rfx::SV($ReIm,$P1,$P2,$if,$iv)
rfx::SI($ReIm,$P1,$P2,$if,$iv)
where:
ij ij
• For rfx::SV, 0 corresponds to S V f v and 1 corresponds to I S V f v
(Equation 42).
ij ij
• For rfx::SI, 0 corresponds to S I f v and 1 corresponds to I S I f v
(Equation 43).
Each PSD array contains the autocorrelation coefficients (both ports are the same, i = j )
as well as the cross-correlation coefficients (both ports are different, i j ). Since the
autocorrelation values are real, the imaginary part is set to 0.
The PSD arrays for the local noise source (LNS) are created depending on the specific
noise models activated in the Sentaurus Device command file. For example,
rfx::SVeeDiff is created only if the diffusion LNS is specified in the Sentaurus Device
command file.
If there is a named noise specification in the Sentaurus Device command file, this name is
prefixed to the name of the PSD Tcl array: <name>_rfx::SV. For example, if the name of the
noise specification is diff, examples of array names are diff_rfx::SVeeDiff and
diff_rfx::SV.
Note:
Only one noise specification is supported per simulation. It can be either named
or unnamed.
Some of the parameters such as h 21 scale trivially with the device width. For other
parameters such as S-parameters or the unilateral figure of merit, the device width is
important.
Note:
Not all RF quantities scale linearly with the device width. You must use the
keyword AreaFactor in the Sentaurus Device command file to take into account
the device width scaling for 2D structures.
Matrix Conversions
As discussed in Overview of RF Extraction Library Procedures on page 520, the Y-matrix is
converted to either an h-matrix, an S-matrix, or a Z-matrix using the matrix conversion
formulas summarized here [5][6].
with D y = Y 11 Y 22 – Y 12 Y 21 .
1 – Y 11 1 + Y 22 + Y 12 Y 21
S 11 = --------------------------------------------------------------------
Ny
– 2 Y 12
S 12 = --------------
Ny
(47)
– 2 Y 21
S 21 = --------------
Ny
1 – Y 22 1 + Y 11 + Y 12 Y 21
S 22 = --------------------------------------------------------------------
Ny
with:
Y ij = Z o Y ij (48)
where Z o is the characteristic impedance and N y = 1 + Y 11 1 + Y 22 – Y 12 Y 21 .
with D y = Y 11 Y 22 – Y 12 Y 21 .
Amplifier Stability
The Rollett stability factor K is computed from the S-parameters using the formula [6][7]:
1 – S 11 2 – S 22 2 + 2
K = --------------------------------------------------------- (51)
2 S 12 S 21
where:
= S 11 S 22 – S 12 S 21 (52)
The necessary and sufficient conditions for unconditional stability for an amplifier are [6]:
K1
(53)
1
Unconditional stability indicates conjugate matching between output and input loads. For
K 1 , an amplifier is conditionally stable or potentially unstable and must be stabilized.
The maximum available gain (MAG) G ma depends on the stability of the two-port network.
For an unconditionally stable two-port network, that is, if both K 1
and 1 :
2
G ma K 1 1 = G ms K – K – 1 (55)
For K 1 or 1 , MAG is set to MSG [9]:
G ma K 1 1 = G ms (56)
ft and fmax
The frequency dependency of the magnitude of the current gain h 21 is given by [2]:
h 21 -------------------------- (61)
f 2
1 + ----
f
where is the current gain at low frequency, and f is the cutoff frequency or the 3 dB
frequency.
The short-circuit current gain cutoff frequency or the cutoff frequency f t is defined as the
frequency at which h 21 = 1 (unit gain point):
f t f h 21 = 1 = 0 dB (62)
f t is related to f :
f t = f (63)
Equation 61 shows that for f « f (low frequencies):
h 21 (64)
and for f » f (high frequencies):
ft
h 21 --- (65)
f
Converting the unit of h 21 to dB (using Equation 59), Equation 65 can be written as:
h 21 dB = 20 log f t – 20 log f (66)
Therefore, the h 21 (in units of dB) versus log f curve (current gain curve) is flat at low
frequencies, reduces by 3 dB at f , and falls off linearly with a slope of –20 dB/decade with
increasing frequencies.
Let log f 0 h 21 0 dB be a high frequency point at which the –20 dB/decade slope is fully
established. From Equation 66:
ft
20 log ---- = h 21 0 dB (67)
f0
or:
h 21 0 dB 20
f t = f 0 10 (68)
Therefore, Equation 66 implies that f t can also be determined by linear extrapolation from a
high frequency point log f 0 h 21 0 dB on the current gain curve, using Equation 68 [9].
The frequency dependency of MUG or MAG at high frequencies is given by [9]:
2
f max
G ---------
2
(69)
f
where G is either MUG or MAG, and f max is the maximum frequency of oscillation. f max
can be extracted using either MUG or MAG [9].
f max is defined as the frequency at which U = 1 (unit gain point):
f max f U = 1 = 0 dB (70)
or the frequency at which G ma = 1 :
f max f G ma = 1 = 0 dB (71)
f max is the maximum frequency at which power gain can be extracted from an amplifier. It
is also the maximum frequency of oscillation of an oscillator made from an amplifier with
power gain. If U 1 , the transistor is active and f max is extracted. If U 1 , then the
transistor is passive and f max is not extracted [10].
Similar to f t , f max also can be determined by linear extrapolation from a point
log f 0 U 0 dB on the power gain curve ( U in units of dB versus log f ) with a slope of
–20 dB/decade, using [2]:
U 0 dB 20
f max = f 0 10 (72)
A similar equation is used to extract f max from a G ma versus f curve:
G ma 0 dB 20
f max = f 0 10 (73)
slope due to the parasitics (also some parasitics might not be included in the simulation). For
a comparison with experimental results, therefore, method (b) or method (c) might be better.
Figure 151 Different extraction methods and the circumstances under which they might return
inappropriate results
1 GHz
Not Simulated
10 dB
20
dB
/de
Simulated Point
cad
Gain [dB]
20
Gain [dB]
dB
e
/d
Method (a)
eca
de
0 dB Line 0 dB Line
Method (b) Method (c)
Frequency Frequency
The extraction methods assume that, for each value of the control bias or current, a full
frequency sweep is performed. Ideally, this sweep should start at a frequency where the
gain is flat (low-frequency regime) and should end beyond the unit gain point. If the
frequency sweep does not go beyond the unit gain point, method (a) sets the value of f t to
zero. If the frequency sweep does not start in the flat region, methods (b) and (c) still return
a (nonzero) value. However, you must ensure that, at the selected dB point (for method (b))
or the frequency point (for method (c)), the –20 dB/decade slope is established.
The transition between the flat low-frequency region of the gain curves to the –20 dB/
decade slope at higher frequencies can be wide. Sometimes, a clear –20 dB/decade slope
is never reached. In this case, methods (b) and (c) might give incorrect results (often, the
results can be improved by adjusting the dB point used for the extrapolation).
The simulation of a full frequency sweep in Sentaurus Device can be time consuming,
especially for large structures and if many equations are solved. If it is known beforehand
that, at a given frequency, the slope of the gain curves is –20 dB/decade, it is sufficient to
simulate the small-signal response at this single frequency only and to apply method (c).
However, the band of frequencies for which the –20 dB/decade slope assumption holds true
can be very narrow and can depend on the bias conditions.
This discussion shows that using solely one method might give inappropriate results.
Therefore, it is recommended to always use all three methods concurrently. If the f t or f max
curves for all three methods agree well, the results can be trusted with a high level of
confidence. If the results are very different, most likely, the form of the gain curve prevents
a meaningful automatic extraction of f t and f max . In this case, it is suggested to examine
the underlying gain curves and the slope of the gain curves. In most such cases, it is clear
that the assumptions on which the extractions are based are not fulfilled. That is, the gain
curve does not fall off with a clean –20 dB/decade slope at high frequencies.
The equations used to compute the noise figure, the noise parameters, and various other
quantities using the rfx::NoiseFigure procedure (see rfx::NoiseFigure on page 565) are
discussed here [2][11][12][13][14].
The spectral density of the equivalent input noise voltage source S v is computed using:
n
22
SI
S v = ----------- (75)
n Y 21
The equivalent noise resistance R n of the noise voltage source is computed using:
Sv
R n = --------------
n
- (76)
4k B T o
where:
• k B is the Boltzmann constant.
• T o = 290 K is the standard noise temperature.
The normalized equivalent noise resistance r n is computed using:
Rn
r n = ------ (77)
Zo
The equivalent noise conductance G u and the normalized equivalent noise conductance g u
of the uncorrelated noise current component are given by:
S I
12 2
1 - 11
Gu = -------------- S – – 22 -
------------ (78)
4k B T o I
SI
Gu
g u = ------ (79)
Zo
where:
• G cor is the correlation conductance.
• B cor is the correlation susceptance.
The spectral density of the equivalent input noise current source S i is given by:
n
2
S i = 4k B T o Y cor R n + G u
n
(81)
The equivalent noise conductance G n and the normalized equivalent noise conductance g n
of the input noise current source are computed using:
Si
G n = --------------
n
-
4k B T o
(82)
Gn
g n = ------
Zo
The cross-correlation spectral densities S and S of the equivalent input noise voltage
vn in in vn
and noise current sources are given by:
S = Y cor S v
vn in n
(83)
S = S
in vn vn in
The noise correlation coefficient between the equivalent input noise voltage and noise
current source is computed using:
S
in vn
Ci
n vn
= -----------------
- (84)
Si Sv
n n
The source admittance and the source impedance are defined as:
Y s = G s + jB s
1 (85)
Z s = R s + jX s = -----
Ys
where:
• G s is the source conductance.
• B s is the source susceptance.
• R s is the source resistance.
• X s is the source reactance.
The optimum source admittance Y opt is defined as:
Y opt = G opt + jB opt (86)
The optimum source conductance G opt is computed using:
2
G u + R n G cor
G opt = ------------------------------ (87)
Rn
The optimum source impedance Z opt and the normalized optimum source impedance z opt
are defined as:
1
Z opt = R opt + jX opt = ---------
Y opt
(90)
Z opt
z opt = ---------
Zo
rfx::i_biasstart Index of the first element in the list of bias points, rfx::bias
rfx::i_biasend Index of the last element in the list of bias points, rfx::bias
rfx::CreateDataset
Creates a Sentaurus Visual dataset corresponding to an RF matrix or a PSD matrix as a
function of frequency or bias.
Syntax
rfx::CreateDataset -dataset <dataName>
[-rfmatrix "AC" | "Y" | "H" | "Z" | "S" | "SV" | "SI"]
[-dB 0 | 10 | 20]
[-noisename <string>] [-xaxis "frequency" | "bias"]
[-info 0 | 1 | 2 | 3] [-help 0 | 1]
Argument Description
-dataset <dataName> Name of a Sentaurus Visual dataset. The dataset contains variables
for all the RF parameters in the RF matrix specified using the
keyword -rfmatrix, as a function of frequency for each bias point
(-xaxis "frequency") or bias for each frequency (-xaxis
"bias").
For -xaxis "frequency", the variables are created for all the bias
point indices (0 to rfx::i_biasend).
For -xaxis "bias", the variables are created for all the frequency
point indices (0 to rfx::i_freqend).
For example, for -rfmatrix "Y" and -xaxis "frequency", the
dataset contains the Y-parameters as a function of frequency for
each bias point. Therefore, the variables "bias_<i> y<ij>_Re" and
"bias_<i> frequency" are created. Here, i is the bias point index
and ij refers to the port numbers (11, 12, 21, 22). If -dB 10 (or 20)
is specified, 10dB (or 20dB) is appended to the name of the variable
corresponding to the absolute value of the RF parameter. The
variables are summarized in Table 38 on page 544. Similar variables
are created for other RF parameters.
For -rfmatrix "SV" or -rfmatrix "SI", variables for all the power
spectral densities are created. These are summarized in Table 39 on
page 544. In addition, the variables for all of the Y-parameters are
created.
(String, no default)
-rfmatrix "AC" | "Y" | Name of the RF or PSD matrix. (String, default: "AC")
"H" | "Z" | "S" | "SV" |
"SI"
Argument Description
-xaxis "frequency" | Selects the x-axis as either frequency or bias. Selects the sorting
"bias" order. For example, for -xaxis "frequency", the data is created
using a loop with frequency as the inner variable and bias as the
outer variable.
(String, default: "frequency")
Returns
None
Example
# Ex 1: Create AC matrix and Y-matrix
rfx::Load -dataset "ACPLT_nMOS" -file "DATA/nMOS_ac_des.plt" \
-port1 1 -port2 2 -biasport "v(1)" -devicewidth 0.9
Table 38 Dataset variable names for -xaxis "frequency" and -rfmatrix "Y"
bias_<i> y<ij>_Abs List of the absolute values of the Y-parameter, Y ij . This variable is
created if the keyword -dB is not specified or -dB 0 is specified.
Here, ij refers to the port numbers (11, 12, 21, 22); i is the bias point index; iv varies from
rfx::i_biasstart to rfx::i_biasend. These variables are created for all the Y-parameters: Y 11 ,
Y 12 , Y 21 , and Y 22 .
Table 39 Dataset variable names for -xaxis "frequency" and -rfmatrix "SV"
bias_<i> sv<ij>_Im List of the imaginary parts of the NVSD cross-correlation coefficients
ij
( S V , i j ).
bias_<i> sv<ij>_Abs List of the absolute values of the NVSD cross-correlation coefficients,
ij
( S V , i j ). This variable is created if the keyword -dB is not specified
or -dB 0 is specified.
ij
bias_<i> sv<ij>_Phase List of the phases of the cross-correlation coefficients, ( S V , i j ).
Table 39 Dataset variable names for -xaxis "frequency" and -rfmatrix "SV" (Continued)
Here, ij refers to the port numbers (11, 12, 21, 22); i is the bias point index; iv varies from
rfx::i_biasstart to rfx::i_biasend. These variables are created for all of the coefficients of
11 12 21 22
the SV-matrix: S V , S V , S V , and S V .
Note:
ij
Table 39 lists the variables corresponding to S V . Similar variables are created for
ij
S I . For the partial noise spectral densities that describe the contribution of
specific noise sources, the name of the specific noise source is included in
parentheses, for example, svij(ee), svij(eeMonoGR), and
svij_Re(eeMonoGR). If there is a named noise specification, this name is
prefixed to the name of the variable. For example, if the name of the noise
specification is diff, examples of variable names are diff_svij(ee),
diff_svij(eeDiff), and diff_svij_Re(eeDiff).
Table 40 lists examples of PSD matrix coefficients and the corresponding names
of PSD variables in the AC data file, the PSD Tcl array name and element, and
the name of the corresponding dataset variables.
Table 40 PSD data in AC data file, PSD Tcl array element, and dataset variables
NVSD matrix S V
11
S V f v S_V(1) rfx::SV(0,1,1,$if, $iv) sv11
12
S V f v – rfx::SV(0,1,2,$if, $iv) sv12_Re
rfx::SV(1,1,2,$if, $iv) sv12_Im
sv12_Abs
sv12_Phase
21
S V f v ReS_VXV(2,1) rfx::SV(0,2,1,$if, $iv) sv21_Re
ImS_VXV(2,1) rfx::SV(1,2,1,$if, $iv) sv21_Im
sv21_Abs
sv21_Phase
22
S V f v S_V(2) rfx::SV(2,2) sv22
Table 40 PSD data in AC data file, PSD Tcl array element, and dataset variables
GR 12
S V n f v – rfx::SVeeMonoGR(0,1,2,$if,$iv) sv12_Re(eeMonoGR)
rfx::SVeeMonoGR(1,1,2,$if,$iv) sv12_Im(eeMonoGR)
sv12_Abs(eeMonoGR)
sv12_Phase(eeMonoGR)
GR 21
S V n f v ReS_VXV_eeMonoGR rfx::SVeeMonoGR(0,2,1,$if,$iv) sv21_Re(eeMonoGR)
(2,1) rfx::SVeeMonoGR(1,2,1,$if,$iv) sv21_Im(eeMonoGR)
ImS_VXV_eeMonoGR sv21_Abs(eeMonoGR)
(2,1) sv21_Phase(eeMonoGR)
GR 22
S V n f v S_V_eeMonoGR(2) rfx::SVeeMonoGR(0,2,2,$if,$iv) sv22(eeMonoGR)
rfx::Export
Exports the AC array, or the Y-, h-, Z-, or S-matrix, to a CSV file.
Syntax
rfx::Export -rfmatrix "AC" | "Y" | "H" | "Z" | "S"
[-file <fileName>] [-xaxis "frequency" | "bias"]
[-info 0 | 1 | 2 | 3] [-help 0 | 1]
Argument Description
-xaxis "frequency" | Specifies either the frequency or the bias as the axis. Selects the
"bias" sorting order. For example, for -xaxis "frequency", the data is
printed using a loop with frequency as the inner variable and bias as
the outer variable.
Default: "frequency"
Returns
None
Example
# Create AC matrix and Y-matrix.
rfx::Load -dataset "ACPLT_nMOS" -file "DATA/nMOS_ac_des.plt" \
-port1 1 -port2 2 -biasport "v(1)" -devicewidth 0.9
Note:
The CSV file can be loaded into any spreadsheet application. It contains a header
that lists the number of bias and frequency points as well as the value of the first
and last bias and frequency points. The header is followed by a table, which
contains the frequency, the bias, and the real and imaginary parts of the elements
of the RF matrix.
Two versions of the CSV file can be written. One is sorted by frequencies and the
other is sorted by bias points. The keyword -xaxis specifies whether the
parameters should be sorted by frequency first (-xaxis "frequency"), with bias
being the secondary parameter, or by bias first (-xaxis "bias") with frequency
being the secondary parameter. For example, the CSV file Sparam_freq.csv
generated by the rfx::Export command in the above example contains the
following (for -xaxis "bias", the first two columns are reversed):
# of bias pts. : 21, first bias: 0, last bias: 1
# of frequencies: 25, first freq: 1e+08, last freq: 1e+12
bias,freq,S11_Re,S11_Im,S12_Re,S12_Im,S21_Re,S21_Im,S22_Re,S22_Im
0,1e+08,0.9991,-2.38e-05,0.00089,1.08e-05,0.00084,1.08e-05,0.999,
-1.9774e-05, 0,1.47e+08,0.9991,-3.50e-05,0.000899,1.58e-05,0.00084,
1.58e-05,0.999,-2.90e-05
0,2.15e+08,0.999,-5.14e-05,0.000899,2.32e-05,0.00084,
2.32e-05,0.9991,-4.26e-05
...
rfx::GetFK1
Computes the cutoff frequency for stability f K1 (see Cutoff Frequency for Stability on
page 536) at all bias points from the Rollett stability factor versus frequency curves. Creates
the corresponding datasets if the keyword -dataset is specified.
Note:
If f K1 is not found, then the procedure returns 0.
Syntax
rfx::GetFK1 -out <array_name> [-dataset <dataName>]
[-xscale "lin" | "log"] [-scale <r>] [-target <r>]
[-occurrence <i>] [-info 0 | 1 | 2 | 3] [-help 0 | 1]
Argument Description
-out <array_name> Name of an array to store the results. The array has one string-valued
index. The index contains the elements fK1 and bias. The values of
the fK1 element and the bias element are lists of f K1 and bias,
respectively.
(Array name, no default)
-dataset <dataName> Name of Sentaurus Visual dataset containing the variables bias and
fK1. The variable bias contains a list of bias values, and the variable
fK1 contains a list of cutoff frequencies for stability. These variables
can be used to plot a f K1 versus bias curve. The dataset is created
only if this keyword is specified. (String, no default)
Argument Description
-xscale "lin" | "log" Specifies whether the values on the x-axis are linearly or
logarithmically distributed. Default: "log"
-scale <r> Computed f K1 is divided by this scaling factor. Use to convert, for
example, the f K1 value to GHz. (Real number, default: 1.0)
-target <r> Selects the value of K that should be looked for. (Real number,
default: 1.0)
-occurrence <i> Specifies the n-th interpolated f K1 value to be extracted. Use this if
multiple frequencies have the same K-value (specified using the
keyword -target) at a bias point. (Integer, default: 1)
Returns
None
Example
# Create AC matrix and Y-matrix
rfx::Load -dataset "ACPLT_nMOS" -file "DATA/nMOS_ac_des.plt" \
-port1 1 -port2 2 -biasport "v(1)" -devicewidth 0.9
rfx::GetFmax
Computes the maximum frequency of oscillation f max at all bias points from the power gain
(MUG or MAG) versus frequency curves at each bias point. Creates the corresponding
datasets if the keywords dataset and slopedataset are specified.
Note:
This procedure can compute f max using three different methods (see Extraction
Methods for ft and fmax on page 534). If f max is not found, or the power gain is
less than or equal to 1 (device is passive), the procedure returns 0.
Syntax
rfx::GetFmax -out <array_name> -parameter <r> [-method <string>]
[-dataset <dataName>] [-slopedataset <dataName>]
[-powergain "MUG" | "MAG"] [-xscale "lin" | "log"] [-scale <r>]
[-info 0 | 1 | 2 | 3] [-help 0 | 1]
Argument Description
-out <array_name> Name of an array to store the results. The array has one string-valued
index. The index contains the elements fmax and bias. The values of
the fmax element and the bias element are lists of f max and bias,
respectively.
(Array name, no default)
-parameter <r> The dB point for method "b", specified in units of dB, or the frequency
point in units of Hz for method "c". This is a mandatory argument if
method "b" or "c" is used. (Real number, no default)
-method <string> Specifies the method to use for computing f max (see Extraction
Methods for ft and fmax on page 534):
• "a" or "unit-gain-point" extracts f max as the frequency at
which power gain equals one.
• "b" or "extract-at-dbpoint" extracts f max by extrapolating the
power gain from the point at which it has fallen by a certain number
of decibels (called the dB point) from its initial value.
• "c" or "extract-at-frequency" is the same as "b", but the
power gain is extrapolated from the specified frequency point.
(String, default: "a")
Argument Description
-dataset <dataName> Name of Sentaurus Visual dataset containing the variables bias and
fmax. The variable bias contains a list of bias values, and the variable
fmax contains a list of f max values. These variables can be used to
plot a f max versus bias curve. The dataset is created only if -dataset
is specified.
(String, no default)
-powergain "MUG" | Selects the power gain used for extracting f max .
"MAG" (String, default: "MUG")
-xscale "lin" | "log" Specifies whether the values on the x-axis are linearly or
logarithmically distributed. Default: "log"
-scale <r> Computed f max is divided by this scaling factor. Use to convert, for
example, the f max value to GHz. (Real number, default: 1.0)
Returns
None
Example
# Create AC matrix and Y-matrix
rfx::Load -dataset "ACPLT_nMOS" -file "DATA/nMOS_ac_des.plt" \
-port1 1 -port2 2 -biasport "v(1)" -devicewidth 0.9
#-> Bias Points: 0 0.05 0.10 0.15 0.20 0.25 0.30 ...
#-> Max frequency of oscillation: 0.0 0.0 0.0 0.0 172.24 417.31 640.89
...
rfx::GetFt
Computes the cutoff frequency f t at all bias points from the current gain h 21 versus
frequency curves at each bias point. Creates the corresponding datasets if the keywords
dataset and slopedataset are specified.
Note:
This procedure can compute f t using three different methods (see Extraction
Methods for ft and fmax on page 534). If f t is not found or h 21 1 , then the
procedure returns 0.
Syntax
rfx::GetFt -out <array_name> -parameter <r> [-method <string>]
[-dataset <dataName>] [-slopedataset <dataName>]
[-xscale "lin" | "log"] [-scale <r>]
[-info 0 | 1 | 2 | 3] [-help 0 | 1]
Argument Description
-out <array_name> Name of an array to store the results. The array has one string-valued
index. The index contains the elements ft and bias. The values of the
ft element and the bias element are lists of f t and bias, respectively.
(Array name, no default)
-parameter <r> The dB point for method "b", specified in units of dB, or the frequency
point in units of Hz for method "c". This is a mandatory argument if
method "b" or "c" is used. (Real number, no default)
-method <string> Specifies the method to use for computing f t (see Extraction
Methods for ft and fmax on page 534):
• "a" or "unit-gain-point" extracts f t as the frequency at which
h 21 = 0 dB .
• "b" or "extract-at-dbpoint" extracts f t by extrapolating h 21
from the point at which h 21 has fallen by a certain number of
decibels (called the dB point) from its initial value.
• "c" or "extract-at-frequency" is the same as "b", but h 21 is
extrapolated from the specified frequency point.
(String, default: "a")
Argument Description
-dataset <dataName> Name of Sentaurus Visual dataset containing the variables bias and
ft. The variable bias contains a list of bias values, and the variable
ft contains a list of f t values. These variables can be used to plot a
f t versus bias curve. The dataset is created only if -dataset is
specified. (String, no default)
-xscale "lin" | "log" Specifies whether the values on the x-axis are linearly or
logarithmically distributed. Default: "log"
-scale <r> Computed f t is divided by this scaling factor. Use to convert, for
example, the f t value to GHz. (Real number, default: 1.0)
Returns
None
Example
# Create AC matrix and Y-matrix
rfx::Load -dataset "ACPLT_nMOS" -file "DATA/nMOS_ac_des.plt" \
-port1 1 -port2 2 -biasport "v(1)" -devicewidth 0.9
rfx::GetNearestIndex
Finds the index of the entry in an ordered numeric list that is closest to the given target. For
example, this procedure can find the index of a frequency or bias point closest to a
frequency or bias point of interest (see Tcl Arrays rfx::AC and rfx::Y on page 523).
Note:
If the target is outside the range of values in the numeric list, this procedure
returns the index of the first element or the last element in the numeric list.
Therefore, if the frequency or bias point is outside the range of frequency or bias
values, this procedure returns the index of the first element or the last element in
the list of frequency or bias values.
Syntax
rfx::GetNearestIndex -out <var_name> -target <r> -list <list_of_r>
[-info 0 | 1 | 2 | 3] [-help 0 | 1]
Argument Description
-list <list_of_r> An ordered numeric list. The list can be in ascending or descending
order. (List of real numbers, no default)
Returns
None
Example
# Create AC matrix and Y-matrix
rfx::Load -dataset "ACPLT_nMOS" -file "DATA/nMOS_ac_des.plt" \
-port1 1 -port2 2 -biasport "v(1)"
rfx::GetNoiseFigure
Computes the noise figure, the noise parameters, the input-referred spectral densities, and
several other parameters as a function of frequency or bias:
• Noise figure NF (using Equation 94 on page 539) and minimum noise figure NF min
(using Equation 93 on page 539)
• Noise factor F (using Equation 92 on page 539) and minimum noise factor F min (using
Equation 91 on page 539)
• Equivalent noise resistance R n (using Equation 76 on page 537) and conductance G n
(using Equation 82 on page 538)
• Optimum source admittance Y opt (using Equation 87 and Equation 88 on page 538) and
impedance Z opt (using Equation 90 on page 539)
• Equivalent noise conductance G u (using Equation 78 on page 537) and correlation
admittance Y cor (using Equation 80 on page 537)
• Normalized quantities r n , g n , y opt , z opt , and g u
• Input-referred spectral densities S v (using Equation 75 on page 537), S (using
n vn in
Equation 83 on page 538), S (using Equation 83), and S i (using Equation 81 on
in vn n
page 537)
• Noise correlation coefficients C i (using Equation 41 on page 526) and C i v (using
n n n
Equation 84 on page 538)
Note:
This procedure uses the rfx namespace variables rfx::zo and rfx::Zs
(see Characteristic Impedance and Source Impedance on page 541).
Syntax
rfx::GetNoiseFigure -out <array_name> [-xaxis "frequency" | "bias"]
(-target <r> | -index <i>) [-dataset <dataName>]
[-info 0 | 1 | 2 | 3] [-help 0 | 1]
Argument Description
-out <array_name> Name of an array to store the results. The array has one string-valued
index. The index contains the elements summarized in Table 41,
which also summarizes the values of these elements. The index also
contains the element freq (for -xaxis "frequency") or bias (for
-xaxis "bias"). (Array name, no default)
Argument Description
-target <r> Bias point (for -xaxis "frequency") or frequency point (for -xaxis
"bias"). Specify only one of the keywords -target or -index.
(Real number, no default)
-index <i> Index of the bias point (for -xaxis "frequency") or frequency point
(for -xaxis "bias"). Specify only one of the keywords -target or
-index. (Integer, no default)
Table 41 Elements of array index, dataset variable names, and their values
NF, F, NFmin, Fmin NF, F, NFmin, Fmin Noise figure, noise factor, minimum noise
figure, and minimum noise factor.
Rn, Gn, rn, gn Rn, Gn, rn, gn Equivalent noise resistance R n and
conductance G n , and their normalized
values r n and g n .
Gopt, Bopt, Ropt, Xopt, Gopt, Bopt, Ropt, Optimum source conductance, susceptance,
gopt, bopt, ropt, xopt Xopt, gopt, bopt, resistance, and reactance, and their
ropt, xopt normalized values.
ReCi, ImCi, AbsCi, Ci_Re, Ci_Im, Real and imaginary parts, absolute value,
PhaseCi Ci_Abs, Ci_Phase and phase of Cin .
Table 41 Elements of array index, dataset variable names, and their values (Continued)
Sv, ReSvi, ImSvi, ReSiv, Sv, Svi_Re, Svi_Im, S v , real and imaginary parts of S , real
n vn in
ImSiv, Si Siv_Re, Siv_Im, Si and imaginary parts of S i v , and S in .
n n
ReCiv, ImCiv, AbsCiv, Civ_Re, Civ_Im, Real and imaginary parts, absolute value,
PhaseCiv Civ_Abs, Civ_Phase and phase of Cin vn .
Returns
None
Example
# Create AC-matrix, Y-matrix and PSD matrices
rfx::Load -dataset "ACPLT_nMOS" -file "DATA/nMOS_noise_ac_des.plt" \
-port1 1 -port2 2 -biasport "v(1)"
rfx::GetParsAtPoint
Accesses the RF parameters of an RF matrix at a given bias and frequency point.
Syntax
rfx::GetParsAtPoint -out <array_name>
-rfmatrix "AC" | "Y" | "H" | "Z" | "S"
-biaspoint <r> -freqpoint <r>
[-info 0 | 1 | 2 | 3] [-help 0 | 1]
Argument Description
-out <array_name> Name of an array to store the results. The array has one string-valued
index. The index contains the elements bias, freq, 11, 12, 21, and 22.
The values of the bias element and the freq element are the bias and
the frequency point, respectively. The 11, 12, 21, and 22 elements are
the complex RF parameters (list containing real and imaginary parts).
(Array name, no default)
Returns
None
Example
# Create AC- and Y-matrix
rfx::Load -dataset "ACPLT_nMOS" -file "DATA/nMOS_ac_des.plt" \
-port1 1 -port2 2 -biasport "v(1)" -devicewidth 0.9
rfx::GetPowerGain
Computes the following as a function of frequency (at a fixed bias point) or bias (at a fixed
frequency point):
• Rollett stability factor (using Equation 51) and stability condition delta (using
Equation 52)
• MSG (using Equation 54) (linear scale as well as 10 dB scale)
• MAG (using Equation 55 and Equation 56) (linear scale as well as 10 dB scale)
• MUG (using Equation 57) (linear scale as well as 10 dB scale)
• Unilateral figure of merit (using Equation 58)
Note:
If the denominator in Equation 51, Equation 54, Equation 57, or Equation 58 is 0,
the procedure returns a value of 1020.
If MUG, MSG, or MAG is 0, the procedure returns a value of 10–20.
Syntax
rfx::GetPowerGain -out <array_name> [-xaxis "frequency" | "bias"]
(-target <r> | -index <i>) [-dataset <dataName>]
[-powergain "all" | "MUG" | "MSG"| "MAG"]
[-info 0 | 1 | 2 | 3] [-help 0 | 1]
Argument Description
-out <array_name> Name of an array to store the results. The array has one string-valued
index. The index contains the elements K, delta, and freq (for -xaxis
"frequency") or bias (for -xaxis "bias"). The values of the K,
delta, freq, and bias elements are the Rollett stability factor, the
stability condition delta, the frequency, and the bias, respectively.
In addition, for -powergain "all", the index contains the elements
MUG, MUG_dB, MSG, MSG_dB, MAG, MAG_dB, and U. These are
MUG (linear scale), MUG (10 dB scale), MSG (linear scale), MSG (10
dB scale), MAG (linear scale), MAG (10 dB scale), and U f ,
respectively.
For -powergain "MUG", only the MUG, MUG_dB, and U elements
are created.
For -powergain "MSG", only the MSG and MSG_dB elements are
created.
For -powergain "MAG", only the MAG and MAG_dB elements are
created.
(Array name, no default)
-xaxis "frequency" | Specifies either the frequency or bias as the axis. Default:
"bias" "frequency"
-target <r> Bias point (for -xaxis "frequency") or frequency point (for
-xaxis "bias"). Specify only one of the keywords -target or
-index. (Real number, no default)
-index <i> Index of the bias point (for -xaxis "frequency") or frequency point
(for -xaxis "bias"). Specify only one of the keywords -target or
-index. (Integer, no default)
-dataset <dataName> Name of Sentaurus Visual dataset containing the variables K, delta,
and frequency (for -xaxis "frequency") or bias (for -xaxis
"bias"). In addition, for -powergain "all", the variables MSG,
MSG_dB, MAG, MAG_dB, MUG, MUG_dB, and U are created.
For -powergain "MUG", the variables MUG, MUG_dB, and U are
created.
For -powergain "MSG", the variables MSG and MSG_dB are
created.
For -powergain "MAG", the variables MAG and MAG_dB are
created.
(String, no default)
Argument Description
Returns
None
Example
# Create AC matrix and Y-matrix
rfx::Load -dataset "ACPLT_nMOS" -file "DATA/nMOS_trunc_ac_des.plt" \
-port1 1 -port2 2 -biasport "v(1)" -devicewidth 0.9
rfx::Load
Loads a Sentaurus Device AC data file and creates a Sentaurus Visual dataset. It also
creates the Tcl arrays, rfx::AC and rfx::Y (see Tcl Arrays rfx::AC and rfx::Y on page 523),
along with several rfx namespace variables summarized in Table 37 on page 539. The Tcl
arrays for the power spectral densities are created only if the AC data file contains PSD data
(see Power Spectral Density Tcl Arrays on page 527).
Syntax
rfx::Load -file <fileName>
[-biasport <stringValue>] [-biassportsign +1 | -1]
[-dataset <dataName>] [-devicewidth <r>]
[-port1 <integer | stringValue>]
[-port2 <integer | stringValue>]
[-info 0 | 1 | 2 | 3] [-help 0 | 1]
Argument Description
-file <fileName> Name of the Sentaurus Device AC data file. (String, no default)
-biasport Name of biased port. For example, "v(1)" for voltage on port or node
<stringValue> 1, or "i(vc,2)" for current flowing out of the voltage source vc at
port or node 2. (String, default: "v(1)")
-biassportsign +1 | -1 Sign of the bias port. Used to reverse the polarity of the bias.
Default: +1
-dataset <dataName> Name of the created dataset. It contains the data from the Sentaurus
Device AC data file. (String, default: "ACPLT")
-devicewidth <r> Device width multiplier (device width in the z-direction, L z ; see Device
Width Scaling for 2D Structures on page 528) in µm.
(Real number, default: 1.0)
-port1 <integer | Name of the input port of the two-port network. The port name must
stringValue> agree with the node names defined in the Sentaurus Device System
section. (Integer or string, default: 1)
-port2 <integer | Name of the output port of the two-port network. The port name must
stringValue> agree with the node names defined in the Sentaurus Device System
section. (Integer or string, default: 2)
Returns
None
Example
# Create AC matrix and Y-matrix
rfx::Load -dataset "ACPLT_nMOS" -file "DATA/nMOS_ac_des.plt" \
-port1 1 -port2 2 -biasport "v(1)" -devicewidth 0.9
Note:
It is assumed that the Sentaurus Device AC data file contains one or more
frequency sweeps with a voltage bias or current bias as the control variable.
The keyword -biasport defines which port is biased and whether the biasing is
a voltage or a current condition. For a current condition, the syntax for biasport
is more complex. For example, if the name of the current source is vc and the
name of the port is 2, -biasport is specified as -biasport "i(vc,2)".
In this case, however, Sentaurus Device must also be instructed to include the
current at this node through this device in the Sentaurus Device AC data file. This
is performed in the System section of the Sentaurus Device input file with. For
example:
System {
HBT hbt (base=1 collector=2 emitter=0)
Vsource_pset vb ( 1 0 ){ dc = 0 }
Vsource_pset vc ( 2 0 ){ dc = 0 }
ACPlot(v(1) v(2) i(vb 1) i(vc 2))
}
Internally, the arrays rfx::AC and rfx::Y use the port numbers 1 and 2
corresponding to port1 and port2 as array indices (see Tcl Arrays rfx::AC and
rfx::Y on page 523). This convention is also valid for the PSD Tcl arrays.
rfx::NoiseFigure
Computes the noise figure, the noise parameters, the power spectral densities, and other
parameters at a fixed frequency and bias point:
• Noise figure NF (using Equation 94 on page 539) and minimum noise figure NF min
(using Equation 93 on page 539)
• Noise factor F (using Equation 92 on page 539) and minimum noise factor F min (using
Equation 91 on page 539)
• Equivalent noise resistance R n (using Equation 76 on page 537) and conductance G n
(using Equation 82 on page 538)
• Optimum source admittance Y opt (using Equation 87 and Equation 88 on page 538) and
impedance Z opt (using Equation 90 on page 539)
• Equivalent noise conductance G u (using Equation 78 on page 537) and correlation
admittance Y cor (using Equation 80 on page 537)
• Normalized quantities r n , g n , y opt , z opt , and g u
Syntax
rfx::NoiseFigure SI11 SI12 SI22 Y11 Y21
Argument Description
11 12 22
SI11 SI12 SI22 The coefficients S I , S I , and S I of the complex NISD matrix for a fixed
frequency and bias point in the form of three lists. Each list contains the real
and imaginary parts. (List of real numbers, no default)
Y11 Y21 The complex elements Y 11 and Y 21 of the Y-matrix for a fixed frequency and
bias point in the form of two lists. Each list contains the real and imaginary
parts. (List of real numbers, no default)
Returns
An array having one string-valued index. The index contains elements summarized in
Table 41 on page 557, which also summarizes the values of these elements.
Example
set SI11 [list 8.24593987e-23 0.0]
set SI12 [list -3.91285654e-23 -1.08922612e-23]
set SI22 [list 4.57789473e-23 0.0]
set Y11 [list 0.00613324387 0.0170027533]
set Y21 [list -0.00506706586 -0.0060744537]
rfx::PolarBackdrop
Creates a ruled background on which RF parameters in polar coordinates are plotted.
Creates two families of curves: a set of concentric circles and a set of angular lines.
Syntax
rfx::PolarBackdrop -plot <plotName> -r <list_of_r> -phi <list_of_r>
[-dataset <dataName>] [-color <stringValue>]
[-linestyle <stringValue>] [-linewidth <r>]
[-info 0 | 1 | 2 | 3] [-help 0 | 1]
Argument Description
-phi <list_of_r> A list of increasing angular values. (List of real numbers, no default)
-dataset <dataName> Name of the dataset used to create the polar background.
(String, default: "PolarBackdrop")
-color <stringValue> Sets the color of the curves of the polar background.
(String, default: "black")
-linestyle Sets the style of the curve lines of the polar background.
<stringValue> (String, default: "dash")
-linewidth <r> Sets the line width of the curve lines of the polar background.
(Real number, default: 2.0)
Returns
None
Example
set Rs [list 0.25 0.5 0.75 1.0 1.25]
set Phis [list 0 30 60 90 120 150]
rfx::PolarBackdrop -plot Plot_Polar -r $Rs -phi $Phis
rfx::PowerGain
Computes the following at a fixed bias and frequency point:
• Rollett stability factor (using Equation 51) and stability condition delta (using
Equation 52)
• MSG (using Equation 54) (linear scale)
• MAG (using Equation 55 and Equation 56) (linear scale)
• MUG (using Equation 57) (linear scale)
• Unilateral figure of merit (using Equation 58)
Syntax
rfx::PowerGain S11 S12 S21 S22
Argument Description
S11 S12 S21 S22 The complex S-matrix for a fixed frequency and bias point in the form of four
lists. Each list contains the real and imaginary parts of an element S ij of the
S-matrix. (List of real numbers, no default)
Returns
The Rollett stability factor, the stability condition delta, MSG, MAG, MUG, and U f at a fixed
frequency and bias point in the form of a list.
Example
set S11 [list 0.999999877967 -8.36457327936e-05]
set S12 [list -1.20947562066e-07 1.09859319808e-05]
set S21 [list -0.0536108305232 4.08872504539e-05]
set S22 [list 0.997240784695 -2.17611978854e-05]
set Pgain [rfx::PowerGain $S11 $S12 $S21 $S22]
#-> K: -0.009
#-> delta: 0.997
#-> MSG: 4879.658
#-> MAG: 4879.658
#-> MUG: -116265.652
#-> U: 449.598
rfx::RFCList
Accesses a slice of the Y-, h-, Z-, S-matrix, or PSD matrices, typically, to generate a curve
of an RF parameter or PSD as a function of bias or frequency.
Syntax
rfx::RFCList -out <array_name> -rfparameter <string> -index <i>
[-noisename <string>]
[-noisesource "ee" | "hh" | "eeDiff" | "hhDiff" | "eeMonoGR" |
"hhMonoGR" | "eeFlickerGR" | "hhFlickerGR"]
[-xaxis "frequency" | "bias"] [-info 0 | 1 | 2 | 3] [-help 0 | 1]
Argument Description
-out <array_name> Name of an array to store the results. The array has one string-valued
index. The index contains the elements Re and Im. The values of the Re
element and the Im element are lists of the real part and imaginary part,
respectively, of the RF parameter. (Array name, no default)
-rfparameter Parameter identifier. Use, for example, the notation h21 for the h-matrix
<string> element h 21 . For PSDs, use sv<ij> or si<ij>. Here, ij refers to the port
numbers (11, 12, 21, 22). In addition, for partial noise spectral density, use
the -noisesource keyword. (String, no default)
-noisename <string> Name of the noise specification. Required only for -rfparameter sv<ij>
or si<ij>, and when a named noise specification was used to perform
noise analysis. (String, default: "")
Argument Description
-noisesource "ee" | Name of the noise source. Only used for accessing the matrices of partial
"hh" | "eeDiff" | PSDs. For -rfparameter si<ij>, the only allowed values of this
"hhDiff" | keyword are "ee" and "hh". (String, no default)
"eeMonoGR" |
"hhMonoGR" |
"eeFlickerGR" |
"hhFlickerGR"
-xaxis "frequency" Specifies either the frequency or bias as the axis. Default: "frequency"
| "bias"
Returns
None
Example
# For v=0.5, return real and imaginary parts of z11 as a function
# of frequency
rfx::SmithBackdrop
Creates a Smith chart–ruled background on which RF parameters are plotted. Creates two
families of curves: the normalized resistance circles and the normalized reactance
(capacitive or inductive) arcs.
Syntax
rfx::SmithBackdrop -plot <plotName> -r <list_of_r> -x <list_of_r>
[-dataset <dataName>] [-color <stringValue>]
[-linestyle <stringValue>] [-linewidth <r>]
[-info 0 | 1 | 2 | 3] [-help 0 | 1]
Argument Description
-r <list_of_r> A list of normalized resistance values. The list must contain positive
values, which monotonically increase. (List of real numbers, no default)
-x <list_of_r> A list of normalized reactance values. The list must contain nonzero
positive values, which monotonically increase. (List of real numbers, no
default)
-dataset <dataName> Name of dataset used to create the Smith chart background.
(String, default: "SmithBackdrop")
-color Sets the color of the curves of the Smith chart background.
<stringValue> (String, default: "black")
-linestyle Sets the style of the curve lines of the Smith chart background.
<stringValue> (String, default: "dash")
-linewidth <r> Sets the line width of the curve lines of the Smith chart background.
(Real, default: 2.0)
Returns
None
Example
set Rs [list 0 0.3333 1.0 3.0]
set Xs [list 0.268 0.575 1 1.73 3.75]
rfx::SmithBackdrop -plot Plot_Smith -r $Rs -x $Xs
rfx::Y2H
Converts Y-parameters to h-parameters at a fixed frequency and bias point using
Equation 46 on page 529.
Syntax
rfx::Y2H Y11 Y12 Y21 Y22
Argument Description
Y11 Y12 Y21 Y22 The complex Y-matrix for a fixed frequency and bias point in the form of four
lists. Each list contains the real and imaginary parts of an element Y ij of the
Y-matrix. (List of real numbers, no default)
Returns
The complex h-matrix at the fixed frequency and bias point in the form of four lists. Each list
contains the real and imaginary parts of an element h ij of the h-matrix.
Example
set Y11 [list 1.21582e-09 8.33508513295e-07]
set Y12 [list 1.21693e-09 -1.10011034906e-07]
set Y21 [list 0.000536849 -3.81214675594e-07]
set Y22 [list 2.76303e-05 2.15260671987e-07]
rfx::Y2S
Converts Y-parameters to S-parameters at a fixed frequency and bias point using
Equation 47 on page 530. The S-parameters are computed using a characteristic
impedance value that defaults to 50 .
Note:
This procedure uses the variable rfx::z0 (see Characteristic Impedance and
Source Impedance on page 541).
Syntax
rfx::Y2S Y11 Y12 Y21 Y22
Argument Description
Y11 Y12 Y21 Y22 The complex Y-matrix for a fixed frequency and bias point in the form of four
lists. Each list contains the real and imaginary parts of an element Y ij of the
Y-matrix. (List of real numbers, no default)
Returns
The complex S-matrix in the form of four lists at a fixed frequency and bias point. Each list
contains the real and imaginary parts of an element S ij of the S-matrix.
Example
set rfx::z0 100.0
set Y11 [list 1.21582e-09 8.33508513295e-07]
set Y12 [list 1.21693e-09 -1.10011034906e-07]
set Y21 [list 0.000536849 -3.81214675594e-07]
set Y22 [list 2.76303e-05 2.15260671987e-07]
rfx::Y2Z
Converts Y-parameters to Z-parameters at a fixed frequency and bias point using
Equation 49 on page 530.
Syntax
rfx::Y2Z Y11 Y12 Y21 Y22
Argument Description
Y11 Y12 Y21 Y22 The complex Y-matrix for a fixed frequency and bias point in the form of four
lists. Each list contains the real and imaginary parts of an element Y ij of the
Y-matrix. (List of real numbers, no default)
Returns
The complex Z-matrix in the form of four lists at a fixed frequency and bias point. Each list
contains the real and imaginary parts of an element Z ij of the Z-matrix.
Example
set Y11 [list 1.21582e-09 8.33508513295e-07]
set Y12 [list 1.21693e-09 -1.10011034906e-07]
set Y21 [list 0.000536849 -3.81214675594e-07]
set Y22 [list 2.76303e-05 2.15260671987e-07]
The vectorial version operates on either a single list of complex numbers or two lists of
complex numbers. The list of complex numbers is specified using arrays that have one
string-valued index. The index contains the elements Re and Im. The values of the Re
element and the Im element are the real and imaginary parts, respectively, of the list of
complex numbers. For example, the absolute values of the complex numbers z 1 = 2 + 3i
and z 2 = – 1 + i can be computed using the procedure rfx::Abs_v as follows:
set Z(Re) [list 2 -1]
set Z(Im) [list 3 1]
rfx::Abs_v -out absvals -z Z
puts "abs values = $absvals"
#-> abs values = 3.606 1.414
rfx::Abs_c
Computes the absolute value of a complex number.
Syntax
rfx::Abs_c z
Argument Description
Returns
A single value, the absolute value of a complex number.
Example
set z [list 4 3]
puts [rfx::Abs_c $z]
#-> 5.0
rfx::Abs_v
Computes the absolute values of a list of complex numbers, and also computes the absolute
values in units of 10 dB or 20 dB.
Syntax
rfx::Abs_v -out <list_name> -z <array_name> [-dB 0 | 10 | 20]
[-info 0 | 1 | 2 | 3] [-help 0 | 1]
Argument Description
-out <list_name> Name of a list to store the list of absolute values. (List name, no default)
-z <array_name> Name of an array containing a list of complex numbers. The array has one
string-valued index. The index contains the elements Re and Im. The
values of the Re element and the Im element are the real and imaginary
parts, respectively, of the complex numbers. (Array name, no default)
-dB 0 | 10 | 20 Specifies the decibel level for absolute values. If -dB is not specified or
-dB 0 is specified, absolute values are computed on the linear scale.
Default: 0
Returns
None
Example
set Z(Re) [list 1 1 0 -1 -1 -1 0 1]
set Z(Im) [list 0 1 1 1 0 -1 -1 -1]
rfx::Abs_v -out absvals -z Z
puts "abs values = $absvals"
#-> abs values = 1.0 1.414 1.0 1.414 1.0 1.414 1.0 1.414
rfx::Abs2_c
Computes the square of the absolute value of a complex number.
Syntax
rfx::Abs2_c z
Argument Description
Returns
A single value, the square of the absolute value of a complex number.
Example
set z [list 4 3]
puts [rfx::Abs2_c $z]
#-> 25
rfx::Abs2_v
Computes the square of the absolute value of a list of complex numbers.
Syntax
rfx::Abs2_v -out <list_name> -z <array_name>
[-info 0 | 1 | 2 | 3] [-help 0 | 1]
Argument Description
-out <list_name> Name of a list to store the list of the square of absolute values.
(List name, no default)
-z <array_name> Name of an array containing list of complex numbers. The array has one
string-valued index. The index contains the elements Re and Im. The
values of the Re element and the Im element are the real and imaginary
parts, respectively, of the complex numbers. (Array name, no default)
Returns
None
Example
set Z(Re) [list 1 1 0 -1 -1 -1 0 1]
set Z(Im) [list 0 1 1 1 0 -1 -1 -1]
rfx::Abs2_v -out abs2 -z Z
puts "square of abs values = $abs2"
#-> square of abs values = 1.0 2.0 1.0 2.0 1.0 2.0 1.0 2.0
rfx::Add_c
Adds two complex numbers.
Syntax
rfx::Add_c z1 z2
Argument Description
z1 z2 Two lists, each containing the real and imaginary parts of a complex number.
(List of real numbers, no default)
Returns
A list containing the real and imaginary parts of the sum (a complex number)
Example
set z1 [list 1 0]
set z2 [list 0 1]
puts [rfx::Add_c $z1 $z2]
#-> 1 1
rfx::Add_v
Adds two lists of complex numbers.
Syntax
rfx::Add_v -out <array_name> -z1 <array_name> -z2 <array_name>
[-info 0 | 1 | 2 | 3] [-help 0 | 1]
Argument Description
-out <array_name> Name of an array to store the results. The array has one string-valued
index. The index contains the elements Re and Im. The values of the Re
element and the Im element are the real and imaginary parts,
respectively, of the sum of the list of complex numbers specified using the
keywords -z1 and -z2.
(Array name, no default)
-z1 <array_name> Name of an array containing a list of complex numbers. The array has
one string-valued index. The index contains the elements Re and Im. The
values of the Re element and the Im element are the real and imaginary
parts of the complex numbers, respectively. (Array name, no default)
-z2 <array_name> Name of an array containing a list of complex numbers. The array has
one string-valued index. The index contains the elements Re and Im. The
values of the Re element and the Im element are the real and imaginary
parts of the complex numbers, respectively. (Array name, no default)
Returns
None
Example
set Z1(Re) [list 0 1]
set Z1(Im) [list 1 2]
set Z2(Re) [list 1 2]
set Z2(Im) [list 3 4]
rfx::Add_v -out Z -z1 Z1 -z2 Z2
puts "Z(Re)= $Z(Re)"
puts "Z(Im)= $Z(Im)"
#-> Z(Re)= 1 3
#-> Z(Im)= 4 6
rfx::Cart2Polar_c
Converts a complex number from Cartesian to polar coordinates.
Syntax
rfx::Cart2Polar_c z
Argument Description
Returns
A list containing the absolute value and the phase of the complex number.
Example
set z [list 1 1]
set polar [rfx::Cart2Polar_c $z]
puts "abs value = [format %.3f [lindex $polar 0]]"
puts "phase = [lindex $polar 1]"
#-> abs value = 1.414
#-> phase = 45.0
rfx::Cart2Polar_v
Converts a list of complex numbers from Cartesian to polar coordinates.
Syntax
rfx::Cart2Polar_v -out <array_name> -z <array_name>
[-info 0 | 1 | 2 | 3] [-help 0 | 1]
Argument Description
-out <array_name> Name of an array to store the results. The array has one string-valued
index. The index contains the elements Abs and Phase. The values of the
Abs element and the Phase element are the absolute value and the
phase, respectively, of the list complex numbers specified using the
keyword -z. (Array name, no default)
-z <array_name> Name of an array containing a list of complex numbers. The array has
one string-valued index. The index contains the elements Re and Im. The
values of the Re element and the Im element are the real and imaginary
parts, respectively, of the list of complex numbers.
(Array name, no default)
Returns
None
Example
set Z(Re) [list 1 1 0 -1 -1 -1 0 1]
set Z(Im) [list 0 1 1 1 0 -1 -1 -1]
rfx::Cart2Polar_v -out polar -z Z
puts "abs values = $polar(Abs)"
puts "phases = $polar(Phase)"
#-> abs values = 1.0 1.414 1.0 1.414 1.0 1.414 1.0 1.414
#-> phases = 0.0 45.0 89.999 135.0 180.0 -135.0 -89.999 -45.0
rfx::Conj_c
Computes the complex conjugate of a complex number.
Syntax
rfx::Conj_c z
Argument Description
Returns
A list containing the real and imaginary parts of the complex conjugate
Example
set z [list 1 1]
puts [rfx::Conj_c $z]
#-> 1 -1
rfx::Conj_v
Computes the complex conjugate of a list of complex numbers.
Syntax
rfx::Conj_v -out <array_name> -z <array_name>
[-info 0 | 1 | 2 | 3] [-help 0 | 1]
Argument Description
-out <array_name> Name of an array to store the results. The array has one string-valued
index. The index contains the elements Re and Im. The values of the Re
element and the Im element are the real and imaginary parts,
respectively, of the complex conjugate of the list of complex numbers
specified using the keyword -z.
(Array name, no default)
-z <array_name> Name of an array containing a list of complex numbers. The array has
one string-valued index. The index contains the elements Re and Im. The
values of the Re element and the Im element are the real and imaginary
parts, respectively, of the complex numbers. (Array name, no default)
Returns
None
Example
set Z(Re) [list 1 1]
set Z(Im) [list -1 1]
rfx::Conj_v -out Conj -z Z
puts "Real part of complex conjugate= $Conj(Re)"
puts "Imaginary part of complex conjugate= $Conj(Im)"
#-> Real part of complex conjugate= 1 1
#-> Imaginary part of complex conjugate= 1 -1
rfx::Div_c
Divides two complex numbers.
Syntax
rfx::Div_c z1 z2
Argument Description
z1 z2 Two lists, each containing the real and imaginary parts of a complex number.
(List of real numbers, no default)
Returns
A list containing the real and imaginary parts of the quotient (a complex number)
Example
set z1 [list 4 0]
set z2 [list 0 2]
puts [rfx::Div_c $z1 $z2]
#-> 0.0 -2.0
rfx::Div_v
Divides two lists of complex numbers.
Syntax
rfx::Div_v -out <array_name> -z1 <array_name> -z2 <array_name>
[-info 0 | 1 | 2 | 3] [-help 0 | 1]
Argument Description
-out <array_name> Name of an array to store the results. The array has one string-valued
index. The index contains the elements Re and Im. The values of the Re
element and the Im element are the real and imaginary parts, respectively,
of the quotient of the list of complex numbers specified using the
keywords -z1 and -z2. (Array name, no default)
-z1 <array_name> Name of an array containing a list of complex numbers. The array has one
string-valued index. The index contains the elements Re and Im. The
values of the Re element and the Im element are the real and imaginary
parts of the complex numbers, respectively. (Array name, no default)
-z2 <array_name> Name of an array containing a list of complex numbers. The array has one
string-valued index. The index contains the elements Re and Im. The
values of the Re element and the Im element are the real and imaginary
parts of the complex numbers, respectively. (Array name, no default)
Returns
None
Example
set Z1(Re) [list 4 4]
set Z1(Im) [list 7 2]
set Z2(Re) [list 1 3]
set Z2(Im) [list -3 -1]
rfx::Div_v -out Z -z1 Z1 -z2 Z2
puts "Z(Re)= $Z(Re)"
puts "Z(Im)= $Z(Im)"
#-> Z(Re)= -1.7 1.0
#-> Z(Im)= 1.9 1.0
rfx::Im_c
Computes the imaginary part of a complex number.
Syntax
rfx::Im_c z
Argument Description
Returns
A single value, the imaginary part of a complex number
Example
set z [list 1 2]
puts [rfx::Im_c $z]
#-> 2
rfx::Mul_c
Multiplies two complex numbers.
Syntax
rfx::Mul_c z1 z2
Argument Description
z1 z2 Two lists, each containing the real and imaginary parts of a complex number.
(List of real numbers, no default)
Returns
A list containing the real and imaginary parts of the product (a complex number)
Example
set z1 [list 1 0]
set z2 [list 0 1]
puts [rfx::Mul_c $z1 $z2]
#-> 0 1
rfx::Mul_v
Multiplies two lists of complex numbers.
Syntax
rfx::Mul_v -out <array_name> -z1 <array_name> -z2 <array_name>
[-info 0 | 1 | 2 | 3] [-help 0 | 1]
Argument Description
-out <array_name> Name of an array to store the results. The array has one string-valued
index. The index contains the elements Re and Im. The values of the Re
element and the Im element are the real and imaginary parts,
respectively, of the product of the list of complex numbers specified using
the keywords -z1 and -z2. (Array name, no default)
-z1 <array_name> Name of an array containing a list of complex numbers. The array has
one string-valued index. The index contains the elements Re and Im. The
values of the Re element and the Im element are the real and imaginary
parts of the complex numbers, respectively. (Array name, no default)
-z2 <array_name> Name of an array containing a list of complex numbers. The array has
one string-valued index. The index contains the elements Re and Im. The
values of the Re element and the Im element are the real and imaginary
parts of the complex numbers, respectively. (Array name, no default)
Returns
None
Example
set Z1(Re) [list 4 4]
set Z1(Im) [list 7 2]
set Z2(Re) [list 1 3]
set Z2(Im) [list -3 -1]
rfx::Mul_v -out Z -z1 Z1 -z2 Z2
puts "Z(Re)= $Z(Re)"
puts "Z(Im)= $Z(Im)"
#-> Z(Re)= 25 14
#-> Z(Im)= -5 2
rfx::Mulsc_c
Multiplies a scalar and a complex number.
Syntax
rfx::Mulsc_c c z
Argument Description
Returns
A list containing the real and imaginary parts of the product (a complex number) of the scalar
and the complex number
Example
set c 5.0
set z [list 2.0 3.0]
puts [rfx::Mulsc_c $c $z]
#-> 10.0 15.0
rfx::Phase_c
Computes the principal value of the phase (in degrees, in the interval (–180°, 180°]) of a
complex number specified in Cartesian coordinates.
Syntax
rfx::Phase_c z
Argument Description
Returns
A single value, the phase of a complex number
Example
set z [list 1 1]
puts [rfx::Phase_c $z]
#-> 45.0
rfx::Phase_v
Computes the principal value of the phase (in degrees, in the interval (–180°, 180°]) of a list
of complex numbers specified in Cartesian coordinates.
Syntax
rfx::Phase_v -out <list_name> -z <array_name>
[-info 0 | 1 | 2 | 3] [-help 0 | 1]
Argument Description
-out <list_name> Name of a list to store the list of phases. (List name, no default)
-z <array_name> Name of an array containing a list of complex numbers. The array has
one string-valued index. The index contains the elements Re and Im. The
values of the Re element and the Im element are the real and imaginary
parts, respectively, of the complex numbers. (Array name, no default)
Returns
None
Example
set Z(Re) [list 1 1 0 -1 -1 -1 0 1]
set Z(Im) [list 0 1 1 1 0 -1 -1 -1]
rfx::Phase_v -out phases -z Z
puts "phases = $phases"
#-> phases = 0.0 45.0 89.999 135.0 180.0 -135.0 -89.999 -45.0
rfx::Polar2Cart_c
Converts a complex number from polar to Cartesian coordinates.
Syntax
rfx::Polar2Cart_c z
Argument Description
z A list containing the absolute value and the phase of a complex number.
(List of real numbers, no default)
Returns
A list containing the real and imaginary parts of a complex number
Example
set z [list 1.414 45]
set ReIm [rfx::Polar2Cart_c $z]
puts "Real part = [lindex $ReIm 0]"
puts "Imaginary part = [lindex $ReIm 1]"
#-> Real part = 0.999
#-> Imaginary part = 0.999
rfx::Polar2Cart_v
Converts a list of complex numbers from polar to Cartesian coordinates.
Syntax
rfx::Polar2Cart_v -out <array_name> -z <array_name>
[-info 0 | 1 | 2 | 3] [-help 0 | 1]
Argument Description
-out <array_name> Name of an array to store the results. The array has one string-valued
index. The index contains the elements Re and Im. The values of the Re
element and the Im element are the real and imaginary parts,
respectively, of the list of complex numbers specified using the keyword
-z. (Array name, no default)
-z <array_name> Name of an array containing a list of complex numbers. The array has
one string-valued index. The index contains the elements Abs and
Phase. The values of the Abs element and the Phase element are the
absolute value and the phase (in degrees), respectively, of the list of
complex numbers.
(Array name, no default)
Returns
None
Example
set Z(Abs) [list 1.414 1]
set Z(Phase) [list 45 60]
rfx::Polar2Cart_v -out ReIm -z Z
puts "Real part = $ReIm(Re)"
puts "Imaginary part = $ReIm(Im)"
#-> Real part = 0.999 0.5
#-> Imaginary part = 0.999 0.866
rfx::Re_c
Computes the real part of a complex number.
Syntax
rfx::Re_c z
Argument Description
Returns
A single value, the real part of a complex number
Example
set z [list 1 2]
puts [rfx::Re_c $z]
#-> 1
rfx::Sign
Computes the sign of a real number.
Syntax
rfx::Sign r1
Argument Description
Returns
A single value, the sign of a real number
Example
puts [rfx::Sign -2]
#-> -1.0
rfx::Sub_c
Subtracts two complex numbers.
Syntax
rfx::Sub_c z1 z2
Argument Description
z1 z2 Two lists, each containing the real and imaginary parts of a complex number.
(List of real numbers, no default)
Returns
A list containing the real and imaginary parts of the difference (a complex number)
Example
set z1 [list 1 0]
set z2 [list 0 1]
puts [rfx::Sub_c $z1 $z2]
#-> 1 -1
rfx::Sub_v
Subtracts two lists of complex numbers.
Syntax
rfx::Sub_v -out <array_name> -z1 <array_name> -z2 <array_name>
[-info 0 | 1 | 2 | 3] [-help 0 | 1]
Argument Description
-out <array_name> Name of an array to store the results. The array has one string-valued
index. The index contains the elements Re and Im. The values of the Re
element and the Im element are the real and imaginary parts,
respectively, of the difference of the list of complex numbers specified
using the keywords -z1 and -z2. (Array name, no default)
-z1 <array_name> Name of an array containing a list of complex numbers. The array has
one string-valued index. The index contains the elements Re and Im.
The values of the Re element and the Im element are the real and
imaginary parts of the complex numbers, respectively.
(Array name, no default)
-z2 <array_name> Name of an array containing a list of complex numbers. The array has
one string-valued index. The index contains the elements Re and Im.
The values of the Re element and the Im element are the real and
imaginary parts of the complex numbers, respectively.
(Array name, no default)
Returns
None
Example
set Z1(Re) [list 1 1]
set Z1(Im) [list 0 2]
set Z2(Re) [list 0 2]
set Z2(Im) [list 1 4]
rfx::Sub_v -out Z -z1 Z1 -z2 Z2
puts "Z(Re)= $Z(Re)"
puts "Z(Im)= $Z(Im)"
#-> Z(Re)= 1 -1
#-> Z(Im)= -1 -2
lib::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 information level also can be set using the -info keyword of the procedures in the
RF extraction library.
Syntax
lib::SetInfoDef 0 | 1 | 2 | 3
Argument Description
Returns
None
Example
lib::SetInfoDef 2
References
[1] H. Hillbrand and P. H. Russer, “An Efficient Method for Computer Aided Noise
Analysis of Linear Amplifier Networks,” IEEE Transactions on Circuits and Systems,
vol. CAS-23. no. 4, pp. 235–238, 1976.
[2] M. Reisch, High-Frequency Bipolar Transistors: Physics, Modeling, Applications,
Berlin: Springer, 2003.
[3] B. Razavi, Design of Analog CMOS Integrated Circuits, Boston: McGraw-Hill, 2001.
[4] Sentaurus™ Device User Guide, Version V-2024.03, Mountain View, California:
Synopsys, Inc., 2024.
[5] R. S. Carson, High-Frequency Amplifiers, New York: John Wiley & Sons, 2nd ed.,
1982.
[6] R. Ludwig and G. Bogdanov, RF Circuit Design: Theory and Applications, Upper
Saddle River, New Jersey: Prentice Hall, 2nd ed., 2009.
[7] W. Liu, Handbook of III-V Heterojunction Bipolar Transistors, New York: John Wiley &
Sons, 1998.
[8] M. S. Gupta, “Power Gain in Feedback Amplifiers, a Classic Revisited, IEEE
Transactions on Microwave Theory and Techniques, vol. 40. no. 5, pp. 864–879,
1992.
[9] J. D. Cressler and G. Niu, Silicon-Germanium Heterojunction Bipolar Transistors,
Boston: Artech House, 2003.
[10] A. M. Niknejad, Electromagnetics for High-Speed Analog and Digital Communication
Circuits, Cambridge: Cambridge University Press, 2007.
[11] G. Gonzalez, Microwave Transistor Amplifiers: Analysis and Design, Upper Saddle
River, New Jersey: Prentice Hall, 2nd ed., 1997.
[12] V. Rizzoli and A. Lipparini, “Computer-Aided Noise Analysis of Linear Multiport
Networks of Arbitrary Topology,” IEEE Transactions on Microwave Theory and
Techniques, vol. MTT-33. no. 12, pp. 1507–1512, 1985.
[13] M. E. Mokari and W. Patience, “A New Method of Noise Parameter Calculation Using
Direct Matrix Analysis,” IEEE Transactions on Circuits and Systems—I: Fundamental
Theory and Applications, vol. 39. no. 9, pp. 767–771, 1992.
[14] F. Bonani and G. Ghione, Noise in Semiconductor Devices, Modeling and Simulation,
Berlin: Springer, 2001.
AtomicMassConstant 1.660540210e-27 kg
ElectronMass 9.109389754e-31 kg
ElectronVolt 1.6021773349e-19 J
ElementaryCharge 1.6021773349e-19 C
FineStructureConstant 7.2973530833e-3 1
FreeSpaceImpedance 376.730313462
MagneticFluxQuantum 2.0678346161e-15 Wb
Pi 3.141592653589793 1
PlanckConstant 6.626075540e-34 Js
ProtonMass 1.672623110e-27 kg
kT300 0.0258521592446 V
The library uses a unique namespace identifier (const::) for its variables. All variables
associated with this library are accessed with the namespace identifier prepended:
const::<var_name>
For example:
load_library physicalconstants
puts "c=$const::SpeedOfLight"
#-> c=299792458
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.
References
[1] G. Woan, The Cambridge Handbook of Physics Formulas, Cambridge: Cambridge
University Press, 2000.