3.6.2 Default System

To provide default values for all possible keywords Minimos-NT extensively uses the inheritance scheme of the Input Deck database. Minimos-NT comes with predefined default files containing default values which are stored in well defined section hierarchies. Default settings exist for each single model parameter as well as for complete device descriptions. The names of the main sections end with Defaults. For instance, the default iteration schemes are defined within the section IterateDefaults and the default settings for devices are stored in the section DeviceDefaults.

Setting up a simulation is very simple: First, the default files have to be loaded. To use default values the corresponding global default sections have to be inherited to the standard sections of Minimos-NT. For all sections needed by the simulator, the standard sections of Minimos-NT, the default inheritance schemes are predefined. Finally the input/output files and the contact values have to be chosen.

To modify or adjust the settings, the user can simply change the standard sections by locally overriding the default values. The Input Deck database assists the user by applying a checking mechanism when local modifications are performed in sections. Only those items defined in the parent sections which are inherited to the standard sections may be overloaded. Otherwise an error message is thrown to avoid misspelling of names. New items can be added but they have to be marked explicitly. If this checking mechanism is not desired, it can be turned off for each section.

The following example shows a short input file for the simulation of a hetero-junction bipolar transistor. First, the default files are loaded with the #include command. The Device section which describes the properties of the device is inherited from the default section DeviceDefaults defined in the default files which holds all the default information. Then the contact voltages are set. In this example the base voltage is stepped from $ 0.1\,V$ to $ 1.2$ using a step size of $ 0.1\,V$. The input/output files are specified. For the base segment a different bandgap narrowing model is chosen. Finally, the section Curve describes the curve file to hold the output curves. Here, the curve file sige-hbt_out.crv is written and for each base voltage stepped the emitter and collector voltages are written.

#include <defaults.ipd>
Device : DeviceDefaults
{  +EmitterContact   = 0.0 V;
   +BaseContact      = step(0.1, 1.2, 0.1, name = "Base");
   +CollectorContact = 2.0 V;
   Input  { file = "sige-hbt";     }
   Output { file = "sige-hbt_out"; }
   Phys
   {  +Base
      {  bandGapNarrowing = "Si_B";
      }
   }
}
Curve
{  file = "sige-hbt_out";
   Response
   {  +VE = output("Device", "V", "EmitterContact");
      +VC = output("Device", "V", "CollectorContact");
   }
}

Robert Klima 2003-02-06