You are on page 1of 7

SHREYAS M S

20MVD0136
Physics of VLSI Devices
Digital Assignment 2

Question 29)
30. An ideal p-channel MOSFET has the following parameters:
W = 15 μm, μn = 300 cm2/V-s,
L = 1.5 μm, Tox = 350 Å, VT = -0.80 V
(a)Plot ID versus VDS for 0 ≤ VDS ≤ 5V and for VGS = 0. I, 2, 3, 4, and 5 V. Indicate on
each curve the VDS (sat). (b) Plot lD versus VGS for VDS = 0.1 V and for O ≤ VGS ≤ 5V.
Solution:
Python simulation: Id Vds curve
import matplotlib.pyplot as plt
import numpy as np
k=0.66594e-3
k1=0.33477e-3
vgs=[0.1,2,3,4,5]
vt=0.8
ids=[]
l=list(np.arange(0,5.5,0.5))
for vgsele in vgs:
for vds in l:

if (vgsele>=vt and vds>(vgsele-vt)) :


a=(k1*((vgsele-vt)**2))
elif(vgsele>vt and vds<=(vgsele-vt)):
a=(k*((vds*(vgsele-vt))-((vds**2)/2.0)))
else:
a=0
ids.append(a)
plt.plot(l,ids)
print("Ids=")
print(ids)
print("Vds=")
print(l)
print("\n---------------------------------------------------\n")
ids=[]
plt.show()

Python simulation: Id Vgs curve


import matplotlib.pyplot as plt
import numpy as np
k=0.66594e-3
k1=0.33477e-3
vds=0.1
vt=0.8
ids=[]
vgs=list(np.arange(0,5.5,0.5))
print(vgs)
for vgsele in vgs:
if (vgsele>=vt and vds>(vgsele-vt)) :
a=(k1*((vgsele-vt)**2))
elif(vgsele>vt and vds<=(vgsele-vt)):
a=(k*((vds*(vgsele-vt))-((vds**2)/2.0)))
else:
a=0
ids.append(a)
plt.plot(vgs,ids)
print("Ids=")
print(ids)
print("Vgs=")
print(vgs)
print("\n---------------------------------------------------\n")
plt.show()

You might also like