Chapter 6: Semiconductor Physics

Example 6.1,Page number 190

In [1]:
import math

#Given Data
S = [[1,2],[3,4],[5,6],[7,8]];      # Declare a 4X2 matrix
# Enter material names
S[0][0] = 'Si'; S[1][0] = 'GaAs'; S[2][0] = 'GaP'; S[3][0] = 'ZnS';
# Enter energy band gap values
S[0][1] = 1.11; S[1][1] = 1.42; S[2][1] = 2.26; S[3][1] = 3.60;
h = 6.626*10**-34;   # Planck's constant, Js
c = 3*10**8;         # Speed of light, m/s
e = 1.6*10**-19;     # Energy equivalent of 1 eV, J/eV
print"______________________________________________________";
print"Material      E_g (eV)    Critical Wavelength (micron)";
print"______________________________________________________";
for i in range (0,4) :
    lamda = h*c/(S[i][1]*e);
    print"", S[i][0],"        ", S[i][1],"           ",round(lamda/10**-6,3);

print"______________________________________________________";
______________________________________________________
Material      E_g (eV)    Critical Wavelength (micron)
______________________________________________________
 Si          1.11             1.119
 GaAs          1.42             0.875
 GaP          2.26             0.55
 ZnS          3.6             0.345
______________________________________________________

Example 6.2,Page number 192

In [2]:
import math

#Given Data
c = 3*10**8;      # Speed of light, m/s
h = 6.626*10**-34;     # Planck's constant, Js
e = 1.6*10**-19;   # Energy equivalent of 1 eV, J/eV
omega = 2e+014;      # Wave vector involved in phonon energy, rad per sec
f = omega/(2*math.pi);   # Frequency of the wave, Hz 
E = h*f/e;        # Phonon energy involved in Si to lift the electron, eV
print"The phonon energy involved in Si =",round(E,4),"eV which is insufficient to lift an electron.";
The phonon energy involved in Si = 0.1318 eV which is insufficient to lift an electron.

Example 6.3,Page number 192

In [3]:
import math

#Given Data
N_A = 6.023*10**23;   # Avogadro's number
# For Si
A = 28.1;   # Atomic weight of Si, g/mol
a = 5.43*10**-8;   # Lattice constant for Si, cm
n = 8.0/a**3;  # Number of atoms per unit volume, atoms/cc
rho = n*A/N_A;  # Density of Si, g/cc
print"The density of Si =",round(rho,3),"atoms per cc";
# For GaAs
A = 69.7+74.9;   # Atomic weight of GaAs, g/mol
a = 5.65*10**-8;   # Lattice constant for Si, cm
n = 4.0/a**3;  # Number of atoms per unit volume, atoms/cc
rho = n*A/N_A;  # Density of GaAs, g/cc
print"The density of GaAs =",round(rho,3),"toms per cc";
The density of Si = 2.331 atoms per cc
The density of GaAs = 5.324 toms per cc

Example 6.4,Page number 196

In [4]:
import math

#Given Data
m = 9.11*10**-31;  # Electron Rest Mass , kg
k = 1.38*10**-23;  # Boltzmann constant, J/mol/K
h = 6.626*10**-34; # Planck's constant, Js
T = 300.0;        # Room temperature, K
m_e = 0.068*m;    # Mass of electron, kg
m_h = 0.56*m;   # Mass of hole, kg
E_g = 1.42*1.6*10**-19;     # Energy band gap for GaAs, J
n_i = 2*(2*math.pi*k*T/h**2)**(3.0/2)*(m_e*m_h)**(3.0/4)*math.exp(-E_g/(2*k*T));
print"The Intrinsic carrier concentration of GaAs at 300 K =","{0:.3e}".format(n_i),"per metre cube";
The Intrinsic carrier concentration of GaAs at 300 K = 2.618e+12 per metre cube

Example 6.5,Page number 197

In [5]:
import math

#Given Data
m = 9.11*10**-31;  # Electron Rest Mass , kg
e = 1.6*10**-19;   # Energy equivalent of 1 eV, J/eV
k = 1.38*10**-23;  # Boltzmann constant, J/mol/K
T = 300.0;        # Room temperature, K
m_e = 1.1*m;    # Mass of electron, kg
m_h = 0.56*m;   # Mass of hole, kg
E_g = 1.1;     # Energy band gap for GaAs, J
E_F = E_g/2+3.0/4*k*T/e*math.log(m_h/m_e);   # Position of Fermi level of Si at room temperature, eV
print"The position of Fermi level of Si at room temperature =",round(E_F,3),"eV";
print"The fermi level in this case is shifted downward from the midpoint (0.55 eV) in the forbiddem gap.";
The position of Fermi level of Si at room temperature = 0.537 eV
The fermi level in this case is shifted downward from the midpoint (0.55 eV) in the forbiddem gap.

Example 6.6,Page number 197

In [6]:
import math

#Given Data
e = 1.6*10**-19;   # Electronic charge, C
n_i = 2.15*10**13;    # Carrier density of Ge at room temperature, per cc
mu_e = 3900.0;    # Mobility of electron, cm-square/V-s
mu_h = 1900.0;    # Mobility of hole, cm-square/V-s
sigma_i = e*(mu_e+mu_h)*n_i;    # Intrinsic conductivity of Ge, mho per m
rho_i = 1.0/sigma_i;  # Intrinsic resistivity of Ge at room temperature, ohm-m
print"The intrinsic resistivity of Ge at room temperature =",round(rho_i,2),"ohm-cm";
The intrinsic resistivity of Ge at room temperature = 50.12 ohm-cm

Example 6.7,Page number 197

In [7]:
import math

#Given Data
m = 9.1*10**-31;   # Mass of an electron, kg
e = 1.6*10**-19;   # Electronic charge, C
k = 1.38*10**-23;  # Boltzmann constant, J/mol/K
T = 30.0;    # Given temperature, K
n = 10**22;    # Carrier density of CdS, per metre cube
mu = 10**-2;     # Mobility of electron, metre-square/V-s
sigma = e*mu*n;    # Conductivity of CdS, mho per m
print"The conductivity of CdS sample =",round(sigma,2),"mho per m";
m_eff = 0.1*m;  # Effective mass of the charge carries, kg
t = m_eff*sigma/(n*e**2);  # Average time between successive collisions, s
print"The average time between successive collisions =","{0:.3e}".format(t),"sec";
# We have 1/2*m_eff*v**2 = 3/2*k*T, solving for v
v = math.sqrt(3*k*T/m_eff);    # Velocity of charrge carriers, m/s
l = v*t;    # Mean free distance travelled by the carrier, m
print"The mean free distance travelled by the carrier =","{0:.3e}".format(l),"m";
The conductivity of CdS sample = 16.0 mho per m
The average time between successive collisions = 5.688e-15 sec
The mean free distance travelled by the carrier = 6.644e-10 m

Example 6.8,Page number 199

In [1]:
import math
import matplotlib.pyplot as py
%matplotlib inline 

#Given Data
k = 1.38*10**-23;  # Boltzmann constant, J/mol/K
e = 1.6*10**-19;   # Energy equivalent of 1 eV, J/eV
T = [385.0, 455.0, 556.0, 714.0];      # Temperatures of Ge, K
rho = [0.028, 0.0061, 0.0013, 0.000274];   # Electrical resistivity, ohm-m
Tinv = [0.0, 0.0, 0.0, 0.0];    # Create an empty row matrix for 1/T
ln_sigma = [0.0, 0.0, 0.0, 0.0];  # Create the empty row matrix for log(sigma)
for i in xrange(len(T)):
    Tinv[i] = 1/T[i];
    ln_sigma[i] =math.log(1.0/rho[i]);
# Plot the graph
py.plot(Tinv, ln_sigma);
py.axis([0,0.003,0,9])
py.title('Plot of ln (sigma) vs 1/T');
py.xlabel('1/T');
py.ylabel('ln (sigma)');
py.show();


# Calculate slope
slope = (ln_sigma[2]-ln_sigma[1])/(Tinv[2]-Tinv[1]);
E_g = abs(2*slope*k);        # Energy gap of Ge, J
print"The energy gap of Ge =",E_g/e,"eV";

# Result 
# The energy gap of Ge = 0.658 eV 
The energy gap of Ge = 0.667947295491 eV

Example 6.9,Page number 199

In [10]:
import math

#Given Data
h = 6.626*10**-34;  # Planck's constant, Js
c = 3*10**8;      # Speed of light, m/s
e = 1.6*10**-19;   # Energy equivalent of 1 eV, J/eV
x = 0.07;   # Al concentration in host GaAs
E_g = 1.424 + 1.266*x + 0.266*x**2;    # Band gap of GaAs as a function of x, eV
# As E_g = h*c/lambda, solving for lambda
lamda = h*c/(E_g*e);   # Emission wavelength of light, m
print"The energy band gap of Al doped GaAs =",round(E_g,3),"eV";
print"The emission wavelength of light =",round(lamda*10**6,3),"micron";
print"The Al atoms go as substitutional impurity in the host material.";
The energy band gap of Al doped GaAs = 1.514 eV
The emission wavelength of light = 0.821 micron
The Al atoms go as substitutional impurity in the host material.

Example 6.10,Page number 200

In [11]:
import math

#Given Data
x = 0.38;   # Al concentration in host GaAs
E_g = 1.424 + 1.266*x + 0.266*x**2;    # Band gap of GaAs as a function of x, eV
print"The energy band gap of 38 percent Al doped in GaAs =",round(E_g,3),"eV";
The energy band gap of 38 percent Al doped in GaAs = 1.943 eV

Example 6.11,Page number 200

In [12]:
import math

#Given Data
k = 1.38*10**-23;  # Boltzmann constant, J/mol/K
e = 1.6*10**-19;   # Energy equivalent of 1 eV, J/eV
rho_40 = 0.2;   # Resistivity of Ge at 40 degree celsius, ohm-m
T1 = 40+273;    # Temperature at which resistivity of Ge becomes 0.2 ohm-m, K
T2 = 20+273;    # Temperature at which resistivity of Ge is to be calculated, K
E_g = 0.7;  # Band gap of Ge, eV
# As rho = exp(E_g/(2*k*T)), so for rho_20
rho_20 = rho_40*math.exp(E_g/(2*k/e)*(1.0/T2-1.0/T1));  # Resistivity of Ge at 20 degree celsius, ohm-m
print"The resistivity of Ge at 20 degree celsius =",round(rho_20,1),"ohm-m";
The resistivity of Ge at 20 degree celsius = 0.5 ohm-m

Example 6.12,Page number 203

In [13]:
import math

#Given Data
k = 1.38*10**-23;  # Boltzmann constant, J/mol/K
e = 1.6*10**-19;   # Energy equivalent of 1 eV, J/eV
T = 300.0;        # Room temperature of the material, K
K_Si = 11.7;    # Dielectric constant of Si
K_Ge = 15.8;    # Dielectric constant of Ge
m = 9.1*10**-31;   # Mass of an electron, kg
m_eff = 0.2;    # Effective masses of the electron in both Si and Ge, kg
E_ion_Si = 13.6*m_eff/K_Si**2;   # Donor ionization energy of Si, eV
E_ion_Ge = 13.6*m_eff/K_Ge**2;   # Donor ionization energy of Ge, eV
E = k*T/e;      # Energy available for electrons at 300 K, eV
print"The donor ionization energy of Si =",round(E_ion_Si,4),"eV";
print"The donor ionization energy of Ge =",round(E_ion_Ge,4),"eV";
print"The energy available for electrons at 300 K =",round(E,4),"eV";
The donor ionization energy of Si = 0.0199 eV
The donor ionization energy of Ge = 0.0109 eV
The energy available for electrons at 300 K = 0.0259 eV

Example 6.13,Page number 203

In [15]:
import math

#Given Data
e = 1.6*10**-19;   # Energy equivalent of 1 eV, J/eV
epsilon = 15.8;  # Dielectric constant of Ge   
m = 9.1*10**-31;   # Mass of an electron, kg
m_e = 0.2*m;     # Effective masses of the electron in Ge, kg
a_Ge = 5.65;    # Lattice parameter of Ge, angstrom
A_d = 0.53*epsilon*(m/m_e);    # Radius of donor atom, angstrom
print"The radius of the orbits of fifth valence electron of acceptor impurity =",math.ceil(A_d),"angstrom";
print"This radius is",math.ceil(A_d/a_Ge),"times the lattice constant of Ge";
 The radius of the orbits of fifth valence electron of acceptor impurity = 42.0 angstrom
This radius is 8.0 times the lattice constant of Ge

Example 6.14,Page number 203

In [16]:
import math

#Given Data
e = 1.6*10**-19;   # Energy equivalent of 1 eV, J/eV
tau = 10**-12;   # Life time of electron in Ge, s
m = 9.1*10**-31;   # Mass of an electron, kg
m_e = 0.5*m;     # Effective masses of the electron in Ge, kg
mu = e*tau/m_e;   # Mobility of electron in Ge, m-square/V-s
n_i = 2.5*10**19;     # Intrinsic carrier concentration of Ge at room temperature, per metre cube
n_Ge = 5*10**28;  # Concentration of Ge atoms, per metre cube
n_e = n_Ge/10**6;    # Concentration of impurity atoms, per metre cube
# From law of mass action, n_e*n_h = n_i**2, solving for n_h
n_h = n_i**2/n_e;    # Concentration of holes, per metre cube

print"This mobility of electron in Ge =",round(mu/10**-4,1),"cm-square/V-s";
print"This concentration of holes in Ge =","{0:.3e}".format(n_h),"per metre cube";
This mobility of electron in Ge = 3516.5 cm-square/V-s
This concentration of holes in Ge = 1.250e+16 per metre cube

Example 6.15,Page number 204

In [17]:
import math

#Given Data
n_i = 2.5*10**19;     # Intrinsic carrier concentration of Ge at room temperature, per metre cube
n_Ge = 5*10**28;  # Concentration of Ge atoms, per metre cube
delta_d = 10**6;    # Rate at which pentavalent impurity is doped in pure Ge, ppm
n_e = n_Ge/delta_d;    # Concentration of impurity atoms, per metre cube
# From law of mass action, n_e*n_h = n_i**2, solving for n_h
n_h = n_i**2/n_e;    # Concentration of holes, per metre cube

print"This concentration of holes in Ge =","{0:.3e}".format(n_h),"per metre cube";
This concentration of holes in Ge = 1.250e+16 per metre cube

Example 6.16,Page number 205

In [18]:
import math

#Given Data
e = 1.6*10**-19;   # Charge on an electron, C
mu = 1400*10**-4;  # Mobility of electron, metre-square per volt per sec
l = 300-6;    # Length of the n-type semiconductor, m
w = 100-6;    # Width of the n-type semiconductor, m
t = 20-6;     # Thickness of the n-type semiconductor, m
N_D = 4.5*10**21; # Doping concentration of donor impurities, per metre-cube
V = 10;     # Biasing voltage for semiconductor, V
B_prep = 1; # Perpendicular magnetic field to which the semiconductor is subjected, tesla

# Part (a)
n = N_D;    # Electron concentration in semiconductor, per cc
R_H = -1.0/(n*e); # Hall Co-efficient, per C per metre cube

# Part (b)
rho = 1.0/(n*e*mu);       # Resistivity of semiconductor, ohm-m
R = rho*l/(w*t);    # Resistance of the semiconductor, ohm
I = V/R;    # Current through the semiconductor, A
V_H = R_H*I*B_prep/t;   # Hall voltage, V

# Part (c)
theta_H = math.degrees(math.atan(-mu*B_prep));    # Hall angle, degrees


print"Hall coefficient, R_H =","{0:.3e}".format(R_H),"per C metre cube";
print"Hall voltage, V_H = ",math.fabs(V_H),"V";
print"Hall angle, theta_H =",round(theta_H,3),"degree";
Hall coefficient, R_H = -1.389e-03 per C metre cube
Hall voltage, V_H =  0.447619047619 V
Hall angle, theta_H = -7.97 degree
In [ ]: