EEL4450/5930: Modeling and Simulation of Semiconductor Devices, Spring 2009

    Course meeting times

      Classes: TuTh 11:45-1:00 pm, Rm. B135
      Office hours: TuTh 1:00-2:00 pm, Rm. B364

    Syllabus

    Target Audience

      Graduate students and advanced undergraduates in electrical and computer engineering and physics, who are particularly interested in the modeling and simulation of VLSI devices and circuits.

    Course description

      Students will be introduced to modern topics in submicron semiconductor devices and state-of-the art CMOS technology. The course focuses on the modeling and simulation of nanoscale MOS devices. Topics that will be covered include but are not limited to quantum mechanical effects, high speed devices, effects induced by scaling, high doping concentration, interface roughness, and random doping placement.

      C language will be extensively used in the implementation of various numerical algorithms discussed during the course.



    C code for solving linear systems of equations using the Gauss elimination technique

  • If you use Microsoft Visual C++, Express Edition:


    • Download gauss.zip, unzip it, and double click on the solution file (EEL.sln).  Microsoft Visual C++ should start. You can now modify or run the code.


  • If you use Linux


    • Download gauss.cpp.
      To compile the file in gcc use: g++ gauss.cpp
      To run the file use: ./a.out
      You should use your favorite C++ text editor to modify the file.

    For more information you can also check the following word file: info.doc.

    Please check with me if you have trouble or want to use any other operating system.

    Sample project to simulate a MOSFET device

      Feel free to use the code in this folder in your project 6. Note that, unlike we did it in class, the gate is on the top of the device. You will also find in this folder the image of the electrostatic potential that you should obtain.

    Poisson number generator

      Feel free to use this code to generate Poisson numbers (this code was also given to you during the lecture).

      Here is an example of how to generate Poisson numbers using the Poisson(double) function. The code was compiled with the g++ compiler. Note that all generated numbers are around the average value (30).

    How to save and plot the electrostatic potential matrix

      (1) To save electrostatic potential 'V' add the following lines at the end of your C code:

      FILE *fp = fopen("a.dat","w");
      for(int i=0; i<21*21; i++) fprintf(fp,"%e\n", V[i]);
      fclose(fp);

       

      (2) To plot the electrostatic potential in Matlab, use the following command:

      mesh(reshape(load('a.dat'),21,21));


      Please note that, at step (1),  we saved the electrostatic potential in file "a.dat". At step (2) we should load the same file in Matlab and plot it. When you do that make sure that the current directory in Matlab is the directory where you saved your "a.dat" file. To do that you can use the following command: "cd c:\YourDirrectory". Also, at step (2), "21,21" denote your (Nx+1) and (Ny+1) values. You might want to change them according to your Nx and Ny values. For instance, if Nx=Ny=30, you should use mesh(reshape(load('a.dat'),31,31));.