diff options
Diffstat (limited to 'Microelectronic_Circuits_by_A.S._Sedra_and_K.C._Smith/Chapter11.ipynb')
-rwxr-xr-x | Microelectronic_Circuits_by_A.S._Sedra_and_K.C._Smith/Chapter11.ipynb | 140 |
1 files changed, 140 insertions, 0 deletions
diff --git a/Microelectronic_Circuits_by_A.S._Sedra_and_K.C._Smith/Chapter11.ipynb b/Microelectronic_Circuits_by_A.S._Sedra_and_K.C._Smith/Chapter11.ipynb new file mode 100755 index 00000000..efbba551 --- /dev/null +++ b/Microelectronic_Circuits_by_A.S._Sedra_and_K.C._Smith/Chapter11.ipynb @@ -0,0 +1,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": {}
+ }
+ ]
+}
\ No newline at end of file |