# Exa 6.1
%matplotlib inline
import math
import numpy as np
import matplotlib.pyplot as plt
# Given data
I_DSS = 10.;# in mA
V_P = -4;# in V
V_GS= np.linspace(V_P,0,num=41);#
I_D=np.zeros(41)
for i in range (0,41):
I_D[i] = I_DSS * ((1 - (V_GS[i]/V_P))**2);#in A
plt.plot(V_GS,I_D);
plt.xlabel("V_GS in volts");
plt.ylabel("I_D in mA")
plt.title("Transfer curve")
plt.show()
print '%s' %("The transfer curve shown in the figure.")
%matplotlib inline
# Exa 6.2
# Given data
import math
import numpy as np
from matplotlib import pyplot
I_DSS = 4.;# in mA
V_P = 3.;# in V
V_GS=np.linspace(0,V_P,num=31);
I_D = np.zeros(31);
for i in range(0,31):
I_D[i] = I_DSS * ((1 - (V_GS[i]/V_P))**2);# in A
pyplot.plot(V_GS,I_D);
pyplot.xlabel("V_GS in volts");
pyplot.ylabel("I_D in mA")
pyplot.title("Transfer curve")
pyplot.show();
print "The transfer curve shown in the figure.";
# Exa 6.3
# Given data
I_Don = 10.;# in mA
I_Don = I_Don * 10.**-3.;# in A
V_GS = -12.;# in V
V_GSt = -3.;# in V
# From I_Don = Kn*((V_GS-V_GSt)**2);
Kn = I_Don/((V_GS-V_GSt)**2);# in A/V
Kn= Kn* 10.**3.;# in mA/V
V_GS = -6.;# in V
I_D = Kn*((V_GS-V_GSt)**2);# in mA
print '%s %.2f' %("The drain current in mA is",I_D);
# Exa 6.4
# Given data
I_DSS = 8.;# in mA
I_DSS = I_DSS * 10.**-3.;# in A
V_P =-5.;# in V
V_GS = -2.;# in V
V_DSmin = V_GS - V_P;# in V
print '%s %.2f' %("The minimum value of V_DS in V is",V_DSmin);
I_DS = I_DSS*((1 - (V_GS/V_P))**2);# in A
I_DS = I_DS * 10.**3.;# in mA
print '%s %.2f' %("The drain current in mA is",I_DS);
# Exa 6.5
# Given data
import math
I_DSS = 1.65;# in mA
I_DSS = I_DSS * 10.**-3.;# in A
V_P = -2.;# in V
I_D = 0.8;# in mA
I_D = I_D * 10.**-3.;# in A
V_DD = 24.;# in V
V_GS = V_P * (1 - math.sqrt( I_D/I_DSS ));# in V
print '%s %.2f' %("The value of V_GS in V is",V_GS);
g_mo = -2. * (I_DSS*10.**3./V_P);# in ms
g_m = g_mo * (1 - V_GS/V_P);# in ms
print '%s %.2f' %("The value of g_m in ms is",g_m);
# Exa 6.6
# Given data
Vt = 2.;# in V
unCox = 20.;# in uA/V**2
Kdasn = unCox;# in uA/V**2
W = 100.;# in um
L = 10.;# in um
V_GS = 3.;# in V
V_DS = 0.5;# in V
V_GS = 3.;# in V
Vt = 2.;# in V
del_V = V_GS-Vt;# in V
i_D = Kdasn*10.**-6.*(W/L)*( del_V*V_DS - 1./2.*(V_DS**2.) );# in A
i_D = i_D * 10**6;# in uA
print '%s' %("Part (a) For V_D= 0.5 V, NOMS is operating in Triode region.")
print '%s %.2f' %("The drain current in A is",i_D);
V_DS = 1.;# in V
i_D = (1./2.)* Kdasn*10.**-6.*(W/L)*( del_V**2. );# in A
i_D = i_D * 10**6;# in uA
print '%s' %("Part (b) For V_D= 1 V, NOMS is operating in saturation region.")
print '%s %.2f' %("The drain current in uA is",i_D);
V_DS = 5;# in V
i_D = (1./2.)* Kdasn*10.**-6.*(W/L)*( del_V**2. );# in A
i_D = i_D * 10**6;# in uA
print '%s' %("Part (c) For V_D= 5 V, NOMS is operating in saturation region.")
print '%s %.2f' %("The drain current in uA is",i_D);
# Exa 6.7
# Given data
Vt = 2.;# in V
i_D = 1.;# in mA
i_D = i_D * 10.**-3.;# in A
V_GS = 3.;# in V
# From i_D= 1/2*KnwByL*(V_GS-Vt)**2
KnwByL= 2.*i_D/(V_GS-Vt)**2;
V_GS= 4.;# in V
V_DS= 5.;# in V
i_D= 1./2.*KnwByL*(V_GS-Vt)**2.;# in A
i_D= i_D*10.**3.;# in mA
print '%s %.f' %("The value of i_D in mA is : ",i_D)
r_DS= 1./(KnwByL*(V_GS-Vt));# in ohm
print '%s %.f' %("The value of drain to source resistance in ohm is : ",r_DS)
# Exa 6.8
# Given data
Vt = -2.;# in V
KnwByL = 2.*10.**-3.;# in A/V**2
V_GS = 1.;# in V
V_DS = V_GS-Vt;# in V
print '%s %.f' %("The minimum value of V_DS in V is",V_DS);
i_D = 1./2.*KnwByL*V_DS**2.;# in A
i_D = i_D * 10.**3.;# in mA
print '%s %.f' %("The value of i_D in mA is",i_D);