MISTICThe Compiler Core


The compiler module reads the device schematic file generated by the Builder as its input. The compiler interface is shown in the following figure.


Invoking the Compiler

The Compiler software module can be invoked either from the Manager module or can be run as a stand-alone program by typing 'sn' at the command prompt.


Description of the Interface

The compiler interface can be divided into several separate areas based on functionalities. The description of these areas are given below.
Menu area
The process compiler menu functions have the following structures:
Device name label
The device name label shows the name of the currently loaded device. If no device has been loaded to the compiler yet, this label shows the name 'default'.
Canvas
The canvas area is actually a drawing area widget which displays the currently loaded device.
Material legend area
This legend area shows the names of different materials that have been used in the currently loaded device and their corresponding colors.
Process options
The process option area shows a set of option menus for selecting different process choices for output processes. They are described below.
Run-time option area
The run-time option area is divided into two parts. The first part is a set of radio boxes showing different choices about the output process files and the second part is a set of text fields which displays different run-time options and allows changing them. Details of both to these options are discussed below.
Run-time data option area
This check box area allows generation of run-time debug data during compilation of a device. Although, by default, no such data are generated, any number of the following items can be selected to have corresponding debug data in a directory named `_mistic_debug' created under the 'output directory'.
  1. Polygon lists
  2. Adjacency matrices
  3. Transitive closure matrices
  4. Processes after topological sort
  5. Final process list before optimization
Failure check option area
This chick box area is provided to help the user find the reason of failure of a device. Selection of one or more of thses items causes the compiler to check for failure in these particular modes. If the compiler finds that the device does fail in one or more of these selected modes, it reports such findings at the end of compilation. The possible error checking modes are:
  1. Deposited layer sequence
  2. Reactive growth schedule
  3. Eching of layers
  4. Diffusion schedule
Since simultaneous error-checking during compilation takes additional times, these error-checking options are by default turned off.
Command panel
The command panel implements three menu functions using push buttons for quick reachability. These are Load, Compile and Quit.


Input and Output Files

The compiler takes the device description file created by the DeviceBuilder module as input and generates one file for each generated process along with a statistics file that contains the statistics of all generated processes. The output file contain several items:
  1. Detailed run sheet
  2. A concise description of process steps
  3. SUPREM deck
  4. In-process device cross sections
  5. Process summary
The process summary contains several important items in it. They are:


The Compilation Procedure

The following sequence of actions can followed to compile a device in the compiler module.
  1. Invoke the Compiler: The Compiler can be invoked either from the Manager or it can be run as a stand-alone program by typing 'sn' at the command prompt. If the compiler does not get invoked in either of these ways, please check your path setting and MISTIC installation at your site.
  2. Load the device: Load the device in the compiler using the appropriate menu function and popped up file selection box.
  3. Set options: Set different options described in the previous section. Under normal circumstances the default setting generates optimal results.
  4. Compile: Compile the loaded device using the 'Load' menu function. If a 'Yes' option has been chosen in the Suprem Deck Generation run-time option, the compiler prompts the user to mark the location of SUPREM deck generation by clicking the left mouse button on the canvas. If the device is too complicated, in the beginning the compiler shows a warning that the compilation procedure might take a long time. This helps the user have an early idea about the required compilation time. If the device is too complicated to be compiled in a reasonable amount of time, the compiler generates an error message and aborts compilation.
  5. Recompile for failed runs: If the compiler fails to generate any process, there can be several reasons for the failure. If there is no terminal problem in the device, one or two changes in the process option settings result in successful compilation. Restrictions in the process choices should be taken off one after another in this recompilation process. 'Reactive growth order' and 'preset diffusion order' choices should be manipulated first in order to get successful compiler run. If the device contains a terminal problem, it can be detected by using the failure-checking option box items. After the problem in the device is found, the compiler should be run again to get process flow outputs.
  6. Save processes: If the automatic save option is not chosen in the run-time option check box, the generated processes can be saved by using the menu function Output-->Save or Output-->SaveAs.


    Summary

    The compiler module of the software is the most important one and is the vehicle of process generation. A little understanding of the compiler algorithms can help the user use this module intuitively and efficiently. Usually, a brief amount of practice in this module is sufficient for learning how to compile most devices.

    -----------

    Back to the Manual Index

    MISTIC version 1.0 (July 1997)
    Copyright © 1997 by University of Michigan. All rights reserved.