# Chapter 04 - JUNCTIONS¶

## Example E02 - Pg 165¶

In [1]:
# Exa 4.2 - 165
import math
# Given data
C1= 5.*10.**-12.;# in F
C2= 5.*10.**-12.;# in F
L= 10.*10.**-3.;# in H
C_Tmin= C1*C2/(C1+C2);# in F
f_omax= 1./(2.*math.pi*math.sqrt(L*C_Tmin));# in Hz
C1= 50.*10.**-12.;# in F
C2= 50.*10.**-12.;# in F
C_Tmax= C1*C2/(C1+C2);# in F
f_omin= 1./(2.*math.pi*math.sqrt(L*C_Tmax));# in Hz
f_omax= f_omax*10.**-6.;# in MHz
f_omin= f_omin*10.**-3.;# in kHz
print '%s %.f' %("The maximum value of resonant frequency in MHz is : ",f_omax)
print '%s %.f' %("The minimum value of resonant frequency in kHz is : ",f_omin)

The maximum value of resonant frequency in MHz is :  1
The minimum value of resonant frequency in kHz is :  318


## Example E03 - Pg 188¶

In [2]:
# Exa 4.3 - 188
import math
# Given data
t = 4.4 * 10.**22.;# total number of Ge atoms/cm**3
n = 1 * 10.**8.;# number of impurity atoms
N_A = t/n;# in atoms/cm**3
N_A = N_A * 10.**6.;# in atoms/m**3
N_D = N_A * 10.**3.;# in atoms/m**3
n_i = 2.5 * 10.**13.;# in atoms/cm**3
n_i = n_i * 10.**6.;# in atoms/m**3
V_T = 26.;#in mV
V_T= V_T*10.**-3.;# in V
# The contact potential for Ge semiconductor,
V_J = V_T * math.log((N_A * N_D)/(n_i)**2.);# in V
print '%s %.3f' %("The contact potential for Ge semiconductor in V is",V_J);
# Part (b)
t = 5.* 10.**22.;# total number of Si atoms/cm**3
N_A = t/n;# in atoms/cm**3
N_A = N_A * 10.**6.;# in atoms/m**3
N_D = N_A * 10.**3.;# in atoms/m**3
n_i = 1.5 * 10.**10.;# in atoms/cm**3
n_i = n_i * 10.**6.;# in atoms/m**3
V_T = 26;#in mV
V_T= V_T*10.**-3.;# in V
# The contact potential for Si P-N junction,
V_J = V_T * math.log((N_A * N_D)/(n_i)**2.);# in V
print '%s %.3f' %("The contact potential for Si P-N junction in V is",V_J);

The contact potential for Ge semiconductor in V is 0.329
The contact potential for Si P-N junction in V is 0.721


## Example E04 - Pg 188¶

In [3]:
# Exa 4.4 - 188
import math
# Given data
V_T = 26.;# in mV
V_T=V_T*10.**-3.;# in V
n_i = 2.5 * 10.**13.;
Sigma_p = 1.;
Sigma_n = 1.;
Mu_n = 3800.;
q = 1.6 * 10.**-19.;# in C
Mu_p = 1800.;
N_A = Sigma_p/(2.* q * Mu_p);# in /cm**3
N_D = Sigma_n /(q * Mu_n);# in /cm**3
# The height of the energy barrier for Ge,
V_J = V_T * math.log((N_A * N_D)/(n_i)**2);# in V
print '%s %.2f' %("For Ge the height of the energy barrier in V is",V_J);
# For Si p-n juction
n_i = 1.5 * 10.**10.;
Mu_n = 1300.;
Mu_p = 500.;
N_A = Sigma_p/(2.* q * Mu_p);# in /cm**3
N_D = Sigma_n /(q * Mu_n);# in /cm**3
# The height of the energy barrier for Si p-n junction,
V_J = V_T * math.log((N_A * N_D)/(n_i)**2.);# in V
print '%s %.3f' %("For Si p-n junction  the height of the energy barrier in V is",V_J);

For Ge the height of the energy barrier in V is 0.22
For Si p-n junction  the height of the energy barrier in V is 0.666


## Example E05 - Pg 189¶

In [4]:
#Exa 4.5 - 189
import math
# Given data
Eta = 1.;
V_T = 26.;# in mV
V_T= V_T*10.**-3.;# in V
#From equation of the diode current,  I = I_o * (%e**(V/(Eta*V_T)) - 1) and I = -(0.9) * I_o
V= math.log(1-0.9)*V_T;#voltage in V
print '%s %.3f' %("The voltage in volts is : ",V)
# Part (ii)
V1=0.05;# in V
V2= -0.05;# in V
# The ratio of the current for a forward bias to reverse bias
ratio= (math.e**(V1/(Eta*V_T))-1.)/(math.e**(V2/(Eta*V_T))-1.)
print '%s %.2f' %("The ratio of the current for a forward bias to reverse bias is : ",ratio)
# Part (iii)
Io= 10.;# in uA
Io=Io*10.**-3.;# in mA
#For
V=0.1;# in V
# Diode current
I = Io * (math.e**(V/(Eta*V_T)) - 1.);# in mA
print '%s %.3f' %("For V=0.1 V , the value of I in mA is : ",I)
#For
V=0.2;# in V
# Diode current
I = Io * (math.e**(V/(Eta*V_T)) - 1);# in mA
print '%s %.1f' %("For V=0.2 V , the value of I in mA is : ",I)
#For
V=0.3;# in V
# Diode current
I = Io * (math.e**(V/(Eta*V_T)) - 1.);# in mA
print '%s %.2f' %("For V=0.3 V , the value of I in A is : ",I*10**-3)
print '%s' %("From three value of I, for small rise in forward voltage, the diode current increase rapidly")

The voltage in volts is :  -0.060
The ratio of the current for a forward bias to reverse bias is :  -6.84
For V=0.1 V , the value of I in mA is :  0.458
For V=0.2 V , the value of I in mA is :  21.9
For V=0.3 V , the value of I in A is :  1.03
From three value of I, for small rise in forward voltage, the diode current increase rapidly


## Example E06 - Pg 189¶

In [5]:
#Exa 4.6 - 189
import math
# Given data
# Part (i)
T1= 25.;# in degreeC
T2= 80.;# in degreeC
# Formula Io2= Io1*2**((T2-T1)/10)
AntiFactor= 2.**((T2-T1)/10.);
print '%s %.f' %("Anticipated factor for Ge is : ",round(AntiFactor))
# Part (ii)
T1= 25.;# in degreeC
T2= 150.;# in degreeC
#AntiFactor= 2.**((T2-T1)/10.);
AntiFactor=2.**12.5
print '%s %.f' %("Anticipated factor for Si is : ",round(AntiFactor))
#answer in textboo is wrong due to rounding error

Anticipated factor for Ge is :  45
Anticipated factor for Si is :  5793


## Example E07 - Pg 190¶

In [6]:
#Exa 4.7 - 190
import math
# Given data
I=5.;# in uA
V=10.;# in V
T1= 0.11;# in degreeC**-1
T2= 0.07;# in degreeC**-1
# Io+I_R=I                            (i)
# dI_by_dT= dIo_by_dT      (ii)
# 1/Io*dIo_by_dT = T1 and 1/I*dI_by_dT = T2, So
Io= T2*I/T1;# in uA
I_R= I-Io;# in uA
R= V/I_R;# in Mohm
print '%s %.1f' %("The leakage resistance in Mohm is : ",R)

The leakage resistance in Mohm is :  5.5


## Example E08 - Pg 190¶

In [7]:
#Exa 4.8 - 190
import math
# Given data
Eta = 1.;
T = 125.;# in degreeC
T = T + 273.;# in K
V_T = 8.62 * 10.**-5. * 398.;# in V
I_o = 30.;# in uA
I_o= I_o*10.**-6.;# in A
v = 0.2;# in V
# The dynamic resistance in the forward direction
r_f = (Eta * V_T)/(I_o * math.e**(v/(Eta* V_T)));# in ohm
print '%s %.2f' %("The dynamic resistance in the forward direction in ohm is ",r_f);
# The dynamic resistance in the reverse direction
r_r = (Eta * V_T)/(I_o * math.e**(-v/(Eta* V_T)));# in ohm
r_r= r_r*10.**-3.;# in k ohm
print '%s %.2f' %("The dynamic resistance in the reverse direction in kohm is",r_r);

The dynamic resistance in the forward direction in ohm is  3.36
The dynamic resistance in the reverse direction in kohm is 389.08


## Example E09 - Pg 191¶

In [8]:
# Exa 4.9 - 191
import math
# Given data
epsilon = 16./(36. * math.pi * 10.**11.);# in F/cm
A = 1. * 10.**-2.;
W = 2. * 10.**-4.;
# The barrier capacitance
C_T = (epsilon * A)/W;# in F
C_T= C_T*10.**12.;# in pF
print '%s %.2f' %("The barrier capacitance in pF is",C_T);

The barrier capacitance in pF is 70.74


## Example E10 - Pg 191¶

In [9]:
#Exa 4.10 - 191
import math
#Given data
A = 1.;# 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
epsilon=epsilon_r*epsilon_o;
# Part (a)
V=-10.;# in V
# V_o - V = 1/2*((q * N_A )/epsilon) * W**2
W = math.sqrt(((V_o - V) * 2. * epsilon)/(q * N_A));# m
W= W*10.**6.;# in um
print '%s %.2f' %("The width of the depletion layer  for an applied reverse voltage of 10V in um is ",W);
W= W*10.**-6.;# in m
C_T1 = (epsilon * A)/W;# in F
C_T1= C_T1*10.**12.;# in pF
# Part (b)
V=-0.1;# in V
W = math.sqrt(((V_o - V) * 2. * epsilon)/(q * N_A));# m
W= W*10.**6.;# in um
print '%s %.2f' %("The width of the depletion layer  for an applied reverse voltage of 0.1V in um is ",W);
W= W*10.**-6.;# in m
C_T2 = (epsilon * A)/W;# in F
C_T2= C_T2*10.**12.;# in pF
# Part (c)
V=0.1;# in V
W = math.sqrt(((V_o - V) * 2. * epsilon)/(q * N_A));# m
W= W*10.**6.;# in um
print '%s %.3f' %("The width of the depletion layer  for an applied for a forward bias of 0.1V in um is ",W);
# Part (d)
print '%s %.2f' %("The space charge capacitance for an applied reverse voltage of 10V  in pF is",C_T1);
print '%s %.2f' %("The space charge capacitance for an applied reverse voltage of 0.1V  in pF is",C_T2);

The width of the depletion layer  for an applied reverse voltage of 10V in um is  7.76
The width of the depletion layer  for an applied reverse voltage of 0.1V in um is  1.33
The width of the depletion layer  for an applied for a forward bias of 0.1V in um is  0.768
The space charge capacitance for an applied reverse voltage of 10V  in pF is 18.26
The space charge capacitance for an applied reverse voltage of 0.1V  in pF is 106.46


## Example E11 - Pg 192¶

In [10]:
# Exa 4.11 - 192
import math
# Given data
I_o = 1.8 * 10.**-9.;# A
v = 0.6;# in V
Eta = 2.;
V_T = 26.;# in mV
V_T=V_T*10.**-3.;# in V
# The current in the junction
I = I_o *(math.e**(v/(Eta * V_T)));# in A
I= I*10.**3.;# in mA
print '%s %.3f' %("The current in the junction in mA is",I);

The current in the junction in mA is 0.185


## Example E12 - Pg 192¶

In [11]:
# Exa 4.12 - 192
# Given data
import math
I_o = 2.4 * 10.**-14.;
I = 1.5;# in mA
I=I*10.**-3.;# in A
Eta = 1.;
V_T = 26.;# in mV
V_T= V_T*10.**-3.;# in V
# The forward biasing voltage across the junction
v =math.log((I + I_o)/I_o) * V_T;# in V
print '%s %.4f' %("The forward biasing voltage across the junction in V is",v);

The forward biasing voltage across the junction in V is 0.6463


## Example E13 - Pg 192¶

In [12]:
# Exa 4.13 - 192
# Given data
I_o = 10.;# in nA
# I = I_o * ((e**(v/(Eta * V_T))) - 1) as diode is reverse biased by large voltage
# e**(v/(Eta * V_T)<< 1, so neglecting it
I = I_o * (-1.);# in nA
print '%s %.f' %("The Diode current in nA is ",I);

The Diode current in nA is  -10


## Example E14 - Pg 192¶

In [17]:
# Exa 4.17 - 193
import math
# Given data
t = 4.4 * 10.**22.;# in total number of atoms/cm**3
n = 1. * 10.**8.;# number of impurity
N_A = t/n;# in atoms/cm**3
N_A = N_A * 10.**6.;# in atoms/m**3
N_D = N_A * 10.**3.;# in atoms/m**3
V_T = 26.;# in mV
V_T = V_T * 10.**-3.;# in V
n_i = 2.5 * 10.**19.;# in /cm**3
# The junction potential
V_J = V_T * math.log((N_A * N_D)/(n_i)**2.);# in V
print '%s %.3f' %("The junction potential in V is",V_J)

The junction potential in V is 0.329


## Example E15 - Pg¶

In [31]:
# Exa 4.15 - 192
%matplotlib inline
import math
import numpy as np
import matplotlib.pyplot as plt
# Given data
## in V
# V_S = i*R_L + V_D
V_S = 10## in V (i * R_L = 0)
print '%s %.f' %("when diode is OFF, the voltage in volts is : ",V_S)#
R_L = 250.## in ohm
I = V_S/R_L## in A
print '%s %.f' %("when diode is ON, the current in mA is",I*10**3)#
V_D2=np.linspace(10,0,num=100)## in V
j=0;
I2 = np.zeros(100)
for x in V_D2:
I2[j] = (V_S- x)/R_L*1000.;
j+=1
plt.plot(V_D2,I2)
plt.xlabel("V_D in volts")#
plt.ylabel("Current in mA")
plt.show()
print '%s' %("DC load line shown in figure")

when diode is OFF, the voltage in volts is :  10
when diode is ON, the current in mA is 40

DC load line shown in figure


## Example E16 - Pg¶

In [23]:
# Exa 4.16 - 193
# Given data
import math
V = 0.25;# in V
I_o = 1.2;# in uA
I_o = I_o * 10.**-6.;# in A
V_T = 26;# in mV
V_T = V_T * 10.**-3.;# in V
Eta = 1.;
# The ac resistance of the diode
r = (Eta * V_T)/(I_o * (math.e**(V/(Eta * V_T))));# in ohm
print '%s %.3f' %("The ac resistance of the diode in ohm is",r);

The ac resistance of the diode in ohm is 1.445


## Example E17 - Pg 193¶

In [19]:
# Exa 4.17 - 193
import math
# Given data
t = 4.4 * 10.**22.;# in total number of atoms/cm**3
n = 1. * 10.**8.;# number of impurity
N_A = t/n;# in atoms/cm**3
N_A = N_A * 10.**6.;# in atoms/m**3
N_D = N_A * 10.**3.;# in atoms/m**3
V_T = 26.;# in mV
V_T = V_T * 10.**-3.;# in V
n_i = 2.5 * 10.**19.;# in /cm**3
# The junction potential
V_J = V_T * math.log((N_A * N_D)/(n_i)**2.);# in V
print '%s %.3f' %("The junction potential in V is",V_J)

The junction potential in V is 0.329


## Example E18 - Pg 194¶

In [24]:
# Exa 4.18 - 194
import math
# Given data
Eta = 1.;
I_o = 30.;# in MuA
I_o = I_o * 10.**-6.;# in A
v = 0.2;# in V
K = 1.381 * 10.**-23.;# in J/degree K
T = 125.;# in degreeC
T = T + 273.;# in K
q = 1.6 * 10.**-19.;# in C
V_T = (K*T)/q;# in V
# The forward dynamic resistance,
r_f = (Eta * V_T)/(I_o * (math.e**(v/(Eta * V_T))));# in ohm
print '%s %.3f' %("The forward dynamic resistance in ohm is",r_f);
# The Reverse dynamic resistance
r_f1 = (Eta * V_T)/(I_o * (math.e**(-(v)/(Eta * V_T))));# in ohm
r_f1= r_f1*10.**-3.;# in k ohm
print '%s %.2f' %("The Reverse dynamic resistance in kohm is",r_f1);

The forward dynamic resistance in ohm is 3.391
The Reverse dynamic resistance in kohm is 386.64


## Example E19 - Pg 194¶

In [25]:
# Exa 4.19 - 194
import math
# Given data
q = 1.6 * 10.**-19.;# in C
N_A = 3 * 10.**20.;# in /m**3
A = 1.;# in um**2
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;
# The width of depletion layer,
W = math.sqrt((V_B * 2. * epsilon)/(q * N_A));# in m
W=W*10.**6.;# in um
print '%s %.2f' %("The width of depletion layer in um is",W);
W=W*10.**-6.;# in m
# The space charge capacitance,
C_T = (epsilon * A)/W;# in pF
C_T=C_T*10.**12.;# in pF
print '%s %.4f' %("The space charge capacitance in pF is",C_T);

The width of depletion layer in um is 7.78
The space charge capacitance in pF is 18.2127


## Example E20 - Pg 194¶

In [26]:
# Exa 4.20 - 194
import math
# Given data
W = 2. * 10.**-4.;# in cm
W = W * 10.**-2.;# in m
A = 1.;# in mm**2
A = A * 10.**-6.;# in m**2
epsilon_r = 16.;
epsilon_o = 8.854 * 10.**-12.;# in F/m
epsilon = epsilon_r * epsilon_o;
C_T = (epsilon * A)/W;# in F
C_T= C_T*10.**12.;# in pF
print '%s %.3f' %("The barrier capacitance in pF is",C_T);

The barrier capacitance in pF is 70.832


## Example E21 - Pg 195¶

In [27]:
# Exa 4.21 - 195
import math
# Given data
C_T = 100.;# in pF
C_T=C_T*10.**-12.;# in F
epsilon_r = 12.;
epsilon_o = 8.854 * 10.**-12.;# in F/m
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);# in m
#C_T = (epsilon * A)/W;
A = (C_T * W)/ epsilon;# in m
D = math.sqrt(A * (4./math.pi));# in m
D = D * 10.**3.;# in mm
print '%s %.2f' %("The diameter in mm is",D);


The diameter in mm is 1.40


## Example E22 - Pg 195¶

In [28]:
# Exa 4.22 - 195
import math
# Given data
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
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
# V_T = T/11600
T = V_T * 11600.;# in K
T = T - 273;# in degreeC
print '%s %.3f' %("The Temperature of junction in degree C is",T);

The Temperature of junction in degree C is 14.276


## Example E23 - Pg 196¶

In [29]:
# Exa 4.23 - 196
import math
# Given data
V_T = 26.;# in mV
V_T = V_T * 10.**-3.;# in V
Eta = 1.;
# I = -90% for Io, so
IbyIo= 0.1;
# I  = I_o * ((e**(v/(Eta * V_T)))-1)
V = math.log(IbyIo) * V_T;# in V
print '%s %.5f' %("The reverse bias voltage in volts is",V);

The reverse bias voltage in volts is -0.05987


## Example E24 - Pg 196¶

In [30]:
# Exa 4.24 - 196
import math
# Given data
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
V_T=V_T*10.**-3.;# in V
# The reverse saturation current
I_o = I/((math.e**(V/(Eta * V_T))) - 1.);# in A
I_o= I_o*10.**6.;# in uA
print '%s %.2f' %("Reverse saturation current in uA is",I_o);
I_o= I_o*10.**-6.;# in A
v1 = 0.2;# in V
# The dynamic resistance of the diode,
r = (Eta * V_T)/(I_o * (math.e**(v1/(Eta * V_T))));# in ohm
print '%s %.3f' %("Dynamic resistance of the diode in ohm is",r);

Reverse saturation current in uA is 3.33
Dynamic resistance of the diode in ohm is 3.558