State-of-the-art device simulators require a huge number of different information in addition to the device input data. Simulation parameters and parameter dependencies, models to use, material information, or circuit descriptions must be handled. This information is hierarchically structured. For instance, materials can be divided in insulators, conductors, or semiconductors. Many different kinds of insulators and semiconductors exist, which partly require similar or rather different material properties and models. Another example is the specification of circuits, which may contain of an arbitrary number of subcircuits and devices. The devices may be compact models or real two-, or three-dimensional devices and have to be described properly. Moreover, the subcircuits and the devices have to be connected and voltages or currents have to be applied.
These examples show that the information needed to set up a simulation is very complex. Therefore, the simulator must be able to handle a huge amount of information of different kind and different type and arbitrary hierarchically structured data. Nevertheless, the user must be able to modify this information in a simple and efficient way.
Since it is impossible for the user to define the complete set of input parameters needed for simulation, default values have to be available and the user must be able to read or modify them. Therefore, the information must be stored in a user-friendly way. For a convenient control, the definition of arbitrary user-defined default settings must be possible.
Various types of data are used in device simulations: Numbers which may be integer, real, or complex, texts, names, yes/no decisions, or formulas which describe dependencies of a set of parameters. Since some parameters change during simulation, e.g., the time for transient simulations or the output current at certain contacts, the evaluation of formulas must not take place before but during simulation. Therefore, formulas must be stored and have to be evaluated efficiently since such a complex control system may have impact on the performance of the simulator when many formulas have to be evaluated in the inner loop.
Not only information is read and queried by the simulator. During a simulation several information has to be passed to the control system, such as the time in transient simulations as mentioned before, the iteration counter, or norms of the actual solving iteration. This information can be used in the formulas as well forming a feedback loop.
As a consequence, simple control systems like static input files containing a sequence of static keywords or the use of the command line are no longer sufficient. To obtain a maximum of flexibility a specialized control system called the Input Deck database has been developed to control state-of-the-art device simulators like Minimos-NT. The Input Deck database provides its own description language IDDL (see Appendix A) to read and store databases in and to files.
Minimos-NT is completely controlled via the Input Deck. This includes, e.g., the control of the input and output files, the simulation modes, the iteration schemes, the physical models to use, the physical parameters, the material database, or circuit descriptions. Even for three-dimensional simulations a sophisticated simulation control is necessary, because three-dimensional simulations normally are time and resource consuming and convergence may be poor. Therefore, it is sometimes necessary to adjust simulation parameters during runtime. For example, the condition when the simulation has to stop can be modified and changes to the iteration scheme are feasible. The control of the simulator is discussed in the following chapter in more detail.
Robert Klima 2003-02-06