{

 "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": {}

  }

 ]

}