This is the first part of a sequence and it deals with the underlying
principles that determine solid state device operation and
performance. It is recommended for students interested in
semiconductor device operation, device design and analysis, VLSI,
optoelectronics and power electronics. Several homeworks and a
project will be assigned during the quarter.
The course is structured as follows:
Basic Semiconductor Properties
A review of general material and crystalline properties.
Elements of Quantum Mechanics
An introduction to basic formalism and some special problems such as
quantum wells (used in detectors and lasers).
Energy Band Theory
Energy bands in crystals, Brillouin zones, E-k diagram, particle
motion and effective mass. Specific materials: Si, GaAs, Ge. Influence
on device performance.
Carrier Statistics
Statistical introduction, density of states, equilibrium and
non-equilibrium distribution, Fermi level. Differences between
materials.
Recombination-Generation Processes
Review, R-G statistics, bulk and surface recombination, influence
of R-G on device operation, especially on opto-electronic and power devices.
Carrier Transport
Drift and diffusion description, definition of mobility. High field
effects, ballistic transport. Boltzman transport equation and its
solution.
Analysis Techniques
Monte Carlo simulation in analysis of material properties
and devices - use of available programs. Continous models - use of
available simulation programs.
Textbook(s): R.F. Pierret,
``Advanced Semiconductor Fundamentals,'' Addison-Wesley, ISBN 0-201-05338-1
+ chapters from M. Lundstrom,``Fundamentals of Carrier Transport,''
copies available in PSU bookstore.
Additional reading: Michael Shur, ``Physics of Semiconductor
Devices,'' Prentice-Hall, ISBN 0-13-666496-2 (out of print!)
Pre-requisites: some junior level electronics and solid state physics.
The progress will be adjusted to the class' previous exposure to some
of the basic material.
Grading: Students work on homework problems during the quarter and do
one project. There is no final but there is final presentation and discussion
of your results; homeworks carry 20%, two quizes 10% each and project 60% of
the final grade.
Project Description
The project consists of two parts. The first one is more like a short
report, i.e., you should go to the library and check out some books on
the topic, check other literature and write a summary of around 6-7
pages (excluding figures).
The second part requires use of computers and graphical presentation
of the results. Please, put some effort into arranging the results in
some ``nice'' fashion.
Write a short report on physical causes and application of
transferred electron effect and transferred electron devices. Outline
the requirements for the effect to take place and which materials
exhibit this behavior. Discuss in some detail various modes of
operation (but not in too much detail). Finally discuss the advantages
and limitations of microwave devices based on this effect.
Learn how to run program DEMON . Use it to obtain velocity vs.
electric field curve and average energy vs. field curve for bulk
GaAs with no doping (it is a part of the output of the program) . Plot
distribution functions in different ``valleys'' for a few selected
field values (low, medium and high), including the so called
``critical field'' at which negative differential mobility occurs.
Use the overall distribution function at those same selected
electric fields to obtain the average velocity and average energy and
compare the results with the results that the program prints out.
Introduce doping in the range 10^(15) - 10^(17) cm^(-3) and plot the
resulting mobility vs. doping.
Note: do not run the program on ursula -- that is a file server and
it is usually quite heavily loaded. Use jetsam, flotsam or ka instead.
The deadline for submission of the project is noon Friday December 5,
1997. The presentation of your results will be scheduled during
the finals week. Happy number crunching!
Project Instructions
Here are the instructions for using Monte Carlo program called
"DEMON" that does MC simulation of GaAs devices in 1-D. Description
of the commands used by DEMON will be given separately.
example_1 = input deck for the example from the DEMON manual
(example #1, see Appendix C, page 22)
mob_1 = input deck for the bulk GaAs; electric field = 1 kV/cm
(statistics is collected for ALL valleys)
How to play with the DEMON(s):
create a directory in which you want to run the simulation (DEMON
generates a couple of extra files per simulation for histograms and
other data; it is good idea to create a separate directory for each
run)
create (or modify existing) input deck
run DEMON by typing: demon.bin < i_deck > o_deck &
i_deck =
file which contains input deck; o_deck = file which will contain output
data; & = means that the program will be running in the background
(i.e. you can logout and come back later to see the results)
additional files will be created; they will all have identification
tag which you specify in SAVE card in input deck (e.g. for mob_1 input
deck this tag is mobil_1, see the mob_1 file!)
hint: when you run the input deck for the first time it is good
idea to reduce the number of carries to a very small number (2 to 5)
and to exclude output redirection (i.e. do NOT use > o_deck & ); this
way the results will be shown on the screen and the run will last only
a couple of minutes
if DEMON ends fine (no error messages) you can increase the number
of carriers and wait for the results
Plotting the results:
results we need will be contained in two files:
mc.histo_tag (tag = identification tag)
mc.table_tag
(structure of these files is described in Appendix D of the manual)
for plotting the data we will use Matlab program
WARNING: if you run Matlab remotely, don't forget to setup the
DISPLAY environment variable BEFORE you run Matlab !
to use Matlab you have to add it to your list of accessible programs:
(you have to add it only ONCE, after it it is permanently in your list)
type addpkg at prompt
type the number corresponding to the Matlab
logout and login again
now you're set to use Matlab
since Matlab has problems recognizing filenames with period in
their name you have to rename them, for example:
type : mv mc.histo_tag histo_tag
type : mv mc.table_tag table_tag
start Matlab by typing matlab
useful commands for Matlab:
cd, pwd and ls : Unix commands work in Matlab
load file_name : (e.g. load table_tag) loads the data file
into the memory
x=table_tag(:,1) : stores the first column of the data file
into the VECTOR x
subplot (2,2,x) : creates the plotting window with 2x2
(i.e. 4) different graphs and selects the x-th one (x=1 to 4)
to plot in
plot (x,y) : plots y vs x graph
xlabel ('Some text') : labels x-axis (the same for y-axis)
title : ('Some text') titles the graph
sum (x) : sums all components of the vector
+ - * / are : plus,minus, multiply and divide; they operate on
numbers and VECTORS
orient landscape : orients printing paper
print filename.ps : prints the graph to the postscript file
named filename.ps
help topic : gives you a help on a topic; you can start with help
or help general
Example of a Matlab run:
In this example the histogram data file will be loaded, plotting window with
4 graphs will be created and distribution function for the histbin 3 will be
plotted in the third graph (see DEMON manual, Appendix D for the explanation
of the the histogram data file structure).
login to a computer (remotely, if needed)
if needed, setup the DISPLAY environment variable: disp machine_name:0.0
cd to the directory that contains the data file
type matlab
at Matlab prompt type the following commands:
orient landscape;
load histo_tag;
x=histo_tag(:,1);
y1=histo_mob(:,2); <- we don' need this vector for the example, it is
just to show you that you can load multiple data
simultaneously into different vectors
y3=histo_mob(:,4);
subplot (2,2,3);
plot (x,y3);
xlabel('Velocity [cm/s]');
ylabel('Velocity probability');
title (' Electric field = 3 kv/cm');
print histogram.ps;
sum(x'*y3)/sum(y3) <- find average velocity, operator ' gives you a
transpose of a vector
Note: Matlab manual, User's Guide and other documentation for the Matlab is
available at the reserve library for a 3-day loan.
Many happy scatterings
Frequently Asked Questions (FAQ) about DEMON
Q:
"Learn how to run program DEMON. Use it to obtain velocity vs. electric
field curve and average energy vs. field curve for bulk GaAs ..."
Do you literally want us to plot v vs. E and w vs. E? If so, then at how
many discrete field values should we find data for? Since each run (with
5000 electrons) takes about 8 minutes, this can take a while if there are a
lot of runs to perform.
Does the "valley=all" statement mean that the average velocity computed in
the output data table is the aggregate velocity for all three valleys? Is
this the proper velocity to use in the v vs. E graph? Or did you want us to
compute the individual v vs. E graphs for each valley separately?
A:
Yes, I do literally want those plots. Use your judgment as to how
many point you will need; my guess is that you need about 10 or so
at least, but be careful which fields you use, i.e. more pts are needed
around the "peak" reagion. "valley all" means agregate velocity with
contributions from all valleys. It is the proper one to use for the plots.
For fun you can plot those for the separate valleys, but for velocity
they are not very meaningful. Energy may be more interesting.
Q:
"Plot distribution functions in different valleys for a few selected field
values (low, medium, and high) ..."
Do you mean the velocity distribution function? What do you consider to be
valid ranges for low, medium, and high electric fields? Since the histogram
data file has four separate bins, is there a preferred bin to use for
extracting distribution information? Do we need to "denormalize" the
velocity distribution to reflect the actual number of electrons detected at
each velocity?
A:
All distribution functions that you get from DEMON are vs. velocity,
so "distribution function" is really "velocity distribution function".
You have to decide which ones are low, medium and high based on the
results from simulations. low is for "normal", linear region; medium
around the peak of v vs. E, and high somewhere towards saturation region.
Don't use bins that are near the edges of the "device", but the others
should all be the same (except for noise). "denormalization" would be
necessary only if you needed to know the exact number of electrons. Do you?
Q:
"Use the overall distribution function at those same selected electric
fields to obtain the average velocity and average energy and compart the
results with the results that the program prints out."
When you say "overall", is that from the data created by using the
"valley=all" statement? I'm confused as to exactly which results we are
comparing.
A: Yes, "overall" distribution is the one with
"valley=all" statement. So, you have the results from the printout and
now you need to calculate those average quantities (v and E) from the
distribution functions "by hand" (actually, use the computer :-) ). If
you run your simulation for just one of the valleys, you can still make
the comparison, but it will not be as meaningfull as the overall one.