
6.1 Preferences and Settings
6.2 Tree Navigation
6.3 Parameter and Variable References
6.4 Input Customization
6.5 Script Wrapper for Inspect
6.6 Research Mode
6.7 Third-Party Software Integration
The graphical user interface (GUI) of Sentaurus Workbench can be customized using the Preferences dialog box.
To open the Preferences dialog box: Edit > User Preferences (or press the F12 key).
Here, two useful customization features are shown. For other customization options, refer to the Sentaurus Workbench User Guide.
The first option allows you to change the frame or title colors of an open project so that it looks intuitively better.

Figure 1. Project with changed title color in horizontal orientation.
To change the title color:
Figure 2. Changing color of background title. (Click image for full-size view.)
The second option allows you to change the project orientation: horizontal or vertical. For large projects with many splits, it is more convenient to view them in a horizontal orientation (such as Figure 1).
Small projects with fewer splits look better in a vertical representation (see Figure 3).
Figure 3. Vertical project orientation. (Click image for full-size view.)
To switch between the horizontal and vertical orientation for an open project: View > Display Simulation Flow > Flow Orientation.
To choose the project orientation globally:
Figure 4. Changing project orientation globally. (Click image for full-size view.)
The common strategy for data exchange between different tools in a Sentaurus Workbench project uses the concept of tree navigation, which is based on the fact that each node in a simulation tree receives its unique number. When manipulating tool inputs, you can enter preprocessing commands (for example, #if, #include) and special @...@ constructions, which are evaluated and substituted during a project preprocess.
To view project node numbers: View > Tree Options > Node Numbers (or Ctrl+2).
By pressing the F9 key, you can see both node numbers and parameter values within the same cell (as shown in Figure 1).
The complete Sentaurus Workbench project, showing the standard node navigation and parameter operations, can be studied under Applications_Library/GettingStarted/swb/node_preprocess. Load the project into Sentaurus Workbench and preprocess it (Ctrl+P). Then, look at each particular node input (pp*.cmd) to see how the preprocessor interprets the commands.
The node number for each particular tool in a project can be accessed using the @node@ specification in a tool command file. For example, for the project shown in Figure 1, the following entries have been put into the first tool input (tool1):
| Node specification | Tool instance |
|---|---|
|
@node@ @node:2@ @node:+2@ @node:all@ @node:first@ @node:last@ @node|1@ @node|+1@ @node|+1:all@ #if @node@ != @node:first@ @node:-1@ #else none #endif @node:index@ @node:max@ @node|tool1@ @node|tool2@ @node|tool1:all@ |
![]() |
Table 1 illustrates how Sentaurus Workbench interprets these entries during the project preprocess. The Description column assumes horizontal project orientation. For vertical project orientation, the definitions of the words right and below in the description should be exchanged.
There are other @...@ reserved keywords in Sentaurus Workbench, which can be useful for tree navigation and data analysis. The most frequently used keywords are collected in the second TCLSH tool input (tool2) of the project shown in Figure 1.
| Keyword | Description |
|---|---|
| @previous@ | Returns the node number of the previous node in the tree branch.
Used to create node execution dependency
(see Section 6.2.3 Execution Dependencies). Note that it cannot be used in the first tool input in the flow, for which a previous node does not exist. |
| @experiment@ | Returns the experiment number to which a node belongs.
![]() |
| @experiments@ | Returns all the experiments to which a node belongs as a list. |
| @tool_label@ | The label of a tool instance in the simulation flow.![]() |
| @pwd@ | Returns an absolute path to the project depository. |
| @boundary@ | Returns the full name of the device structure boundary file, which is supposed to be loaded or saved in the current node. This command assumes that a boundary is created by either of the available boundary generators – Sentaurus Process or Sentaurus Structure Editor – and automatically substitutes the keyword with a proper file name. If specified in other tool inputs, this specification will produce a preprocessor error. |
| @tdr@ | Returns the grid file name, given in TDR data format, which appears to be a result of the preceding process simulation or meshing step. Sentaurus Workbench assigns automatically a name according to the provided tool sequence in the project. |
Table 3 summarizes the specially reserved keywords for Sentaurus Device.
| Keyword | Description |
|---|---|
| @grid@ | Returns a grid file name in DF–ISE format (obsolete). A file name is decided automatically according to the provided tool sequence in the project. |
| @doping@ | Returns a doping file name in DF–ISE format (obsolete). A file name is decided automatically according to the provided tool sequence in the project. |
| @tdrdat@ | Returns a file name using the following template n<current_node_number>_des.tdr, which is suitable for the Plot file specification in the File section of the Sentaurus Device command file. Therefore, it is usually used as a parameter of the Plot statement: Plot="@tdrdat@". |
| @plot@ | Returns a file name using the following template n<current_node_number>_des.plt, which is suitable for the Current specification in the File section of the Sentaurus Device command file. It is used as a parameter of the Current statement, Current="@plot@", which refers to results of the electrothermal device simulation (currents, voltages, time, temperature, charges, and so on). |
| @log@ | Returns a file name using the following template n<current_node_number>_des.log, which is suitable for the Output specification in the File section of the Sentaurus Device command file. Therefore, it is usually used as a parameter of the Output statement: Output="@log@". |
| @acplot@ | Returns a file name using the following template n<current_node_number>_ac_des.plt. It is used as a parameter of the ACExtract statement in the File section of the Sentaurus Device command file, ACExtract="@acplot@", which refers to the results of small-signal AC analysis. |
| @parameter@ | Returns a file name using the following template n<current_node_number>_des.par. It is used as a parameter of the Parameter statement in the File section of the Sentaurus Device command file, Parameter="@parameter@", which refers to the input parameter file, containing material properties and the kinetic model coefficients. |
When running a project, the node execution dependency is set according to the value of the Nodes Running Order parameter (Edit > User Preferences > Miscellaneous > Nodes Running Order).
By default, the value is Breadth_First. This instructs Sentaurus Workbench to execute the nodes by row (for projects with horizontal orientation). To execute nodes by column, change it to Depth_First. These settings are only taken into account when no node dependencies are specified in the command file.
To have a node execution dependent on the successful completion of the previous node or nodes in the project tree, the special preprocess command #setdep can be used in the following form:
#setdep <list of nodes>
Having found such a command, the preprocessor ensures that a current node is not executed before all nodes in the list have the status "done".
Table 4 shows how to activate node execution dependencies.
| Command | Result |
|---|---|
| #setdep @node|-1@ | Sets the dependency on a previous node in the project tree branch. |
| #setdep @node|-1:all@ | Requests the node execution only when all nodes in the previous node column are finished. |
| @previous@ | Specifying the keyword @previous@ in the input automatically triggers a corresponding node dependency. |
To unset node dependency, use the #remdep command.
Selecting Preprocess for nodes in the Run Project dialog box, in the Research project configuration, does not generate a node dependency. To activate node dependency, a project or node must be explicitly preprocessed by selecting Nodes > Preprocess Nodes.
Each @...@ reference in Sentaurus Workbench may have an option, specifying whether the reference addresses the input or output interface of a tool.
There are two possible flags (options):
If no option is specified, the Sentaurus Workbench preprocessor assumes the input file ("/i" option), which works seamlessly for most tools. The only exception is Sentaurus Structure Editor, for which you may want to produce either input with the file name extension _dvs (the default setting in Sentaurus Structure Editor) (for debugging purposes) or input for the consequent tool (for example, Sentaurus Mesh). This is where the "/i" and "/o" options are helpful.
For example, the following commands:
@boundary/i@ @boundary/o@
will be interpreted by the Sentaurus Workbench preprocessor as:
pp3_dvs.bnd n3_msh.bnd
This section discusses how to refer to project parameters and variables in Sentaurus Workbench.
As mentioned in Section 4.1 Adding Parameters, a parameter splits the flow at the insertion point to produce variations in the current tool inputs. To access a parameter value, the syntax @<parameter_name>@ is used.
To demonstrate the possible ways to access parameter values, the following entries have been put into the Inspect tool input file (tool3) for the project shown in Figure 1:
@param1@ @param2@ @param3:+2@ @param2|-1:+2@ @param1:all@ @param1|-2:all@
Below are how the corresponding preprocessed entries for the first (upper) node in the column look after preprocessing.
| Command entry | Result after preprocessing |
|---|---|
| @param1@ | 1 |

Figure 5. Reference by parameter name.
| Command entry | Result after preprocessing |
|---|---|
| @param2@ | ABC |

Figure 6. Reference by parameter name.
| Command entry | Result after preprocessing |
|---|---|
| @param3:+2@ | lin |

Figure 7. Combination of reference by parameter name and vertical node shift.
| Command entry | Result after preprocessing |
|---|---|
| @param2|-1:+2@ or @param2|:+2@ |
ABC |

Figure 8. Combination of reference by parameter name, and vertical and horizontal node shifts.
| Command entry | Result after preprocessing |
|---|---|
| @param1:all@ | 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4 5 5 5 5 |
| @param1|-2:all@ | 1 2 3 4 5 |
The @param1:all@ entry in the Inspect tool
instance produces the multiple value param1 list according to the
number of subsequent splits in the Family Tree. To produce the original
list of values, the command should refer to the project tool location
where the parameter has been introduced (Sentaurus Process tool instance).
Alternatively, the list of values produced by the @param1:all@ command
can be sorted using the Tcl lsort command:
!(
puts [lsort -unique [list @param1:all@]]
)!
Variables are special objects, introduced in Sentaurus Workbench, which are used to exchange extracted data values between project tools. Like a parameter, a variable holds a value and can be referenced in any form of the @...@ references. The main difference is that a variable does not create a split in the simulation flow and, therefore, does not change the simulation tree representation.
The #set command is used to define a preprocessed variable and to initialize it:
#set <variable_name> <value>
A variable reference creates an execution dependency from the node where the reference is performed to the first ancestor where the variable has been set.
In the above project, the variable "VAR1" is defined in the first Sentaurus Process tool instance as #set VAR1 @node@.
After project preprocessing, it appears as a single project column following the last tool in the project tool flow.

Figure 9. Variable initialization in Sentaurus Workbench.
The last statement in the Inspect tool command file:
#set square @<@param1@*@param1@>@
illustrates how you can use a parameter in the equation expression and assign a resulting value to the variable, which then appears in the project tree. The #set command here is used to create the variable and assign its value.

Figure 10. Variable declaration and its value assignment using parameter reference and equation expression. The resulting variable value appears on the rightmost side of the project tree.
Another way to have a variable appear in the project is to print its name and value while a node is executed. This is the typical way in which extracted parameter values are sent to the project for further analysis. After a node has been executed successfully, its output file is parsed by Sentaurus Workbench for strings that match the following template:
DOE: <varname> <value>
Then, found values are written to the gvars.dat file and the project view is modified. If a specified variable already exists, the last printed value will overwrite an existing one.
Here are a few examples of how you can write a variable to have it appear in a project tree:
All tool inputs can be accessed from the GUI of Sentaurus Workbench by either selecting Tool > Edit Input, or right-clicking a tool icon and selecting Edit Input.
The corresponding tool inputs in the menu are tool oriented, and their definitions are specified in the global tooldb.tcl file, which is accessible by selecting Edit > Tool DB > Global.
For example, for the Sentaurus Device tool instance, the following specifications are entered in the tooldb.tcl file:
set WB_tool(sdevice,input,commands,file) @tool_label@_des.cmd set WB_tool(sdevice,input,commands,newfile) @tool_label@_des.cmd set WB_tool(sdevice,input,commands,label) Commands... set WB_tool(sdevice,input,commands,editor) text set WB_tool(sdevice,input,parameter,files) sdevice_*.par set WB_tool(sdevice,input,parameter,file) .par set WB_tool(sdevice,input,parameter,newfile) sdevice.par set WB_tool(sdevice,input,parameter,label) "Parameter..." set WB_tool(sdevice,input,parameter,parametrized) 1 set WB_tool(sdevice,input,parameter,preamble) sdevice_par_Si set WB_tool(sdevice,input,parameter,editor) text set WB_tool(sdevice,input,edit,label) "Include Parameter File..." set WB_tool(sdevice,input,edit,cmd) G_ToolInput::GetDatex set WB_tool(sdevice,input,config,label) "Linear Solvers..." set WB_tool(sdevice,input,config,file) [list .sliprc .superrc] set WB_tool(sdevice,input,config,editor) text
These commands instruct Sentaurus Workbench as to which entries should be listed in the Edit Input submenu and how they will be handled when selected. When the Edit Input command is selected, a submenu is displayed, allowing you to select the necessary input and then to edit it.

Figure 11. Standard input file list for Sentaurus Device tool entry.
By default, in the Edit Input submenu, access to the Sentaurus Device command file, parameter file, linear solver settings, and material parameters is provided. If you need to modify the submenu (input list), you can customize it by introducing the necessary corrections in a local project gtooldb.tcl file. The following example shows how you can do this.
Now look at the project, which consists of one Sentaurus Device tool instance and one parameter (see Figure 12).

Figure 12. Example showing how to customize the input file list for the Sentaurus Device tool instance.
The corresponding Sentaurus Workbench project can be found in the directory Applications_Library/GettingStarted/swb/HSpice_bsim4.
In this project, the CMOS inverter behavior is simulated on a circuit level using the HSPICE BSIM4 circuit model. The BSIM4 model parameters for the NMOS and PMOS transistors are loaded from the external file circuit.scf, where the parameter tox is referred.
To ensure that this file can be parameterized, the local project gtooldb.tcl file has been modified.
The first three commands add the new object (circuit) to the file type list, define its standard extension (scf), and add the new object to the Sentaurus Device input file list:
set WB_tool(file_types) [list circuit]
set WB_tool(circuit,ext) scf
set WB_tool(sdevice,input) [list commands parameter config grid doping \
edit tdr circuit]
The next four commands specify the full circuit file name, which must be opened when selecting the corresponding item from the Edit Input submenu, select the label in the tool Edit Input submenu, activate the parameterization possibility for this file, and indicate that a default text editor must be used for this input editing:
set WB_tool(sdevice,input,circuit,file) circuit.scf set WB_tool(sdevice,input,circuit,label) "Circuit..." set WB_tool(sdevice,input,circuit,parametrized) 1 set WB_tool(sdevice,input,circuit,editor) text
This makes it possible for:

Figure 13. Modified input file list for Sentaurus Device, introducing the possibility to edit the circuit file description.
Preprocess the project to see how the @tox@ statement is replaced by its actual values.
At the end of the gtooldb.tcl file of the project, you can see the additional command, which instructs Sentaurus Workbench that the prologue commands must be executed before a Sentaurus Device node execution:
set WB_tool(sdevice,prologue) { catch {os_mkdir_rel n@node@ $wdir}; \
os_cp $wdir/pp@node@_des.scf $wdir/n@node@/pp@node@_des.scf }
The purpose of these commands is to create a subdirectory in the project folder and copy a preprocessed circuit file there. This is performed to overcome a Sentaurus Device limitation, which is always to read the first-found circuit file in the directory specified in the SPICEPath command statement.
Correspondingly, Senaturus Device is instructed to read the circuit file from a specific "./n@node@" path to avoid a circuit file misuse:
File {
...
SPICEPath= "./n@node@"
}
You can visualize single-node curves as well as multiple-node curves using the visualization wrapper script integrated in Sentaurus Workbench. To do this, at least one Inspect tool instance must be present in the project.
Now, you will look at the GettingStarted/SWB_nmos project supplied with the release.
Start Sentaurus Workbench, copy the project to your workspace, and open it. Then, select several Inspect nodes, which correspond to the same Vds bias condition, such as shown in Figure 14.
Figure 14. The SWB_nmos project. (Click image for full-size view.)
After nodes are selected, select Extensions > Run Selected Inspect Nodes Together to launch the visualization wrapper script (see Figure 15).
Figure 15. Extensions menu for launching visualization wrapper script. (Click image for full-size view.)
The wrapper will assemble all the corresponding Id–Vgs curves within one Inspect window (see Figure 16).
Figure 16. Inspect curve assembly by visualization script wrapper. (Click image for full-size view.)
Technically, the wrapper merges the selected Inspect inputs into one command file and then evaluates the file. Therefore, to avoid any unexpected behavior, the following requirements must be met when using the wrapper:
A project can be configured in two different modes:
For an already loaded project, to switch between modes, use Project > Configuration. Every time a project is loaded, its mode is taken according to the configuration setup from the previous session.
For new projects and projects created with previous Sentaurus Workbench releases, the mode is taken according to Edit > User Preferences > Preferences > Project > Configuration > Default Project Configuration.
The project mode status is indicated in the main title bar of the GUI of Sentaurus Workbench, where the full project name is shown.
Table 5 summarizes the differences between the two modes in terms of user ability to control the execution of project nodes.
| Running project criteria | Standard mode | Research mode |
|---|---|---|
| Running project is locked for changes. | Yes | No |
| Automatic checks of project consistency, file timestamps, and execution dependencies. | Yes | No |
| Modifications to tool input files on a node level are allowed. | No | Yes |
| Nodes are forced to be preprocessed when they are run. | Yes | No |
| Modifications to tool input files and tool database files are allowed. | No | Yes |
| Parameterization table accepts changes: 1. Add or remove tools, parameters, and variables. 2. Add or remove experiments or parameter values. 3. Change a parameter value on a node. |
No | Yes |
| Modifications can remove or affect already running nodes. | No | No |
| Preprocessing the whole project or selected nodes is allowed. | No | Yes |
| Adding additional nodes to run, or aborting a project or nodes, is allowed. | Yes | Yes |
When you run a project in Research mode, the Run Project dialog box is displayed (see Figure 17).

Figure 17. Run Project dialog box when project is in Research mode.
By default, the Just run, do not preprocess option is selected, which instructs Sentaurus Workbench not to preprocess the project before it is run. This is helpful if you have already preprocessed the project. If not, the node run will fail. In this case, you need to select the Preprocess, then run option to have nodes preprocessed first.
To make the latter option the default: Project > Configuration > Settings for Research Configuration > How to run nodes by default.
Sentaurus Workbench provides several capabilities to use third-party software with TCAD Sentaurus tools. It is possible to introduce a new tool using the MY TOOL tool instance and to customize its input in the user or project tooldb file.
For more details, refer to the Sentaurus Workbench User Guide, Chapter 10, Integrating Sentaurus Workbench with Other Tools.
This section demonstrates how third-party software can be used in Sentaurus Workbench by integrating the Sentaurus Device Wizard application into Sentaurus Workbench through modifications applied to the input file list of Sentaurus Device. This allows you to use the Sentaurus Device Wizard, which generates an application-based input file for Sentaurus Device.
To launch the Sentaurus Device Wizard inside Sentaurus Workbench:
Figure 18. Sentaurus Device Wizard command entry becomes visible in the Sentaurus Device input file list after applying above modifications to a user tool database file. (Click image for full-size view.)
Section 6 of 6 | back to top | << previous section
Copyright © 2011 Synopsys, Inc. All rights reserved.