from __future__ import division
from math import log
#Given :
Ge=4.4*10**22##atoms/cm**3
NA=Ge/10**8##per cm**3
NA=NA*10**6##per m**3
ND=NA*10**3##per m**3
ni=2.5*10**13##per cm**3
ni=ni*10**6##per m**3
VT=26##mV
Vj=VT*log(NA*ND/ni**2)##mV
print "Junction potential = %0.1f mV"%Vj
from __future__ import division
from math import log
#Given :
ni=2.5*10**15##per cm**3
Ge=4.4*10**22##atoms/cm**3
NA=Ge/10**8##per cm**3
NA=NA*10**6##per m**3
ND=NA*10**3##per m**3
ni=ni*10**6##per m**3
T=27+273##K
VT=T/11600##V
Vo=VT*log(NA*ND/ni**2)##V
print "Contact potential = %0.4f V"%Vo
from __future__ import division
from math import log
#Given :
mu_n=1500*10**-4##m**2/V-s
mu_p=475*10**-4##m**2/V-s
ni=1.45*10**10*10**6##per m**3
q=1.6*10**-19##Coulomb
rho_p=10##ohm-cm
rho_p=rho_p*10**-2##ohm-m
rho_n=3.5##ohm-cm
rho_n=rho_n*10**-2##ohm-m
sigma_p=1/rho_p##(ohm-m)**-1
NA=sigma_p/q/mu_p##m**3
sigma_n=1/rho_n##(ohm-m)**-1
ND=sigma_p/q/mu_n##m**3
VT=26*10**-3##V
Vj=VT*log(NA*ND/ni**2)##V
print "Height of potential barrier = %0.3f V"%Vj
#Answer in the book is wrong.
from __future__ import division
from math import log
#Given :
rho_p=2##ohm-cm
rho_p=rho_p*10**-2##ohm-m
rho_n=1##ohm-cm
rho_n=rho_n*10**-2##ohm-m
mu_n=1500*10**-4##m**2/V-s
mu_p=2100*10**-4##m**2/V-s
ni=2.5*10**13##per m**3
q=1.6*10**-19##Coulomb
sigma_p=1/rho_p##(ohm-m)**-1
NA=sigma_p/q/mu_p##m**3
sigma_n=1/rho_n##(ohm-m)**-1
ND=sigma_p/q/mu_n##m**3
T=27+273##K
VT=T/11600##V
Vj=VT*log(NA*ND/ni**2)##V
print "Height of potential barrier = %0.4f V"%Vj
#Anser in the book is wrong.
#Given :
Vgamma=0.6##Volt
rf=12##ohm
V=5##Volts
R=1##kohm
IF=(V-Vgamma)/(R*1000+rf)##A
print "Diode current = %0.1f mA"%(IF*1000)
VF=Vgamma+IF*rf##volts
print "Diode voltage = %0.2f Volts"%VF
#Given :
Vgamma=0.6##Volt
Rf=10##ohm
Eta=2#
Vm=0.2##Volts
Vdc=10##Volts
RL=1##kohm
IDQ=(Vdc-Vgamma)/(RL*1000+Rf)##A
VT=25*10**-3##Volts
rd=Eta*VT/IDQ##ohm
print "Alternating component of voltage across RL, Vo(ac) = ",round((RL*1000/(RL*1000+rd)*Vm),4),"*sin(omega*t)"
Vo_DC=IDQ*RL*1000##Volts
print "Total load voltage = ",round(Vo_DC,1),"+",round((RL*1000/(RL*1000+rd)*Vm),4),"*sin(omega*t)"
from __future__ import division
from math import exp,log
#Given :
Eta=2##for Si diode
T=300##K
VT=T/11600##V
IbyIo=90/100#
#I=Io*(exp(V/Eta/VT)-1)
V=log(IbyIo+1)*Eta*VT##V
print "Saturation value of voltage = %0.2f mV"%(V*1000)
VF=0.5##Volts
VR=-0.5##Volts
IFbyIR=(exp(VF/Eta/VT)-1)/(exp(VR/Eta/VT)-1)##ratio
print "Ratio of forward to reverse current = %0.2f"%IFbyIR
#Answer in the book is wrong.
from __future__ import division
from math import log,exp
#Given :
Eta=2##for Si diode
T=300##K
VT=T/11600##V
IbyIo=90/100#
#I=Io*(exp(V/Eta/VT)-1)
V=log(IbyIo+1)*Eta*VT##V
print "Saturation value of voltage = %0.2f mV"%(V*1000)
VF=0.2##Volts
VR=-0.2##Volts
IFbyIR=(exp(VF/Eta/VT)-1)/(exp(VR/Eta/VT)-1)##ratio
print "Ratio of forward to reverse current : %0.2f "%IFbyIR
#Answer in the book is wrong.
from __future__ import division
from math import log,exp
#Given :
IF=10##mA
VF=0.75##volts
T=27+273##K
Eta=2##for Si diode
VT=T/11600##V
Io=IF/(exp(VF/Eta/VT)-1)##mA
print "Reverse saturation current = %0.3f nA"%(Io*10**6)
from __future__ import division
from math import log,exp
#Given :
IF=10##mA
VF=0.3##Volts
T=27+273##K
Eta=1##for Ge diode
VT=T/11600##V
Io=IF/(exp(VF/Eta/VT)-1)##mA
print "Reverse saturation current = %0.2f nA"%(Io*10**6)
from __future__ import division
from math import log,exp
#Given :
Io=1*10**-9##A
T=27+273##K
VT=T/11600##V
VF=0.3##Volts
Eta=1##for Ge diode
IF=Io*(exp(VF/Eta/VT)-1)##mA
print "Forwad current = %0.4f mA"%(IF*10**3)
from __future__ import division
from math import log,exp
#Given :
T=27+273##K
V1=0.4##V
V2=0.42##V
I1=10##mA
I2=20##mA
VT=T/11600##V
Eta=1/log(I1/I2)*(V1-V2)/VT
print "Value of Eta : %0.2f"%Eta
Io=I1/(exp(V1/Eta/VT)-1)*10**-3##A
print "Current, Io = %0.2f nA"%(Io*10**9)
#Ans in the book is not accurate.
from __future__ import division
from math import log,exp
#Given :
Io1=10**-12##A
Io2=10**-10##A
I=2##mA
Eta=1##constant
T=27+273##K
VT=26/1000##V
#I=I1+I2
V=(log(I*10**-3/(Io1+Io2))+1)*Eta*VT##V
print "Voltage across the diodes = %0.4f V"%V
#Ans in the book is not accurate.
from __future__ import division
from math import log,exp
#Given :
Io1=10*10**-9##A
Io2=10*10**-9##A
Eta=1.1##constant
T=25+273##K
V=0.2##V(assumed)
VT=T/11600##V
I1=Io1*(exp(V/Eta/VT)-1)##A
I2=Io2*(exp(V/Eta/VT)-1)##A
I=I1+I2##A
print "Source current = %0.2f micro Ampere"%(I*10**6)
from __future__ import division
from math import log,exp
#Given :
Io=10**-13##A
T=27+273##K
Eta=1##constant
V=0.6##V
VT=26/1000##V
I3=Io*(exp(V/Eta/VT)-1)##A
R=1*1000##ohm
Ir=V/R##A
Itotal=I3+Ir##A
VD1=log(Itotal/Io)*Eta*VT##V
VD2=VD1##V
Vin=VD1+VD2+V##V
print "Voltage Vin = %0.3f V"%Vin
from __future__ import division
from math import log,exp
#Given :
Vs=10##V
print "Case(i) : Vb=9.8V"
Vb=9.8##V
#D1 forward & D2 reverse biased: Breakdown D2
VD2=Vb##V
VD1=Vs-Vb##V
print "VD1 = %0.3f V"%VD1
print "VD2 = %0.3f V"%VD2
print "Case(ii) : Vb=10.2V"
Vb=10.2##V
#D1 forward & D2 reverse biased: none will be breakdown
VD2=Vb##V
#I=I0 so exp(V1/Eta/VT)-1=1
Eta=1##constant
VT=26/1000##V
VD1=log(1+1)*Eta*VT##V
VD2=Vs-VD1##V
print "VD1 = %0.3f V"%VD1
print "VD2 = %0.3f V"%VD2
from __future__ import division
from math import log,exp
#Given :
Vs=5##Volt
Eta=1##constant
VT=26/1000##V
#I=I0 so exp(V1/Eta/VT)-1=1
V1=log(1+1)*Eta*VT##Volt
V2=Vs-V1##Volt
print "Voltage across diode D1 = %0.3f V"%V1
print "Voltage across diode D2 = %0.3f V"%V2
from __future__ import division
from math import log,exp
#Given :
rho_n=10##ohm-cm
rho_p=3.5##ohm-cm
ni=1.5*10**10##per cm**3
Vj=0.56##volt
q=1.6*10**-19##Coulomb
mu_n=1500##cm**2/V-s
mu_p=500##cm**2/V-s
sigma_p=1/rho_p##(ohm-cm)**-1
NA=sigma_p/q/mu_p##per cm**3
sigma_n=1/rho_n##(ohm-cm)**-1
ND=sigma_n/q/mu_n##per cm**3
VT=Vj/log(NA*ND/ni**2)##V
T=11600*VT##K
print "Temperature of junction = %0.2f degree K"%T
t=T-273##degree C
print "Temperature of junction = %0.2f degree C"%t
from __future__ import division
from math import log,exp
#Given :
Io=10##nA
T1=27+273##K
T2=87+273##K
VT=T1/11600##V
Eta=2##for Si
m=1.5##for Si
VGO=-1.21##volt
K=Io*10**-9/T1**m/exp(VGO/Eta/VT)##constant
VT=T2/11600##V
Io2=K*T2**m*exp(VGO/Eta/VT)##A
print "Reverse saturation current at 87 degree C = %0.2f nA"%(Io2*10**9)
from __future__ import division
from math import log,exp
#Given :
V=0.45##volt
Eta=2##for Si
T1=27+273##K
T2=125+273##K
VT1=T1/11600##V
VT2=T2/11600##V
I1BYIo1=exp(V/Eta/VT1)#
I2BYIo2=exp(V/Eta/VT2)#
m=1.5##for Si
VGO=1.21##volt
Io1BYIo2=(T1/T2)**m*exp(-VGO/Eta/VT1+VGO/Eta/VT2)##constant
I2BYI1=I2BYIo2/I1BYIo1/Io1BYIo2#
print "Factor by which current increases : %0.2f "%I2BYI1
#Answer is wrong in the textbook.
from __future__ import division
from math import log,exp
#Given :
Io1=2##nA
T1=10+273##K
V=0.4##volt
VT1=T1/11600##V
m=1.5##for Si
Eta=2##for Si
VGO=-1.21##volt
K=Io1*10**-9/T1**m/exp(VGO/Eta/VT1)##constant
I1=Io1*10**-9*(exp(V/Eta/VT1)-1)##nA
T2=70+273##K
VT2=T2/11600##V
Io2=K*T2**m*(exp(VGO/Eta/VT2))##A
I2=Io2*(exp(V/Eta/VT2)-1)##nA
change=(I2-I1)/I1*100##%
print "%% change = %0.2f diode current"%change
#Answer is wrong in the textbook.
from __future__ import division
from math import log,exp
#Given :
T=300##K
m_Si=1.5##for Si
m_Ge=1.5##for Ge
EGO_Si=1.21##Volt
EGO_Ge=0.785##Volt
Eta_Si=2#
Eta_Ge=1#
VT=26/1000##V
print "Part(i)"
d_logIoBYdt_Ge=m_Ge/T+EGO_Ge/(Eta_Ge*T*VT)##per degree C
print "d(log(Io))/dt for Ge = %0.2f per degree C"%d_logIoBYdt_Ge
d_logIoBYdt_Si=m_Si/T+EGO_Si/(Eta_Si*T*VT)##per degree C
print "d(log(Io))/dt for Si = %0.2f per degree C "%d_logIoBYdt_Si
print "Part(ii)"
V=0.2##Volt
dVBYdt_Ge=V/T-Eta_Ge*VT*d_logIoBYdt_Ge#
print "dV/dt for Si = %0.2f mV per degree C "%(dVBYdt_Ge*1000)
V=0.6##Volt
dVBYdt_Si=V/T-Eta_Si*VT*d_logIoBYdt_Si
print "dV/dt for Si = %0.2f mV per degree C "%(dVBYdt_Si*1000)
from __future__ import division
from math import sqrt
#Given :
NA=4*10**20##per m**3
Vj=0.2##Volt
V1=-1##Volts
V2=-5##Volts
epsilon_r=16##for Ge
epsilon_o=8.85*10**-12##permitivity
q=1.6*10**-19##Coulomb
W1=sqrt(2*epsilon_r*epsilon_o*(Vj-V1)/q/NA)##m
print "Width of depletion region = %0.2f micro meter "%(W1*10**6)
W2=sqrt(2*epsilon_r*epsilon_o*(Vj-V2)/q/NA)##m
print "New value of Width of depletion region = %0.2f micro meter "%(W2*10**6)
from __future__ import division
from math import sqrt
#Given :
NA=4*10**20##per m**3
Vj=0.2##Volt
V1=-1##Volts
V2=-5##Volts
A=0.8*10**-6##m**2
epsilon_r=16##for Ge
epsilon_o=8.85*10**-12##permitivity
q=1.6*10**-19##Coulomb
W1=sqrt(2*epsilon_r*epsilon_o*(Vj-V1)/q/NA)##m
CT1=epsilon_r*epsilon_o*A/W1##
print "Transition capacitance = %0.2f pF "%(CT1*10**12)
W2=sqrt(2*epsilon_r*epsilon_o*(Vj-V2)/q/NA)##m
CT2=epsilon_r*epsilon_o*A/W2##
print "New value of Transition capacitance = %0.2f pF "%( CT2*10**12)
from __future__ import division
from math import sqrt
#Given :
NA=3*10**20##per m**3
Vj=0.2##Volt
V=-10##Volts
A=1*10**-6##m**2
epsilon_r=16##for Ge
epsilon_o=8.854*10**-12##permitivity
q=1.6*10**-19##Coulomb
W=sqrt(2*epsilon_r*epsilon_o*(Vj-V)/q/NA)##m
print "Width of depletion region = %0.2f micro meter"%(W*10**6)
CT=epsilon_r*epsilon_o*A/W##
print "Transition capacitance = %0.2f pF"%(CT*10**12)
#Answer is wrong in the textbook.
from __future__ import division
from math import sqrt
#Given :
W=2*10**-4*10**-2##m
A=1*10**-6##m**2
epsilon_r=16##for Ge
epsilon_o=8.854*10**-12##permitivity
q=1.6*10**-19##Coulomb
CT=epsilon_r*epsilon_o*A/W##
print "Barrier capacitance = %0.2f pF "%(CT*10**12)
#Answer is wrong in the textbook.
from __future__ import division
from math import sqrt,pi
#Given :
Vj=0.5##Volt
V=-4.5##Volt
rho_p=5*10**-2##ohm-m
epsilon_r=12##for Si
epsilon_o=8.854*10**-12##permitivity
q=1.6*10**-19##Coulomb
CT=100*10**-12##F
mu_p=500*10**-4##m**2/V-s
sigma_p=1/rho_p##(ohm-m)**-1
NA=sigma_p/q/mu_p##per m**3
W=sqrt(2*epsilon_r*epsilon_o*(Vj-V)/q/NA)##m
A=CT*W/(epsilon_r*epsilon_o)##
r=sqrt(A/pi)##m
D=2*r##m
print "Diameter = %0.2f micro meter"%(D*10**6)
#Answer is wrong = %0.2f the textbook. Sqrt is not taken while calculatng W value and also other mistakes.
from __future__ import division
from math import sqrt,log,exp
#Given :
Eta=2##for Si
T=300##K
VT=26/1000##V
IbyIo=0.9#
#part (i)
V=log(IbyIo+1)*Eta*VT##Volt
print "Value of reverse voltage = %0.2f mV"%(V*1000)
#part (ii)
VF=0.2##Volt
VR=-0.2##Volt
IFbyIR=(exp(VF/Eta/VT)-1)/(exp(VR/Eta/VT)-1)#
print "Ratio of forward bias current to reverse saturation current = %0.2f "%IFbyIR
#Answer is wrong in the textbook.
from numpy import mat, linalg
#Given :
Vs=100##V
Rf1=20##ohm
Vgamma1=0.2##Volts
Rf2=15##ohm
Vgamma2=0.6##Volts
Vb_Ge=0.2##Volts
Vb_Si=0.6##Volts
R1=10*10**3##ohm
R2=1*10**3##ohm
#Case(i)
Imax=Vs/R1##A
#D1 ON & D2 off
V=Vb_Ge+Rf1*Imax##Volt
#D2 off as V<Vb_Si
I2=0##A
I1=(Vs-V)/(R1+Rf1)##A
print "For R=10 kohm"
print "I1 = %0.2f mA"%(I1*1000)
print "I2 = %0.2f mA"%I2
#Case(ii)
R=R2##ohm#D1 & D2 ON
#V=Vb_Ge+Rf1*I1#V=Vb_Si+Rf2*I2
#V=Vs-I*R#V=Vs-(I1+I2)*R
#20*I1-15*I2=Vb_Si-Vb_Ge
#1020*I1+1000*I2=99.8
A=mat([[20, 1020],[-Rf2, R]])#
B=mat([[Vb_Ge-Vb_Ge],[Vs-Vb_Ge]])#
X = linalg.solve(A,B)
I1=X[0]*1000##mA
I2=X[1]*1000##mA
print "For R=1 kohm"
print "I1 = %0.2f mA"%I1
print "I2 = %0.2f mA"%I2
#Answer for 2nd part is not accurate in the book.
import numpy as np
#Given :
Rf=10##ohm
Vgamma=0.5##Volt
RL=20##ohm
V=3##Volt
#Loop 1: 75*I1-50*I=V-Vgamma
#Loop 2: -50*I1+80*I=-Vgamma
A=np.mat([[75 ,-50],[-50, 80]])#
B=np.mat([[V-Vgamma], [-Vgamma]])#
X = np.linalg.solve(A,B)
I1=X[0]*1000##mA
I2=X[1]*1000##mA
print "For R=1 kohm"
Vx=-Vgamma+50*I1##Volt
print "DC source = %0.2f Volts"%Vx[0,0]
#Answer is wrong in the textbook.