MINIMOS-NT is a general purpose device simulator capable to cope with arbitrary device structures and geometries, heterostructures, drift-diffusion and hydro-dynamic simulation, selfheating simulation, static and transient simulation, physical models for the temperature range - , abstracted material handling, thermal MIXED-MODE simulation. While its roots reach back as far as to the widely known MINIMOS 6 device simulator [51,50] it has been redesigned from scratch to comply with the requirements of arbitrary shaped devices, recent device modeling approaches [15,54] and mixed-mode [17] simulation.
Recently it has been equipped with the Algorithm Library which serves in conjunction with the input deck library [45,4] for the definition and administration of all physical models involved in device simulations (carrier mass, energy relaxation times of carriers, conduction and valence band energies, permittivities, thermal heat flux, band gap narrowing, Shockley-Read-Hall lifetimes, drift-diffusion and hydro-dynamic mobilities of carriers, charge states, band-to-band tunneling). Furthermore the Algorithm Library extensions for MINIMOS-NT contain Model base classes for the description of interface and device Models.
According to the Algorithm Library concepts, an application specific set of Model, Parameter, and Interface classes forms the basis for the integration of all of these models. Fig. 6.1 depicts the layout of the MINIMOS-NT Model hierarchy starting with two basic Model types derived from the Algorithm Library Model class:
MmpModel classes are grouped into various Model types reflecting all kinds of physical models required for the device simulations, e.g. the MmpMobilityModel class types for the definition of all sorts of mobility models. These Model classes define the Interface used by implementations of actual physical Model implementations like the MINIMOS 6 compatible MmpMobility_MM6 mobility model. Strict naming conventions for Model class names in conjunction with private methods of the MmpModel and MmxDevice classes ensure the tight coupling of the Algorithm Library with the input deck library.
Example 6.1 depicts the definition of a new mobility model by using MDL. The constructor method of the thereby defined MobilityDD_Test Model introduces new IPL keywords (uL300, beta, ...) by using the method readKeywords and the keyword-list key inherited from MmpModel. Thereafter the values of the IPL keywords can be accessed for evaluating the Model using conforming local Parameters. Example 6.2 shows an proper MINIMOS-NT IPL input deck which selects the newly defined MobilityDD_Electron_Test mobility model for electrons on the emitter segment and supplies a value for the keyword uL300.
set $MDLPREFIXSTRING = "Mmp";
NewModel MobilityDD_Test : MobilityModel {
Local { // declare some local parameters
Parameter<double> lastTL; // lattice temperature before
Parameter<double> uL; // lattice mobility
...
}
construct { // setup of IPL keywords
key["uL300"] = {{ Quantity Mobility }};
key["beta"] = {{ Real }};
...
call readKeywords;
lastTL = 0.0; // Lattice temperature for last evaluation
}
evaluate { // compute mobility and derivatives
if (:TL != lastTL) {
...
// the value of uL300 is defined on the IPL input deck
uL = uL300 * exp(logTL300 * uLexpT);
...
}
// Compute results and store them into the inherited
// interface parameters (:u = mobility,...)
// ====================================================
:u = uLISF;
:uDF = uLISFDf;
:uDE = 0.0;
:uDTC = :uDTL;
}
}
AliasedModel MobilityDD_Electron_Test : MobilityDD_Test {}
AliasedModel MobilityDD_Hole_Test : MobilityDD_Test {}
Example 6.1: Definition of a new MINIMOS-NT mobility model
#include <defaults.ipd>
Device : DeviceDefaults {
Phys {
Emitter {
Electron {
mobilityDD = "Test";
MobilityDD {
Test {
uL300 = 1430 "cm^2/V*s"; // Zero field mobility at 300 K.
}
}
}
}
}
}
Example 6.2: Selection of the new MINIMOS-NT mobility model