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 OF MOS
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--')

1
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.

1
EXPRIMENT 3
TO MODEL AND VERIFY THE SUB THRESHOLD SWING OF
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

1
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.

1
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)--------------->');

1
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.

1
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)

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

COMMAND WINDOW:

1
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.

1
EXPRIMENT NO: 06
TO MODEL AND VERIFY THE SATURATION REGION OF MOS
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

1
COMMAND WINDOW:

2
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.

2
EXPRIMENT NO: 07
TO MODEL AND VERIFY THE N-CHANNEL ENHANCEMENT
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

2
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.

2
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);

2
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.

You might also like