kbT = 0.026
apsilen = 11.9*8.85*10**-14
e = 1.6*10**-19
Na=10**16
ni = 1.5*10**10
phi_F= (-kbT*log(Na/ni))
print"The potential phi_F=","{:.2e}".format(phi_F),"V"
W = sqrt((4*apsilen*(-phi_F))/(e*Na))*10**4
print"The space charge width is ,W =","{:.1e}".format(W)," micro_meter"
kbT = 0.026
Eg = 1.11
e = 1.6*10**-19
Na=10**14
ni = 1.5*10**10
phi_m = 4.1
Es = 4.15
EF= ((Eg/2)+kbT*log(Na/ni))
print"The position of fermi level below conduction band is ,EF=","{:.2e}".format(EF),"eV"
Vfb = phi_m-(Es+EF)
print"The potential is ,Vfb =","{:.2e}".format(Vfb),"eV"
kbT = 0.026
apsilen = 11.9*8.85*10**-14
e = 1.6*10**-19
Na=3*10**16
ni = 1.5*10**10
Vfb = -1.13
Eox = 3.9*8.85*10**-14
dox = 500*10**-8
Nt = 10**11
phi_F= (-kbT*log(Na/ni))
print"The potential phi_F=","{:.2e}".format(phi_F),"V"
Qs = sqrt((4*apsilen*(-phi_F))*(e*Na))
print"The maximum depletion width is ,Qs =","{:.2e}".format(Qs),"C cm**-2"
Vs = -(2*phi_F)
print"The surface potential is ,Vs =","{:.2e}".format(Vs)," V"
VT = Vfb+Vs+((Qs*dox)/Eox)
print"In the absence of any oxide charge, the threshold voltage is ,VT =","{:.2e}".format(VT)," V"
dVT = -((e*Nt*dox)/Eox)
print"when oxide has trap charges, the shift in threshold voltage is ,dVT =","{:.2e}".format(dVT)," V"
# Note : due to different precisions taken by me and the author ... my answer differ
import math
mu_n=600
mu_p = 200
kbT = 0.026
apsilen = 11.9*8.85*10**-14
e = 1.6*10**-19
Na=5*10**16
ni = 1.5*10**10
Vfb = -0.5
Eox = 1.583*8.85*10**-14
dox = 200*10**-8
sigma_1= Na*e*mu_p
sigma_2= Na*e*mu_n
phi_F= (-kbT*log(Na/ni))
Qs = sqrt((4*apsilen*(-phi_F))*(e*Na))
print"The maximum depletion width is ,Qs = ","{:.2e}".format(Qs)," C cm**-2"
Vs = -(2*phi_F)
VT = Vfb+Vs+((Qs*dox)/Eox)
print"In the absence of any oxide charge, the threshold voltage is ,VT =","{:.2e}".format(VT)," V"
# Note : due to different precisions taken by me and the author ... my answer differ
kbT = 0.026
apsilen = 11.9*8.85*10**-14
e = 1.6*10**-19
Na=10**16
ni = 1.5*10**10
apsilen_ox = 3.9*8.85*10**-14
dox = 500*10**-8
Cox= apsilen_ox/dox
print"The oxide capacitance Cox=","{:.2e}".format(Cox),"F/cm**2"
phi_F =(-kbT*log(Na/ni))
print"The potential phi_F=","{:.2e}".format(phi_F)," V"
Wmax = sqrt((4*apsilen*(-phi_F))/(e*Na))
print"The maximum depletion width is ,Wmax =","{:.2e}".format(Wmax)," cm"
Cmin = (apsilen_ox/(dox+((apsilen_ox*Wmax)/apsilen)))
print"The minimum capicitance is ,Cmin =","{:.2e}".format(Cmin)," F/cm**2"
Cfb = (apsilen_ox/((dox)+((apsilen_ox/apsilen)*(sqrt((kbT*apsilen)/(e*Na))))))
print"The capicitance under flat band conditions is ,Cfb =","{:.2e}".format(Cfb)," F/cm**2"
mu_n=600
kbT = 0.026
apsilen = 11.9*8.85*10**-14
e = 1.6*10**-19
Na=10**16
ni = 1.5*10**10
apsilen_ox = 3.9*8.85*10**-14
dox = 500*10**-8
phi_ms = -1.13
Qss = 10**11
VGS = 5.0
Z=25*10**-6
L=1.5*10**-6
phi_F= (-kbT*log(Na/ni))
print"The potential phi_F=","{:.2e}".format(phi_F)," V"
Cox = apsilen_ox/dox
print"The oxide capicitance per unit area is ,Cox =","{:.2e}".format(Cox)," F/cm**-2"
Vfb = phi_ms-((Qss*e)/Cox)
print"The flat band potential is Vfb =","{:.2e}".format(Vfb),"V"
Vs = -(2*phi_F)
print"The surface potential is ,Vs =","{:.2e}".format(Vs)," V"
VT = Vfb+Vs+(sqrt(4*e*apsilen*Na*(-phi_F))/Cox)
print"In the absence of any oxide charge, the threshold voltage is ,VT =","{:.2e}".format(VT)," V"
ID = (Z*mu_n*Cox*(VGS-VT)**2)/(2*L)
print"The saturation current is ,ID = ","{:.2e}".format(ID)," A"
#NOTE: The value of Vfb in the text book is wrong for the above solution and thus the value of VT and saturation current is also wrong
kbT = 0.026
Z = 10*10**-4
L = 1*10**-4
mu_n=700
apsilen = 11.9*8.85*10**-14
e = 1.6*10**-19
Na=4*10**14
ni = 1.5*10**10
apsilen_ox = 3.9*8.85*10**-14
dox = 200*10**-8
VGS = 5.0
Qs = sqrt(4*apsilen*(-phi_F)*e*Na)
print"The maximum depletion width is ,Qs =","{:.2e}".format(Qs)," cm**-2"
phi_F= (-kbT*log(Na/ni))
print"The potential phi_F=","{:.2e}".format(phi_F)," V"
Cox = apsilen_ox/dox
print"The oxide capicitance per unit area is ,Cox =""{:.2e}".format(Cox)," cm**-1"
Vs = -(2*phi_F)
print"The surface potential is ,Vs =","{:.2e}".format(Vs)," V"
VT = Vs+((Qs/Cox))
print"The threshold voltage is ,VT =","{:.2e}".format(VT)," V"
VDS = VGS-VT
print"The saturation voltage is ,VDS =","{:.2e}".format(VDS)," V"
ID = (Z*mu_n*Cox*(VDS)**2)/(2*L)
print"The saturation current is ,ID =","{:.2e}".format(ID)," A"
# Note : due to different precisions taken by me and the author ... my answer differ
VDS = 0.1
Z = 10*10**-4
L = 2*10**-4
Cox=10**-7
ID1= 50.0
ID2= 80.0
VGS1 = 1.5
VGS2 = 2.5
mu_n = (((ID2-ID1)*10**(-6)*L)/(VDS*Z*Cox*(VGS2-VGS1)))
print"The mobility of electron in silicon is ,mu_n =",round(mu_n,2)," cm**2/Vs"
kbT = 0.026
apsilen = 11.9*8.85*10**-14
e = 1.6*10**-19
Na=2*10**16
ni = 1.5*10**10
VSB = 1.0
apsilen_ox = 3.9*8.85*10**-14
dox = 500*10**-8
Cox = apsilen_ox/dox
print"The oxide capicitance per unit area is ,Cox =","{:.2e}".format(Cox)," F*cm**-2"
phi_F= (-kbT*log(Na/ni))
print"The potential phi_F=","{:.2e}".format(phi_F)," V"
dVT = ((sqrt(2*e*apsilen*Na)/Cox)*((sqrt((-2*phi_F)+VSB)-sqrt(-2*phi_F))))
print"The shift in threshold voltage is ,dVT =","{:.2e}".format(dVT)," V"
kbT = 0.026
apsilen = 11.9*8.85*10**-14
e = 1.6*10**-19
D = 10**-5
Na=10**14
dVT=.5
ni = 1.5*10**10
apsilen_ox = 3.9*8.85*10**-14
phi_F= (-kbT*log(Na/ni))
print"The potential phi_F=","{:.2e}".format(phi_F)," V"
dox = 5*10**-6
Cox = apsilen_ox/dox
print"The oxide capicitance per unit area is ,Cox =","{:.2e}".format(Cox)," cm**-1"
phi_ms = -0.83
VT = (phi_ms)-(2*phi_F)+((sqrt(4*e*apsilen*Na*(-phi_F)))/Cox)
print"the threshold voltage is ,VT =","{:.2e}".format(VT)," V"
Na = (dVT*Cox)/(e*D)
print"the dopant density is ,Na=","{:.2e}".format(Na)," cm**-3"
# Note : due to different precisions taken by me and the author ... my answer differ