2.5 Concept of the WAFER-STATE-SERVER

The major requirements as outlined in the previous sections are attacked by providing the tool developer with a class library, the WAFER-STATE-SERVER. The library is realized as a set of modules each representing one of the analyzed problems (gridding, I/O, Wafer algorithms). The core data structures use of these modules. Fig. 2.5 gives an overview of the modules and how they are used in the core data structures.

Figure 2.5: Concept of the WAFER-STATE-SERVER. The three major problems existing in a TCAD data model are expressed by means of several dimension independent interface classes. The meshing interface consists of classes and methods to define a geometry, to start the gridding mechanism and to retrieve the generated grid elements. The I/O interface comprises a set of classes and methods to retrieve data from and to store data on a persistent Wafer respectively. The core interface contains data structures to hold Wafer data and methods to perform data manipulations.
\begin{figure}\psfig{file=pics/overview, width=\linewidth}\par\end{figure}

The library is designed adhering to the object-oriented paradigm, by strictly separating the interface to a module (API) from its implementation. This ensures that the implementation, i.e. the algorithm of a given problem, is completely decoupled from the application program and can easily be exchanged without the need to change the application itself. The WAFER-STATE-SERVER provides a dynamic instantiation mechanism that allows to easily implement a command line selectable choice of available modules (e.g. gridder or I/O module)2.1.

The three WAFER-STATE-SERVER modules are:

To fulfill the requirements imposed by the simulation of a semiconductor fabrication process flow the data model that was previously developed was implemented. During the design phase of the WAFER-STATE-SERVER data model care was taken to identify the parts that need to be exchangeable from one simulation run to another. Such parts were realized in an object-oriented fashion by splitting the problem into an implementation and an interface part. By using only the interface within the WAFER-STATE-SERVER core classes implementation details are decoupled. Implementations of such interfaces are then used similar to software plug-ins or loadable hardware drivers in an operating system.

Additionally to the parts that could easily be identified as exchangeable, parts holding the grid related data of a Wafer intuitively were also decoupled from the core. These parts are used to perform point locations and are thus crucial to almost every simulator. During the development phase of the WAFER-STATE-SERVER it turned out that the originally implemented three-dimensional point location mechanism [28] was not applicable to all simulations in the same manner. Therefore, a second mechanism was developed [29]. The tool developer is now able to select the best algorithm for a given problem2.2.

Fig. 2.6 gives an overview of the interface classes that are visible from the application.

Figure 2.6: Public interface classes of the WAFER-STATE-SERVER
\begin{figure}\centering\psfig{file=pics/interfaces, width=0.8\linewidth}\end{figure}