next up previous contents
Next: 4.4 Optimization Process Up: 4. Drive Current Optimization Previous: 4.2 Optimizer Setup


4.3 Simulator Setup

The simulator setup is done in the MINIMOS-NT input deck given in Listing 4.4. Common drift-diffusion equations are used and the hole current density is neglected by binding the hole quasi-Fermi level to 0 V in case of an NMOS transistor (hole-QFL scheme). This speeds up the simulations without loss in accuracy because the hole current does not significantly contribute to the drain current of a unipolar device like an NMOS transistor. Consequently, recombination is also neglected, but turned out to be insignificant for this optimization purpose, anyway. The work-function difference of the gate contact is set to $-$0.55 eV which corresponds to the value of heavily n-doped polysilicon.

Listing 4.4: The MINIMOS-NT input deck for drive current optimizations.
#include <defaults.ipd>

aux gradient    = "<(aux.type)>" == "gradient";
aux repeatlevel = <(aux.repeatlevel)>;
aux onoff       = <(onoff)>;

NMOS : ~DeviceDefaults {
   Input { file = "<(infile)>"; }
   Output {
      file = "mmnt.pbf";
      attributes = if (~gradient, "", defaultInitAttributesDD); 
   }
   Num { useInitFile = if (~gradient, yes, if (~repeatlevel >= 1, no, yes)); }
   Init { file = "<(initfile)>"; }
   Phys {
      srh  = "";
      hole = "";
      holeQFL = "*";
      +Gate { Contact { Ohmic { Ew = -0.55 eV; }}}
   }
}
Device : ~NMOS {
   +Source =  0.0 V;
   +Drain  =  <(vdd)> V;
   +Gate   =  if (~onoff, <(vdd)> V, 0 V);
   +Bulk   =  0.0 V;
}
Num { directSolver = if (~gradient, no, if (~repeatlevel == 1, yes, no)); }
IterateConfig {
   aux normModifier = if ((!~gradient) && (~repeatlevel >= 2),
                          pow(10,~repeatlevel), 1);
   finalNorm        = 1e-2 * normModifier;
}
Iterate { Scheme : SchemeDefaults.DD; }
Curve {
   file = "mmnt";
   Response {
      +VG = output("Device", "V", "Gate");
      +ID = output("Device", "I", "Drain");
   }
   precision = 16;
}

The same input deck can be used for both the on- and off-current simulations by using a boolean auxiliary keyword onoff. Due to the very flexible input deck description language of MINIMOS-NT it is easy to control the two different cases by conditional keyword substitution using the keyword onoff as it is done for the gate voltage in the MINIMOS-NT input deck in Listing 4.4.

Depending on the repeat level and the type of the optimization step (evaluation or gradient) different cases can be distinguished for the simulations. Table 4.1 gives a list of the possible cases.


Table 4.1: Repeat level handling in the MINIMOS-NT input deck.
  gradient step evaluation step
PIF output attributes none electron and hole concentrations, potential distribution, contact voltages
use initialization file yes yes if repeatlevel = 0, otherwise no
iterative or direct solver iterative direct if repeatlevel = 1, otherwise iterative
final norm 10$^{-2}$ 10$^{-2}$ if repeatlevel $\le$ 1, otherwise $\mathrm{10}^{-2+\texttt{\scriptsize repeatlevel}}$

For the gradient steps the repeat level has no effect and, in case of a simulation error, the simulation will be repeated with exactly the same input deck settings. Furthermore, no output attributes are written, since the output PIF file will not be used as an initialization file for subsequent simulations.

In case of an evaluation step the repeat level is used to gradually ``force'' the simulation to succeed any time it is repeated. This is of special importance for the first evaluation step after the gradient calculation, because then the set of optimization parameters sometimes results in an unrealistic doping distribution which can lead to convergence problems. For the first repetition the use of the initialization file is avoided and the direct solver is used instead of the iterative solver. For the second and all subsequent repetitions the linear solver is used again and the termination criterion is loosened by increasing the value of the final norm depending on the repeat level.


next up previous contents
Next: 4.4 Optimization Process Up: 4. Drive Current Optimization Previous: 4.2 Optimizer Setup
Michael Stockinger
2000-01-05