МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ
РОССИЙСКОЙ ФЕДЕРАЦИИ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ
ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ
«ВОРОНЕЖСКИЙ ГОСУДАРСТВЕННЫЙ
ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»
(ФГБОУ ВО «ВГТУ», ВГТУ)
Факультет радиотехники и электроники
(факультет/институт)
Кафедра твердотельной электроники
Направление подготовки 11.03.04 Электроника и наноэлектроника
(код, наименование)
Профиль Микроэлектроника и твердотельная электроника
ОТЧЕТ ЛАБОРАТОРНОЙ РАБОТЫ № 1
по дисциплине «Информационные технологии в электронике»
Тема «Диффузия»
Разработал
|
И.А. Долгов
|
|
|
(подпись, дата)
|
(инициалы, фамилия)
|
|
Руководитель
|
Е.Ю. Плотникова
|
|
|
(подпись, дата)
|
(инициалы, фамилия)
|
|
Защищена
|
______________________Оценка_________________________
|
|
|
(дата)
|
|
|
Воронеж 2023
МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ
РОССИЙСКОЙ ФЕДЕРАЦИИ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ
ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
ВЫСШЕГО ОБРАЗОВАНИЯ
«ВОРОНЕЖСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»
(ФГБОУ ВО «ВГТУ», ВГТУ)
Факультет радиотехники и электроники
Кафедра полупроводниковой электроники и наноэлектроники
ЗАДАНИЕ
на лабораторную работу
Выполнить задания на MathCad
Графики построенные на MathCad построить в C#
ЗАМЕЧАНИЯ РУКОВОДИТЕЛЯ
СОДЕРЖАНИЕ
Задание на лабораторную работу 2
Замечания руководителя 3
Цель лабораторной работы 5
1 Теоретическая часть 6
2 Практическая часть 7
2.1 Выполнение заданий 7
Заключение 15
Список использованных источников 16
ЦЕЛЬ ЛАБОРАТОРНОЙ РАБОТЫ
Изучить тех. процесс моделирования диффузии кремния. Выполнить задания на Mathcad и в C#.
Теоретическая часть
Диффузия – перенос атомов вещества ( примесей ), который возникает из-за хаотичного теплового движения атомов, возникающих при наличии grad C.
Диффузия задает тип проводимости. Используется введение в полупроводник для введения примесей. Примесь появляется в узлах и в междоузлье. Перемещение примесных атомов может быть по вакансиям ( после охлаждения вакансии исчезают и примесные атомы фиксируются) и о междоузлье ( после охлаждения междоузельные атомы могут вернуться в узлы, замещая основные атомы, и становясь электрически активными. ).
При температуре порядка 1000 оС происходит активация процесса диффузии. Перемещение атомов примеси кристаллической решетки происходит в объеме скачкообразно.
Рисунок 1 – Механизм скачков
Практическая часть
2.1 Выполнение заданий
Задание на MathCad.
Рисунок 1 – Выполнение задания на MathCad
Рисунок 2 – Выполнение задания на MathCad
Рисунок 3 – Выполнение задания на MathCad
Рисунок 4 – Выполнение задания на MathCad
Рисунок 5 – Выполнение задания на MathCad
Выполнение задания на С#
Код программы:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using static System.Windows.Forms.VisualStyles.VisualStyleElement;
namespace _3
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
double Do, Ea, k, T1, t, Co, Cc, Q;
private void Form1_Load(object sender, EventArgs e)
{
textBox1.Text = (3.63).ToString();
textBox2.Text = (1473).ToString();
textBox3.Text = (600).ToString();
textBox4.Text = (0.785).ToString();
textBox5.Text = (1E19).ToString("0E+0");
textBox6.Text = (1E15).ToString("0E+0");
textBox7.Text = (8.625E-5).ToString("0.###E+0");
}
private void button1_Click(object sender, EventArgs e)
{
Ea = double.Parse(textBox1.Text);
T1 = double.Parse(textBox2.Text);
t = double.Parse(textBox3.Text);
Do = double.Parse(textBox4.Text);
Co = double.Parse(textBox5.Text);
Cc = double.Parse(textBox6.Text);
k = double.Parse(textBox7.Text);
chart4.Series[0].Points.Clear();
chart5.Series[0].Points.Clear();
for (double T = 1000; T <= 1600; T += 1)
{
double D = Do * Math.Exp(-Ea / (k * T));
chart4.Series[0].Points.AddXY(T, D);
chart5.Series[0].Points.AddXY(1 / T, D);
}
chart1.Series[0].Points.Clear();
chart1.Series[1].Points.Clear();
for (double z = 0; z <= 4E-4; z += 1E-5)
{
double D = Do * Math.Exp(-Ea / (k * T1));
double C2 = Co * Math.Exp(-Math.Pow(z, 2) / (4 * D * t));
chart1.Series[0].Points.AddXY(z, C2);
chart1.Series[1].Points.AddXY(z, Cc);
}
chart2.Series[0].Points.Clear();
chart2.Series[1].Points.Clear();
for (double z = 0; z <= 4E-4; z += 1E-5)
{
double D = Do * Math.Exp(-Ea / (k * T1));
double C1 = Co * (1 - Erf(z / (2 * Math.Sqrt(D * t))));
chart2.Series[0].Points.AddXY(z, C1);
chart2.Series[1].Points.AddXY(z, Cc);
}
chart3.Series[0].Points.Clear();
chart3.Series[1].Points.Clear();
chart3.Series[2].Points.Clear();
double t1 = 100, t2 = 9000;
for (double z = 0; z <= 2 * 1E-4; z += 0.5E-5)
{
double D = Do * Math.Exp(-Ea / (k * T1));
Q = Co * Math.Sqrt(Math.PI * D * t1);
double C1 = Co * (1 - Erf(z / (2 * Math.Sqrt(D * t1))));
double C3 = Q / Math.Sqrt(Math.PI * D * t2) * Math.Exp(-(Math.Pow(z, 2) / (4 * D * t2)));
chart3.Series[0].Points.AddXY(z, C3);
chart3.Series[1].Points.AddXY(z, Cc);
chart3.Series[2].Points.AddXY(z, C1);
}
double D_T1, Z1, Z2, Z3, a = 1E-5, b = 1E-3, eps = 1E-7, C1_Z2, C3_0;
D_T1 = Do * Math.Exp(-Ea / (k * T1));
Z1 = 2 * Math.Sqrt(D_T1 * t) * Math.Sqrt(Math.Log(Co / Cc));
do
{
Z2 = (a + b) / 2;
if (f(Z2) * f(a) <= 0)
b = Z2;
else
a = Z2;
}
while (Math.Abs(a - b) >= eps);
C1_Z2 = Co * (1 - Erf(Z2 / (2 * Math.Sqrt(D_T1 * t))));
C3_0 = Q / Math.Sqrt(Math.PI * D_T1 * t2) * Math.Exp(-(Math.Pow(0, 2) / (4 * D_T1 * t2)));
Z3 = 2 * Math.Sqrt(D_T1 * t2) * Math.Sqrt(Math.Log(Q / (Cc * Math.Sqrt(Math.PI * D_T1 * t2))));
label8.Text = Convert.ToString($"D(T1) = {D_T1.ToString("0.###E+0")}\nZ1 = {Z1.ToString("0.###E+0")}\nZ2 = {Z2.ToString("0.###E+0")}\nC1(Z2) = {C1_Z2.ToString("0.E+0")}\n" +
$"C3(0) = {C3_0.ToString("0.###E+0")}\nQ = {Q.ToString("0.###E+0")}\nZ3 = {Z3.ToString("0.##E+0")}");
}
private double f(double z)
{
double D = Do * Math.Exp(-Ea / (k * T1));
return Co / Cc * (1 - Erf(z / (2 * Math.Sqrt(D * t)))) - 1;
}
static double Erf(double x)
{
double a1 = 0.254829592;
double a2 = -0.284496736;
double a3 = 1.421413741;
double a4 = -1.453152027;
double a5 = 1.061405429;
double p = 0.3275911;
int sign = 1;
if (x < 0)
sign = -1;
x = Math.Abs(x);
double t = 1.0 / (1.0 + p * x);
double y = 1.0 - (((((a5 * t + a4) * t) + a3) * t + a2) * t + a1) * t * Math.Exp(-x * x);
return sign * y;
}
}
}
Рисунок 6 – Результат работы программы
ЗАКЛЮЧЕНИЕ
В ходе лабораторной работы были получены знания в моделировании процесса диффузии.
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
1. Лекции по дисциплине «Информационные технологии в электронике». – Текст: непосредственный.
Достарыңызбен бөлісу: |