Welcome to the

SGFramework Book and CD-ROM: Semiconductor Devices, a Simulation Approach.

A new, practical, breakthrough in modeling semiconductor devices. Quickly solve for critical parameters such as carrier concentration, potential, and current throughout the device. Automatically generate color 3D graphs of solutions.

Above: Typical simulation output graph.
Simulated dopant diffusion. Click image for full scale.

Index of This Page

Actual output from the SGFramework program.

This graph shows the electron concentration across the surface of a BJTtransistor.

The SGFramework program can display this type of graph on theCRT, or output to a Postscript file.

The graph can be rotated through 360 degrees on all 3 axes to provide anydesired perspective of the device under simulation.

Axis labels, tick marks, and comments can be added.

Link to more examples of graphics, charts, and graphs created with SGFramework.

Another view of a BJT transistor electron concentration simulation.

Link to more examples of graphics, charts, and graphs created with SGFramework.

SGFramework is a flexible software package that you can use to model semiconductor devices as well as solving many problems involving solution of simultaneous equations. A new book from Prentice Hall is available describing the many things you can do with SGFramework.
You can  link directly to the book which contains SGFramework or
you can  link to Prentice Hall, the book's publisher.

Title of the Book Containing SGFramework:

Semiconductor Devices, a Simulation Approach
Kevin Kramer, Honeywell Inc.
W. Nicholas G. Hitchon, University of Wisconsin
Published December, 1997 by Prentice Hall Professional Technical Reference
Copyright 1998, 704 pp.
Cloth Bound w/CD-ROM
ISBN 0-13-614330-X


    Kevin M. Kramer
    Senior Research Scientist
    Honeywell Technology Center
    Honeywell Inc.
    3660 Technology Drive
    Minneapolis, MN 55418
    (612) 951-7134 - fax

    W. Nicholas. G. Hitchon
    Electrical and Computer Engineering Department
    University of Wisconsin-Madison
    1415 Engineering Drive
    (608) 262-2501 - voice
    (608) 265-2614 - fax


The SGFramework book and its associated software package describe how to set up very general, complex semiconductor simulations very easily and provides the software to permit the user to do this. After review of the semiconductor equations and parameter models, an overview of the numerical solution of PDE's, and an introduction to the software, this text is devoted to describing how to set up microscopic models of the main classes of semiconductor devices. This includes static and dynamic models, followed by "mixed-mode" simulations (where the device is included in a time-varying external circuit). Finally advanced topics including photodiodes MOSFETs for VLSI applications ore on mixed mode simulations and power semiconductors are treated. In each case, the physical operation of the device is described and illustrated by means of the simulation results. The software reads the specification of a discretized set of PDEs from a compact input file and performs all the steps involved in setting up the code to solve the equations, solving them and plotting the results. This package is used to describe a variety of semiconductor devices in detail. This approach allows the user much greater control over and understanding of the simulations than has been possible before.

The SGFramework book will allow students and professionals greatly enhanced insight into device operation, much more readily than can be obtained in any other way at present. At present, semiconductor modeling tools are "canned" programs which only use the models provided by the author. They are also very expensive, they require substantial computing power and the user may need to attend lengthy training to learn how to use them. Our package is very flexible; a short input file specifies as complex a problem as desired and this can be modified however the user chooses. It is an ideal teaching tool, since the physical models and the results are clearly displayed. It is capable of running on high end PCs with the appropriate software, and it is relatively easy to learn to use.
Some key features of the SGFramework software and book package are:


Semiconductor modeling is at present an esoteric art, even with the aid of existing canned programs. The book and software tool will open this topic up to a much larger group of workers.

The SGFramework book and software package is intended for:

To use this package:
A beginning undergraduate course in semiconductor theory is probably necessary.

People involved in the following industries are among those who will find this package useful:

The SGFramework package will be useful to: Academic uses include: With courses such as:

SGFramework Tutorial - Part 1

Actually using the SGFramework software is not difficult. Creating the file to be read by SGFramework is where to begin. We will use SGFramework to solve a system of two linear algebraic equations, x + y = 4 and 3x + y =7.

 As in other computer languages, the variables to be used must be declared. The declaration for this is var variable_name. Next we will set up our system of equations to solve. This is done with the unknown unknown_name and the equ unknown_name -> statements.

The two slash marks indicate comments in the file. Note semi-colon at the end of the variable declaration. Each line of your file must be terminated with a semi-colon with the exception of commented lines.



// declaring variables and unknowns


var x1, x2;

unknown x1, x2;


// equations to solve


equ x1 -> x1 + x2 = 4;

equ x2 -> 3*x1 + x2 = 7;
Arithmetic operations are carried out by the typical symbols, +, -, *, and /, addition, subtraction, multiplication, and division, respectively.

 After declaring the variables, unknowns, and equations, we can begin the main program. In our program we will solve our system of equations and write the results to a file.

 To begin the main program, use the command begin main. In order to solve the equations, use the command solve; Then, the results can be written to a file by the following lines:



begin main


// solve equations




// write the results


open "answer" write;

file write x1, x2;



The file specified by "file_name" will contain the values of x and y that satisfy the system of equations declared above.

 Note that the commands begin main and end do not use semi-colons.

 In order to run this file in SGFramework, the file name must have an *.sg extension. For example, save this file as sample.sg.


Running SGFramework

Now we are ready to run SGFramework, and find the solutions to our equations.

 1. First, at the command prompt, type SGFramework sample.sg. This will produce three files, sample.cpp, sample.h, and sample.top.

 2. Next, type sgbuild sim sample. No extension is used after the file name. An executable file is produced during this step.

 3. Run the executable file just created, by typing sample*. Here, the file containing the solutions of the equations is created and a sample.res file is created. You can extract data from this file and plot the results using Matlab, but at this time we will not be plotting results.

 4. Looking at your results file, you will see the solutions, 1.5 and 2.5. These are the values of x and y that satisfy our given equations.


SGFramework Tutorial - Part 2 Boundary Conditions

This tutorial will illustrate how Laplace's equation is implemented to solve a boundary value problem. A simple example is the interior of a conducting box. The potential inside the box when one wall is of a different potential from all the others will be solved for and stored in mesh form (similar to a two dimensional array) for plotting.

First, a usable form of Laplace's equation is needed. This is obtained by using the method of finite differences. We can have a uniformly spaced mesh or a nonuniformly spaced mesh for calculating the potential values between the two plates. Here is the form of Laplace's equation for a nonuniform mesh.

{V[i-1,j]/h[i-1]-V[i,j]/h[i-1]-V[i,j]/h[i]+V[i+1,j]/h[i]}/ave(h[i],h[i-1]) + {V[i,j-1]/k[j-1]-V[i,j]/k[j-1]-V[i,j]/k[j]+V[i,j+1]/k[j]}/ave(k[j],k[j-1]) = 0

Where the function ave() takes the average of the two points in parenthesis.

The following are the specifications in order to create the file for this problem:

 The mesh size needs to be specified. This is done by defining constants.


// defining constants for mesh parameters 


const NX = 21;   //number of x mesh points

const NY = 21;   //number of y mesh points

const LX = NX - 1;  //index of last x mesh point

const LY = NY - 1;  //index of last y mesh point
Declare variables and unknowns.

var x[NX], y{NY];

var h[LX], var k[LY];

var V[NX,NY];

unknown V[1..LX-1,1..LY-1];
The unknown statement specifies the points of the mesh where the equation will be solved. These values of the potential can be written to a file and plotted.

 Laplace's equation must be specified as follows:

equ V[i=1..LX-1,j=1..LY-1] ->






Now the main program:

begin main


  // read the mesh

  open "mesh.dat" read;

  file read x, y;

The file mesh.dat contains the points that the user specifies for the application. Using the nonuniform mesh, mesh points can be concentrated for better definition in certain areas of the plot if desired. The number of x and y values must correspond to the constants Nx and Ny specified at the beginning of the program. In this example, there should be 21 x values and 21 y values.

  //compute h and k

  assign h[i=all] = x[i+1] - x[i];

  assign k[i=all] = y[i+1] - y[i];
The two lines above determine the distance between points of the mesh.dat file. These values are stored in the h and k arrays and used in the calculation of the Laplace equation.



  //initialize variables

  assign V[i=all,j=0] = 10;  //  This statement is the boundary condition

                             //  of this problem.  One plate has a 10 volt

                             //  potential.  The remaining mesh point

                             //  values on the boundary default to zero.

                             //  Everything has been specified and the

                             //  equation can now be solved.

  //solve the equations


  //write the results

  open "x.dat" write;

  file write x;


  open "y.dat" write;

  file write y;


  open "V.dat" write;

  file write V;



Results are written to the specified files and can be used to plot the results for a visual interpretation.

Related Links

More info on W. Nicholas. G.(Nick) Hitchon 
For more information on SGFramework please contact:
W Nicholas Hitchon / hitchon@percy.engr.wisc.edu
Kevin M. Kramer / kramer_kevin@htc.honeywell.com

For comments on the construction and appearance of this site please contact:
Neil K. Habermehl / nkhaberm@students.wisc.edu

Updated 26 Mar 98.
This page and it's contents are the sole property of the authors.
Copyright 1996