Скачиваний:
7
Добавлен:
28.04.2022
Размер:
137.45 Кб
Скачать

МИНОБРНАУКИ РОССИИ

Государственное образовательное учреждение

высшего профессионального образования

Санкт-Петербургский государственный электротехнический университет

«ЛЭТИ» им. В.И. Ульянова (Ленина)

ФАКУЛЬТЕТ ЭЛЕКТРОНИКИ (ФЭЛ)

КАФЕДРА Радиотехнической электроники

КУРСОВАЯ РАБОТА (ПРОЕКТ)

По дисциплине: ПРОГРАММНЫЕ СРЕДСТВА МОДЕЛИРОВАНИЯ ЭЛЕКТРОННОЙ КОМПОНЕНТНОЙ БАЗЫ

На тему: Разработка модуля программы анализа электронного прибора

(указывается обобщенная тема)

Вариант № 10

Выполнил

Оценка

студент гр. №

5201

Проверил

Синев А. Е.

Хохлов Е. П.

(ФИО)

(ФИО)

Дата

САНКТ-ПЕТЕРБУРГ

2019 г.

ЗАДАНИЕ на курсовую работу

По дисциплине: ПРОГРАММНЫЕ СРЕДСТВА МОДЕЛИРОВАНИЯ ЭЛЕКТРОННОЙ КОМПОНЕНТНОЙ БАЗЫ

Вариант № 10.

Название курсовой работы:

Модуль расчёта профиля легирования на основе модели ионного легирования.

Содержание работы:

Разработка алгоритма и С++ - программы расчёта профиля легирования на основе модели ионного легирования.

Исходные данные:

Параметры модели ионного легирования.

Результаты работы:

1. Программа расчёта профиля легирования на основе модели ионного легирования. 2. Методика тестирования и отладки программы.

Литература:

1. Internet.

2. Моделирование полупроводниковых приборов и технологических процессов. Последние достижения. Под ред. Д. Миллера, М.: Радио и связь, 1989.

1. Код программы в Microsoft Visual Studio c++.

#include <iostream>

#include <stdlib.h>

#include <conio.h>

#include <stdio.h>

#include <fstream>

#include <cmath>

using namespace std;

int main()

{

setlocale(LC_ALL, "rus");

int k, i;

double j, t, d, q, D, h, g, S, Rp[5], dRp[5], misc, nmax, pi;

//Ввод исходных данных

cout << "Введите плотность тока ионов j[A/м^2]=";

cin >> j;

cout << endl << "Введите время имплантации t[сек]=";

cin >> t;

h = 0.1; // Шаг сетки

d = 1.5; // Глубина [мкм]

q = 1.6 * 10e-19;//Заряд электрона [Кл]

D = j * t / q * 10e-4;//Количество введенной примеси [см^-2]

pi = 3.14;//Число Пи

//Параметры пробега ионов бора в кремнии

Rp[0] = 0.1574; dRp[0] = 0.0556;

Rp[1] = 0.2956; dRp[1] = 0.0768;

Rp[2] = 0.5251; dRp[2] = 0.0979;

Rp[3] = 0.8928; dRp[3] = 0.1173;

//Массивы координат и концентрации

g = (d / h) + 1;

double* x_x = new double[g];//Объявляем новый массив с g ячейками

double* N1 = new double[g];

double* N2 = new double[g];

double* N3 = new double[g];

double* N4 = new double[g];

double* misc2 = new double[g];

S = 0;

for (k = 0; k < g; k++)

{

x_x[k] = S;

S = S + h;

}

//Расчет профиля легирования

i = 0;

for (k = 0; k < g; k++)

{

misc = dRp[i] * sqrt(2 * pi);

nmax = D / misc * 10e4;

misc2[k] = (x_x[k] - Rp[i]) * (x_x[k] - Rp[i]) / (2 * dRp[i] * dRp[i]);

N1[k] = nmax * exp(misc2[k] * (-1));

}

i = 1;

for (k = 0; k < g; k++)

{

misc = dRp[i] * sqrt(2 * pi);

nmax = D / misc * 10e4;

misc2[k] = (x_x[k] - Rp[i]) * (x_x[k] - Rp[i]) / (2 * dRp[i] * dRp[i]);

N2[k] = nmax * exp(misc2[k] * (-1));

}

i = 2;

for (k = 0; k < g; k++)

{

misc = dRp[i] * sqrt(2 * pi);

nmax = D / misc * 10e4;

misc2[k] = (x_x[k] - Rp[i]) * (x_x[k] - Rp[i]) / (2 * dRp[i] * dRp[i]);

N3[k] = nmax * exp(misc2[k] * (-1));

}

i = 3;

for (k = 0; k < g; k++)

{

misc = dRp[i] * sqrt(2 * pi);

nmax = D / misc * 10e4;

misc2[k] = (x_x[k] - Rp[i]) * (x_x[k] - Rp[i]) / (2 * dRp[i] * dRp[i]);

N4[k] = nmax * exp(misc2[k] * (-1));

}

//Вывод данных во внешний файл

ofstream kok("Профиль легирования для E=50кэВ.txt");

ofstream kok1("Профиль легирования для E=100кэВ.txt");

ofstream kok2("Профиль легирования для E=200кэВ.txt");

ofstream kok3("Профиль легирования для E=400кэВ.txt");

kok << "х" << " " << "n" << endl;

kok1 << "х" << " " << "n" << endl;

kok2 << "х" << " " << "n" << endl;

kok3 << "х" << " " << "n" << endl;

int i1;

for (i1 = 0; i1 < g; i1++)

{

kok << x_x[i1] << " " << N1[i1] << endl;

kok1 << x_x[i1] << " " << N2[i1] << endl;

kok2 << x_x[i1] << " " << N3[i1] << endl;

kok3 << x_x[i1] << " " << N4[i1] << endl;

}

kok.close();

kok1.close();

kok2.close();

kok3.close();

cout << endl << "Выходные данные лежат в файлах.txt" << endl;

return 0;

}

2. Код программы в Matlab.

clc

clear

x=0:0.005:1.5;

e=1.6*10^-19; %заряд электрона

j=input('Введите плотность тока ионов, А/м^2 ');

t=input('Введите время имплантации, сек ');

D=j*10^(-4)*t/e; %количество введённой примеси в см^-2

%Параметры пробега ионов бора в кремнии в мкм

RpB=[0.1574,0.2956,0.5251,0.8928];

dRpB=[0.0556,0.0768,0.0979,0.1173];

color=['r','g','b','k'];

for i=1:4

misc=dRpB(i)*sqrt(2*pi);

misc2=(x-RpB(i)).^2/(2*dRpB(i).^2);

nmax=D*10^(4)/misc;

n=nmax*exp(-misc2);

plot(x,n,color(i))

legend('50 кЭв','100 кЭв','200 кЭв','400 кЭв');

title('ПЛ при ИИ бора в кремний');

xlabel('х, мкм');

ylabel('n, см^-3');

hold on;

grid on;

end;

3. Методика тестирования и отладки программы.

Для проверки работы программы, сравним теоретический профиль легирования при ИИ бора в кремний, полученный в [1]. Исходные данные — концентрация введённой примеси ). В программе её можно задавать при помощи плотность ионного тока j и времени t. При

Рисунок 1 Теоретичекий ПЛ при ИИ бора в кремний

Рисунок 2 ПЛ при ИИ бора в кремний, полученный в программе MS C++

Рисунки почти совпадают, поэтому можно сделать предположение, что программа работает верно.

Рисунок 3 ПЛ при ИИ бора в кремний, полученный в программе Matlab

Рисунки совпадают, поэтому можно сделать предположение, что программа работает верно.

Список литературы.

[1] — Риссел Х., Руге И. Ионная имплантация. М.: Наука, 1983. 312 с.

Соседние файлы в папке курсачи