# Chapter 1 : Introduction to Solid State Electronics¶

## Example 1.1, Page No. 17¶

In :
# ne in the doped silicon

import math
#Variable declaration
ni=1.5*10**16               # in m^-3
nh=4.5*10**22               # in m^-3

#Calculations
ne=ni**2/nh

#Result
print(" ne in the doped silicon is,(m^-3) = %.f * 10^9"%(ne/10**9))

 ne in the doped silicon is,(m^-3) = 5 * 10^9


## Example 1.2, Page No. 17¶

In :
# resistivity

import math
#Variable declaration

ne=8.0*10**19                # in m^-3
nh=5.0*10**18                # in m^-3
mu_e=2.3                     # in m^2/V-s
mu_h=.01                     # in m^2/V-s
e=1.6*10**-19                # in V

#Calculations
p=1/(e*((ne*mu_e)+(nh*mu_h)));

#Result
print("(b) the resistivity,p(ohm-m)= %.1f * 10^-2"%(p*10**2))

(b) the resistivity,p(ohm-m)= 3.4 * 10^-2


## Example 1.3, Page No. 17¶

In :
# Density

import math
#Variable declaration

sigma=500.0              # in ohm^-1 m^-1
mu_e=0.39                # m^2/V-s
e=1.6*10**-19            # in V

#Calculations
ne=sigma/(e*mu_e);

#Result
print("number density of donor,ne(m^-3) = %.2f * 10^21"%(ne*10**-21))

number density of donor,ne(m^-3) = 8.01 * 10^21


## Example 1.4, Page No. 18¶

In :
# Density

import math
#Variable declaration

e=1.6*10**-19          # in V
Pp=10**-2              # p-type silicon in ohm-m
Pn=10**-2              # n-type silicon in ohm-m
mu_p=0.048             # holes mobilities in m^2/V-s
mu_n=0.135             # electrons mobilities in m^2/V-s

#Calculations
Na=1/(e*mu_p*Pp);
Nd=1/(e*mu_n*Pn);

#Result
print("(i).  the density of impurity,Na (m^-3) = %.1f * 10^22"%(Na*10**-22))
print("(ii). the density of impurity,Nd (m^-3) = %.2f * 10^21"%(Nd*10**-21))

(i).  the density of impurity,Na (m^-3) = 1.3 * 10^22
(ii). the density of impurity,Nd (m^-3) = 4.63 * 10^21


## Example 1.5, Page No. 18¶

In :
# Resistivity

import math
#Variable declaration
e=1.6*10**-19                 # in V
n=2.5*10**19                  # m^3
p=n
ni=n
mu_p=0.17                     # holes mobilities in m^2/V-s
mu_n=0.36                     # electrons mobilities in m^2/V-s

#Calculations
sgint=e*(ni*(mu_p+mu_n))      #electrical conductivity in mho/metre
pint=1/sgint                  #resistivity in ohm-meter
print("electrical conductivity is ,(mho/metre)= %.2f"%sgint)
print("resistivity is ,(ohm-metre)= %.2f"%pint)

electrical conductivity is ,(mho/metre)= 2.12
resistivity is ,(ohm-metre)= 0.47


## Example 1.6, Page No. 18¶

In :
# Conductivity

import math
#Variable declaration

e=1.6*10**-19            # in V
ni=1.5*10**16            # in m^3
mu_p=0.13                # holes mobilities in m^2/V-s
mu_n=0.05                # electrons mobilities in m^2/V-s
siat=10.0**8             # number of silicon atoms
ta=5.0*10**28            # silicon atoms in atoms/m^3
mu_n2=0.13                # electrons mobilities in m^2/V-s
siat2=10.0**8            # number of silicon atoms
ta2=5.0*10**28           # silicon atoms in atoms/m^3
mu_p2=0.05                # holes mobilities in m^2/V-s

#Calculations
sgint=e*(ni*(mu_p+mu_n)) # electrical conductivity in mho/m
Nd=ta/siat               # in atoms/m^3
p= ni**2/Nd              # holes concentration in holes/m^3
n=Nd
sntype=e*n*mu_n2          # in mho/m
Na=ta2/siat2               # in atoms/m^3
n= ni**2/Na              # holes concentration in holes/m^3
sptype=e*Na*mu_p2          # in mho/m

#Calculations
print("(i) electrical conductivity is ,(mhos/m)    = %.2f * 10^-4"%(sgint*10**4))
print("(ii) holes concentration is, (holes/m^3)    = %.1f *10^11"%(p*10**-11))
print("(ii) conductivity is ,(mho/m)               = %.1f"%sntype)
print("(iii) electron concentration is, (holes/m^3)= %.1f * 10^11"%(n/10**11))
print("(iii) conductivity is ,(mho/m)              = %.1f"%sptype)

(i) electrical conductivity is ,(mhos/m)    = 4.32 * 10^-4
(ii) holes concentration is, (holes/m^3)    = 4.5 *10^11
(ii) conductivity is ,(mho/m)               = 10.4
(iii) electron concentration is, (holes/m^3)= 4.5 * 10^11
(iii) conductivity is ,(mho/m)              = 4.0


## Example 1.7, Page No. 19¶

In :
# Fermi Level

import math
#Variable declaration
#Nd1=Nc*exp^-(Ec-Ef1)/kT ...Formula Used
Nc=1.0               #assume
kT=0.03              #eV
EcEf1=0.5            #position of Fermi level in V
Nd=1.0               #assume
Nd1=3*Nd             #After tripling the donor concentration

#Calculation
EcEf2=(EcEf1-(kT*(math.log(Nd1/Nd))))
print("new position of Fermi-level is %.3f eV below conduction band"%(math.ceil(EcEf2*1000)/1000))

new position of Fermi-level is 0.468 eV below conduction band


## Example 1.8, Page No. 20¶

In :
# density

import math
#Variable declaration
e=1.6*10**-19           # in V
Pp=10**-1               # p-type silicon in ohm-m
Pn=10**-1               # n-type silicon in ohm-m
mu_h=0.05               # holes mobilities in m^2/V-s
mu_e=0.13               # electrons mobilities in m^2/V-s

#Calculations
Na=1/(e*mu_h*Pp);
Nd=1/(e*mu_e*Pn);

#Result
print("(i).  the density of impurity,Na (m^-3) = %.2f * 10^21"%(Na/10**21))
print("(ii). the density of impurity,Nd (m^-3) = %.1f * 10^20"%(Nd/10**20))

(i).  the density of impurity,Na (m^-3) = 1.25 * 10^21
(ii). the density of impurity,Nd (m^-3) = 4.8 * 10^20


## Example 1.9, Page No. 20¶

In :
# current

import math
#Variable declaration
e=1.6*10**-19              # in V
Pp=10**-1                  # p-type silicon in ohm-m
Pn=10**-1                  # n-type silicon in ohm-m
mu_hsi=0.048               # holes mobilities in m^2/V-s
mu_esi=0.135               # electrons mobilities in m^2/V-s
nisi=1.5*10**16            # in m^-3
nesi=nisi
nhsi=nisi
mu_hge=0.19                # holes mobilities in m^2/V-s
mu_ege=0.39                # electrons mobilities in m^2/V-s
A=1*10**-4                 # area in m^2
nige=2.4*10**19            # in m^-3
V=2.0                      # in V
l=0.1                      # in m

#Calculations
Isi= e*A*(V/l)*((nesi*mu_esi)+(nhsi*mu_hsi))
#Current for silicon is calculated wrong in the textbook
nege=nige
nhge=nige
Ige= e*A*(V/l)*((nege*mu_ege)+(nhge*mu_hge))

#Result
print("Total current for silicon is,(A)  = %f"%Isi)
print("Total current for germanium is,(A)= %.2f * 10^-3"%(math.ceil(Ige*10**5)/100))

Total current for silicon is,(A)  = 0.000001
Total current for germanium is,(A)= 4.46 * 10^-3


## Example 1.10, Page No. 21¶

In :
# hole concentration and conductivity

import math
#Variable declaration
nh=2*10**21       # acceptor atoms in atoms/m^3
mu_h=0.17        # mobility of holes in m^2/V-s
e=1.6*10**-19    # in C

#Calculations
Na=nh
sigma=nh*mu_h*e;

#Result
print("hole concentration,Na(atoms/m^3) = %.1f * 10^21"%(Na/10**21))
print("conductivity,(ohm^-1-m^-1)       = %.1f"%sigma)
#conductivity is calculated wrong in the book

hole concentration,Na(atoms/m^3) = 2.0 * 10^21
conductivity,(ohm^-1-m^-1)       = 54.4


## Example 1.11, Page No. 22¶

In :
# donor concentration

import math
#Variable declaration
p=0.15                  # in ohm-m
mu_e=0.39               # mobility of electron in m^2/V-s
e=1.6*10**-19           # in C

#Calculations
Na=1/(e*mu_e*p);

#Result
print("The value of donor concentration,Na(m^-3) = %.2f * 10^20"%(Na/10**20))

The value of donor concentration,Na(m^-3) = 1.07 * 10^20


## Example 1.12, Page No. 12¶

In :
# resistivity

import math
#Variable declaration
mu_n=0.13            # in m^2/V-s
mu_p=0.05            # in m^2/V-s
ni=1.5*10**16        # in m^-3
e=1.6*10**-19        # in C

#Calculations
p=1/((e*ni)*(mu_n+mu_p));

#Result
print("The resistivity,p(ohm-m) = %.1f"%p)

The resistivity,p(ohm-m) = 2314.8


## Example 1.13, Page No. 37¶

In :
# current

import math
#Variable declaration
e=1.6*10**-19             # electron charge in coulombs
k=1.38*10**-23            # Boltzmann constant in m^2-kg/s^2-K^-1
T=300.0                   # in Kelvin
I=240.0                   # in mA
eta=2.0
Ve=0.8                    # in V
V=0.7                     # in V

#Calculations
Vt=(k*T)/e                # in V
Id=I*math.e**((V-Ve)/(eta*Vt)) #in mA
Ir=(I/((math.e**(Ve/(eta*Vt)))-1))*10**6

#Result
print("(i)  Current is ,(mA) = %.f"%(round(Id)))
print("(ii) reverse saturation current is ,(nA) = %.f"%(round(Ir)))
#reverse saturation current is calculated wrong in the textbook

(i)  Current is ,(mA) = 35
(ii) reverse saturation current is ,(nA) = 46


## Example 1.14, Page No. 38¶

In :
# diode current and voltage

import math
#Variable declaration
e=1.6*10**-19             # electron charge in coulombs
k=1.38*10**-23            # Boltzmann constant in m^2-kg/s^2-K^-1
T=300.0                   # in Kelvin
Ir1=10**-10               # in A
Ir2=10**-12               # in A
V211=0.5                  # in V

#Calculations
Vt=(k*T)/e
Vt = math.ceil(Vt*1000)/1000
V21=((Vt)*math.log10(Ir1/Ir2))*2.3026
V21 = math.floor(V21*10000)/10000
V2=(1.0/2)*(V21+V211)
V1=(1.0/2)*(V211-V21)
I1=Ir2*math.e**(V2/Vt)*10**6
I2=I1

#Result
print("diode voltage V2 is ,(V)   = %.5f"%V2)
print("diode voltage V1 is ,(V)   = %.5f"%V1)
print("diode current is,(micro-A) = %.4f"%I1)

diode voltage V2 is ,(V)   = 0.30985
diode voltage V1 is ,(V)   = 0.19015
diode current is,(micro-A) = 0.1498


## Example 1.15, Page No. 39¶

In :
# voltage

import math
#Variable declaration
e=1.6*10**-19             # electron charge in coulombs
k=1.38*10**-23            # Boltzmann constant in m^2-kg/s^2-K^-1
T=300.0                   # in Kelvin
Ir1=10**-12               # in A
Ir2=10**-10               # in A
It=2.0                    #  mA

#Calculations
I21=Ir2/Ir1
Vt=(k*T)/e                # in V
Vt = math.ceil(Vt*1000)/1000
I1=It/(1+I21)*10**3       # in micro-A
I2=It*10**3-I1            # in micro-A
I1=I2/I21                 # in micro-A
x=((I1*10**-6)/Ir1)
V=Vt*math.log10(x)*2.3026

#Result
print("diode voltage is ,(V) = %.3f"%V)

diode voltage is ,(V) = 0.437


## Example 1.16, Page No. 39¶

In :
# voltage

import math
#Variable declaration
T=27.0              # degree Celsius
Tk=273+T            # in Kelvin
e=1.6*10**-19       # electron charge in coulombs
k=1.38*10**-23      # Boltzmann constant in m^2-kg/s^2-K^-1
J=10**4             # in Amp/m^2
Jo=200.0            #in mA/m^2

#Calculations
x=(J/(Jo*10**-3))
Ve=((math.log(x))*k*Tk)/e

#Result
print("voltage to be applied is ,(V) = %.2f"%Ve)

voltage to be applied is ,(V) = 0.28


## Example 1.17, Page No. 40¶

In :
# resistance

import math
#Variable declaration
V=3.0                    # in V
I=55.0                   # in mA
V2=26.0                  # in mV

#Calculations
Rdc=V/(I*10**-3)         # in ohm
Rac=V2/I                 # in ohm

#Result
print("static resistance is ,(ohm) = %.1f"%Rdc)
print("dynamic resistance is ,(ohm) = %.2f"%Rac)

static resistance is ,(ohm) = 54.5
dynamic resistance is ,(ohm) = 0.47


## Example 1.18, Page No. 40¶

In :
# resistance

import math
#Variable declaration
k=1.38*10**-23            # constant
T=27+273.0                # in K
eta=2.0
e=1.6*10**-19             # in C
Vt=(k*T/e)                # in V
V=0.5                     # in V
Ir=10**-6                 # in A

#Calculations
I=(Ir*10**3*(math.e**(V/(eta*Vt))-1))
R_dc=V*10**3/I;
R_ac=(eta*k*T)/(e*I*10**-3);

#Result
print("static resistance,R_dc(ohm) = %.1f"%R_dc)
print("Dynamic resistance,R_ac(ohm) = %.1f"%R_ac)
#answer is wrong in textbook

static resistance,R_dc(ohm) = 31.8
Dynamic resistance,R_ac(ohm) = 3.3


## Example 1.19, Page No. 40¶

In :
# resistance

import math
#Variable declaration
V=1.2                       # in V
Vk=0.7                      # in V
I_F=100.0                   # in mA
V_R=10.0                    # in V
I_R=1.0                     # in micro-A
I=5.0                       # in  mA
eta=2

#Calculations
R_B=(V-Vk)/(I_F*10**-3)
R_R=V_R/I_R
R_ac=eta*26/I

#Result
print("the bulk resistance,R_B(ohm)      = %.f"%R_B)
print("the reverse resistance,R_R(M-ohm) = %.f"%R_R)
print("ac resistance,R_ac(ohm)           = %.1f"%R_ac)

the bulk resistance,R_B(ohm)      = 5
the reverse resistance,R_R(M-ohm) = 10
ac resistance,R_ac(ohm)           = 10.4


## Example 1.20, Page No. 41¶

In :
# capacitance

import math
#Variable declaration
epsilon_0=8.85*10**-12          # in farada/m
K=12.0                          # constant for silicon
A=1*10**-8                      # in m^2
W=5*10**-7                      # in m

#Calculations
epsilon=epsilon_0*K
Ct=epsilon*A*10**14/W;

#Result
print("the transition capacitance,Ct(PF)  = %.1f"%Ct)

the transition capacitance,Ct(PF)  = 212.4


## Example 1.21, Page No. 41¶

In :
# resistance

import math
#Variable declaration
V=0.2              # in V
I=1.0              # in micro-A

#Calculations
R_dc=V*10**3/I
R_ac=26/(I*10**3);

#Result
print("The static resistance,R_ac(k-ohm) = %.f"%R_dc)
print("the dynamic resistance,R_ac(ohm)  = %.3f"%R_ac)

The static resistance,R_ac(k-ohm) = 200
the dynamic resistance,R_ac(ohm)  = 0.026