Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.
Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.
Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.
Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.
Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.
Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.
Моделирование сопротивлений диффузионных и ионно-легированных слоев.
Металлургическая граница p-n перехода Xj в Si структуре с диффузионным слоем определяется из уравнения:
Где
Диффузантом в моей задаче был B,
Также дана
Помимо расчета Xj наша модель должна считать также удельное сопротивление ρs;
μ - подвижность основных носителей заряда.
μ(N) рассчитывается по формуле Зильдербергера для T=300K;
Для электронов;
Для дырок.
Входными переменными являются N0-концентрация, Nb-концентрация в подложке, T-температура, t-время. Выходными переменными являются Xj-глубина, ros – сопротивление.
Глобальные переменные N0_,Nb_,T_,t_ в нашей задаче нужны для того, чтобы значения величин попали в левую часть уравнения.
Ниже представлена наша модель:
#include <iostream.h>
#include <conio.h>
#include "root.h"
#include "integral.h"
double Left(double );
double N0_, Nb_, T_, t_;
double f(double x);
void Model(double N0, double Nb, double T, double t,
double& xj, double& ros)
{
//описание данных
int Nckl,Err;
double epsX, epsF, Fx;
//изменение глобальных переменных
N0_=N0; Nb_=Nb; T_=T; t_=t;
//задание параметров ньютоновских итераций
epsX=1E-10;
epsF=1E+09;
xj=0;
//расчет xj
Err=RootNewton(Left,epsX,epsF,xj,Fx,Nckl);
if(Err!=0) { xj=0; ros=0; };
//расчет pos
ros=1/SdxSimps(f,0,xj,100);
//перевод в микрометры
xj=1E+04*xj;
}
#include <math.h>
double erfc(double);
double Left(double xj)
{
// описание данных
double L,D,D0,dE,TK;
double k=8.61738E-05;
// задание параметров
D0=0.555;
dE=3.42;
// расчет коэффициента диффузии D
TK=T_+273;
D=D0*exp(-dE/(k*TK));
// расчет характеристической длины L
L=2*sqrt(D*60*t_);
// расчет левой части
return N0_*erfc(xj/L)-Nb_;
}
double f(double x)
{
//описание данных
const double q=1.602E-19;
double Nsum, N, mob;
//расчет N(x)
N=Left(x);
//расчет подвижности
Nsum=Left(x)+2*Nb_;
mob=45+415/(1+pow(Nsum/2.23E+17,0.72));
return q*N*mob;
}
управляющая программа:
#include <iostream.h>
#include <conio.h>
void Model(double N0, double Nb, double T, double t,
double& xj, double& ros);
void main()
{
//описание данных
double N0,Nb,T,t,Xj,ros;
//задание параметров
N0=1E+20;
Nb=1E+15;
T=1100;
t=60;
//вызов функции
Model( N0, Nb, T,t,Xj,ros);
//вывод результата
clrscr();
cout<<"Xj = "<<Xj<<" мкм"<<endl;
cout<<"ros = "<<ros<<" ом*кв"<<endl;
getch();
}
рис.1. Зависимость Xj от T.
рис.2. Зависимость ros от T.
Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.
Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.
Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.
Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.
Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.
Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.