#importing module
import math
from __future__ import division
#Variable declaration
rho=10 #resistivity in ohm-cm
myu_n=1300 #electron mobility in cm**2/V*s
e=1.6*10**-19 #in eV
Cs=5*10**18 #constant surface concentartion in cm**-3
t=1 #in hour
x=1 #depth in micro-m
#Calculations
sigma=1/rho #in (ohm-cm)**-1
n=sigma/(myu_n*e) #in cm**-3
n_Cs=n/Cs
erfc1_y=n_Cs #error function
y=2.75 #reference page 181 from fig 5.1.1. value obtained by plotting erfc1_y (Complementary error function) as a function of y
rootD=x/(2*y*math.sqrt(t))
T=1100 #reference page 168 from fig 5.10(b)
#Result
print("rootD = %.2f micro-m/h**-2\n" %rootD)
print("Temperature at diffusion should be carried out= %i Celsius" %T)
print("The temperature value was choosen by determing the value of T against root(D) in the figure of Diffusivity of acceptor impurities in silicon versus T")
#importing module
import math
from __future__ import division
#Variable declaration
Na=5*10**18 #doping densities in cm**-3
Nd=5*10**15 #in cm**-3
ni=1.5*10**10 #in cm**-3
Const=0.026#constant for kT/e in V
#Calculations
Vbi=Const*math.log((Na*Nd)/ni**2)
#Result
print("built-in potential= %0.3f V" %Vbi) #The answers vary due to round off error
#importing module
import math
from __future__ import division
#Variable declaration
Na=5*10**18 #doping densities in cm**-3
Nd=5*10**15 #in cm**-3
ni=1.5*10**10 #in cm**-3
epsilon_s=11.7 #in F/cm
epsilon_0=8.85*10**-14 #in F/cm
Vbi=0.838 #built-in potential in V
e=1.6*10**-19 #in J
#Calculations
W=((2*epsilon_s*epsilon_0*Vbi*(Na+Nd))/(e*Na*Nd))**0.5
#Result
print("Total space-charge width= %0.3f micro-m" %(W/10**-4))
#importing module
import math
from __future__ import division
#Variable declaration
Na=5*10**18 #doping densities in cm**-3
Nd=5*10**15 #in cm**-3
ni=1.5*10**10 #in cm**-3
VR=4 #voltage in V
epsilon_s=11.7 #in F/cm
epsilon_0=8.85*10**-14 #in F/cm
Vbi=0.838 #built-in potential in V
e=1.6*10**-19 #in J
#Calculations
W=((2*epsilon_s*epsilon_0*(Vbi+VR)*(Na+Nd))/(e*Na*Nd))**0.5
#Result
print("Total space-charge width= %1.2f micro-m" %(W/10**-4))
#importing module
import math
from __future__ import division
#Variable declaration
Na=5*10**18 #doping densities in cm**-3
Nd=5*10**15 #in cm**-3
ni=1.5*10**10 #in cm**-3
VR=3 #voltage in V
epsilon_s=11.7 #in F/cm
epsilon_0=8.85*10**-14 #in F/cm
Vbi=0.838 #built-in potential in V
e=1.6*10**-19 #in J
A=5*10**-4 #Area in cm**2
#Calculations
Cdep=((e*epsilon_s*epsilon_0*Na*Nd)/(2*(Vbi+VR)*(Na+Nd)))**0.5 #junction capacitance
Cdep1=Cdep*A
#Result
print("Junction Capacitance= %i*10**-8 F/cm**2\n" %(Cdep/10**-8))
print("Depletion Capacitance= %i pF" %(Cdep1/10**-12))
#importing module
import math
from __future__ import division
#Variable declaration
Na=10**17 #in cm**-3
epsilon_0=8.85*10**-14 #in F/cm
Emax=5*10**5 #peak electric field in V/cm
e=1.6*10**-19 #in J
epsilon_si=88.76*10**-14 #in F/cm
#Calculations
E=(Emax*Emax*epsilon_si)/(e*Na)
#Result
print("Breakdown voltage= %2.2f V" %E) #The answers vary due to round off error
#importing module
import math
from __future__ import division
#Variable declaration
Na=10**19 #doping densities in cm**-3
Nd=10**15 #in cm**-3
epsilon_s=88.76*10**-14 #in F/cm
e=1.6*10**-19 #in J
Vbi=300 #breakdown voltage in V
#Calculations
xn=((2*epsilon_s*Na*Vbi)/(e*Nd*(Na+Nd)))**0.5
#Result
print("a)")
print(" As %.2f micro-m is less than the given length of the n-region i.e 22 micro-m, device will only have avalanche breakdown" %(xn/10**-4))
#importing module
import math
from __future__ import division
#Variable declaration
Na=10**15 #doping densities in cm**-3
Nd=10**17 #in cm**-3
V=0.5 #in V
e=1.6*10**-19 #in J
nn0=10**17 #in cm**-3
ni=1.5*10**10 #in cm**-3
Si_bandgap=1.1 #bandgap of silicon in eV
Const=0.0259 #constant value for kT/e in J
#Calculations
#a)
pn0=ni**2/nn0 #in cm**-3
pn=pn0*math.exp((V)/Const)
#b)
Vbi=0.6949 #breakdown voltage in V
Vp=Vbi-V #potential already present in V
Vz=Si_bandgap-Vp #Zener breakdown voltage in V
#Result
print("a)\n")
print("Total concentration of holes= %.2f*10**11 cm**-3\n" %(pn/10**11))
print("b)\n")
print("Additional voltage required= %.4f V" %Vz)
#importing module
import math
from __future__ import division
#Variable declaration
Cj=12*10**-12 #Capacitance in F/cm**2
A=10**-4 #junction Area in A/cm**2
Vr=20 #in V
e=1.6*10**-19 #in J
epsilon_r=11.8 #in F/cm
epsilon_0=8.85*10**-14 #in F/cm
#Calculations
Nd=((2*Cj)/A)**2*(Vr/(2*epsilon_r*epsilon_0*e))
#Result
print("Donor Concentration= %1.3f*10**18 cm**-3" %(Nd/10**18))
#importing module
import math
from __future__ import division
#Variable declaration
Na=4.22*10**14 #doping densities in cm**-3
Nd=4.22*10**16 #in cm**3
e=1.6*10**-19 #in eV
Vbi=0.65 #breakdown voltage in V
ni=1.5*10**10 #in cm**-3
epsilon_si=11.7 #in F/cm
epsilon_0=8.85*10**-14 #in F/cm
V=10 #applied voltage in V
Const=0.0259 #value for kT/e in V
#Calculations
Nd=math.sqrt((math.exp(Vbi/Const)*ni**2)/100)
Na=100*Nd
W=(((2*epsilon_0*epsilon_si*(Vbi+V))*(Na+Nd))/(e*Na*Nd))**0.5
Cj=(epsilon_0*epsilon_si)/W
#Result
print("Depletion capacitance per unit area= %1.3f nF/cm**2\n" %(Cj/10**-9)) #The answers vary due to round off error
print("Width of depletion region= %1.2f*10**-4 cm" %(W/10**-4)) #The answers vary due to round off error