Chapter 6: Field Effect Transistors and MOSFETs

example 6.1, Page No.219

In [8]:
#Value of Transconductance
import math
#variable declaration
VGS1=-3.1                        #in Volt
VGS2=-3                          #in Volt
ID1=1                            #in mA
ID2=1.3                          #in mA

#calculations
delVGS=VGS2-VGS1                 #in Volts
delID=ID2-ID1                    #in mA
gm=delID*10**-3/delVGS           #in mhos

#Result
print("Transconductance in mhos : %.3f"%gm)
Transconductance in mhos : 0.003

example 6.2, Page No.219

In [9]:
#AC drain resistance transconductance and amplification factor
import math
#variable declaration
VGS1=0                       #in Volt
VGS2=0                       #in Volt
VGS3=-0.2                    #in Volt
VDS1=7                       #in Volt
VDS2=15                      #in Volt
VDS3=15                      #in Volt
ID1=10                       #in mA
ID2=10.25                    #in mA
ID3=9.65                     #in mA

#Calculations
delVDS=VDS2-VDS1             #in Volts
delID=ID2-ID1                #in mA
rd=delVDS/delID              #in Kohm
delVGS=VGS3-VGS2             #in Volts
delID=ID3-ID2                #in mA
gm=delID*10**-3/delVGS       #in mhos
mu=rd*10**3*gm               #unitless


#Result 
print("AC drain resistance in Kohm : %.0f"%rd)
print("Transconductance in mhos : %.3f"%gm)
print("Amplification factor : %.0f"%mu)
AC drain resistance in Kohm : 32
Transconductance in mhos : 0.003
Amplification factor : 96

example 6.5, Pae No.224

In [10]:
#Voltage Amplification
import math
#variable declaration
gm=2                          #in milli-mho
RL=10                         #in Kohm

#calculation
Av=gm*10**-3*RL*10**3         #unitless

#Result
print("assuming rd>>RL")
print("Voltage amplification : %.0f"%Av)
assuming rd>>RL
Voltage amplification : 20

example 6.6, Page No.224

In [11]:
#Output voltage of amplifier
import math

#Variable declaration
RL=20.0                   #in Kohm
RS=1.0                    #in Kohm
RG=1.0                    #in Mohm
Cs=25.0*10**-6            #in uF
mu=20.0                   #unitless
rd=100.0                  #in Kohm
Vs=2.0                    #in Volt
f=1.0*10**3               #in KHz

#Calculations
Xc=1/(2*math.pi*f*Cs)   #in Ohm
Av=mu*RL/(rd+RL)        #unitless
Vo=Av*Vs                #in Volt

#Result
print("Xc in Ohm : %.1f"%(math.floor(Xc*10)/10))
print("As Xc<<Rs, therefore Cs bypasses all ac components. ")
print("Output voltage in volt : %.2f"%Vo)
Xc in Ohm : 6.3
As Xc<<Rs, therefore Cs bypasses all ac components. 
Output voltage in volt : 6.67

example 6.7, Page No.224

In [17]:
#IDQ VGSQ VD VS VDS VDG
import math
#variable declaration
R1=2.1                              #in Mohm
R2=270                              #in Kohm
RD=4.7                              #in Kohm
RS=1.5                              #in Kohm
VDD=20                              #in Volt
VP=-4                               #in Volt
IDSS=8                              #in mA

#Calculations

#step 1 : Find VGS :
VG=R2*10**3*VDD/(R1*10**6+R2*10**3) 
print("step 1\nVS=ID*RS-VGS Volt")
print("VGS=VG-VS=2.28-1.5*ID")

#step 2 : Find ID :
print("\nstep 2\nID=IDSS*[1-VGS/VP]^2 mA")
print("ID=8*[1-(2.28-1.5*ID)/4]^2 mA")
print("2*ID=39.44-18.84*ID+2.25*ID^2")
print("2.25*ID^2-20.84*ID39.44=0")
print("ID=6.6mA or 2.65mA")
print("For ID =6.6mA VDS=-ve")
print("So discard the value so IDQ = 2.65mA.")
ID=2.65                                     #in mA
#step 3 : Find VGSQ :
IDQ=ID                                      #in mA
VGS=2.28                                    #in Volt
VGSQ=VGS-1.5*IDQ                            #in Volt

#step 4 : Find VDSQ :
VDSQ=VDD-IDQ*(RD+RS)#in Volt

#step 5 : Find VD,VS and VDG :
VDS=VDSQ                                    #in Volt
VG=VGS                                      #in Volt
VS=ID*RS                                    #in Volt
VD=VS+VDS                                   #in Volt
VDG=VD-VG                                   #in Volt
print("IDQ in mA : %.3f"%IDQ)
print("\nstep 3\nVGSQ in Volt :%.3f"%VGSQ)
print("VD in Volt :%.3f"%VD)
print("VS in Volt :%.3f"%VS)
print("\nstep 4\nVDS in Volt :%.2f"%VDS)
print("\nstep 5\nVDG in Volt :%.3f"%VDG)
step 1
VS=ID*RS-VGS Volt
VGS=VG-VS=2.28-1.5*ID

step 2
ID=IDSS*[1-VGS/VP]^2 mA
ID=8*[1-(2.28-1.5*ID)/4]^2 mA
2*ID=39.44-18.84*ID+2.25*ID^2
2.25*ID^2-20.84*ID39.44=0
ID=6.6mA or 2.65mA
For ID =6.6mA VDS=-ve
So discard the value so IDQ = 2.65mA.
IDQ in mA : 2.650

step 3
VGSQ in Volt :-1.695
VD in Volt :7.545
VS in Volt :3.975

step 4
VDS in Volt :3.57

step 5
VDG in Volt :5.265

example 6.8, page no.226

In [14]:
#Pinch off voltage
import math
#variable declaration
a=5.6*10**-6/2                     #in meter
k=12                               #unitless
epsilon_o=8.86*10**-12             #in F/m
epsilon=k*epsilon_o                #in F/m
ND=10**15                          #in cm^-3
ND=10**15*10**6                    #in m^-3
e=1.6*10**-19                      #in Coulamb

#Calculationd
VP=e*ND*a**2/(2*epsilon)           #in Volt

#Result
print("Pinch off voltage in volts : %.2f"%VP)
Pinch off voltage in volts : 5.90

example 6.10, Page No.226

In [15]:
#Plot gm VS IDSS
import math
#Variable declaration
print("We have,\nID=IDSS*[1-VGS/VP]^2\n")
print("Mutual conductance, gm = (delID/delVGS)\n\t\t       = IDSS*2*[1-VGS/VP]*(-1/VP)\n\t\t       = (-2*IDSS/VP)*[1-VGS/VP]");
################------------PLOT------------#############
t = arange(0.0001,3 , 0.0005)
t2 = arange(0.0001,8.0/3.0 , 0.0005)
a=arange(0.001,8,0.0005)
x=(8.0*a/3.0)/a
plot(t2,8*t2/t2,'b')
plot(x,a,'b')
plot(t,(3*t),'--')
text(1.2,8.2,'gm')
text(8.0/3.1,8.2,'Vgs = 0')
text(8.0/4,4.1,'tan(theta) =1/3')
xlabel('gm(in mS)')
ylabel('IDSS(in mA)')
title('gm versus IDSS')
#########---------------------------------------##########

print("\nClearly the plot of gm vs IDSS for VD=-6V, IDSS=8mA is a straight line of slope=-2/VP=-(2/-6)=1/3")
We have,
ID=IDSS*[1-VGS/VP]^2

Mutual conductance, gm = (delID/delVGS)
		       = IDSS*2*[1-VGS/VP]*(-1/VP)
		       = (-2*IDSS/VP)*[1-VGS/VP]

Clearly the plot of gm vs IDSS for VD=-6V, IDSS=8mA is a straight line of slope=-2/VP=-(2/-6)=1/3

example 6.11, Page No.234

In [16]:
#Channel width W
import math
#variable declaration
L=1.25                   #in um
mu_n=0.065               #in m^2/V-s
Cox=6.9*10**-4           #in F/m^2
VT=0.65                  #in Volt
ID_sat=4                 #in mA
VGS=5                    #in Volt

#calculations

#Formula : ID_sat=W*mu_n*Cox*(VGS-VT)^2/(2*L)
W=ID_sat*10**-3*2*L*10**-6/(mu_n*Cox*(VGS-VT)**2)

#Result
print("Channel Width in micro meter :%.1f"%(W*10**6))
Channel Width in micro meter :11.8