Sentaurus Device
8. Input File Templates

8.1 Using Different Simulation Modes
8.2 Using Different Sweep Types
8.3 Using Output Controls

Objectives

8.1 Using Different Simulation Modes

This section describes different simulation modes and discusses the following Sentaurus Device input templates:

8.1.1 Single-Device Input Template

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.

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
}

8.1.2 Mixed-Mode Input Template

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.

The Device sections for each device, the System section, and the Solve section are mandatory.

8.1.2.1 Specifics of Mixed-Mode Input

For mixed-mode input:

8.1.3 AC Analysis Input File Template

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.

The Device sections for each device, the System section, and the Solve section are mandatory.

The File section contains the ACExtract keyword.

8.1.3.1 Specifics of AC Analysis Input

For AC analysis input:

8.2 Using Different Sweep Types

This section describes different sweep types and discusses the following Sentaurus Device templates:

8.2.1 Quasistationary Sweep Template

The first gate voltage Quasistationary sweep in the Solve section of the Sentaurus Device command file SingleDevice_des.cmd 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) = V_{\text"initial"} + t ยท (V_{\text"goal"} - V_{\text"initial"}) \]

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 } }

8.2.2 Transient Sweep Template

The Transient sweep in the Solve section of the Sentaurus Device command file MixedMode_des.cmd 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.

8.3 Using Output Controls

This section describes different output controls and discusses the following Sentaurus Device input templates:

8.3.1 Plot Section Template

The Plot section of the Sentaurus Device command file SingleDevice_des.cmd 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
  ImpactIonization eImpactIonization hImpactIonization
  
  *--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.

8.3.2 Plotting, Saving, and Reloading Template

To save, reload, and plot a solution in the Solve section of the Sentaurus Device command file SingleDevice_des.cmd, 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:

8.3.3 Storing I–V Data at Defined Bias Points Template

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, 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

8.3.4 Monitoring Non-I–V Quantities During a Sweep Template

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

8.3.5 Redirecting I–V Output Template

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

main menu    |   module menu    |   << previous section    |   next section >>