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.
|
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:
- I/O. This layer contains various data adapters to support
different file formats. Two sets of interface classes, one for the reading
process and one for the writing process are used in the WAFER-STATE-SERVER. Several
implementations of these interfaces for ASCII and binary file formats
were developed in this work. The dynamic instantiation scheme takes care that
a certain I/O module is selectable at runtime (in the input deck or on the
command line).
- Meshing. This layer handles all sort of gridding steps. This
module is used for repair steps after a topography simulation, where the
simulator changes the hull of the Wafer. Another application of the module
is the generation of a boundary conforming grid in the WAFER-STATE-SERVER.
- core data structures. In the reading process data from a persistent Wafer are read
and stored into these data structures. Methods defined on the classes provide the
mentioned data manipulation operations.
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
|
2003-03-27