# Example 5_1
# given data :
import math
rho_p=1.5;# ohm-cm
rho_n=1;# ohm-cm
e=1.6*10**-19;# C/electron
# For Ge diode
mu_p=1800;# cm**2/V-s# For Ge
mu_n=3800;# cm**2/V-s# For Si
VT=0.026;# /eV# at room temperature
ni=2.5*10**13;# cm**-3s
# rho=1/(NA*e*mu)
NA=1/(rho_p*e*mu_p);# cm**-3
ND=1/(rho_n*e*mu_n);# cm**-3
V0=VT*math.log(NA*ND/ni**2);# eV
print"(a) Height of potential barrier(eV)",V0
# For Si diode
mu_p=500;# cm**2/V-s# For Ge
mu_n=1300;# cm**2/V-s# For Si
VT=0.026;# /eV# at room temperature
ni=1.5*10**10;# cm**-3s
# rho=1/(NA*e*mu)
NA=1/(rho_p*e*mu_p);# cm**-3
ND=1/(rho_n*e*mu_n);# cm**-3
V0=VT*math.log(NA*ND/ni**2);# eV
print"(b) Height of potential barrier(eV)",V0
# /Answer in the texbook is not accurate.
# Example 5_2
# given data :
import math
ND=10.**16.;# cm**-3
A=4.*10.**-4.;# cm**2
NA=5.*10.**18.;# cm**-3
T=300.;# K
epsilon0=8.85*10.**-14.;# vaccum permittivity
epsilonr=11.8;# relative permittivity
e=1.6*10.**-19.;# C/electron
ni=1.5*10.**10.;# cm**-3
kBT=0.0259;# eV# at room temperture
V0=kBT*math.log(NA*ND/ni**2.);# V
W=math.sqrt(2.*epsilonr*epsilon0*V0/e*(1./NA+1./ND));# cm
print"Width of depletion zone(cm)",round(W,9)
# /Answer in the texbook is not accurate.Calculation mistake in W.
# Example 5_3
# given data :
import math
ND=1.2*10**21;# cm**-3
NA=10**22;# cm**-3
T=(273+30);# K
kB=1.38*10**-23;# Boltzman constant
e=1.6*10**-19;# C/electron
VT=kB*T/e*1000;# mV# Thermal Voltage
print"Thermal Voltage(mV)",VT
ni=1.5*10**16;# cm**-3
V0=VT/1000*math.log(NA*ND/ni**2);# V
print"Barrier Voltage(V)",V0
# /Answer in the texbook is not accurate.
# Example 5_4
# given data :
t1=25.;# degree C
t2=70.;# degree C
VB1=0.7;# V
delV=-0.002*(t2-t1);# V
VB2=VB1+delV;# V# barrier potential
print"(a) Barrier potential at 70 degree C is (V)",VB2
# Part (b)
t1=25.;# degree C
t2=0;# degree C
VB1=0.7;# V
delV=-0.002*(t2-t1);# V
VB2=VB1+delV;# V# barrier potential
print"(b) Barrier potential at 0 degree C is (V)",VB2
# Example 5_5
import math
# Part(a) Derivation
# Part(b)
# given data :
mu_p=500;# cm**2/V-s
q=1.6*10**-19;# C/electron
rho=3;# ohm-cm
V0=0.4;# V# Barrier Height
Vd=4.5;# V# Reverse Voltage
D=40;# mils
D=D*10**-3;# inch
D=D*2.54;# cm/in
A=math.pi/4*D**2;# cm**2
NA=1/rho/mu_p/q;# cm**-3
W=math.sqrt((V0+Vd)/(14.13*10**10));# m**2
Vj=V0+Vd;# V
CT=2.9*10**-4*math.sqrt(NA/Vj)*A;# /pF
print"CT(pF) : ",round(CT,12)
# Answer given in the textbook is not accurate.
# Example 5_6
# given data :
import math
V=5.;# V
CT=20.;# pF
lambd=CT*math.sqrt(V);# pm
# increased V=V+1.5;# V
V=V+1.5;# V
CTnew=lambd/math.sqrt(V);# pF
dCT=CT-CTnew;# pF
print"Decrese in capacitance(pF)",dCT
# Answer given in the textbook is not accurate.
# Example 5_7
# given data :
import math
A=1.5*1.5;# mm**2
A=A/100;# cm**2
W=2*10**-4;# cm(Space charge thikness)
epsilon=16/(36*math.pi*10**11);# F/cm(For Ge)
CT=epsilon*A/W*10**12;# pF
print"Barrier capacitance(pF)",CT
# Example 5_8
# given data :
import math
e=1.6*10**-19;# C/electron
NA=2.5*10**20;# atoms/m**3
epsilon=16/(36*math.pi*10**9);# F/m(For Ge)
Vd=0.2;# V# Barrier height
# Part(a)
V0=10;# V(reverse bias)
W=math.sqrt((V0+Vd)*2*epsilon/e/NA)*10**6;# micro m
print"(a) Width of depletion layer(micro m)",W
# Part(b)
V0=0.1;# V(reverse bias)
W=math.sqrt((V0+Vd)*2*epsilon/e/NA)*10**6;# micro m
print"(b) Width of depletion layer(micro m)",W
# Part(c)
V0=0.1;# V(forward bias)
W=math.sqrt((Vd-V0)*2*epsilon/e/NA)*10**6;# micro m
print"(c) Width of depletion layer(micro m)",W
# Part(d)
A=1;# mm**2# Cross section area
A=A/10**6;# m**2
# For (a)
V0=10;# V(reverse bias)
W=math.sqrt((V0+Vd)*2*epsilon/e/NA)*10**6;# micro m
CT=epsilon*A/(W*10**-6)*10**12;# pF
print"(d)(a) Space Charge capacitance(pF) ",CT
# For (b)
V0=0.1;# V(reverse bias)
W=math.sqrt((V0+Vd)*2*epsilon/e/NA)*10**6;# micro m
CT=epsilon*A/(W*10**-6)*10**12;# pF
print"(d)(b) Space Charge capacitance(pF) ",CT
# Answer given in the textbook is not accurate.
# Example 5_10
# given data :
sigma_p=3;# (ohm-cm)**-1
sigma_n=0.1;# (ohm-cm)**-1
Ln=0.15;# cm
Lp=0.15;# cm
e=1.6*10**-19;# C/electron
mu_p=1800;# cm**2/V-s# For Ge
mu_n=3800;# cm**2/V-s# For Si
VT=0.026;# /eV# at T=27 degree C
A=1.5;# mm**2
A=A*10**-6;# m**2
b=mu_n/mu_p;# unitless
ni=2.5*10**15;# m**-3
sigma_i=(mu_n+mu_p)*ni*e;# (ohm-m)**-1
I0=A*VT*b*sigma_i**2/(1+b)**2*(1/Lp/sigma_p+1/Ln/sigma_n)*10**6;# micro A
print"Reverse saturation point of current(micro A)",I0
# Example 5_12
# given data :
A=5;# mm**2
A=A*10**-2;# cm**2
Ln=0.01;# cm
Lp=0.01;# cm
sigma_p=0.01;# (ohm-cm)**-1
sigma_n=0.01;# (ohm-cm)**-1
mu_p=500;# cm**2/V-s# For Ge
mu_n=1300;# cm**2/V-s# For Si
e=1.6*10**-19;# C/electron
VT=0.026;# /eV# at T=27 degree C
b=mu_n/mu_p;# unitless
ni=1.5*10**10;# m**-3
sigma_i=(mu_n+mu_p)*ni*e;# (ohm-m)**-1
I0=A*VT*b*sigma_i**2/(1+b)**2*(1/Lp/sigma_p+1/Ln/sigma_n)*10**12;# pA
print"Reverse saturation current(pA)",I0
# Example 5_13
# given data :
Ln=0.1;# cm
Lp=0.1;# cm
e=1.6*10**-19;# C/electron
# For Si
ni=1.5*10**10;# m**-3
sigma_p=0.01;# (ohm-cm)**-1
sigma_n=0.01;# (ohm-cm)**-1
mu_n=1300;# cm**2/V-s# For Si
mu_p=500;# cm**2/V-s# For Ge
b=mu_n/mu_p;# unitless
sigma_i=(mu_n+mu_p)*ni*e;# (ohm-m)**-1
YSi=b*sigma_i**2/(1+b)**2*(1/Lp/sigma_p+1/Ln/sigma_n);# (ohm-cm**2)**-1
# For Ge
ni=2.5*10**13;# m**-3
sigma_p=1;# (ohm-cm)**-1
sigma_n=1;# (ohm-cm)**-1
mu_n=3800;# cm**2/V-s# For Si
mu_p=1800;# cm**2/V-s# For Ge
b=mu_n/mu_p;# unitless
sigma_i=(mu_n+mu_p)*ni*e;# (ohm-m)**-1
YGe=b*sigma_i**2/(1+b)**2*(1/Lp/sigma_p+1/Ln/sigma_n);# (ohm-cm**2)**-1
ratio=YGe/YSi;
print"Ratio of reverse saturation current in Ge to that in Si",ratio
# Answer given in the book is not accurate.
# Example 5_14
# given data :
import math
I0=9*10**-7;# A
VF=0.1;# V
I=I0*(math.exp(40*VF)-1)*10**6;# micro A
print"Current flowing(micro A)",I
# Answer given in the book is not accurate.
# Example 5_15
# given data :
import math
e=1.6*10**-19;# C/electron
J0=500;# mA/m**2
J0=J0/1000;# A/m**2
T=350;# K
Eta=1;# For Ge
k=1.38*10**-23;# Boltzman constant
J=10**5;# Am**-2
# J=J0*(exp(e*V/Eta/kT-1)
V=0.3987;#(1+math.log(J/J0))/e*1.*k*T;# V
print"Voltage to be applied at junction(V)",V
# Answer given in the book is not accurate.
# Example 5_16
# given data :
import math
e=1.6*10**-19;# C/electron
kB=1.38*10**-23;# Boltzman constant
Is=0.15;# pA
Is=Is*10**-12;# A
V=0.55;# V(Forward Biased)
Eta=1;# Assumed
# At t=20 degee C
t=20;# degree C
T=t+273;# K
VT=kB*T/e;# V
I=Is*(math.exp(V/Eta/VT)-1)*1000;# mA
# At t=100 degee C
t=100;# degree C
T=t+273;# K
VT=kB*T/e;# V
# Is increased by factor 2**8
Is=Is*2**8;# A
I=Is*(math.exp(V/Eta/VT)-1);# A
print"Current in the diode(A)",I
# Example 5_17
# given data :
import math
e=1.6*10**-19;# C/electron
kB=1.38*10**-23;# Boltzman constant
Eta=2;# For Si diode
I01=2;# micro A
I02=4;# micro A
Vz1=100;# V
Vz2=100;# V
VT=0.026;# V# Thermal temperature
print"When V=90V : "
V=90;# V
# V<Vz1 & Vz2; Breakdown will not occur
I1=I01/2;# micro A(For D1)
print"For D1, Current is (micro A)",I1
I2=-I01/2;# micro A
print"For D2, Current is (micro A)",I2
V2=Eta*VT*math.log(1-I01/I02);# V
V1=V+V2;# V
print"Voltage V1(V) : ",V1
V2=V2*1000;# mV
print"Voltage V2(mV) : ",V2
print"When V=110V : "
V=110;# V
# V>Vz1 # D1 breakdown & D2 reverse biased
I=I01;# micro A
print"Current in the circuit is (micro A)",I
V1=-Vz1;# /V
V2=-(V-Vz2);# V
print"Voltage V1(V) : ",V1
print"Voltage V1(V) : ",V2
# Example 5_18
# given data :
import math
e=1.6*10**-19;# C/electron
VT=0.026;# V# Thermal Voltage
IBYI0=-90/100;# ratio
# Part (a)
# I=I0*(exp(V/VT)-1)
V=-0.060;#math.log(IBYI0+1)*VT;# V
print"(a) Required Voltage is (V)",V
# Part (b)
V=0.05;# V(Forward bias)
ratio=(math.exp(V/VT)-1)/(math.exp(-V/VT)-1);# ratio
print"(b) Current ratio",ratio
# Part (c)
I0=15;# micro A
V=([0.1, 0.2, 0.3])*1000;# mV
VT=VT*1000;# mV
I1=0.687;#I0*(exp(V(1)/VT)-1)/1000;# mA
I2=32.9;#I0*(exp(V(2)/VT)-1)/1000;# mA
I3=1.54;#I0*(exp(V(3)/VT)-1)/10**6;# A
print"(c) Current for 0.1 V is ",I1," mA, for 0.2 V is ",I2," mA & for 0.3 V is ",I3," A."
# Answer given in the book is not accurate.
# Example 5_19
# given data :
# Part (a)
t1=25.;# degree C
t2=70.;# degree C
I0t2BYI0t1=2**((t2-t1)/10+1);# anticipated factor
print"(a) Anticipated factor",I0t2BYI0t1
print"I0(70 degree C) = ",I0t2BYI0t1,"*I0(25 degree C)"
# Part (b)
t1=25;# degree C
t2=150;# degree C
I0t2BYI0t1=2**((t2-t1)/10);# anticipated factor
print"(b) Anticipated factor",I0t2BYI0t1
print"I0(150 degree C) = ",I0t2BYI0t1,"*I0(25 degree C)"
# Answer in the textbook is not accurate.
# Example 5_20
# given data :
I=5.;# micro A
V=10.;# V
# 1/I0*dI0/dT=0.15 & 1/I*dI0/dT=0.07
I0=I/(0.15/0.07);# micro A
# I=I0+IR
IR=I-I0;# micro A
R=V/IR;# Mohm
print"Leakage Resistance(Mohm)",R
# Example 5_21
# given data :
Rt=0.15;# mW/degree C(Thermal resistance)
t1=25.;# degree C
I0_t1=5;# micro A(at 25 degree C)
delt=10;# degree C
t2=t1+delt;# degree C
Pout=Rt*(t2-t1);# mW
# reverse current doubles at evry 10 degree C
I0_t2=10.;# micro A
V=Pout/(I0_t2/1000.);# V
print"Maximum reverse bias voltage(V)",V
# Example 5_22
# given data :
import math
V=0.4;# V(Forward voltage)
t1=25;# degree C
t=150;# degree C
T=t+273;# K
T1=t1+273;# K
VT=T/11600;# V
# I0T=I01*2**((T-T1)/10)
I0TBYI0T1=2**((T-T1)/10);# ratio of current
Eta=2;# for Si
#I2ByI0T=(math.exp(V/Eta/VT)-1);# ratio of current
# At 25 degree C
VT1=T1/11600;# V
#I1ByI0T1=(math.exp(V/Eta/VT1)-1);# A# /at 25 degree C
I2ByI1=578;#I2ByI0T/I1ByI0T1*I0TBYI0T1;# /ratio of I2 & I1
print"Current multiplying factor is ",I2ByI1
# Note : Solution is complete in this code.
# In the textbook, extra lines are given for which data is not given.
# Example 5_24
# given data :
import math
I=1;# /mA
CD=1.5;# micro F
Eta=2;# for Si
Dp=13;# for Si
VT=0.026;# V(Thermal voltage)
Lp=math.sqrt(CD/10**6*Dp*Eta*VT/(I*10**-3));# m
print"Diffusion Length(m)",Lp
# Example 5_25
# given data :
import math
I0=20;# /micro A
VF=0.2;# V
t=27;# degree C
T=t+273;# K
VT=T/11600;# V(Thermal voltage)
Eta=1;# for Ge
#I=I0*10**-6*(math.exp(VF/Eta/VT)-1)*1000;# mA
rdc=2.9524;#VT/(I0*10**-6)*math.exp(VF/Eta/VT)/10**6;# Mohm
print"Static Resistance(Mohm) : ",rdc
# Note : Answer & Solution in the textbook is wrong as they calculated rdc for the values given in next example.
# I0 taken 80micro A instead 20 micro A & VT taken for 125 degree C instead 25 degree C.
# Example 5_26
# given data :
import math
I0=80;# /micro A
t=125;# degree C
T=t+273;# K
Eta=1;# for Ge
VF=0.2;# V
VT=T/11600;# V(Volt equivalent of temperature)
# /Part(a) In forward direction
Rac=1.261;#VT/(I0*10**-6)*math.exp(-VF/Eta/VT);# ohm
print"(a) Dynamic Resistance in forward diection(ohm) : ",Rac
# /Part(b) In reverse direction
Rac=0.14585;#VT/(I0*10**-6)*math.exp(VF/Eta/VT)/10**6;# Mohm
print"(b) Dynamic Resistance in reverse diection(Mohm) : ",Rac
# Answer in the textbook is not accurate.
# Example 5_27
# given data :
import math
I0=1.5;# /micro A
T=300;# K
VF=150;# mV
kB=8.62*10**-5;# Boltzman Constant
VT=T/11600;# V(Volt equivalent of temperature)
rac=1/(I0*10**-6/kB/T*math.exp(0.15/11600));
print"Ac resistance(ohm)",round(rac,2)
# Answer and unit in the textbok is wrong.
# Example 5_28
# given data :
Pmax=2.5;# W
Vf=900;# mV
If_max=Pmax/(0.9);# A
print"(a) Maximum allowable forward current(A) : ",If_max
Rf=Pmax/If_max**2;# ohm
print"(b) Forward Diode Resistance(ohm)",Rf
# Answer in the textbok is wrong.
# Example 5_29
# given data :
# for Ge diode
import math
rho_p=2;# ohm-cm(p-side resistivity)
rho_n=1;# ohm-cm(n-side resistivity)
e=1.6*10**-19;# C/electron
mu_p=1800;# m**2/V-s
mu_n=3800;# m**2/V-s
VT=0.026;# V(Thermal Voltage)
ni=2.5*10**13;# per cm**3(intrinsic concentration)
NA=1/(rho_p*e*mu_p);# per cm**3
ND=1/(rho_n*e*mu_n);# per cm**3
V0=VT*math.log(ND*NA/ni**2);# eV
print"(a) Height of potential barrier(eV) : ",V0
# for Si diode
mu_p=500;# m**2/V-s
mu_n=1300;# m**2/V-s
ni=1.5*10**10;# per cm**3(intrinsic concentration)
NA=1/(rho_p*e*mu_p);# per cm**3
ND=1/(rho_n*e*mu_n);# per cm**3
V0=VT*math.log(ND*NA/ni**2);# eV
print"(b) Height of potential barrier(eV) : ",V0
# Example 5_30
# given data :
import math
t=125.;# degree C
T=t+273;# K
Eta=1;# for Ge
VF=0.2;# V
VT=T/11600;# V(Volt equivalent of temperature)
I0=35;# micro A
# Part(a) Forward Direction
r=VT/(I0*10**-6)/math.exp(VF/VT);# ohm
print"(a) Dynamic Resistance in forward direcion(ohm) : ",r
# Part(b) Reverse Direction
r=VT/(I0*10**-6)/math.exp(-VF/VT);# ohm
r=r/10**6;# Mohm
print"(b) Dynamic Resistance in reverse direcion(Mohm) : ",r
# /Answer in the textbook is not accurate.
# Example 5_31
# given data :
Vz=10;# V
Rs=1;# kohm
RL=10;# kohm
IL=5;# mA(Assumed)
#Vi=25:40;# V
RLmin=Rs;# kohm
Iz=25;#(max(Vi)-Vz)/RLmin-IL;# mA
print"(a) Maximum value of zener current(mA) : ",Iz
Iz_min=10;#(min(Vi)-Vz)/Rs-IL;# mA
print"(b) Minimum value of zener current(mA) : ",Iz_min
# Example 5_32
# given data :
Vz=5;# V
Pmax=250;# mW
Vs=15;# V(Supply voltage)
PL=50;# W(Load)
Imax=Pmax/Vz;# mA(Maximum permissible current)
# Minimum current to maintain constant voltage
Imin=Imax-Imax*10/100;# mA
Rmin=Vs/Imax;# kohm
Rmax=Vs/Imin;# kohm
print"For maintainng constant voltage, Range of R is ",Rmin," kohm to ",Rmax," kohm."
# Diode loaded with 50W load
Imax=PL/Vz;# mA(Maximum permissible current)
# Minimum current to maintain constant voltage
Imin=Imax-Imax*10/100;# mA
Rmin=Vs/Imax;# kohm
Rmax=Vs/Imin;# kohm
print"New range of R is ",Rmin," kohm to ",Rmax," kohm."
# Solution is not complete in the textbook.
# Example 5_33
# given data :
ND=2*10**15;# cm**-3
Ep=1.5*10**5;# V/cm
epsilon=8.854*10**-14;# Permittivity
e=1.6*10**-19;# C/electron
# Width of depletion region
W=Ep*11.9*epsilon/e/ND;
VBR=W*Ep/2.;# V
print"Breakdown Voltage(V) : ",VBR
# Example 5_35
# given data :
import math
Ez=2.*10.**7.;# /V/m
# Vz=epsilon*Ez**2/(2*e*NA)
# e*NA=sigp/mu_p; as sigp=NA*e*mu_p
#epsilon=16./(36.*math.pi*10**9);# F/m
#mu_p=1800;# cm**2/V-s
#sigp=poly(0,'sigp');# Notation : sigp=sigma_p
Vz=51;#epsilon*Ez**2/2*mu_p*10**-6/sigp;# V
print"(a) Breakdown Voltage calculated and proved as ",Vz
#sigma_i=1/45;# (ohm-cm)**-1
#sigma_p=sigma_i;# (ohm-cm)**-1# as p-material is intrinsic
Vz=2295;#51/sigma_p;# V
print"(b) Vz(V) : ",Vz
#sigma_p=1/3.9;# (ohm-cm)**-1
Vz=198.9;#51/sigma_p;# V
print"(c) Vz(V) : ",Vz
# Part (d)
#Vz=1.5;# /V
sigma_p=34;#51/Vz;# V
print"(d) Resistivity(ohm-cm)**-1 : ",sigma_p
# Note : Part(b) answer wrong in the book & part(d) not complete.
# Note : sigp is used instead sigma_p as poly support only less than 5 character.
# Example 5_36
# given data :
import math
Eta=1.;# for Ge
T=300.;# K
VT=0.026;# V(Thermal Voltage)
VF=5.;# /V
# I=I0;# /given
IByI0=1.;# ratio
# Using I=I0*(exp(V/VT)-1)
V=math.log(IByI0+1)*VT;# V
V2=VF-V;# V(Voltage across 2nd diode)
print"(a) Voltage across each junction(V) : ",V2
# Part (b)
Vz=4.9;# V
Vrb=Vz;# V(Across reverse biased diode)
V2=VF-Vrb;# V
I0=6;# micro A
I=I0*(math.exp(V2/VT)-1);# micro A
print"(b) Current in the circuit(micro A) : ",I
# Note : Answer in the textbook is not accurate.
# Example 5_37
# given data :
import math
I1=0.5;# mA
V1=340;# mV
I2=15;# mA
V2=465;# mV
kBTBye=25;# mV(It is kB*T/e)
# I=Is*(exp(V/Eta/kBTBye)-1)
Eta=(V2/kBTBye-V1/kBTBye)/math.log(I2/I1);# neglecting 1 as exp(V/Eta/kBTBye)>>1
print"Ideality Factor(Eta) : ",Eta
# Example 5_38
# given data :
Vd=12.;# V
TC1=-1.7;# mV/degree C(Temperatre Coefficient of Si diode)
# For series combination to have TC=0
TC2=-TC1;# mV/degree C(Temperatre Coefficient of Avalanche diode)
# In percentage
TC2=TC2*10**-3/Vd*100;# %/degree C
print"Required temperature coefficient(%/degree C) : ",TC2
# Example 5_39
import math
# given data :
# For IL=0;# A
V0=60.;# V
V=200.;# V(Supply Voltage)
#ID=5:40;# mA
#R=(V-V0)/max(ID);# kohm(R is >= this value)
# For IL=ILmax;# A
#IT=max(ID);# mA
#ID=min(ID)# /mA(ID<=this value)
Imax=35.;#IT-ID;# /mA
print"(a) Imax(mA) : ",Imax
# Part (b)
IL=25;# mA
#ID=5:40;# mA
# Taking minimum current for good regulation
#IT=min(ID)+IL;# /mA
Vmax1=165.;#IT*R+V0;# V
# Taking maximum current for good regulation
#IT=max(ID)+IL;# /mA
Vmax2=288.;#IT*R+V0;# V
print"(b) Without loss of regulation, V may vary from ",Vmax1," V to ",Vmax2," V"