1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
|
{
"metadata": {
"name": "",
"signature": "sha256:32762f08f8decdcb2472567b8bb56aa30546cb37837b4beaf1c667dc49e7e0c1"
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "heading",
"level": 1,
"metadata": {},
"source": [
"Chapter11:Memory and Advanced\n",
"Digital Circuits"
]
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
"Ex11.1:pg-1017"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# The problem is solved using Hit and Trial as well as approximation thus no programming is needed hence the example is skipped"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 2
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
"Ex11.2:pg-1032"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# Example 11.2 Design of two-stage CMOS op-amp \n",
"\n",
"uC_n=50*10**-6; # u_n*C_ox (A/V**2)\n",
"uC_p=20.0*10**-6; # u_p*C_ox (A/V**2)\n",
"V_tn0=1.0; # (V)\n",
"V_tp0=-1; # (V)\n",
"fie_f=0.6/2; # (V)\n",
"y=0.5; # (V**1/2)\n",
"V_DD=5; # (V)\n",
"W_n=4*10.0**-6; # (m)\n",
"L_n=2*10.0**-6; # (m)\n",
"W_p=10*10**-6; # (m)\n",
"L_p=2*10.0**-6; # (m)\n",
"W=10*10**-6; # (m)\n",
"L=10*10.0**-6; # (m)\n",
"C_B=1*10.0**-12; # bit line capacitance (F)\n",
"deltaV=0.2; # 0.2 V decrement\n",
"WbyL_eq=1/(L_p/W_p+L_n/W_n); # WbyL_eq=(W/L)_eq\n",
"# Equivalent transistor will operate in saturation\n",
"I=(uC_n*WbyL_eq*(V_DD-V_tn0)**2)/2\n",
"r_DS=1/(uC_n*(W_n/L_n)*(V_DD-V_tn0));\n",
"v_Q=r_DS*I; # v_Q=r_DS*I\n",
"I_5=0.5*10.0**-3; # (A) \n",
"deltat=C_B*deltaV/I_5;\n",
"print deltat*1e9, \"is The time (ns) required to develop an output voltage of 0.2V\""
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"0.4 is The time (ns) required to develop an output voltage of 0.2V\n"
]
}
],
"prompt_number": 15
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
"Ex11.3:pg-1041"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# Example 11.3 : Time required for v_B to reach 4.5V\n",
"# Consider sense-amplifier circuit\n",
"uC_n=50*10**-6; #uC_n=u_n*C_ox (A/V**2)\n",
"uC_p=20*10**-6; #uC_p=u_p*C_ox (A/V**2)\n",
"W_n=12*10**-6; # (m)\n",
"L_n=4*10**-6; # (m)\n",
"W_p=30*10**-6; # (m)\n",
"L_p=4*10**-6; # (m)\n",
"v_B=4.5; # (V)\n",
"C_B=1*10**-12; # (F)\n",
"V_GS=2.5; # (V)\n",
"V_t=1; # (V)\n",
"deltaV=0.1; # (V)\n",
"g_mn=uC_n*(W_n/L_n)*(V_GS-V_t); # (A/V)\n",
"g_mp=uC_p*(W_p/L_p)*(V_GS-V_t); # (A/V)\n",
"G_m=g_mn+g_mp; # (A/V)\n",
"T=C_B/G_m; # (s)\n",
"deltat=T*(math.log(v_B/V_GS)-math.log(deltaV));\n",
"print round(deltat*1e9,1),\" is The time for v_B to reach 4.5V (s)\"\n",
"# The answer in the textbook is slightly different due to approximation"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"6.4 is The time for v_B to reach 4.5V (s)\n"
]
}
],
"prompt_number": 18
}
],
"metadata": {}
}
]
}
|