Modelling of Mos Devices Lab Report: School of Electronics Engineering, SENSE

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 25

MODELLING OF MOS DEVICES LAB REPORT

Master of Technology In
(Very Large-Scale Integrated Circuits)
School of Electronics Engineering ,SENSE

Submitted to
Dr. Chandan Kumar Pandey
Sr. Assistant Professor
School of Electronics Engineering ,SENSE

Submitted By
DASARI HIMAJA
(21MVD7006)

1
EXPRIMENT 1
TO MODEL AND VERIFY THE CV CHARACTERISTICS OF
MOS DEVICES

AIM: To model and verify the CV characteristics of MOS devices.


SOFTWARE REQUIRED: MATLAB R2020a

PROGRAM:
q = 1.6e-19;
eps_0= 8.85e-12;
vt=26e-3;

Nsub= 5e17*1e6; %-ve(nmos) +ve(pmos)


k_si=12;
ni=1.5e10*1e6;
Eg=1.1*q;
Lsub= 250e-9;
eps_si= k_si*eps_0;
chi_si=4.05*q;

if Nsub<0
psub= abs(Nsub); nsub= ni^2/abs(Nsub);
elseif Nsub>0
psub= ni^2/Nsub; nsub = Nsub;
else
psub = ni; nsub= ni;
end

oxide
tox=3*1e-9;
k_ox=4;
Eg_ox=9*q;
eps_ox=k_ox*eps_0;
Ec_off= 3.1*q;

%metal related
tm=10e-9;
for phi_m= [chi_si/q chi_si/q+Eg/(2*q) chi_si/q+Eg/q ]%Eg/q
phi_b= -sign(Nsub)*vt*log(abs(Nsub)/ni);
phi_s=chi_si/q+ Eg/(2*q)+ phi_b;
Vfb=phi_m-phi_s;

%solver
dx= 0.1e-9;

2
NRmax=100;
tol=1e-6;

%mesh
xox=-tox:dx:0;
xsi= dx:dx:Lsub;
x=[xox,xsi];
N= length (x);
iox= x<=0;
isi=x>0;
i0=find (x==0);

%Newton Raphson Matrices


ki= k_ox*iox+ k_si*isi;
kip= 0.5*(ki + circshift(ki,-1));
kim= 0.5*(ki + circshift(ki,1));
kipm=kip+kim;
A= diag(kipm,0)- diag (kip(1:end-1),1)- diag (kim(2:end),-1);

A(1,:)=0; A(1,1)=1;
b=zeros(N,1);

psi= zeros(N,1);

%fixed oxide charges

rho_ox= zeros(size(xox));
%rho_ox(round (length(xox)/2))=0*1e12*1e4/dx*q;
%rho_ox(end)= 1e13*1e4/dx*q;
rho_oxfx= rho_ox;

%Interface Charges
%dite=1e14*1e4/q;
%ditm= 1e12*1e4/q;
%E0=Eg/(2*log(2*dite/ditm));
%ditf=@(E) 1.*(dite.*exp(-E/E0)+ dite*exp(-(Eg-E)/E0));

%input

Vgs= (-2.5:50e-3:2.5);
Vwiggle=10e-3;
Vright=0;
sweep_type=0;% 0= LFCV,1=HFCV,2=Fast Sweep
dit_dpsi=0.1e-3;

Caps=[];
psi_ss=[];

%Voltage Sweep

3
for Vg= Vgs

V1= Vg-Vfb;
V2=V1+Vwiggle;

Qsub=[];

Vleft=V1;
for i=1:NRmax
%figure(1); plot(x,psi);hold on;
%Generate b

psi_si= psi(isi);
psi_s= psi(i0);
E1= q*psi_s+Eg/2-q*phi_b;
E2=Eg/2;
%rho_dit= q/dx*integral(ditf,E2,E2);
%rho_dit_dpsi=q/dx*integral(ditf,E1+q*dit_dpsi,E2);
%delrho_dit = 1/dit_dpsi* (rho_dit_dspi-rho_dit);
rho_dit=0;
rho_dit_dpsi=0;
delrho_dit=0;
ditq1=0;
ditdq=0;

p= psub*exp(-psi_si/vt);
n= nsub*exp(psi_si/vt);
delp= -1/vt*p;
deln=1/vt*n;

if sweep_type==2
minc=0;
delminc=0;
ditq=0;
ditdq=0;
if sign(Nsub)==1
majc=n;
delmajc=deln;
elseif sign (Nsub)==-1
majc=p;
delmajc=delp;
end
else
ditq=ditq1;
ditdq=0;
if sign (Nsub)==1
majc=n;
delmajc=deln;
minc=p;

4
delminc=delp;
elseif sign(Nsub)==-1
majc=p;
delmajc=delp;
minc=n;
delminc=deln;
end
end
rho_ox(end)= rho_oxfx(end)+ditq;
rho_si= q*(Nsub+sign (Nsub)*(minc-majc));

rho= [rho_ox';rho_si];
b=rho*dx^2/eps_0;
b(1)= Vleft;
b(N)= Vright;
f= A*psi-b;

%Jacobian Calculation
delrho_ox= zeros(size(rho_ox));
delrho_ox(end)= delrho_ox(end)+ditdq;

delrho_si= q*(sign(Nsub)*(delminc-delmajc));

delrho= [delrho_ox';delrho_si];
delb=delrho*dx^2/eps_0;
delb(1)=0;
delb(N)=0;
J= A-diag(delb);
dV= -J\f;

if max(abs(dV))<tol
break;
end
psi=psi+dV;
end

Q1= sum(rho_si)*dx+ ditq*dx;

minc1=minc;
ditq2=ditq;

%Wiggle point
Vleft = V2;
for i=1:NRmax

%figure(2);plot(x,psi);hold on;

%generate b
psi_si= psi(isi);
psi_s= psi(i0);
E1= q*psi_s+Eg/2-q*phi_b;

5
E2=Eg/2;
%rho_dit= q/dx*integral(ditf,E2,E2);
%rho_dit_dpsi=q/dx*integral(ditf,E1+q*dit_dpsi,E2);
%delrho_dit = 1/dit_dpsi* (rho_dit_dspi-rho_dit);
%rho_dit=0;
%rho_dit_dpsi=0;
%delrho_dit=0;
%ditq=3*1e12*1e4;
%ditdq=0;

p= psub*exp(-psi_si/vt);
n= nsub*exp(psi_si/vt);
delp= -1/vt*p;
deln=1/vt*n;
if sweep_type==2
minc=0;
delminc=0;
ditq=0;
ditdq=0;
if sign(Nsub)==1
majc=n;
delmajc=deln;
elseif sign (Nsub)==-1
majc=p;
delmajc=delp;
end

elseif sweep_type==1
minc=minc1;
delminc=0;
ditq=ditq2;
ditdq=0;
if sign(Nsub)==1
majc=n;
delmajc=deln;
elseif sign (Nsub)==-1
majc=p;
delmajc=delp;
end
elseif sweep_type==0
ditq=rho_dit;
ditdq=delrho_dit;
if sign (Nsub)==1
majc=n;
delmajc=deln;
minc=p;
delminc=delp;
elseif sign(Nsub)==-1
majc=p;
delmajc=delp;
minc=n;

6
delminc=deln;
end
end

rho_ox(end)= rho_oxfx(end)+ditq;
rho_si= q*(Nsub+sign (Nsub)*(minc-majc));

rho= [rho_ox';rho_si];
b=rho*dx^2/eps_0;
b(1)= Vleft;
b(N)= Vright;
f= A*psi-b;

%Jacobian Calculation
delrho_ox= zeros(size(rho_ox));
delrho_ox(end)= delrho_ox(end)+ditdq;
delrho_si= q*(sign(Nsub)*(delminc-delmajc));

delrho= [delrho_ox';delrho_si];
delb=delrho*dx^2/eps_0;
delb(1)=0;
delb(N)=0;
J= A-diag(delb);
dV= -J\f;

if max(abs(dV))<tol
break;
end
psi=psi+dV;
end

Q2= sum(rho_si)*dx+ditq*dx;

psi_ss=[psi_ss psi_s];
Cap= 1/Vwiggle*(Q1-Q2);
Caps=[Caps Cap];
end

figure(4);
plot(Vgs,Caps*10^2)
hold on

end

legend ( 'chi-si','chi-si+0.56' ,'chi-si+1.12');


xlabel ('Vg (in Volt)');
ylabel ('C (uF/cm^2)');
title ('Effect of Work Function');

7
WAVEFORM:

Fig 1: CV characteristics of MOS device.

RESULT: Hence the modeling and verification of the CV characteristics of MOS


devices has been completed and verified.

8
EXPRIMENT NO 2
TO MODEL AND VERIFY THE SURFACE POTENTIAL OFMOS
DEVICES

AIM: To model and verify the surface potential of MOS devices.


SOFTWARE REQUIRED: MATLAB R2020a

PROGRAM:
clc;
clear all;
close all;
%Initialize the range of the surface potential
psi = -0.2:0.01:1.2; %[V]
%Specify the physical constants
epsilon_siO2 = 4*8.854*1e-14; %Permittivity of SiO2 [F/cm]
epsilon_si = 11.68*8.854*1e-14; %Permittivity of Si [F/cm]
k_b = 1.380e-23; %Boltzmann constant [J/K]
q = 1.6e-19; %Elementary charge [C]
%Specify the environmental parameters
TL = 300; %Room temperature[K]
ni = 1e10; %Intrinsic semiconductor carrier density [cm-3]
N_A = 5e17; %Acceptor concentration [cm-3]
tox = 2e-7; %The thickness of SiO2 [cm]
V_FB = 0; %The flat-band voltage [V]
%Calculate the capacitance
cox = epsilon_siO2/tox; %[F/cm2]
%Calculate the F function (to calculate the total charge)
withrespect to different surface potentials. See: eqn. (10) in
[1]
F_psi1 = exp(-psi*q/k_b/TL) + psi*q/k_b/TL -1;
F_psi2 = ni^2/N_A^2*(exp(psi*q/k_b/TL) - psi*q/k_b/TL -1);
F_psi = sqrt(F_psi1 + F_psi2);
%Initialize the vectors
psi_length = length(psi);
Qs = zeros(psi_length,1);
V_G = zeros(psi_length,1);
psi_B = zeros(psi_length,1);
%Calculate the total charges and the corresponding gate
voltages.See eqn. (12) in [1]
for i = 1:psi_length
if psi(i) <= 0
Qs(i) = sqrt(2*epsilon_si*k_b*TL*N_A)*F_psi(i);
%Calculate charge when the surface potential is negative
else

9
Qs(i) = -sqrt(2*epsilon_si*k_b*TL*N_A)*F_psi(i);
%Calculate charge when the surface potential is positive
end
psi_B(i) = k_b*TL/q*log(N_A/ni); %Get the bulk potential as a
reference and it is a constant with respect to VG
V_G(i) = V_FB+psi(i)-Qs(i)/cox; %Calculate the gate voltage
end
%Plot total charge vs. surface potential (psi_S)
figure(1)
semilogy(psi,abs(Qs)/q,'r','linewidth',3);
hold on
set(gca, 'xlim', [-0.4 1.4], 'ylim', [1e11 1e14]);
set(gca,'fontsize',13);
xlabel('\psi_S (V)');
ylabel('|Qs|/q (cm^-2)');
%Plot x=0
plot(zeros(1,21),logspace(10,16,21),'k--')
%Plot surface potential (psi_S) vs. gate voltage with
reference potential 2*psi_B
figure(2)
h1=plot(V_G,psi,'r','linewidth',3);
hold on
h2=plot(V_G,2*psi_B,'--b','linewidth',3);
set(gca, 'xlim', [-3 10], 'ylim', [-0.4 1.4]);
set(gca,'fontsize',13);
legend('\psi_S','2*\psi_B','Location','SouthEast')
xlabel('V_G (V)');
ylabel('\psi_S (V)');
%Plot x=0 and y=0
plot(-10:10, zeros(1,21), 'k--')
plot(zeros(121),-10:10, 'k--')

10
WAVEFORM:

Fig 1: Plot between psi_S (V) vs |Qs|/q (cm^-2)

Fig 2: Plot between V_G(V) vs psi_S(V)

RESULT: Hence the modeling and verification of the surface potential of MOS
devices has been completed and verified.

11
EXPRIMENT 3
TO MODEL AND VERIFY THE SUB THRESHOLD SWINGOF
MOS DEVICES

AIM: To model and verify the sub threshold swing of MOS devices.
SOFTWARE REQUIRED: MATLAB R2020a

PROGRAM:
clc;
close all;
clear all;
VT=02585;
vds=5;
Vto=.7;
Esi=3.9*8.854*10^-12;
q=1.6*10^-19;
Nsub=10^15;
cd=sqrt(q*Esi*Nsub/(4*.65));
Y=.35;
w=10^-6;
l=10^-8;
n=.08;
u=.05;
Qs=.2;
cox=Esi/(2*10^-2);
N=1+(cd/cox);
vsb=[0:.5:5];
vgs=[0:.1:5];
for i=1:length(vsb)
for j=1:length(vgs)
VT=(Vto*n*vds)+Y*(sqrt(vsb(i)+Qs)+sqrt(Qs));
Id(j)=(w/l)*u*cd*(VT)^2*(exp((vgs(j)-VT)/(N*VT)))*(1-
exp((vds)/VT));
end
subplot(2,1,1)
xlabel('Vgs');
ylabel('Id');
plot(vgs,Id)
grid
hold on;
end

12
WAVEFORM:

Fig 1: Sub-threshold swing of MOS device

RESULT: Hence the modeling and verification of the sub threshold swing of
MOS devices has been completed and verified.

13
EXPRIMENT NO 4
TO MODEL AND VERIFY THE DRAIN CURRENT VS GATE-
SOURCE VOLTAGE OF MOS DEVICES

AIM: To model and verify the drain current vs gate-source voltage of MOS
devices.
SOFTWARE REQUIRED: MATLAB R2020a

PROGRAM:
clc;
clear all;
close all;
Vgs=[0:.5:30];
Vt=.4;
Mn1=300*(10^(-4));
Mn2=500*(10^(-4));
Mn3=700*(10^(-4));
Cox=((3.9*8.854*(10^(-3)))/2);
W=10^(-9);
L1=(10^(-7))
L2=(10^(-4))
L3=(10^(-6))
for i=1:length(Vgs)
Id1(i)=(0.5*Mn1*Cox*W*((Vgs(i)-Vt)^2)/L1);
Id2(i)=(0.5*Mn2*Cox*W*((Vgs(i)-Vt)^2)/L2);
Id3(i)=(0.5*Mn3*Cox*W*((Vgs(i)-Vt)^2)/L3);
end
plot(Vgs,Id1,'Color',[.6 0 0]);grid;
hold on;
plot(Vgs,Id2,'Color',[0 .6 0]);grid;
hold on;
plot(Vgs,Id3,'Color',[0 0 .6]);grid;
hold on;
xlabel ('Vgs (V) --------------- >');
ylabel ('Id (A) --------------- >');

14
WAVEFORM:

Fig 1: Plot between Vgs vs Id

RESULT: Hence the modeling and verification of drain current vs gate-source


voltage of MOS devices has been completed and verified.

15
EXPRIMENT NO: 05
TO MODEL AND VERIFY THE TRIODE REGION OF MOS
DEVICES

AIM: To model and verify the triode region of MOS devices.


SOFTWARE REQUIRED: MATLAB R2020a

PROGRAM:
clc;
clear all;
u=500*10^(-4)
Eox=3.9*8.85*10^-12;
Cox=Eox/(1*10^(-9));
Vg=3:1:5;
Vt=0.7;
Vd=0:0.05:10;
W=10^(-9);
L=20*10^(-9);
Vg1=0:0.5:10;
for j=1:length(Vg)
for i=1:length(Vd)
if Vd(i)<(Vg(j)-Vt)
Id(i)=u*Cox*(W/L)*((Vg(j)-Vt)*Vd(i)-0.5*Vd(i)^2);
k=Id(i);
else
Id(i)=k;
end
end
subplot(2,1,1)
plot(Vd,Id);grid;
xlabel('Vd ----- >');
ylabel('Id ----- >');
hold on;
Id1(j)=u*Cox*(W/L)*((Vg(j)-Vt)*1-0.5*(1)^2);
Id2(j)=u*Cox*(W/L)*((Vg(j)-Vt)*0.5-0.5*(0.5)^2);
R(j)=(1-0.5)/(Id1(j)-Id2(j))
end
for i=1:length(Vg1)
Id3(i)=u*Cox*(W/L)*(Vg1(i)-Vt)^2;
end
subplot(2,1,2)

16
plot(Vg1,Id3);
xlabel('Vg ----- >');
ylabel('Id ----- >');

COMMAND WINDOW:

17
WAVEFORM:

Fig 1: Plot between Vd vs Id

Fig 2: Plot between Vg vs Id

RESULT: Hence the modeling and verification of the triode region of MOS
devices has been completed and verified.

18
EXPRIMENT NO: 06
TO MODEL AND VERIFY THE SATURATION REGION OFMOS
DEVICES

AIM: To model and verify the saturation region of MOS devices.


SOFTWARE REQUIRED: MATLAB R2020a

PROGRAM:
clc;
clear all;
close all;
U=500*10^(-4);
Eox=3.9*8.85*10^-12;
Cox=Eox/(2*10^-9);
Vg=0:0.5:10;
W=10^(-9);
Vt=1
L=20:20:100;
for j=1:length(L)
for i=1:length(Vg)
Id(i)=0.5*U*Cox*W/(L(j)*10^(-9))*((Vg(i)-Vt)^2);
end
y1=log(0.5*U*Cox*W/(L(j)*10^(-9))*((2-Vt)^2));
y2=log(0.5*U*Cox*W/(L(j)*10^(-9))*((3-Vt)^2));
m(j)=1/(y2-y1)
plot(Vg,log(Id));grid on;
xlabel('Vg ----- >');
ylabel('log(Id) ----- >');
hold on;
end

19
COMMAND WINDOW:

20
WAVEFORM:

Fig 1: Plot between Vg vs log(Id)

RESULT: Hence the modeling and verification of the saturation region of MOS
devices has been completed and verified.

21
EXPRIMENT NO: 07
TO MODEL AND VERIFY THE N-CHANNELENHANCEMENT
MODE OF MOS DEVICES

AIM: To model and verify the n-channel enhancement mode of MOS devices.
SOFTWARE REQUIRED: MATLAB R2020a

PROGRAM:
clear all;
%kn=un*cox = 100 microA/Volts
kn=1e-4;
%Let W/L= 2
W=360*(10^(-9));
L=180*(10^(-9));
beta=kn*W/L;
%Vth is the threshold voltage
Vth=1;
%Sweep drain to source voltge from 0 to 10V
vds=0:0.5:10;
%Ask the user to enter gate to source voltage
vgs=input('ENTER THE Vgs in volts');
%Estimate length of the array
m=length(vds);
for i=1:m
if vgs < Vth
current(1,i)=0;
elseif vds(i) >= (vgs - Vth)
current(1,i)=0.5* beta * (vgs - Vth)^2;
elseif vds(i) < (vgs - Vth)
current(1,i)= beta*((vgs-Vth)*vds(i) - 0.5*(vds(i)^2));
end
end
plot(vds,current(1,:),'b')
xlabel('Vds, V')
ylabel('Drain Current,A')
title('I-V Characteristics of a MOSFET')
ENTER THE Vgs in volts 5

22
WAVEFORM:

Fig 1: Plot between Vds vs Ids

RESULT: Hence the modeling and verification of the n-channel enhancement


mode of MOS devices has been completed and verified.

23
EXPRIMENT NO: 08
TO MODEL AND VERIFY THE THRESHOLD VOLTAGE OF
MOS DEVICES

AIM: To model and verify the threshold voltage of MOS devices.


SOFTWARE REQUIRED: MATLAB R2020a

PROGRAM:
clc;
%clear all;
close all;
prompt = 'What is the acceptor concentration? ';
Na = input(prompt);
Vt = 0.0259;
ni = 1.5*10^10;
Phifp = Vt*log(Na/ni);
disp(Phifp)
Phims = -0.83;
e = 1.6*10^-19;
eo = 8.845*10^-14;
%permitivity = 'enter er material permitivity : ';
er = 11.7;
es = eo*er;
xdt = sqrt(4*es*Phifp/e*Na);
disp(xdt);
%%%%%%%%%
Qsdmax = sqrt(4*es*Phifp*e*Na);
disp(Qsdmax);
surface_charge = 'enter Qss charge value: ';
Qss = input(surface_charge);
thickness = 'enter thickness: ';
tox = input(thickness);
eox = 3.9*8.845*10^-14;
Vtn = ((abs(Qsdmax)-(Qss*e))*(tox/eox)+Phims+2*Phifp);
%disp(Vtn);
fprintf('Threshold voltage is $%.2f\n', Vtn);

24
COMMAND WINDOW:

Fig 1: Threshold voltage output.

RESULT: Hence the modeling and verification of the threshold voltage of MOS
devices has been completed and verified.

25

You might also like