Chapter11:Memory and Advanced Digital Circuits

Ex11.1:pg-1017

In [2]:
# The problem is solved using Hit and Trial as well as approximation thus no programming is needed hence the example is skipped

Ex11.2:pg-1032

In [15]:
uC_n=50*10**-6; # u_n*C_ox (A/V**2)
uC_p=20.0*10**-6; # u_p*C_ox (A/V**2)
V_tn0=1.0; # (V)
V_tp0=-1; # (V)
fie_f=0.6/2; # (V)
y=0.5; # (V**1/2)
V_DD=5; # (V)
W_n=4*10.0**-6; # (m)
L_n=2*10.0**-6; # (m)
W_p=10*10**-6; # (m)
L_p=2*10.0**-6; # (m)
W=10*10**-6; # (m)
L=10*10.0**-6; # (m)
C_B=1*10.0**-12; # bit line capacitance (F)
deltaV=0.2; # 0.2 V decrement
WbyL_eq=1/(L_p/W_p+L_n/W_n); # WbyL_eq=(W/L)_eq
# Equivalent transistor will operate in saturation
I=(uC_n*WbyL_eq*(V_DD-V_tn0)**2)/2
r_DS=1/(uC_n*(W_n/L_n)*(V_DD-V_tn0));
v_Q=r_DS*I; # v_Q=r_DS*I
I_5=0.5*10.0**-3; # (A) 
deltat=C_B*deltaV/I_5;
print deltat*1e9, "is The time (ns) required to develop an output voltage of 0.2V"
0.4 is The time (ns) required to develop an output voltage of 0.2V

Ex11.3:pg-1041

In [18]:
# Consider sense-amplifier circuit
uC_n=50*10**-6; #uC_n=u_n*C_ox (A/V**2)
uC_p=20*10**-6; #uC_p=u_p*C_ox (A/V**2)
W_n=12*10**-6; # (m)
L_n=4*10**-6; # (m)
W_p=30*10**-6; # (m)
L_p=4*10**-6; # (m)
v_B=4.5; # (V)
C_B=1*10**-12; # (F)
V_GS=2.5; # (V)
V_t=1; # (V)
deltaV=0.1; # (V)
g_mn=uC_n*(W_n/L_n)*(V_GS-V_t); # (A/V)
g_mp=uC_p*(W_p/L_p)*(V_GS-V_t); # (A/V)
G_m=g_mn+g_mp; # (A/V)
T=C_B/G_m; # (s)
deltat=T*(math.log(v_B/V_GS)-math.log(deltaV));
print round(deltat*1e9,1)," is The time for v_B to reach 4.5V (s)"
# The answer in the textbook is slightly different due to approximation
6.4  is The time for v_B to reach 4.5V (s)