ВУЗ:
Составители:
6
Решение
Для расчета концентрационного профиля в заданной транзисторной
структуре написана программа PR1, работающая в интерактивном режиме.
Эта программа обладает элементами интеллекта и не только проводит расчет
распределения ионно-имплантированных примесей любого типа, но и
анализирует условия, при которых может быть сформирована транзисторная
структура.
Program PR1(input,output);
{распределение примеси при двойной последовательной имплантации}
label 1,3;
const Pi=3.1415926;
e=1.6e-19; csi=’ ‘(155);
type mas=array [0..100] of real;
var Qe,Qb,ro,m,Ee,Eb,Rpe,Rpb,dRpe,dRpb,Xje,Xjk,Xmax,Ni,h,Dt,z:real;
i:integer; X,N:mas; Ans,ans1,o,tip,tipb,tipe:char; f:text;
procedure junc_e(var x:real); {вычисление эмиттерного p-n перехода}
var b,a,c:real;
begin
a:=-dRpe*dRpe +dRpb*dRpb; b:=Rpd*dRpe*dRpe -Rpe*dRpb*dRpb;
c:=-(Rpb*Rpb)*(dRpe*dRpe)+(Rpe*Rpe)*(dRpb*dRpb);
c:=c+2*(dRpb*dRpb)*(dRpe*dRpe)*ln(Qb*dRpe/Qe/dRpb);
if (b*b-a*c)>=0 then x:=(-b+sqrt(b*b-a*c))/a else x:=-1 end;
procedure junc_k(var x:real); {вычисление коллекторного p-n перехода}
var a:real;
begin
a:=2*ln(Qb/sqrt(2*Pi)/dRpb/Ni);
if a>=0 then x:=Rpb+dRpb*sqrt(a) else x:=-1 end;
procedure point(x:real; var N:real); {вычисление концентрации}
begin
N:=Qb/sqrt(2*Pi)/dRpb*exp(-(x-Rpb)*(x-Rpb)/2/(dRpb*dRpb));
N:=(N-Qe/sqrt(2*Pi)/dRpe*exp(-(x-Rpe)*(x-Rpe)/2/(dRpe*dRpe))-Ni) end;
procedure boron(E:real; var Rp,dRp:real);
begin
z:= ln(E)/ln(10);
Rp:=0.613+0.8786*z+0.0773*z*z-0.0262*z*z*z;
dRp:=0.482+0.8594*z-0.0616*z*z-0.0135*z*z*;
Rp:=exp(Rp*ln(10)); dRp:=exp(dRp*ln(10));
Rp:=Rp*1e-7; dRp:=dRp*1e-7
end;
6 Решение Для расчета концентрационного профиля в заданной транзисторной структуре написана программа PR1, работающая в интерактивном режиме. Эта программа обладает элементами интеллекта и не только проводит расчет распределения ионно-имплантированных примесей любого типа, но и анализирует условия, при которых может быть сформирована транзисторная структура. Program PR1(input,output); {распределение примеси при двойной последовательной имплантации} label 1,3; const Pi=3.1415926; e=1.6e-19; csi=’ ‘(155); type mas=array [0..100] of real; var Qe,Qb,ro,m,Ee,Eb,Rpe,Rpb,dRpe,dRpb,Xje,Xjk,Xmax,Ni,h,Dt,z:real; i:integer; X,N:mas; Ans,ans1,o,tip,tipb,tipe:char; f:text; procedure junc_e(var x:real); {вычисление эмиттерного p-n перехода} var b,a,c:real; begin a:=-dRpe*dRpe +dRpb*dRpb; b:=Rpd*dRpe*dRpe -Rpe*dRpb*dRpb; c:=-(Rpb*Rpb)*(dRpe*dRpe)+(Rpe*Rpe)*(dRpb*dRpb); c:=c+2*(dRpb*dRpb)*(dRpe*dRpe)*ln(Qb*dRpe/Qe/dRpb); if (b*b-a*c)>=0 then x:=(-b+sqrt(b*b-a*c))/a else x:=-1 end; procedure junc_k(var x:real); {вычисление коллекторного p-n перехода} var a:real; begin a:=2*ln(Qb/sqrt(2*Pi)/dRpb/Ni); if a>=0 then x:=Rpb+dRpb*sqrt(a) else x:=-1 end; procedure point(x:real; var N:real); {вычисление концентрации} begin N:=Qb/sqrt(2*Pi)/dRpb*exp(-(x-Rpb)*(x-Rpb)/2/(dRpb*dRpb)); N:=(N-Qe/sqrt(2*Pi)/dRpe*exp(-(x-Rpe)*(x-Rpe)/2/(dRpe*dRpe))-Ni) end; procedure boron(E:real; var Rp,dRp:real); begin z:= ln(E)/ln(10); Rp:=0.613+0.8786*z+0.0773*z*z-0.0262*z*z*z; dRp:=0.482+0.8594*z-0.0616*z*z-0.0135*z*z*; Rp:=exp(Rp*ln(10)); dRp:=exp(dRp*ln(10)); Rp:=Rp*1e-7; dRp:=dRp*1e-7 end;
Страницы
- « первая
- ‹ предыдущая
- …
- 4
- 5
- 6
- 7
- 8
- …
- следующая ›
- последняя »