8.1 Using Different Simulation Modes
8.2 Using Different Sweep Types
8.3 Using Output Controls
This section describes different simulation modes and discusses the following Sentaurus Device input templates:
The Sentaurus Device command file template for a single-device simulation is featured in a Sentaurus Workbench project located in the directory Applications_Library/GettingStarted/sdevice/SingleDevice.
Click to view the Sentaurus Device command file SingleDevice_des.cmd.txt.
The File, Electrode, and Solve sections are mandatory.
The Thermode section is mandatory only if lattice self-heating is simulated.
The Physics section is optional but, for practical reasons, it is strongly recommended. Otherwise, a very limited set of default models is used.
The Physics sections restricted to specific materials, regions, material interfaces, or region interfaces can be defined optionally.
The Plot section is optional but is recommended. Otherwise, a very limited set of default datasets is written into the output TDR file (see Section 8.3.1 Plot Section Template for details).
The Math section is optional, but the following set of options is recommended:
Math { Extrapolate * (not needed for transient sweeps) #Avalderivatives * (only if Avalanche models are active) RelErrControl Digits=5 * (default) ErrRef(electron)=1.e10 * (default) ErrRef(hole)=1.e10 * (default) Iterations=20 Notdamped=100 }
The Sentaurus Device command file template for a mixed-mode simulation is featured in a Sentaurus Workbench project located in the directory Applications_Library/GettingStarted/sdevice/MixedMode.
Click to view the Sentaurus Device command file MixedMode_des.cmd.txt.
The Device sections for each device, the System section, and the Solve section are mandatory.
For mixed-mode input:
The Sentaurus Device command file template for an AC analysis is featured in a Sentaurus Workbench project located in the directory Applications_Library/GettingStarted/sdevice/AC.
Click to view the Sentaurus Device command file AC_des.cmd.txt.
The Device sections for each device, the System section, and the Solve section are mandatory.
The File section contains the ACExtract keyword.
For AC analysis input:
This section describes different sweep types and discusses the following Sentaurus Device templates:
The first gate voltage Quasistationary sweep in the Solve section of the Sentaurus Device command file SingleDevice_des.cmd.txt reads:
*- Gate voltage sweep Quasistationary( InitialStep=1e-3 Increment=1.3 Decrement=2 MaxStep=0.1 MinStep=1e-5 Goal{ Name="gate" Voltage= 2.2 } ) { Coupled { Poisson Electron Hole eQuantumPotential } ... } *end gate voltage sweep
Sentaurus Device starts from the bias condition, as set in the Electrode section or a previously solved device state, and gradually changes the bias condition until the specified voltage or current goal is reached.
Sentaurus Device uses an internal variable t with 0 ≤ t ≤ 1 for the bias sweeping. The applied bias is given by:
V(t) = Vinitial + t * (Vgoal – Vinitial)
The step sizes and other controls apply to the sweeping of the parameter t.
The sweep starts with the InitialStep. If convergence is good, the step size is increased by a factor whose value is based on a given Increment until it reaches the value of MaxStep.
If convergence cannot be achieved, the current step size is reduced until it becomes smaller than the value of MinStep, in which case, the sweep stops. The step reduction can be controlled by having a Decrement value specified (2 by default) at the same place where Increment is defined.
A Quasistationary section can have more than one Goal statement.
Besides contact biases, other parameters such as compact model parameters and parameters from physical models can be ramped. The following is an example of the syntax, showing how the lattice temperature can be ramped:
*- Example of parameter (lattice temperature) sweep #Quasistationary( #InitialStep=1.e-3 Increment=1.5 #MaxStep=0.05 MinStep=1.e-7 #Goal { Model="DeviceTemperature" Parameter="Temperature" Value=400.} #) { Coupled { Poisson Electron Hole eQuantumPotential } }
The Transient sweep in the Solve section of the Sentaurus Device command file MixedMode_des.cmd.txt reads:
Transient ( InitialTime=0 FinalTime=100e-11 InitialStep=1e-11 Increment=1.3 MaxStep=5e-11 MinStep=1e-15 ){ Coupled { nmos1.poisson nmos1.electron nmos1.hole nmos1.contact circuit } CurrentPlot(Time = (Range = (0 100e-11) Intervals = 40))
Sentaurus Device starts from the current time, which defaults to 0, or as set in the previous Transient section. The step sizes refer to the time Increment.
If convergence is good, the step size is increased by a factor given by the Increment until it reaches the value of MaxStep.
If convergence cannot be achieved, the current step size is reduced until it becomes smaller than the value of MinStep, in which case, the sweep stops. The step reduction can be controlled by having a Decrement value specified (2 by default) at the same place where Increment is defined.
It is recommended not to activate the Extrapolate option in the Math section for transient sweeps.
This section describes different output controls and discusses the following Sentaurus Device input templates:
The Plot section of the Sentaurus Device command file SingleDevice_des.cmd.txt reads:
Plot{ *--Density and Currents, etc eDensity hDensity TotalCurrent/Vector eCurrent/Vector hCurrent/Vector eMobility/Element hMobility/Element eVelocity hVelocity eQuasiFermi hQuasiFermi *--Temperature eTemperature hTemperature Temperature *--Fields and charges ElectricField/Vector Potential SpaceCharge *--Doping Profiles Doping DonorConcentration AcceptorConcentration *--Generation/Recombination SRH Band2Band Auger AvalancheGeneration eAvalancheGeneration hAvalancheGeneration *--Driving forces eGradQuasiFermi/Vector hGradQuasiFermi/Vector eEparallel hEparallel eENormal hENormal *--Band structure/Composition BandGap BandGapNarrowing Affinity ConductionBand ValenceBand eQuantumPotential hQuantumPotential }
All datasets mentioned in the Plot section are saved into the Plot file (as set in the File section) at the end of the simulation or at instances specified by Plot statements in the Solve section (see Section 8.3.2 Plotting, Saving, and Reloading Template).
If unnecessary datasets are selected, the output file becomes unnecessarily large. To deselect a dataset, comment it out with a preceding hash character (#).
By default, scalar data is plotted. To plot vector data, append /Vector to the corresponding dataset, for example, ElectricField/Vector.
Element-based scalar data can be plotted by appending /Element to the corresponding dataset name, for example, eMobility/Element.
Some quantities (solution variables) are put into the Plot file even when they are not listed in the Plot section. This might be troublesome if the grid size is huge and the disk space is small (usually in the case of 3D simulations). To suppress this behavior, use the keyword PlotExplicit in the global Math section.
By default, the plot file also contains additional information required by the Load command to restart a simulation (see Section 8.3.2 Plotting, Saving, and Reloading Template). To suppress writing this additional information, specify -PlotLoadable in the global Math section.
To save, reload, and plot a solution in the Solve section of the Sentaurus Device command file SingleDevice_des.cmd.txt, the Save, Load, and Plot commands are used, respectively. For example, to save a solution, specify:
Solve { ... Save ( FilePrefix = "n@node@_init" ) ... }*end Solve
To plot or save a solution during a (DC or transient) sweep at a set of given values of the t variable, or at regular intervals, for example, 0%, 20%, 40%, ... , 100% of the goal, use the Plot statement in the Quasistationary or Transient statement:
Quasistationary( InitialStep=1e-3 Increment=1.3 Decrement=2 MaxStep=0.1 MinStep=1e-5 Goal{ Name="gate" Voltage= 2.2 } ) { Coupled { Poisson Electron Hole eQuantumPotential } *Plot at a set of given values of the t variable Plot( -Loadable Fileprefix="n@node@_inter" NoOverWrite Time= (0.3; 0.6) ) *Plot at regular intervals #Plot(Fileprefix="n@node@_inter" NoOverWrite Time=(Range=(0 1) Intervals=6)) ... } *end gate voltage sweep
The keyword -Loadable here instructs Sentaurus Device not to write additional information, which would be required only when loading the file with a subsequent Load command. This helps to save disk space, especially for 3D simulations.
The keyword NoOverWrite in the examples instructs Sentaurus Device to create a unique Plot or Save file name for each plotted (or saved) time point. By default, the information is always written into the same file name.
Here are some additional aspects of the Plot, Save, and Load commands:
By default, Sentaurus Device stores the voltages and currents at the contacts in the Current file (.plt file) for each simulated step. However, sometimes, intermediate steps needed to achieve convergence are not required to be stored. Instead, the solutions are needed at a predefined set of points, for example, to compare with experimental data. Use the CurrentPlot statement to achieve this.
In the Solve section of the Sentaurus Device command file SingleDevice_des.cmd.txt, the I–V points are plotted explicitly at predefined time points, or distributed equidistantly within a given range, using the CurrentPlot statement in the Quasistationary statement:
Quasistationary( InitialStep=1e-3 Increment=1.3 Decrement=2 MaxStep=0.1 MinStep=1e-5 Goal{ Name="gate" Voltage= 2.2 } ) { Coupled { Poisson Electron Hole eQuantumPotential } *Plot at a set of given values of the t variable Plot( -Loadable Fileprefix="n@node@_inter" NoOverWrite Time= (0.3; 0.6) ) *Plot at regular intervals #Plot(Fileprefix="n@node@_inter" NoOverWrite Time=(Range=(0 1) Intervals=6)) *I-V calculated at given values of the t variable #CurrentPlot(Time=(0.1; 0.5; 0.8)) *I-V calculated at regular intervals CurrentPlot(Time=(Range=(0 1) Intervals=20)) } *end gate voltage sweep
The value of any quantity mentioned in the Plot section can be monitored during the sweeps using the CurrentPlot section. Do not confuse this feature with the CurrentPlot() statement in Section 8.3.3 Storing I–V Data at Defined Bias Points Template.
For example, in the Sentaurus Device command file SingleDevice_des.cmd.txt, to monitor the electric field at the drain junction:
CurrentPlot { ElectricField/Vector( (0.01 0.025) ) }
This introduces the ElectricField/x and ElectricField/y datasets taken at the (0.01,0.025) position into the corresponding _des.plt file.
Here are some additional aspects of the CurrentPlot section commands:
To redirect the I–V output to a different _des.plt file, use NewCurrentPrefix in the Solve section.
For example, in the Solve section of the Sentaurus Device command file SingleDevice_des.cmd.txt, a high-drain bias Id–Vg simulation is performed. An initial Quasistationary sweep biases up the drain, and then the gate sweep is performed. To ensure that the final dataset (gate sweep) does not include the data from the initial sweep (drain sweep), use:
NewCurrentPrefix="" *- Bias drain to target bias Quasistationary( InitialStep=0.01 MinStep=1e-5 MaxStep=0.1 Goal{ Name="drain" Voltage= 1.1 } ) { Coupled { Poisson Electron Hole eQuantumPotential } } NewCurrentPrefix="IdVgsSat_" *- Gate voltage sweep Quasistationary( InitialStep=1e-3 Increment=1.3 Decrement=2 MaxStep=0.1 MinStep=1e-5 Goal{ Name="gate" Voltage= 2.2 } ) { Coupled { Poisson Electron Hole eQuantumPotential } CurrentPlot(Time=(Range=(0 1) Intervals=20)) } *end gate voltage sweep
This writes the data for the first sweep into the default file n@node@_des.plt, as indicated in the Current statement within the File section. For the second sweep, the data is written into the IdVgsSat_n@node@_des.plt file.
Copyright © 2017 Synopsys, Inc. All rights reserved.