4.3.8 Device Templates

A device template mechanism is implemented, enabling devices with customizable geometries to be simulated without requiring an externally provided mesh or a device holding a doping a profile generated by a process simulator. The implemented approach interfaces with the device, configuration, and problem component to prepare a ready-to-simulate device. Each template implementation holds a device object, which is being prepared for simulation by the device template’s generation method. The device is specialized according to the template type, for instance, a device holding a two-dimensional triangular mesh. Also, the device is used to assign segment roles and additional meta information, such as manually assigned segment-based doping values. The configuration component is specialized according to the nature of the device at hand. For instance, a three-dimensional DD-based device might need specialized solver parameters, such as a specific preconditioner. Such specialized solver parameters can either be derived from time-consuming trial and error investigations or via automatic approaches, such as heuristical methods where the simulator determines optimal properties based on the evaluation of a set of possible property combinations. Overall, a device template must preset the configuration parameters accordingly, to provide a reasonable simulation configuration to ultimately enable the subsequent simulation step to converge.

With respect to defining the device geometry, each template provides an associative container holding a set of device-specific geometry parameters, such as the individual point vectors describing the geometry or - more conveniently - the oxide thickness, as required by for instance MOSFET devices. Obviously the set of parameters supporting customization is template specific, each implementation can offer different options. This flexibility is vital as the plethora of potentially available devices requires entirely different geometry properties. For instance, a bipolar transistor does usually not have an oxide, thus providing an oxide thickness parameter is not just wasted but indeed would be wrong. The fact that the parameters may be customized prior to the actual generation, gives rise to the design rationale to decouple the generation step from the setup step. Therefore, the parameters can be customized prior to the generation step, allowing to non-intrusively change the device geometry of the generated device.

Figure 4.14 depicts the essential steps of a device template implementation. With respect to the implementation, a virtual class hierarchy is utilized, allowing to extend the set of supported device templates by adding additional device template specializations. Due to the generic interface of this class hierarchy, devices of arbitrary nature are supported.


pict


Figure 4.14: The essential steps of a device template implementation are shown. Grey components indicate preparation steps, whereas blue components relate to tasks triggered by the generation of the device. When the device is generated, it can be immediately simulated.