The Device Builder Module
The input to the compilation core is generated by the device builder
(see following figure). The integral part of this module is a graphical device
cross-section editor. The device is schematically drawn on a two-dimensional
canvas as a collection of polygons, each of which corresponds to a device
component. The device components are entered through an specification of the
layer material, thickness, and extent on the screen using the mouse. The
graphical device editor window is shown in the following figure.

In addition to regular graphical editing commands, the device editor has
special drawing routines for the calculation of conformal outlines on top of
the current top profile of the device. This module also provides customized
procedures for drawing reactively-grown layers and diffusions (both
self-aligned and non self-aligned) with respect to the topography of the device.
Invoking the DeviceBuilder
The DeviceBuilder software module can be invoked either from the Manager module
or can be run as a stand-alone program by typing 'di' at the command prompt.
Description of the Interface
The Device Builder interface consists of the following main areas.
- Menu area
- The Device Builder menu functions have the following structure:
- Device
- New -- Clear the canvas for drawing a new device
- Open -- Open an existing device for editing
- Save -- Save the current device
- Save as -- Save the current device in a new file
- Print -- Open the print dialog for printing to either a file
or a printer
- Quit -- Quit the DeviceBuilder
- Select
- Select
- Clicked -- Turn to select on click mode
- Numbered -- Select a component whose number is typed on a
pop-up text dialog
- Region -- Select all components in a region specified by a
rubber-band rectangle
- All -- Select all components
- Unselect
- Clicked -- Turn to unselect on click mode
- Numbered -- Unselect a component whose number is typed on
a pop-up text dialog
- Region -- Unselect all components in a region defined by
a rubber-band rectangle
- All -- Unselect all components
- Edit
- Delete
- Selected -- Delete all selected components
- Clicked -- Turn to delete on click mode
- Region -- Delete all components in a region defined by a
rubber-band rectangle
- Numbered -- Delete a component whose number is typed on a
pop-up text dialog
- Modify
- Clicked -- Open a window that shows and allows changing
the properties of the clicked component
- Numbered -- Open a window that shows and allows changing
the properties of the component whose number
has been typed on a pop-up text dialog
- Stretch
- Left end -- Stretche the left end of the selected
component to the clicked point
- Right end -- Stretch the right end of the selected
component to the clicked point
- Undo -- Undo the last change
- Cut -- Cut a portion of all selected components marked by a
rubber-band rectangle
- Report
- Selected -- List properties of all selected components
- All -- List properties of all components
- Setup
- Grid -- Open a dialog for changing the current grid and its
snapping property
- Screen -- Set the size of the screen
- Zoom
- Zoom in -- Zoom in if not zoom-in limit reached
- Zoom out -- Zoom out if not zoom-out limit reached
- Panel area
- The panel area is a command interface implemented
with an array of push buttons. Most of the menu functions of the Device Builder
can also be carried out by using these push buttons. For descriptions of panel
area push buttons, please refer to the previous item.
The panel area has a type selector that is not present in the menu
functions. It is implemented with push buttons and located at the top of the
panel. These push buttons allows selection of type of layer to be drawn. For
example, the user has to press 'Depositon' push button to draw one or more
deposition type layers.
- Canvas
- The canvas area is actually a drawing area widget capable
of displaying and drawing device components by drawing commands. By default,
the canvas has a width of 1800 microns and height of 600 microns. The top-left
corner of the canvas is taken as position (0,0). The size of the canvas can be
changed by Setup-->Screen menu function.
- Cursor position label
- The cursor position label shows the current
position of the cursor on the canvas. But the position label changes to a
differential mode during drawing components. In this differential mode the
label shows the
difference of X and Y positions of the pointer from the starting
point (point where the rubber-band was started by clicking and holding the left
mouse button). To distinguish the differential position from absolute position,
the differential position is shown within parentheses.
- Device name label
- The device name label shows the name of the
current device. If no name has yet been given to the device under construction,
it shows 'default'.
- Material legend area
- This legend area shows the names of different
materials that have been used in drawing the current device and the
corresponding colors.
- Atom list
- The atom list at the lower-left corner of the Device
Builder interface shows up whenever the user presses any one of the type
selector push buttons at the top of the panel area. At a given time this list
shows all atoms of the database of the currently selected type.
- Parameter specification area
- Like the atom list, an array of parameter
specification widget array shows up whenever the user press any one of the type
selector push buttons. It shows all parameter values that can be changed. If no
new value is specified for a parameter, the displayed default value is used in
drawing the next component.
Drawing Procedure
In order to draw a polygonal device component, first the type menu at the top
of the panel area is selected. This menu identifies the type of layer being
drawn such as deposition, reactive growth, diffusion, and sacrificial
layers, etc. For a specific layer type there exists a list of materials that
fall within it. After a material is selected from the atom list and relevant
parameters (e.g., thickness) are specified, the extent of the layer is
specified by drawing a rubber-band rectangle using the cursor.
The rubber-band rectangle can be started by clicking and holding the left
mouse button and moving the pointer to a new location while keeping the left
mouse button pressed. As soon as the user releases the left button, a layer of
specified properties is deposited conformally on the top of the wafer within
the extent of the drawn rubber-band rectangle. In this way one or more device
components can be added to the schematic.
Storing and Retrieving Device Files
When the device schematic is complete, it can be saved to a file. This device
file is actually the input to the compiler. This file can be loaded back to the
Device Builder for editing the device structure.
Modifying Component Parameters
Properties of an already drawn component can be changed using the modify pop-up
window through the Edit-->Modify menu
function. The modify window is shown in the following figure. It is very much
similar to the atom list and parameter specification area of the DeviceBuilder
main interface. Upon specification of new parameter values the user hits the 'Ok'
button to effect those changes in the device description stored in the computer
memory and also in the drawing.

Viewing Component Properties
It may be useful or required to view the component numbers and different properties
of the drawn components that are stored in the memory. The 'Report' menu
function opens text type window that reports all properties of all components
that have been requested for. The window is shown in the following figure.

Summary
The DevicedBuilder module is an easy and quick method of generating the device
cross-sectional descripton for the compiler. Its customized drawing routines
and editing functions for drawing semiconductor devices makes the task of
creating the input device description for the compiler an easy one.
Back to the Manual Index
MISTIC version 1.0 (July 1997) Copyright © 1997 by University
of Michigan. All rights reserved.