import math
#initialisation of variables
N_D = 10**17 * 10**6 #in atoms/m^3
N_A = 0.5*10**16*10**6 #in atoms/m^3
Epsilon_r = 10
#CALCULATIONS
Epsilon_o = 8.85*10**-12
Epsilon = Epsilon_r*Epsilon_o #in F/m
e = 1.602*10**-19 #in C
V = 0
V_B = 0.7 #in V
W1 = math.sqrt( ((2*Epsilon*V_B)/e)*(1/N_A+1/N_D) ) #in m
V_o = V_B #in V
V1 = -10 #in V
V_B1 = V_o-V1 #in V
W = math.sqrt( ((2*Epsilon*V_B1)/e)*(1/N_A+1/N_D) ) #in m
#RESULTS
print('The junction width in meter when no external voltage is applied is =%.2f X 10^-6' %(W1*(10**6)))
print('Junction width in meter with an external voltage of -10V is =%.2f X 10^-6 m' %(W*(10**6)))
import math
#initialisation of variables
V = 5 #in V
V_Gamma = 0.6 #in V
r_F = 12 #in ohm
R = 1 #in k ohm
#CALCULATIONS
R = R * 10**3 #in ohm
I_F = (V-V_Gamma)/(R+r_F) #in A
V_F = V_Gamma + (I_F*r_F) #in V
I_F=I_F*10**3
#RESULTS
print('The forward diode current is =%.2f mA ' %I_F)
print('The diode voltage is =%.2f V ' %V_F)
import math
#initialisation of variables
n = 4.4*10**22 #total number of Ge atoms/cm^3
n_a = 1*10**8 #number of impurity atoms
#CALCULATIONS
N_A = n/n_a #in atoms/cm^3
N_A = N_A * 10**6 #in atoms/m^3
n_i = 2.5*10**13 #in atoms/cm^3
n_i = n_i * 10**6 #in atoms/m^3
N_D = 10**3 * N_A #in atoms/m^3
V_T = 26*10**-3 #in A
V_J = V_T*math.log( (N_A*N_D)/((n_i)**2) ) #in V
print('The contact difference of potential is =%.2f V For a silicon P-N junction ' %V_J)
n = 5*10**22
N_A = n/n_a #in atoms/cm^3
N_A = N_A * 10**6 #in atoms/m^3
N_D = 10**3 * N_A #in atoms/m^3
n_i = 1.5*10**10 #in /cm^3
V_J = V_T*math.log(N_A*N_D/n_i**2) #in V
#RESULTS
print('The contact difference of potential is =%.2f V' %V_J)
#Note: There is a calculation error to find the value of V_J in the book, so the answer in the book is wrong.
import math
#initialisation of variables
Rho_p = 2 #in ohm-cm
Rho_n = 1 #in ohm cm
q = 1.6*10**-19 #in C
n_i = 2.5*10**13 #atoms per cm^3
Miu_p = 1800
Miu_n = 3800
#CALCULATIONS
N_A = 1/(Rho_p*q*Miu_p) #in /cm^3
N_D = 1/(Rho_n*q*Miu_n) #in /cm^3
V_T = 26 #in mV
V_T= V_T*10**-3 #in V
V_J = V_T*math.log((N_A*N_D)/((n_i)**2)) #in V
print('The height of the potential energy barrier is =%.2f in V ' %V_J)
Miu_p = 500
N_A = 1/(Rho_p*q*Miu_p) #in /cm^3
Miu_n = 1300
N_D = 1/(Rho_n*q*Miu_n) #in /cm^3
n_i = 1.5*10**10;
V_J = V_T*math.log((N_A*N_D)/((n_i)**2)) #in V
#RESULTS
print('For silicon P-N juction The height of the potential energy barrier is =%.2f V' %V_J)
import math
#initialisation of variables
Eta = 1
V_T = 26 #in mV
V_T= V_T*10**-3 #in V
#CALCULATIONS
V= math.log(1-0.9)*V_T #in V
print("The voltage in volts is : %.2f " %V)
V1=0.05 #in V
V2= -0.05 #in V
ratio= (math.e**(V1/(Eta*V_T))-1)/(math.e**(V2/(Eta*V_T))-1)
print("The ratio of the current for a forward bias to reverse bias is : %.2f " %ratio)
# Part (iii)
Io= 10 #in µA
Io=Io*10**-3 #in mA
#For
V=0.1 #in V
I = Io * (math.e**(V/(Eta*V_T)) - 1) #in mA
print("For v=0.1 V , the value of I is : %.2f mA " %I)
#For
V=0.2 #in V
I = Io * (math.e**(V/(Eta*V_T)) - 1) #in mA
print("For v=0.2 V , the value of I is : %.2f mA " %I)
#For
V=0.3 #in V
I = Io * (math.e**(V/(Eta*V_T)) - 1) #in mA
#RESULTS
I=I*10**-3
print("For v=0.3 V , the value of I is : %.2f mA" %I)
print("From three value of I, for small rise in forward voltage, the diode current increase rapidly ")
import math
#initialisation of variables
# Part (i)
T1= 25 #in °C
T2= 80.0 #in °C
#CALCULATIONS
# Formula Io2= Io1*2**((T2-T1)/10)
AntiFactor= 2**((T2-T1)/10)
print('Anticipated factor for Ge is : =%.f ' %AntiFactor)
# Part (ii)
T1= 25.0 #in °C
T2= 150.0 #in °C
AntiFactor= 2**((T2-T1)/10)
#RESULTS
print('Anticipated factor for Ge is : =%.f ' %AntiFactor)
import math
#initialisation of variables
I=5.0 #in µA
V=10.0 #in V
T1= 0.11 #in °C^-1
T2= 0.07 #in °C^-1
#CALCULATIONS
Io= T2*I/T1 #in µA
I_R= I-Io #in µA
R= V/I_R #in MΩ
#RESULTS
print('The leakage resistance is : =%.1f MΩ ' %R)
import math
#initialisation of variables
Eta = 1.0
T = 125.0 #in °C
T = T + 273 #in K
V_T = 8.62 * 10**-5 * 398 #in V
I_o = 30 #in µA
#CALCULATIONS
I_o= I_o*10**-6 #in A
v = 0.2 #in V
r_f = (Eta * V_T)/(I_o * math.e**(v/(Eta* V_T))) #in ohm
print('The dynamic resistance in the forward direction is =%.2f Ω ' %r_f)
r_r = (Eta * V_T)/(I_o * math.e**(-v/(Eta* V_T))) #in ohm
r_r=r_r*10**-3
print('The dynamic resistance in the forward direction is =%.2f KΩ ' %r_r)
import math
#initialisation of variables
epsilon = 16/(36 * math.pi * 10**11) #in F/cm
A = 1 * 10**-2
W = 2 * 10**-4
#CALCULATIONS
C_T = (epsilon * A)/W #in F
C_T=C_T*10**12
#RESULTS
print('The barrier capacitance is =%.2f pF ' %C_T)
import math
#initialisation of variables
A = 1.0 #in mm^2
A = A * 10**-6 #in m^2
N_A = 3 * 10**20 #in atoms/m^3
q = 1.6 *10**-19 #in C
V_o = 0.2 #in V
epsilon_r=16
epsilon_o= 8.854*10**-12 #in F/m
#CALCULATIONS
epsilon=epsilon_r*epsilon_o
# Part (a)
V=-10 #in V
W = math.sqrt(((V_o - V) * 2 * epsilon)/(q * N_A)) #m
C_T1 = (epsilon * A)/W #in F
W=W*10**6
print('The width of the depletion layer for an applied reverse voltage of 10V is =%.2f µm ' %W)
# Part (b)
V=-0.1 #in V
W = math.sqrt(((V_o - V) * 2 * epsilon)/(q * N_A)) #m
C_T2 = (epsilon * A)/W #in F
W=W*10**6
print('The width of the depletion layer for an applied reverse voltage of 0.1V is =%.2f µm ' %W)
# Part (c)
V=0.1 #in V
W = math.sqrt(((V_o - V) * 2 * epsilon)/(q * N_A)) # m
W=W*10**6
print('The width of the depletion layer for an applied reverse voltage of 0.1V is =%.2f µm ' %W)
#Part (d)
C_T1=C_T1*10**12
C_T2=C_T2*10**12
#RESULTS
print('The space charge capacitance for an applied reverse voltage of 10V is =%.2f pF ' %C_T1)
print('The space charge capacitance for an applied reverse voltage of 0.1V is =%.2f pF' %C_T2)
import math
#initialisation of variables
I_o = 1.8 * 10**-9 #A
v = 0.6 #in V
Eta = 2
V_T = 26 #in mV
#CALCULATIONS
V_T=V_T*10**-3 #in V
I = I_o *(math.e**(v/(Eta * V_T))) #in A
I=I*10**3
#RESULTS
print('The current in the junction is =%.2f mA ' %I)
import math
#initialisation of variables
I_o = 2.4 * 10**-14
I = 1.5 #in mA
I=I*10**-3 #in A
Eta = 1
V_T = 26 #in mV
#CALCULATIONS
V_T= V_T*10**-3 #in V
v =math.log((I + I_o)/I_o) * V_T #in V
#RESULTS
print('The forward biasing voltage across the junction is =%.2f V' %v)
#initialisation of variables
I_o = 10 #in nA
#CALCULATIONS
I = I_o * (-1) #in nA
#RESULTS
print('The Diode current is = %.f nA ' %I)
import math
#initialisation of variables
R = 4.5 #in ohm
I = 44.4 #in mA
#CALCULATIONS
I=I*10**-3 #in A
V = R * I #in V
Eta = 1
V_T = 26 #in mV
V_T=V_T*10**-3 #in V
I_o = I/((math.e**(V/(Eta * V_T))) -1) #in A
V = 0.1 #in V
r_f = (Eta * V_T)/(I_o * ((math.e**(V/(Eta * V_T)))-1)) #in ohm
#RESULTS
print('The diode dynamic resistance is =%.2f Ω' %r_f)
import math
#initialisation of variables
V = 0.25 #in V
I_o = 1.2 #in µA
#CALCULATIONS
I_o = I_o * 10**-6 #in A
V_T = 26 #in mV
V_T = V_T * 10**-3 #in V
Eta = 1
r = (Eta * V_T)/(I_o * (math.e**(V/(Eta * V_T)))) #in ohm
#RESULTS
print('The ac resistance of the diode is =%.2f Ω' %r)
import math
#initialisation of variables
q = 1.6 * 10**-19 #in C
N_A = 3 * 10**20 #in /m^3
A = 1 #in µm^2
#CALCULATIONS
A = A * 10**-6 #in m^2
V = -10 #in V
V_J = 0.25 #in V
V_B = V_J - V #in V
epsilon_o = 8.854 #in pF/m
epsilon_o = epsilon_o * 10**-12 #in F/m
epsilon_r = 16
epsilon = epsilon_o * epsilon_r
W = math.sqrt((V_B * 2 * epsilon)/(q * N_A)) #in m
#RESULTS
C_T = (epsilon * A)/W #in pF
W=W*10**6
C_T=C_T*10**12
print('The width of depletion layer is =%.2f µm ' %W)
print('The space charge capacitance is =%.2f pF ' %C_T)
import math
#initialisation of variables
C_T = 100.0 #in pF
C_T=C_T*10**-12 #in F
epsilon_r = 12
epsilon_o = 8.854 * 10**-12 #in F/m
#CALCULATIONS
epsilon = epsilon_r * epsilon_o
Rho_p = 5 #in ohm-cm
Rho_p = Rho_p * 10**-2 #in ohm-m
V_j = 0.5 #in V
V = -4.5 #in V
Mu_p = 500 #in cm^2
Mu_p = Mu_p * 10**-4 #in m^2
Sigma_p = 1/Rho_p #in per ohm-m
qN_A = Sigma_p/ Mu_p
V_B = V_j - V
W = math.sqrt((V_B * 2 * epsilon)/qN_A)
A = (C_T * W)/ epsilon #in m
D = math.sqrt(A * (4/math.pi)) #in m
D = D * 10**3 #in mm
#RESULTS
print('The diameter is =%.2f mm ' %D)
#initialisation of variables
q = 1.6 * 10**-19 #in C
Mu_p = 500 #in cm^2/V-sec
Rho_p = 3.5 #in ohm-cm
Mu_n = 1500 #in cm^2/V-sec
Rho_n = 10 #in ohm-cm
#CALCULATIONS
N_A = 1/(Rho_p * Mu_p * q) # in /cm^3
N_D = 1/(Rho_n * Mu_n * q) # in /cm^3
V_J = 0.56 # in V
n_i = 1.5 * 10**10 #in /cm^3
V_T = V_J/math.log((N_A * N_D)/(n_i)**2) #in V
T = V_T * 11600 #in K
T = T - 273 #in °C
#RESULTS
print('The Temperature of junction is =%.2f °C ' %T)
print('Approximation error')
import math
#initialisation of variables
R = 5 #in ohm
I = 50 #in mA
I=I*10**-3 #in A
V = R * I #in V
Eta = 1
V_T = 26 #in mV
#CALCULATIONS
V_T=V_T*10**-3 #in V
I_o = I/((math.e**(V/(Eta * V_T))) - 1) #in A
v1 = 0.2 #in V
r = (Eta * V_T)/(I_o * (math.e**(v1/(Eta * V_T)))) #in ohm
#RESULTS
I_o=I_o*10**6
print('Reverse saturation current is =%.2f µA ' %I_o)
print('Dynamic resistance of the diode is =%.2f Ω ' %r)