VISTA, the Viennese Integrated System for TCAD applications, is a framework
that was designed to meet all needs of a TCAD user. VISTA introduced three
levels of abstraction .
The data level of the VISTA system is realized as the PIF file format
and a set of supporting libraries [4,5]. It is intended as a
data base for TCAD simulation data. The PIF implementation provides an
ASCII and a binary representation of the data and a conversion tool to
convert data between the two representations. The ASCII representation (intersite representation) is used to transfer PIF files between
different architectures1.1, and is based on a proposal by
S. G. Duvall . The binary representation provides fast access to
the data and was intended to exchange data between tools (intertool
representation). It follows a client server architecture that was realized by
several layered low level libraries (the so-called PIF application interface
-- PAI) which handle the data access. Language bindings of the PAI application
layer (PAL) ensure availability of the data in the programming languages C,
FORTRAN, and LISP.
- The Task Level. It provides an extension language (TCAD shell) that
allows for solving high level engineering tasks (e.g. optimization).
- The Tool Level. It provides the tools to carry out the simulations and
also the necessary integration of that tools.
- The Data Level. It takes care of the representations of the data that
are needed in TCAD simulations and copes with the problem of data
The PIF application
interface (PAI) is comprised of several layered libraries. They are organized
hierarchically, where each layer presents a certain level of abstraction. The
file layer is responsible to handle the I/O operations with the underlying
operating system. The (optional) networking layer adds a way to transparently
access the data over a network. The functional interface of the networking
layer is equivalent to that of the file layer. The caching layer takes
care to hold a certain amount of the PIF data in memory in order to speed
up data access. The basic and interface layers provide a structured view of
the PIF data. Finally, the top level layer (PAL) comprises the application
programming interface (API) as it is used from within the tools
Data in a PIF file are organized as a set of nested lists. The PAI
presents access to this data by providing functions to read lists into memory
and to write lists to file respectively. The functions closely follow the
PIF syntax and are implemented according to the procedural programming
paradigm. Although the PAL offers structural access to the data it does not
contain any compound data types (structs, classes and data manipulation
functions or methods respectively) as they are used in state of the art, object-oriented
programming paradigms. Therefore, high level libraries and tools have to provide
their own basic data models to hold the data and solve the targeted
problem. Fig. 1.1 depicts the stack of low-level PIF libraries.
In the following a short overview of the
functionality provided by the various low- and high-level libraries is sketched
to point out the functional programming paradigm according to which the whole
set of PIF libraries was designed.