{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "\\title{Diode Connected MOSFET Tobology}\n", "\\author{Steven K Armour}\n", "\\maketitle" ] }, { "cell_type": "markdown", "metadata": { "toc": true }, "source": [ "

Table of Contents

\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Background\n", "The Diode connected Mosfet is one of the four single Mosfet topologies (the others being CS, CD, CG) where the Mosfets gate is connected to its drain (for both NMOS and PMOS) thereby forcing it to behave much like a Diode till certain compliance voltage is reached. This compliance voltage is similar to the Diodes threshold voltage and where beyond this point the MOSFET will no longer conduct current at meaningful amounts. \n", "\n", "The usage of diode-connected MOSFETs is important not only in creating a pseudo Diode to then recreate notable diode topologies such as Half and Full wave rectifiers. But are also used like diodes in waveform shaping and biasing to eliminate resistors where possible at the ASIC level. The two most common first exposure to diode-connected MOSFETs come by way of the Saturated Enhancement loaded inverters in Digital MOSFETs topologies and in biasing and the current reference of current mirrors in Analog Mosfet topologies. \n", "\n", "(insert images)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# References (Need to Finish)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Imports" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "from sympy import *\n", "init_printing()\n", "\n", "import numpy as np\n", "import pandas as pd\n", "from itertools import product as IProd\n", "\n", "import matplotlib.pyplot as plt\n", "from mpl_toolkits.mplot3d import Axes3D\n", "from matplotlib import cm\n", "from matplotlib.ticker import LinearLocator, FormatStrFormatter\n", "%matplotlib inline" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Importing Jupyter notebook from SympyMOSModels.ipynb\n" ] } ], "source": [ "import nbimporter\n", "nbimporter.options['only_defs'] = False\n", "from SympyMOSModels import *" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "from PySpice.Probe.Plot import plot\n", "from PySpice.Spice.Library import SpiceLibrary\n", "from PySpice.Spice.Netlist import Circuit\n", "from PySpice.Unit import *\n", "\n", "libraries_path = 'SpiceLib/'\n", "spice_library = SpiceLibrary(libraries_path)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Diode Connected NMOS\n", "(Insert Image)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Square Law Theory " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The Diode Connected NMOS is defined as the $V_{GS}=V_{DS}$ made possible by the connection of the gate to the drain. And in this analysis we will assume that the body voltage is not in play." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "VD, VS=symbols('V_D, V_S')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Simplified Analysis\n", "In the simplified analysis, we forgo the channel length modulation effect. And we proceed with the analysis of the NMOS via expanding $V_{DS}=V_D-V_S$ where we affix the $V_D$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In the simplified analysis, we forgo the channel length modulation effect. And we proceed with the analysis of the NMOS via expanding $V_{DS}=V_D-V_S$ where we affix the $V_D$." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$$\\begin{cases} 0 & \\text{for}\\: V_{DS} < V_{thn} \\\\\\frac{V_{DS} W k_{n'}}{2 L} \\left(V_{DS} - 2 V_{thn}\\right) & \\text{for}\\: V_{DS} < V_{DS} - V_{thn} \\\\\\frac{W k_{n'}}{2 L} \\left(V_{DS} - V_{thn}\\right)^{2} & \\text{otherwise} \\end{cases}$$" ], "text/plain": [ "⎧ 0 for V_DS < Vₜₕₙ \n", "⎪ \n", "⎪V_DS⋅W⋅k_n'⋅(V_DS - 2⋅Vₜₕₙ) \n", "⎪─────────────────────────── for V_DS < V_DS - Vₜₕₙ\n", "⎪ 2⋅L \n", "⎨ \n", "⎪ 2 \n", "⎪ W⋅k_n'⋅(V_DS - Vₜₕₙ) \n", "⎪ ───────────────────── otherwise \n", "⎪ 2⋅L \n", "⎩ " ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "NIdSimpDiodConected=simplify(NMOS.IdSimp(subs={VGS:VDS}))\n", "NIdSimpDiodConected" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnEAAABXCAMAAABcOeMIAAAAPFBMVEX///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAo1xBWAAAAE3RSTlMAmc0y3e8iEESru4l2VOPzi2aTwEvVfwAAAAlwSFlzAAAOxAAADsQBlSsOGwAAD0VJREFUeAHtXeuiqyCu9n6pOnM8vP+7ThIEAgqNWrvXXht/tIgkhJgSLuFrUdirrGwyJ7IGHtdA3bT145XkCrIGjAZq1XYmnb+zBh7XQN+o4fFKcgVZA1YDo3rZdE5kDTyugV6pPIh7XMu5AqeBSbX2pi+ndcr2Z/VxOzGMc8yBzI1S1YI11I1qy0tVXeFxheaScFGiSo32GWqgb/I0wirkZqJu+yE6SO6VWZJa3Bs4WeEVHldoToqVLt6qyRRYqbebjCJMdv6+qoEy1sERw9Y4F4HB9dV6KMQZHobBFRpD+4lvpWbD5kVNX1RvMvL3PQ2MSVuqlOY+S8Yx/dTY98SEOsVjo7tCw6q8nWQWp/3roGh0cZtxZlCkLW5UNH7prI9Ja6yfm2nXF5zkQTVcoUmLdu6ps7he0fh1cJ3eOU65tK+BemxbtLl+mucJljyHqp2XqbLD5EkP8ZL9oM9xbcrA5s7zKIorNL4c9+6cxXV6RFe7gd09zpl6xHFcTVOxF/rEtlx6ZQdkK/20mU+d27fd3VKN1mJRv5zH8FJjWY4vrwAWCi5OU9TTNC2rxK8HXK7fcoujPi5b3HVlBpRkcQ2ZUY2rnlXDCwzoUzafWtE7bwSbP0P1Yv0c51HomV/9bs+S0wz4ypdtQMmFezDtLC571U+rGS2u3obF6Dkqz4P2uNmjc3qarenPN0L4Fsd4AC/NzI4e+6qxlzZp4s1pGrLe5JT6jTznHzuLK/TMYckzh/NaPKZAi1u2BTk0r4qciC2rmmLVvdpCnd/gdYG2GE+EXrVwPIpim83O79gwGj15+e5UkVnci2x9zasj/B3fSXt9HFhbYHGN6sgEu7KpSnCr07iuI7rXtVzrefbNE+XYzxwKwwOe9tt25WTW+ZDk6GI0VYtzmu9ezOL0OCBHZ37sBdA4Tu9g0d5DYHEvZYZkerurAh83o2dcB5xfhOOxo9WRwvEohm04Nr5bwmc0fdmq6K7Ix/TgM/rPf12f2uAuV47O9BV0446cRk0KrXD+0PjdVmnftXZueFtCuQ6W3qC052siK8CF41GYzaK3M15GA9V04zsvfEMDR6Ssj6OVI+rWjwrmvJMaqEelcFGkK6dpBGOC1Qv1cj9v6MrMRGIgP1jjJ/7oYQ4AZDpzq7Nv7KLKlrN9WR5F8aJJcbG8c6qu3p5myP13p6oFtzi/MfnuWxoAV9p3BYaZdKpAK8BusSwpKZdBz/j6Vj4wW8i8axq+y+u5WzJb3F0N3qcv5wL6J+wP1xemwO6gtxsW6oKk7Gvywp0eEsqIKNKgf7tkLGMmLpUtTqyqxwpCGB0YF+5/dSPunQ7obucp4kiPxZgaVcKOQ7gNdlx4yy3R4Z+iSLITPswWJ1RULvYhDWSL+5AiMxuhBpT6P2HJXCxr4BMayH3cJ7SYecg1kC1Orqtc8hMa8C1upmNFa4uBNH2Fn4KgrU+IkXn8MxrwLa7Qu/l6b3WhtURJ0NY/o63c0PsaCCxO21pDW20YtgoRCSwA8H51mcM/r4HA4mbclVtnXPReKXxZELT1z+swK+CMBgKLW8HW+pVOEFIXV0ywvUchNGeY5rJZA1ENBBY3gBOdIVQaNpY1SbUuQ/asUfXlB6c1oNzhIqTtVF0vMHgbum1XT+3ClwYdFWNrMiVtxt2EdueWy8f5W873E4Go9xn+fg5dEAIKtoYGpdbNrOp29mK64NnLjyvsMNjlEn5KlMg7IfcA/+hr7cry9cKIjahoIaknavgQtuQ/i3QjFotJ8h0aeS2D0vGnVkRFGm9fW5QVaAwiBXnYTOhi9ZHfS/gpMaKex00/wN82Nkj0GLOhDxDHRAsoYNEyzGH3n0e6kYrFhACHZWSUQ+qcpxFTTFacTciWAlMbE6UHQVt1gzFb9jK935axbj3eJfyUGNG0DSKhjkf428b4iZEWgrRQMdF8CjBQJ2r4qPgc0o1lLRRrYacFCyGNrQMT52mkFE2I+aDdhHUW2MNQ9NZaLisZmzkNsglowL8u4afEiHoXOf0If0+57qalZciRzkTFRHOldYqJGj4yB0h3+TpDWoNHLiKCM1/8YL6IxqsFgvW2UHQGGRCUCG+FFAucXZRdC45I0BB4pD7MNAz9JfyUKFFlQqcf4n/c5opWu7XFRUULSa2o4QN7ZHn/gHLENXB6AdHuzJeAhldxUThhLY0ckhXmrAcR8fZU5SX8lCgRrALq6yH+Ow2zjIbsLioaK0lJK2r44PNIN1DDO7GOzny9owkFx/vzNDKKMvSpR5VvedCZzdsRclbqZUKjPfwUViCZjBKtZrD7EP+EVING+omKFpJaUcMH0MfhaFiOdLNnsM9JiwVnrc37YKRpGlaQJc/TiCgmfy2OVbhP4jxu2Yfe69NuUNzDTxGi/HhEHsyPhkUAtg/x37fP5jQ0dfJFw4exIBorquVgE2RxIqQbKS6SL1YIjDQeH6u58mo4jfdmbOPChEeBDw8Utshdasje3tuzahw/ZY/yIwBd8WB+6m3gWjzEH2OxLApMwyd2cGiPLt6eJPKRFdXqxCY8FAiY70eRbmBKTnMlhosUkY+L5WkMKu0jFsdppBVxmqAegWQxhfVNFcSFKPm1qdVahIe5EqL82HcQJhjoigfzY1/jQ/xDOey9HTey9ugVyHAd0pBYUU2G+0aLEyHd2EmGxUVyTIJUTGNU7NirsqbIK0rWE8ikbx1FXGF9E2JbHLJKZVqvxzFXxCg/nMiD+bERKw/xjzVpwR6uo6UFhweTRj6you55en0ccA5wR1wNMHrQy3pvcZGiGttqP5o5cBpxRUw4783sW2lyHEVCYR3YZfSaypc+y7hUakMY2Je1I3uOuSJG+eFEHsyPHY4/xH/fEMqpyaXOZHEGD+Yd8pEVdc+TxnESpBs5LlJUY6723eoIpxG/GtN84Ou9GVdPmDIUaYXNGvs3JMb7Cdd+9ZQRQ5gil1sbYPgpYpQfDtTiwfwg4AtdD/E/bk3XAEZpuSG/uPakkY+sqHueYqQbmBBo6re4SFGN8dqDFWBOI67INb/w3gyvx087ipTC4D+SzFqrTw79PFgcRi3BRb/V8Lm+dz6FYa6IUX4c6ApxczA/diz/EP/jxlR6GKv7fdcerYQY8pEVNeQpR7qBn/e2GvQWFymqMb92b5eL04grcs1Hzu7N+PXwO0eRVBisY3AqlsbzDZ22xzaxd2h2oRilHOXHEfkwP3anQRu+K6ZTYhQhR+jzd/mCVBr5iIkq4BUr8rUWna/ovObSCltV3GPiRAsnsxDBFNOU22nnJc6j/BQ+zA/bHjc7+R/lz5m9TaeRj5iobznFC9zWWJy1/+R8Rf6b8bkd36UVVsfdKrDTM6g0FvYemucCyo8OszAwP14I0AP8jxUVy00iH3mixji8zb+tsbc1bAUuVHQegCmpMOi/tNUfirwN243vPyxTUMQkf3QF5afwYH48I3uAP5f2fTqJfOSJ+p7XcYn7Gjvmu8u9UpH3ZnYcjzKSCoNo3/jWqnFoehmpjrnWj0eFB6HcH+d/pKWLeYGoF7n8W2Rxi8Pw8wGjf3UvGJth/Fvqyq29rYGoxdXVsiwYfqmXSPIJwtuqzgxIA1GLA9h1uGCpCMEXxyY1X82qzBqQayBqcXIWuWTWwAkN+Bb3y7CV7NbwCYXkog9rwLe434WtxLaGH9ZiZi/XQGBxvwpbiW0NyxWSSz6sgcDifhW2EtsafliLmb1cA0r9Py/867CV9NYwb2JO/1kNBH3cr8NW2oJr/6ySc+1MA4HF/QRsJSbdtSTbe3IRnddYZaqPayCwuB+BrRRrpBjAx4JYmK3hGMfv5tcv+tNLWaWAaiUr+LeVCiyu+AnYSlEdSgF8TAyR3RqOcvzWAx0G0WscIVGltT6pLSr7VxUKLe5HYCtFNSgF8NFxknZrOMrvWw/67RTsK8dDQLSS/y9JPwJbKWoIQgAf+CdsZGG2hqPsvvbAePdsccn4OO99fBdbyaua3QgBfODEWyyajzH7XnIxR+ZOWFxXc5zI78n6eE2hV41W+FVspZgUMgAfoP4Rc9R+mucJTH8dVTOOCIP2Grt5xv8kh6sr1wk8ylC18zJV3dqoZoEP+K2Mql07feapnpd1xoNeW2mi/Ls/xBZ3AltJjNvi4fGEuC1HevUIsMABnArRJc4tH/F9JI+hKjVmHIcnvjs6XTcg7MXQwkdbLj1gDvUYja1PMVEsO6KU9IRVCqp3pR8R9ZtMpRZ3BltpD6cSaRHH4wnwVI4pOEEMToUoE4hHx5wfyGWoStbiaHxJkFb6aCougVQbMAIdj6bTnHQ+HD0wWST+0YEr/YCg32UptbiIVBaJhoPxGDhSh9siwOPxkG5i0EesljicCoqawJ+JtOTj2fV2ZglXOazF0Ulo7MxqVa5wjdDnGcilBfq+Bf8uaKBBKI35GvVCUApW+uNyfpuhZ3H6TLroc5PTWpwH4CPGbXF4PIU+yO1jvu6V4QgScCpA9gMsjqMqWYsjL4kWt7ozdBYABzqyqWiXDeibLK6fACig5KX3OvnLcjyL82S34YwppJtD7CMxnApH/ZHhqRgAnzScCo57vLb8iRvbx8EYDi0OzGwLP9R9HN7TZS2ubPq5mF69Bl1Bi+vwhPqqhhpJfskVtTgWzphAujnEPhLDqXioPyUsn71d0zAAPuCLqDuswBnToZ91wNGRRSf7CTMHjqoE1oOTB/1nomQ+DTlYMDEH8lUrmLuCcRHYC8xrARSBDA1cryv919td1OJYOGMC6catQjhonRO4LYwINCnAU3EESTiVIoF49LVXVre4okZbqSV0uYHF1TR/QLw043IhhVaojUtb54Jz2QKmrq7018R/qiL6u+gj5iycMbGn7LyXg9Y5gXRjiaR4KpYgDadSRBGPjpr6VF5XTtOou+1xBJ+BaEtjvbwUbSX2YzlPfQFLScr8EdWMuNH0ocv2w7TOKy7pAeQqlX5K1C/yBTcVr02AdHOEraQHxb2bVcRrME9O46mk4VQ+g3hkhMvfn9RAElxJgHRjdgyZTBfgVHykG8YrmkzDqXwG8ShaeX5wRwPB311yViKkmx3WyxU4FR/phssQSyfhVEy0Uow45/9JDcxRLGDTfaWRbnbYR3+yMVvdu1/BD5Api2A1MEbWemw44xukm5+HfcSizm0rc+IHaaCieXookA1nzEg3oWry/V0NTEcBziacMSPd3FVvpt9rgP6pfJ+dc7IGPqmB/wG4TZ1u9oGnSAAAAABJRU5ErkJggg==\n", "text/latex": [ "$$\\begin{cases} 0 & \\text{for}\\: V_{thn} > V_{D} - V_{S} \\\\\\frac{W k_{n'}}{2 L} \\left(V_{D} - V_{S}\\right) \\left(V_{D} - V_{S} - 2 V_{thn}\\right) & \\text{for}\\: V_{D} - V_{S} < V_{D} - V_{S} - V_{thn} \\\\\\frac{W k_{n'}}{2 L} \\left(V_{D} - V_{S} - V_{thn}\\right)^{2} & \\text{otherwise} \\end{cases}$$" ], "text/plain": [ "⎧ 0 for Vₜₕₙ > V_D - V_S \n", "⎪ \n", "⎪W⋅k_n'⋅(V_D - V_S)⋅(V_D - V_S - 2⋅Vₜₕₙ) \n", "⎪─────────────────────────────────────── for V_D - V_S < V_D - V_S - Vₜₕₙ\n", "⎪ 2⋅L \n", "⎨ \n", "⎪ 2 \n", "⎪ W⋅k_n'⋅(V_D - V_S - Vₜₕₙ) \n", "⎪ ────────────────────────── otherwise \n", "⎪ 2⋅L \n", "⎩ " ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "NIdSimpDiodConected=NIdSimpDiodConected.subs(VDS, VD-VS)\n", "NIdSimpDiodConected" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The following example values for a greater than $1\\mu m$ device are based on example 19.1 load NMOS from chapter 19 of reference DeMassa " ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "subsN={W:5e6,L:15e6, nTechConst:20e-6, Vnth:1.1, VnA:1/.02, VD:5}" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array(1.199999999999999e-06)" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "NIdSimpDiodConectedN=lambdify(VS, NIdSimpDiodConected.subs(subsN), dummify=False)\n", "NIdSimpDiodConectedN(3.3)" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "VSN=np.linspace(0, 5)" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Vs[V]Id[A]DIdDVs[OhmInv]DDIdDDVsDDDIdDDDVs
count50.0000005.000000e+015.000000e+0150.0000005.000000e+01
mean2.5000001.342977e-05-1.019380e-050.000005-4.900000e-07
std1.4874881.560910e-058.736476e-060.0000035.995389e-06
min0.0000000.000000e+00-2.565986e-050.000000-2.410473e-05
25%1.2500008.150771e-08-1.766667e-050.000004-4.201283e-19
50%2.5000006.542010e-06-9.333333e-060.0000070.000000e+00
75%3.7500002.341484e-05-1.000000e-060.0000073.320369e-19
max5.0000005.070000e-050.000000e+000.0000071.633333e-05
\n", "
" ], "text/plain": [ " Vs[V] Id[A] DIdDVs[OhmInv] DDIdDDVs DDDIdDDDVs\n", "count 50.000000 5.000000e+01 5.000000e+01 50.000000 5.000000e+01\n", "mean 2.500000 1.342977e-05 -1.019380e-05 0.000005 -4.900000e-07\n", "std 1.487488 1.560910e-05 8.736476e-06 0.000003 5.995389e-06\n", "min 0.000000 0.000000e+00 -2.565986e-05 0.000000 -2.410473e-05\n", "25% 1.250000 8.150771e-08 -1.766667e-05 0.000004 -4.201283e-19\n", "50% 2.500000 6.542010e-06 -9.333333e-06 0.000007 0.000000e+00\n", "75% 3.750000 2.341484e-05 -1.000000e-06 0.000007 3.320369e-19\n", "max 5.000000 5.070000e-05 0.000000e+00 0.000007 1.633333e-05" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "VSN=np.linspace(0, 5)\n", "NIdSimpDiodData=pd.DataFrame()\n", "NIdSimpDiodData['Vs[V]']=VSN\n", "NIdSimpDiodData['Id[A]']=NIdSimpDiodConectedN(VSN)\n", "NIdSimpDiodData['DIdDVs[OhmInv]']=np.gradient(NIdSimpDiodData['Id[A]'], NIdSimpDiodData['Vs[V]'])\n", "NIdSimpDiodData['DDIdDDVs']=np.gradient(NIdSimpDiodData['DIdDVs[OhmInv]'], NIdSimpDiodData['Vs[V]'])\n", "NIdSimpDiodData['DDDIdDDDVs']=np.gradient(NIdSimpDiodData['DDIdDDVs'], NIdSimpDiodData['Vs[V]'])\n", "NIdSimpDiodData.describe()" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "NMOS Simp Square Law Complince Voltage =3.878[V]\n" ] } ], "source": [ "NVCompSimpLoc=np.where(NIdSimpDiodData['DDDIdDDDVs']==NIdSimpDiodData['DDDIdDDDVs'].min())[0][0]\n", "NVCompSimp=NIdSimpDiodData['Vs[V]'][NVCompSimpLoc]\n", "print(f'NMOS Simp Square Law Complince Voltage ={NVCompSimp:.3f}[V]')\n" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, [axId, axDId, axDDId, axDDDId]=plt.subplots(ncols=1, nrows=4, sharex=True)\n", "NIdSimpDiodData.plot(ax=axId, x='Vs[V]', y='Id[A]', legend=False)\n", "axId.axvline(x=NVCompSimp, linestyle='--', color='y', \n", " label=f'VComp={NVCompSimp:.3f}[V]')\n", "\n", "axId.set_ylabel('$I_d[A]$')\n", "axId.ticklabel_format(axis='y', style='sci', scilimits=(-1,1))\n", "axId.grid()\n", "\n", "box = axId.get_position()\n", "axId.set_position([box.x0, box.y0, box.width * 0.8, box.height])\n", "axId.legend(loc='center left', bbox_to_anchor=(1, 0.5))\n", "\n", "NIdSimpDiodData.plot(ax=axDId, x='Vs[V]', y='DIdDVs[OhmInv]', legend=False)\n", "axDId.axvline(x=NVCompSimp, linestyle='--', color='y')\n", "\n", "axDId.set_ylabel(r'$g_m[\\Omega^{-1}]$')\n", "axDId.ticklabel_format(axis='y', style='sci', scilimits=(-1,1))\n", "axDId.grid()\n", "\n", "\n", "NIdSimpDiodData.plot(ax=axDDId, x='Vs[V]', y='DDIdDDVs', legend=False)\n", "axDDId.axvline(x=NVCompSimp, linestyle='--', color='y')\n", "\n", "axDDId.set_ylabel('$\\dfrac{\\partial^2 I_d}{\\partial V_{S}^2}$')\n", "axDDId.ticklabel_format(axis='y', style='sci', scilimits=(-1,1))\n", "axDDId.grid()\n", "\n", "\n", "\n", "\n", "NIdSimpDiodData.plot(ax=axDDDId, x='Vs[V]', y='DDDIdDDDVs', legend=False)\n", "axDDDId.axvline(x=NVCompSimp, linestyle='--', color='y')\n", "\n", "axDDDId.set_ylabel('$\\dfrac{\\partial^3 I_d}{\\partial V_{S}^3}$')\n", "axDDDId.ticklabel_format(axis='y', style='sci', scilimits=(-1,1))\n", "axDDDId.set_xlabel('$V_s[V]$')\n", "axDDDId.grid()\n", "\n", "fig.subplots_adjust(hspace=.5)\n", "plt.suptitle('NMOS Diode $I_d$ Simplifed ');\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In the above graph, the substitutions were made to our simple model and `lambdify` was utilized to create a numerical version of the symbolic model of a greater than $1\\mu m$ Diode connected NMOS device. As well be seen later the transconductance ($g_m$) dictates the behavior of the Diode Connected NMOS. And as the differential voltage $V_{DS}$ becomes less, remember $V_D$ is fixed the conductance of the Diode Connect NMOS drops before shutting off much like that of an ordinary rectifying diode as the voltage differential between its terminals approaches the Diodes threshold voltage. Unlike the Diode, this voltage is typically referred to as the compliance voltage. Where we by examining up to the third derivative of the $I_d$ we respect to the changing $V_s$ we can ascertain the compliance voltage exactly (within the scope of the model)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Full Analysis\n", "In this full analysis, the Channel Length Modulation effect $\\dfrac{V_{DS}}{V_A}$ is not ignored and proceed through the analysis as was done in the Simplified Analysis" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$$\\begin{cases} 0 & \\text{for}\\: V_{DS} < V_{thn} \\\\\\frac{V_{DS} W k_{n'}}{2 L V_{An}} \\left(V_{An} + V_{DS}\\right) \\left(V_{DS} - 2 V_{thn}\\right) & \\text{for}\\: V_{DS} < V_{DS} - V_{thn} \\\\\\frac{W k_{n'} \\left(V_{DS} - V_{thn}\\right)^{2}}{2 L V_{An}} \\left(V_{An} + V_{DS}\\right) & \\text{otherwise} \\end{cases}$$" ], "text/plain": [ "⎧ 0 for V_DS < Vₜₕₙ \n", "⎪ \n", "⎪V_DS⋅W⋅k_n'⋅(V_An + V_DS)⋅(V_DS - 2⋅Vₜₕₙ) \n", "⎪───────────────────────────────────────── for V_DS < V_DS - Vₜₕₙ\n", "⎪ 2⋅L⋅V_An \n", "⎨ \n", "⎪ 2 \n", "⎪ W⋅k_n'⋅(V_An + V_DS)⋅(V_DS - Vₜₕₙ) \n", "⎪ ─────────────────────────────────── otherwise \n", "⎪ 2⋅L⋅V_An \n", "⎩ " ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "NIdFullDiodConected=simplify(NMOS.IdFull(subs={VGS:VDS}))\n", "NIdFullDiodConected" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$$\\begin{cases} 0 & \\text{for}\\: V_{thn} > V_{D} - V_{S} \\\\\\frac{W k_{n'}}{2 L V_{An}} \\left(V_{D} - V_{S}\\right) \\left(V_{An} + V_{D} - V_{S}\\right) \\left(V_{D} - V_{S} - 2 V_{thn}\\right) & \\text{for}\\: V_{D} - V_{S} < V_{D} - V_{S} - V_{thn} \\\\\\frac{W k_{n'}}{2 L V_{An}} \\left(V_{An} + V_{D} - V_{S}\\right) \\left(V_{D} - V_{S} - V_{thn}\\right)^{2} & \\text{otherwise} \\end{cases}$$" ], "text/plain": [ "⎧ 0 for Vₜₕₙ > \n", "⎪ \n", "⎪W⋅k_n'⋅(V_D - V_S)⋅(V_An + V_D - V_S)⋅(V_D - V_S - 2⋅Vₜₕₙ) \n", "⎪────────────────────────────────────────────────────────── for V_D - V_S < V\n", "⎪ 2⋅L⋅V_An \n", "⎨ \n", "⎪ 2 \n", "⎪ W⋅k_n'⋅(V_An + V_D - V_S)⋅(V_D - V_S - Vₜₕₙ) \n", "⎪ ───────────────────────────────────────────── otherw\n", "⎪ 2⋅L⋅V_An \n", "⎩ \n", "\n", "V_D - V_S \n", " \n", " \n", "_D - V_S - Vₜₕₙ\n", " \n", " \n", " \n", " \n", "ise \n", " \n", " " ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "NIdFullDiodConected=NIdFullDiodConected.subs(VDS, VD-VS)\n", "NIdFullDiodConected" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array(1.2408000000000009e-06)" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "NIdFullDiodConectedN=lambdify(VS, NIdFullDiodConected.subs(subsN), dummify=False)\n", "NIdFullDiodConectedN(3.3)" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Vs[V]Id[A]DIdDVs[OhmInv]DDIdDDVsDDDIdDDDVs
count50.0000005.000000e+0150.00000050.0000005.000000e+01
mean2.5000001.452101e-05-0.0000110.000006-6.134400e-07
std1.4874881.705876e-050.0000100.0000036.635026e-06
min0.0000000.000000e+00-0.0000290.000000-2.486786e-05
25%1.2500008.359108e-08-0.0000190.000005-4.000000e-07
50%2.5000006.869597e-06-0.0000100.000007-4.000000e-07
75%3.7500002.517164e-05-0.0000010.000008-4.000000e-07
max5.0000005.577000e-050.0000000.0000082.031467e-05
\n", "
" ], "text/plain": [ " Vs[V] Id[A] DIdDVs[OhmInv] DDIdDDVs DDDIdDDDVs\n", "count 50.000000 5.000000e+01 50.000000 50.000000 5.000000e+01\n", "mean 2.500000 1.452101e-05 -0.000011 0.000006 -6.134400e-07\n", "std 1.487488 1.705876e-05 0.000010 0.000003 6.635026e-06\n", "min 0.000000 0.000000e+00 -0.000029 0.000000 -2.486786e-05\n", "25% 1.250000 8.359108e-08 -0.000019 0.000005 -4.000000e-07\n", "50% 2.500000 6.869597e-06 -0.000010 0.000007 -4.000000e-07\n", "75% 3.750000 2.517164e-05 -0.000001 0.000008 -4.000000e-07\n", "max 5.000000 5.577000e-05 0.000000 0.000008 2.031467e-05" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "VSN=np.linspace(0, 5)\n", "NIdFullDiodData=pd.DataFrame()\n", "NIdFullDiodData['Vs[V]']=VSN\n", "NIdFullDiodData['Id[A]']=NIdFullDiodConectedN(VSN)\n", "NIdFullDiodData['DIdDVs[OhmInv]']=np.gradient(NIdFullDiodData['Id[A]'], NIdFullDiodData['Vs[V]'])\n", "NIdFullDiodData['DDIdDDVs']=np.gradient(NIdFullDiodData['DIdDVs[OhmInv]'], NIdFullDiodData['Vs[V]'])\n", "NIdFullDiodData['DDDIdDDDVs']=np.gradient(NIdFullDiodData['DDIdDDVs'], NIdFullDiodData['Vs[V]'])\n", "NIdFullDiodData.describe()" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "NMOS Full Square Law Complince Voltage =3.878[V]\n" ] } ], "source": [ "NVCompFullLoc=np.where(NIdFullDiodData['DDDIdDDDVs']==NIdFullDiodData['DDDIdDDDVs'].min())[0][0]\n", "NVCompFull=NIdFullDiodData['Vs[V]'][NVCompFullLoc]\n", "print(f'NMOS Full Square Law Complince Voltage ={NVCompFull:.3f}[V]')\n" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "image/png": "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+064Imfbtm2x11xzTUFNTY3L4/Hwk5/8pOTKK6+sfuihhzJ++9vfDm5rt3Xr1oR333334zlz5jQ+/PDDGb/+9a8HA+Tm5rY+88wzu4YMGeKeNWvWmNLS0pif/exn+44cOeJ6/fXXU1988cVdbcc4ePCga/z48RMOHDiw7sorryx4++230+6///49X/ziFyvb19WZfhNAgHEisq6T7QKkhaoYE16p8THMKcpiTtGxO15XN7Sy8WA1G0tq2HCgmg0l1fxz82HarvhNjXcxfmgq44ekMW5ICuOGpDIqJ9lWcTVdNmHCc+EuwYTA5ZdffuSpp57KCAwgzz//fMY999yzf968eaf94he/2HfVVVdVA7z44osphw4dcoUrgMTHx+u77767JS0tzdvc3CwzZ84c889//rP6/PPPrw9sd+eddw5ZsGBB5R133FG2atWq+Pnz55925ZVXrv/KV75S8ZWvfKUC4MMPP0xYsGDBqDlz5jS2trby3e9+N2/jxo0bhwwZ4v7yl788/N57781pu9z48ccf33nOOec0VFRUOP7rv/5reG1trSMlJcUL8MQTT6RfeOGFVQkJCbps2bJdl112WUFP+tafAsjYLrTx9HkVpt9KSzwxlDS0uNl8qJaPD9Sw6WANHx+s4akP99LY6vtfxekQCjITGTsklXGDUxgzOJWxg1MYNijBrsAxJ4iNzTp5IzPgXXvttZU///nPhzU2NkpCQoJu2bIltrS0NGbTpk3x06ZNq2sLHwDz5s2rBd9IxHXXXZe/bt26RKfTyS9/+ct98+bNq/3v//7vzGXLlg3yer2yZcuWhK997WuHWlpaHE8//XRmbGys97XXXtuWm5vrmTVr1piJEyc2rF69Oqmurs65ZMmSXeedd16nl/aCb52StLQ0L0BLS4u43W4JNtIrItTU1DgBKisrnTk5OSfcpffxxx/P+PznP18B4PV6RVWpra115ObmUlNT4xg1atQJq41nZGR4Z86cWbd06dK0G2+8sRLgueeey/je9753wihMd/WbAKKqewLfi8jVwApVtUubTIcSY11MG5HOtBHHTt94vMruI/VsOVTL5oM1bDpUy7r9Vfxj3cGA/ZyclpPM6NwU32NwCqNzkxmcGm+ncaLYwYOPAjBkyOKw1hFtVq2aNab9Z1lZCyry879T5nbXOtauPf+09ttzc68pHz78liPNzQddGzZcWhS4bfr0D7d09n2DBw/2nH766fXPP/982jXXXFPVdpO5jRs3xk+bNi1oKLjnnntyALZu3frx6tWr4y+++OLTduzYscH/WcLatWs/bmxsdIwZM2biD3/4w5JNmzZ9fMMNN+Q9/PDDmXfeeWcpQENDg2P16tWbX3755eSbbrqpcNu2bRtffPHFlNtuu+2EFfASEhK8q1ev3gzgdruZOHHi+L1798Zdf/31pZ/85Cfr27f/xS9+ceDCCy887ZFHHslpbGx0/OMf/zjhZ+ff/va39BdeeGE7QFxcnP7mN7/ZO23atAkJCQme/Pz85o4WZFu4cGHFU089lXHjjTdW7t69O2b37t1xl1xySYc37euqfhNAgigDHhSRWKAc2Kqq3wlzTWYAcDqEouxkirKTuXjSkKOf1zW72XKohq2H69hyqJZtpbW8taWMZ/2LpwEkx7koyk5iVE4Ko3KSjz7y0hNwOR3h6I4JoUOHHgUsgESDK664ouLpp59Ov+aaa6peeOGFjEceeWT3o48+mtFR+3//+9/JN998cynA1KlTm4YOHdqyfv36eIA5c+bUpqene9PT073Jycmeyy+/vApg0qRJDevWrUtsO8ZVV11VAfCZz3ymrq6uzlFeXu6cN29e7bx58z7urFaXy8XmzZs/Li8vd372s58tWrFiRfzMmTOPG63405/+lLFo0aIjP/7xjw+/8cYbSYsXLy7cunXrRqfTdwr6zTffTEpISPC27dfc3CxLlizJ/uCDDz4eN25c8+LFi0d873vfG/LLX/7yhGXlr7jiiqpvf/vbIyoqKhyPP/54+sUXX1zpcp16fOi3AURVXxORc1X1+yKSAvwi3DWZgS05znXcwmltKupb2HKolu1ldWw/7Ht+d3sZz390LJjEOIX8zCRGZiVRlJPMyKwk35onWUmk22XCxpySzkYsXK4Ub2fb4+KGuE824hHM1VdfXfWDH/wg7913301sampynH322Q0rVqxIXL58eXKw9trJ7SViY2OPbnQ4HMTHx2vba7fbfXRItf3oqojQlRGQNllZWZ6zzz679sUXX0xrH0CefPLJrFdeeWUrwAUXXFDf3NzsOHTokGvYsGFugD//+c8ZCxYsOHqTvffffz8BYMKECc0AixYtqrj77rsHE0RycrKee+65NX/+85/Tn3/++Yxf//rX+zr8j9EN/TaA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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, [axId, axDId, axDDId, axDDDId]=plt.subplots(ncols=1, nrows=4, sharex=True)\n", "NIdFullDiodData.plot(ax=axId, x='Vs[V]', y='Id[A]', legend=False)\n", "axId.axvline(x=NVCompFull, linestyle='--', color='y', \n", " label=f'VComp={NVCompFull:.3f}[V]')\n", "\n", "axId.set_ylabel('$I_d[A]$')\n", "axId.ticklabel_format(axis='y', style='sci', scilimits=(-1,1))\n", "axId.grid()\n", "\n", "box = axId.get_position()\n", "axId.set_position([box.x0, box.y0, box.width * 0.8, box.height])\n", "axId.legend(loc='center left', bbox_to_anchor=(1, 0.5))\n", "\n", "NIdFullDiodData.plot(ax=axDId, x='Vs[V]', y='DIdDVs[OhmInv]', legend=False)\n", "axDId.axvline(x=NVCompFull, linestyle='--', color='y')\n", "\n", "axDId.set_ylabel(r'$g_m[\\Omega^{-1}]$')\n", "axDId.ticklabel_format(axis='y', style='sci', scilimits=(-1,1))\n", "axDId.grid()\n", "\n", "\n", "NIdFullDiodData.plot(ax=axDDId, x='Vs[V]', y='DDIdDDVs', legend=False)\n", "axDDId.axvline(x=NVCompFull, linestyle='--', color='y')\n", "\n", "axDDId.set_ylabel('$\\dfrac{\\partial^2 I_d}{\\partial V_{S}^2}$')\n", "axDDId.ticklabel_format(axis='y', style='sci', scilimits=(-1,1))\n", "axDDId.grid()\n", "\n", "\n", "\n", "\n", "NIdFullDiodData.plot(ax=axDDDId, x='Vs[V]', y='DDDIdDDDVs', legend=False)\n", "axDDDId.axvline(x=NVCompFull, linestyle='--', color='y')\n", "\n", "axDDDId.set_ylabel('$\\dfrac{\\partial^3 I_d}{\\partial V_{S}^3}$')\n", "axDDDId.ticklabel_format(axis='y', style='sci', scilimits=(-1,1))\n", "axDDDId.set_xlabel('$V_s[V]$')\n", "axDDDId.grid()\n", "\n", "fig.subplots_adjust(hspace=.5)\n", "plt.suptitle('NMOS Diode $I_d$ Full ');\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Difference Between Simplified and Full analysis\n", "We can compare not only the $I_d vs. V_S$ graphs for the two analysis but also the difference in the found Compliance Voltage to see if there are any difference in ignoring the Channel Length Modulation effect in a greater then $1\\mu m$ Diode connected NMOS." ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAABoAAAAOBAMAAADDIxFwAAAAMFBMVEX///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEJmJZjLNVN0i77urRHZ72Yd1AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAdUlEQVQIHWNgEDIxZQABCJ3OIDEBxAPTLAsYmBOAHAjNfYCB/SOQB6H5DzDwfgfyILS8AgPvPyAPQs83YGD9DORB6PkKUB6YRlUJ1M0ONQVIc29gYAHbAKaBtjIlAE2B0u0MUgGM3xgYQDQDg/C7owwMPRAaABkSKGrnHpT1AAAAAElFTkSuQmCC\n", "text/latex": [ "$$0.0$$" ], "text/plain": [ "0.0" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "NVCompFull-NVCompSimp" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "image/png": "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bkHmcjMbDgwHiI+PJzk5+Xg2m62UlJRTWr8gurSO4+GtjiFv/coDbaMpF+P326n2zXRc8gAH3u7FnOaPkREeFbxAA6QovsfHojaHhvxsc2491PwUERFBz5499/Xs2XNf06ZND3744Yflbrzxxh1ZyriwMO97LSwsjKioKAcQHh5Oenr6X3tfLcsFhrI+9tevX79dd955Z81XX311lf/zLpdxMtltzzlHx44d93755ZerslnlhB0z+TrncjwQbmalnXO7cyuTwzZ3m1kycA6wwO/5N4E3AVq1auU6d+58Ips9SnJyMqeyfkHVsPk++r6cxUd2AAAgAElEQVT6K28sCeeTq9tTKiYSgORkiGjyHiVHD6LTrrHebEhF/ApYRfU9zo3aHBqKWpvnzp0bFRYWRpMmTVIBZs+eHVOtWrXDx1ovJ1OnTi25ZcuW8NjY2Iyvv/669Ntvv706p7KDBw/etWnTpsgLL7xw75o1ayIzn+/YsWPKyJEjy/bq1WvfvHnzojZt2lSsadOmhzKfP//88/f98ccf0cuWLSsO0Llz5/233XZbjQULFkQ1btw4dd++fWGrVq2KbNq0aerJtOG4DhabWayZtTazy8zsGTP7xsw2AMf9C8DMKmQOzDKzGKAboFniT1BifAneGNKSVdv3c/WHM0lNS//fwgbnQdf7YcE47wpYIiIFwN69e8OHDh1aq06dOo0SExOTlixZEvPkk09uPNnttWrVKqV///61Gjdu3Oj888/fld3x3kxlypTJePTRRzdHR0cf1dW98847t6anp1tiYmJS//7967zxxhurY2Ji3O233751//794YmJiUmPPfZYpSZNmuwHqFKlStobb7yxesCAAbUTExOTWrZs2WD+/PknPYL6mD1fM1uNNzhqEV6yXAwMBJo757K9ZmUOKgMfmFk4XtIf65zTEN2T0L5ueZ7q15RbxszlrnHzeK5/8/8t7HgrbFkEPzwMFRtC/XODF6iICHDGGWccmD17dradrenTpy/NvH/gwIG/pm179tlnj0rO/svKly+fNmLEiLW51blhw4b5WZ+rX7/+4T///HMhQPHixd2nn366OmuZuLg4N3HixJVZnwfo1avXvl69ei3OrQ3H63iO+U4E/gG85ZwbC2Bmd5xg4sU5Nw9ocaIBSvYuaFGNjbsP8Z9vl1KldAytM39/mUHvl2HnCvj0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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, ax=plt.subplots(nrows=1, ncols=1)\n", "ax.plot(VSN, NIdSimpDiodConectedN(VSN), label='Simp Model')\n", "ax.plot(VSN, NIdFullDiodConectedN(VSN), label='Full Model')\n", "ax.set_xlabel('$V_S[V]$'); ax.set_ylabel('$I_d[A]$')\n", "ax.grid()\n", "ax.ticklabel_format(axis='y', style='sci', scilimits=(-1,1))\n", "\n", "box = ax.get_position()\n", "ax.set_position([box.x0, box.y0, box.width * 0.8, box.height])\n", "ax.legend(loc='center left', bbox_to_anchor=(1, 0.5))\n", "\n", "fig.subplots_adjust(hspace=.5)\n", "plt.suptitle('NMOS Diode Id Compersion between Simp and Full');" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As is shown the differences between the Simplified and the Full analysis are minute for a diode connected NMOS ( be in mind a large channel NMOS)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Diode Connected as a Topology Slice\n", "In the following, we will examine the what a Diode Connected Transistor means in terms of the global view of $I_d$. This is maybe not a new viewpoint but a less common than the declaration that a Diode Connected MOSFET is always in the saturated state (This is true-ish up to the compliance voltage). But given the ease of data collection and analyses with `PySpice` and *Python* we can do better in predicting the Diode-Connected MOSFET from the transistors $I_d$ surface that shows the MOSFETS behaver for all combinations of $V_{GS}, V_{DS}$" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [], "source": [ "NIdFullN=lambdify((VGS, VDS), NMOS.IdFull(subs=subsN), dummify=False)\n", "VGSN, VDSN=np.meshgrid(np.linspace(0, 5), np.linspace(0, 5))\n", "NIdFullNDate=NIdFullN(VGSN, VDSN)\n", "NIdFullNDateDiag=NIdFullNDate.diagonal()\n", "VdiagN=VGSN.diagonal()" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "data": { "application/javascript": [ "/* Put everything inside the global mpl namespace */\n", "window.mpl = {};\n", "\n", "\n", "mpl.get_websocket_type = function() {\n", " if (typeof(WebSocket) !== 'undefined') {\n", " return WebSocket;\n", " } else if (typeof(MozWebSocket) !== 'undefined') {\n", " return MozWebSocket;\n", " } else {\n", " alert('Your browser does not have WebSocket support.' +\n", " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n", " 'Firefox 4 and 5 are also supported but you ' +\n", " 'have to enable WebSockets in about:config.');\n", " };\n", "}\n", "\n", "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n", " this.id = figure_id;\n", "\n", " this.ws = websocket;\n", "\n", " this.supports_binary = (this.ws.binaryType != undefined);\n", "\n", " if (!this.supports_binary) {\n", " var warnings = document.getElementById(\"mpl-warnings\");\n", " if (warnings) {\n", " warnings.style.display = 'block';\n", " warnings.textContent = (\n", " \"This browser does not support binary websocket messages. \" +\n", " \"Performance may be slow.\");\n", " }\n", " }\n", "\n", " this.imageObj = new Image();\n", "\n", " this.context = undefined;\n", " this.message = undefined;\n", " this.canvas = undefined;\n", " this.rubberband_canvas = undefined;\n", " this.rubberband_context = undefined;\n", " this.format_dropdown = undefined;\n", "\n", " this.image_mode = 'full';\n", "\n", " this.root = $('
');\n", " this._root_extra_style(this.root)\n", " this.root.attr('style', 'display: inline-block');\n", "\n", " $(parent_element).append(this.root);\n", "\n", " this._init_header(this);\n", " this._init_canvas(this);\n", " this._init_toolbar(this);\n", "\n", " var fig = this;\n", "\n", " this.waiting = false;\n", "\n", " this.ws.onopen = function () {\n", " fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n", " fig.send_message(\"send_image_mode\", {});\n", " if (mpl.ratio != 1) {\n", " fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n", " }\n", " fig.send_message(\"refresh\", {});\n", " }\n", "\n", " this.imageObj.onload = function() {\n", " if (fig.image_mode == 'full') {\n", " // Full images could contain transparency (where diff images\n", " // almost always do), so we need to clear the canvas so that\n", " // there is no ghosting.\n", " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", " }\n", " fig.context.drawImage(fig.imageObj, 0, 0);\n", " };\n", "\n", " this.imageObj.onunload = function() {\n", " fig.ws.close();\n", " }\n", "\n", " this.ws.onmessage = this._make_on_message_function(this);\n", "\n", " this.ondownload = ondownload;\n", "}\n", "\n", "mpl.figure.prototype._init_header = function() {\n", " var titlebar = $(\n", " '
');\n", " var titletext = $(\n", " '
');\n", " titlebar.append(titletext)\n", " this.root.append(titlebar);\n", " this.header = titletext[0];\n", "}\n", "\n", "\n", "\n", "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n", "\n", "}\n", "\n", "\n", "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n", "\n", "}\n", "\n", "mpl.figure.prototype._init_canvas = function() {\n", " var fig = this;\n", "\n", " var canvas_div = $('
');\n", "\n", " canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n", "\n", " function canvas_keyboard_event(event) {\n", " return fig.key_event(event, event['data']);\n", " }\n", "\n", " canvas_div.keydown('key_press', canvas_keyboard_event);\n", " canvas_div.keyup('key_release', canvas_keyboard_event);\n", " this.canvas_div = canvas_div\n", " this._canvas_extra_style(canvas_div)\n", " this.root.append(canvas_div);\n", "\n", " var canvas = $('');\n", " canvas.addClass('mpl-canvas');\n", " canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n", "\n", " this.canvas = canvas[0];\n", " this.context = canvas[0].getContext(\"2d\");\n", "\n", " var backingStore = this.context.backingStorePixelRatio ||\n", "\tthis.context.webkitBackingStorePixelRatio ||\n", "\tthis.context.mozBackingStorePixelRatio ||\n", "\tthis.context.msBackingStorePixelRatio ||\n", "\tthis.context.oBackingStorePixelRatio ||\n", "\tthis.context.backingStorePixelRatio || 1;\n", "\n", " mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n", "\n", " var rubberband = $('');\n", " rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n", "\n", " var pass_mouse_events = true;\n", "\n", " canvas_div.resizable({\n", " start: function(event, ui) {\n", " pass_mouse_events = false;\n", " },\n", " resize: function(event, ui) {\n", " fig.request_resize(ui.size.width, ui.size.height);\n", " },\n", " stop: function(event, ui) {\n", " pass_mouse_events = true;\n", " fig.request_resize(ui.size.width, ui.size.height);\n", " },\n", " });\n", "\n", " function mouse_event_fn(event) {\n", " if (pass_mouse_events)\n", " return fig.mouse_event(event, event['data']);\n", " }\n", "\n", " rubberband.mousedown('button_press', mouse_event_fn);\n", " rubberband.mouseup('button_release', mouse_event_fn);\n", " // Throttle sequential mouse events to 1 every 20ms.\n", " rubberband.mousemove('motion_notify', mouse_event_fn);\n", "\n", " rubberband.mouseenter('figure_enter', mouse_event_fn);\n", " rubberband.mouseleave('figure_leave', mouse_event_fn);\n", "\n", " canvas_div.on(\"wheel\", function (event) {\n", " event = event.originalEvent;\n", " event['data'] = 'scroll'\n", " if (event.deltaY < 0) {\n", " event.step = 1;\n", " } else {\n", " event.step = -1;\n", " }\n", " mouse_event_fn(event);\n", " });\n", "\n", " canvas_div.append(canvas);\n", " canvas_div.append(rubberband);\n", "\n", " this.rubberband = rubberband;\n", " this.rubberband_canvas = rubberband[0];\n", " this.rubberband_context = rubberband[0].getContext(\"2d\");\n", " this.rubberband_context.strokeStyle = \"#000000\";\n", "\n", " this._resize_canvas = function(width, height) {\n", " // Keep the size of the canvas, canvas container, and rubber band\n", " // canvas in synch.\n", " canvas_div.css('width', width)\n", " canvas_div.css('height', height)\n", "\n", " canvas.attr('width', width * mpl.ratio);\n", " canvas.attr('height', height * mpl.ratio);\n", " canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n", "\n", " rubberband.attr('width', width);\n", " rubberband.attr('height', height);\n", " }\n", "\n", " // Set the figure to an initial 600x600px, this will subsequently be updated\n", " // upon first draw.\n", " this._resize_canvas(600, 600);\n", "\n", " // Disable right mouse context menu.\n", " $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n", " return false;\n", " });\n", "\n", " function set_focus () {\n", " canvas.focus();\n", " canvas_div.focus();\n", " }\n", "\n", " window.setTimeout(set_focus, 100);\n", "}\n", "\n", "mpl.figure.prototype._init_toolbar = function() {\n", " var fig = this;\n", "\n", " var nav_element = $('
')\n", " nav_element.attr('style', 'width: 100%');\n", " this.root.append(nav_element);\n", "\n", " // Define a callback function for later on.\n", " function toolbar_event(event) {\n", " return fig.toolbar_button_onclick(event['data']);\n", " }\n", " function toolbar_mouse_event(event) {\n", " return fig.toolbar_button_onmouseover(event['data']);\n", " }\n", "\n", " for(var toolbar_ind in mpl.toolbar_items) {\n", " var name = mpl.toolbar_items[toolbar_ind][0];\n", " var tooltip = mpl.toolbar_items[toolbar_ind][1];\n", " var image = mpl.toolbar_items[toolbar_ind][2];\n", " var method_name = mpl.toolbar_items[toolbar_ind][3];\n", "\n", " if (!name) {\n", " // put a spacer in here.\n", " continue;\n", " }\n", " var button = $('');\n", " button.click(method_name, toolbar_event);\n", " button.mouseover(tooltip, toolbar_mouse_event);\n", " nav_element.append(button);\n", " }\n", "\n", " // Add the status bar.\n", " var status_bar = $('');\n", " nav_element.append(status_bar);\n", " this.message = status_bar[0];\n", "\n", " // Add the close button to the window.\n", " var buttongrp = $('
');\n", " var button = $('');\n", " button.click(function (evt) { fig.handle_close(fig, {}); } );\n", " button.mouseover('Stop Interaction', toolbar_mouse_event);\n", " buttongrp.append(button);\n", " var titlebar = this.root.find($('.ui-dialog-titlebar'));\n", " titlebar.prepend(buttongrp);\n", "}\n", "\n", "mpl.figure.prototype._root_extra_style = function(el){\n", " var fig = this\n", " el.on(\"remove\", function(){\n", "\tfig.close_ws(fig, {});\n", " });\n", "}\n", "\n", "mpl.figure.prototype._canvas_extra_style = function(el){\n", " // this is important to make the div 'focusable\n", " el.attr('tabindex', 0)\n", " // reach out to IPython and tell the keyboard manager to turn it's self\n", " // off when our div gets focus\n", "\n", " // location in version 3\n", " if (IPython.notebook.keyboard_manager) {\n", " IPython.notebook.keyboard_manager.register_events(el);\n", " }\n", " else {\n", " // location in version 2\n", " IPython.keyboard_manager.register_events(el);\n", " }\n", "\n", "}\n", "\n", "mpl.figure.prototype._key_event_extra = function(event, name) {\n", " var manager = IPython.notebook.keyboard_manager;\n", " if (!manager)\n", " manager = IPython.keyboard_manager;\n", "\n", " // Check for shift+enter\n", " if (event.shiftKey && event.which == 13) {\n", " this.canvas_div.blur();\n", " event.shiftKey = false;\n", " // Send a \"J\" for go to next cell\n", " event.which = 74;\n", " event.keyCode = 74;\n", " manager.command_mode();\n", " manager.handle_keydown(event);\n", " }\n", "}\n", "\n", "mpl.figure.prototype.handle_save = function(fig, msg) {\n", " fig.ondownload(fig, null);\n", "}\n", "\n", "\n", "mpl.find_output_cell = function(html_output) {\n", " // Return the cell and output element which can be found *uniquely* in the notebook.\n", " // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n", " // IPython event is triggered only after the cells have been serialised, which for\n", " // our purposes (turning an active figure into a static one), is too late.\n", " var cells = IPython.notebook.get_cells();\n", " var ncells = cells.length;\n", " for (var i=0; i= 3 moved mimebundle to data attribute of output\n", " data = data.data;\n", " }\n", " if (data['text/html'] == html_output) {\n", " return [cell, data, j];\n", " }\n", " }\n", " }\n", " }\n", "}\n", "\n", "// Register the function which deals with the matplotlib target/channel.\n", "// The kernel may be null if the page has been refreshed.\n", "if (IPython.notebook.kernel != null) {\n", " IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n", "}\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%matplotlib notebook\n", "%matplotlib notebook\n", "from mpl_toolkits.mplot3d import axes3d\n", "\n", "fig = plt.figure()\n", "###############\n", "axId = fig.add_subplot(3, 1, 1, projection='3d')\n", "axId.set_xlabel('$V_{gs}[V]$'); ax.set_ylabel('$V_{ds}[V]$'); \n", "axId.set_zlabel('$I_d[mA]$')\n", "\n", "\n", "axId.plot_surface(X, Y, Z*1000, cmap=cm.coolwarm,\n", " linewidth=0, antialiased=True)\n", "axId.ticklabel_format(axis='z', style='sci', scilimits=(-1,1))\n", "\n", "axId.plot(Xdiag, Xdiag, ZDiag, label='Diode Line')\n", "axId.legend()\n", "\n", "##################\n", "\n", "axDIdDVgs = fig.add_subplot(3, 2, 3, projection='3d')\n", "\n", "axDIdDVgs.set_xlabel('$V_{gs}[V]$'); axDIdDVgs.set_ylabel('$V_{ds}[V]$'); \n", "axDIdDVgs.set_zlabel('$\\dfrac{\\partial I_d}{\\partial V_{gs}}$')\n", "\n", "\n", "axDIdDVgs.plot_surface(X, Y, DIdDVgs, cmap=cm.coolwarm,\n", " linewidth=0, antialiased=True)\n", "axDIdDVgs.ticklabel_format(axis='z', style='sci', scilimits=(-1,1))\n", "\n", "axDIdDVgs.plot(Xdiag, Xdiag, DIdDVgsDiag)\n", "\n", "##############################\n", "\n", "axDIdDVds = fig.add_subplot(3, 2, 4, projection='3d')\n", "axDIdDVds.set_xlabel('$V_{gs}[V]$'); axDIdDVds.set_ylabel('$V_{ds}[V]$'); \n", "axDIdDVds.set_zlabel('$\\dfrac{\\partial I_d}{\\partial V_{ds}}$')\n", "\n", "\n", "axDIdDVds.plot_surface(X, Y, DIdDVds, cmap=cm.coolwarm,\n", " linewidth=0, antialiased=True)\n", "axDIdDVds.plot(Xdiag, Xdiag, DIdDVdsDiag)\n", "axDIdDVds.ticklabel_format(axis='z', style='sci', scilimits=(-1,1))\n", "\n", "############################\n", "\n", "axAv0 = fig.add_subplot(3, 2, 5, projection='3d')\n", "axAv0.set_xlabel('$V_{gs}[V]$'); axAv0.set_ylabel('$V_{ds}[V]$'); \n", "axAv0.set_zlabel('$A_{V0}$')\n", "\n", "\n", "axAv0.plot_surface(X, Y, Av0, cmap=cm.coolwarm,\n", " linewidth=0, antialiased=True)\n", "axAv0.plot(Xdiag, Xdiag, Av0Diag)\n", "axAv0.ticklabel_format(axis='z', style='sci', scilimits=(-1,1))\n", "\n", "\n", "plt.suptitle(f'TSMC180nm NMOS $I_d$ Surface W={NMOSR_W}[nm], L={NMOSR_L}[nm]')\n", "fig.subplots_adjust(hspace=.5, wspace=0.5);\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "(Need to Get a hold of the subplot numbering arghh)" ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%matplotlib inline\n", "fig, [axId, axDIdDVgs, axDIdDVds, axAv0]=plt.subplots(nrows=4, ncols=1, sharex=True)\n", "\n", "axId.plot(Xdiag, ZDiag)\n", "axId.set_ylabel('$I_d[mA]$')\n", "axId.ticklabel_format(axis='y', style='sci', scilimits=(-1,1))\n", "\n", "\n", "#########################\n", "\n", "axDIdDVgs.plot(Xdiag, DIdDVgsDiag)\n", "axDIdDVgs.set_ylabel('$\\dfrac{\\partial I_d}{\\partial V_{gs}}$')\n", "axDIdDVgs.ticklabel_format(axis='y', style='sci', scilimits=(-1,1))\n", "\n", "\n", "\n", "########################\n", "\n", "axDIdDVds.plot(Xdiag, DIdDVdsDiag)\n", "axDIdDVds.set_ylabel('$\\dfrac{\\partial I_d}{\\partial V_{ds}}$')\n", "axDIdDVds.ticklabel_format(axis='y', style='sci', scilimits=(-1,1))\n", "\n", "\n", "#######################\n", "\n", "axAv0.plot(Xdiag, Av0Diag)\n", "axAv0.set_ylabel('$A_{V0}$')\n", "axAv0.set_xlabel('$V_{ds}[V]$')\n", "\n", "fig.subplots_adjust(hspace=.5)\n", "plt.suptitle(f'TSMC180nm NMOS $I_d$ Diode Connnected Counters W={NMOSR_W}[nm], L={NMOSR_L}[nm]');\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In the above graph there is a $A_{vo}$ where\n", "$$A_{vo}=g_m r_{DS}=\\dfrac{\\partial I_d}{\\partial V_{gs}}/\\dfrac{\\partial I_d}{\\partial V_{ds}}$$\n", "this is not a true intrensit gain. It is however a meassure of the influsince between $\\dfrac{\\partial I_d}{\\partial V_{gs}}$ and $\\dfrac{\\partial I_d}{\\partial V_{ds}}$ that shows that the transcondutance domonated the output resistince for a Diode connected NMOS " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Testing the frequency dependence of the Bias point" ] }, { "cell_type": "code", "execution_count": 43, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ ".title DCBench\n", ".include /home/iridium/Documents/ClonedGitReps/PySpiceExsamples/SpiceLib/TSMC180N.lib\n", "Vbs base 0 0V\n", "Vds drain 0 1.8V\n", "Vsgnd source 0 DC 0.46V AC SIN(0V 0.1V 1kHz 0s 0Hz)\n", "M0 drain drain source base TSMC180nmN l=200nm w=200nm\n", "\n" ] } ], "source": [ "TestCirSinN=Circuit('DCBench')\n", "Vbs=TestCirSinN.V('bs', 'base', TestCirSinN.gnd, 0@u_V)\n", "#VDD\n", "Vds=TestCirSinN.V('ds', 'drain', TestCirSinN.gnd, 1.8@u_V)\n", "#Vload\n", "Vsgnd=TestCirSinN.SinusoidalVoltageSource('sgnd', 'source', TestCirSinN.gnd, \n", " dc_offset=NVbiasTarget@u_V, \n", " amplitude=.1@u_V, frequency=1@u_kHz)\n", "\n", "TestCirSinN.include(spice_library['TSMC180nmN'])\n", "M0=TestCirSinN.MOSFET('0', 'drain', 'drain', 'source', 'base',\n", " model='TSMC180nmN', length=200@u_nm, width=200@u_nm)\n", "print(TestCirSinN)" ] }, { "cell_type": "code", "execution_count": 44, "metadata": {}, "outputs": [], "source": [ "TempC=27\n", "TestCirSinNSim=TestCirSinN.simulator(temperature=TempC, nominal_temperature=TempC)\n", "TestCirSinNData=TestCirSinNSim.ac(start_frequency=1@u_Hz, stop_frequency=100@u_MHz, number_of_points=100, variation='dec')" ] }, { "cell_type": "code", "execution_count": 45, "metadata": {}, "outputs": [], "source": [ "from PySpice.Plot.BodeDiagram import bode_diagram" ] }, { "cell_type": "code", "execution_count": 46, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "Id_Freq=pd.Series(-TestCirSinNData.Vds)\n", "figure = plt.figure(1, (20, 10))\n", "axes = (plt.subplot(211), plt.subplot(212))\n", "bode_diagram(axes=axes,\n", " frequency=TestCirSinNData.frequency,\n", " gain=20*np.log10(np.absolute(Id_Freq)),\n", " phase=np.angle(Id_Freq, deg=True),\n", " marker='.',\n", " linestyle='-',\n", " )\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Diode Connected PMOS" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Square Law Theory" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Simplifed" ] }, { "cell_type": "code", "execution_count": 47, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAdIAAABYCAMAAAB24oYOAAAAOVBMVEX///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACXHtMAAAAEnRSTlMAmc0y3e8iEESru4l2VKWLZqcd/eNEAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAOr0lEQVR4Ae1d14KDuA41ve9y/f8fe1UsNwyYGTKTnZCH0IRs+eAm64BS9leUdvfZ+QslUNVN9RfseGyQEqh008r+s727BKouX+MV2SOtXa37o+vPtW+VwHShcK/IHmVq0KNc7oppnT6uDe6H2ZaAlIRs51rrcsGjqtZNIacvbAmmTDU3QdppbUHEzHf1h7XCVdP1++1Up2XkuAwXgHSiDFOempsgnXQj6a+0N4kNcvqPb4vdKkqGN1I8VxBdSltNDExZam6CtNQ2ryPtLfpCh/4H4B6s/UljSs2nZwtSUsw/udaFa+kMTFlqboK00ZNkh8HtNfUdcvLPb08gHTTB09pSOiuQuZ78OmFgylJzE6RazyaTnabuv7cnzjL/F65XQ9MgqN00z1iifdnMy1R6tYz72eOqbEuim2opTnPOwDTlqLkd0pbra+Wqrc3pX94ZsC+taFA4IhxNsXR6tRav9ISbZreapmlZsQnuRz0UxTA67OFkW9TuRqPBwBSowUtzs633L4CUaulHQlpT+VY4+C9rAwZvemy7TLPbYwEt3LnyWLLyvTQDT3eC25WByVfDY6d6O2G9HdKPbHiVwlpamfEDNlBl2MZ2OG03p2rqJHmEbLpgryfujiD11HQ0/uT/JPzhyetHri9VPDxaPm14BBAtZmKK8JXUVrmC1LVaTYXikRKPHk2fOft1+qDhVU7NQrf0/o0mtdtrqRrp+Vs/bRIDVttaCnDGkNa6FZDLxhZ6Zxw0k0xbGZXd4ZESNQB7WUD7Pg3rOmCvvBbrOtOeNNLucfranldLuXv4tIU2Gh6xr4+8SDGkox5lUtIVjTb1uTfT1WHjmElPYpRTwz1uCa34jA36iqlWVGftA/M1KOUuD1JVo0Pw0xbaqG2qyOoSB0m11ElTQoUBkQ/bgRtM8bElxq0q5WpQTg0336i1gPTaDoFt6Ql5AaQ4OeMmQAD/89tq0BrnLm0xTQPOS0c4DnwtqwyXOmwmVcfVc6QhslrCdleKa+sQVFZNT7dU+I9VCMZekDzruQ3SfyQjz/awBBYCoKIBh+IxZNdsZyKRjg1MUCm7VuHiD1RNfEqwgRioadjIRroyD/2GN/OWDxUj/37HzoWKxpBtaiIalc4GpmJWUMOxZVhH3GuhIa54erSRjXRlHj6QZhaUKrBxLmioNNW6AN8RHxzfv4EJlmehWqLLsR3QG7yU82wUbWSPVe9dfSDdK5l7zp/ChGMk8zuVFcHj7QPpcfl89+rpohyPkSiZU9m8zDyQ5pXTq6QKPci0964ktP73LlWPnvcogaeWvgcON+YihHRuxHdf08Q6TmimMLm1wRWnrqQ189TCX3zbc/yTJRBCqowbuhOXSZwVdu2zH3jheXZi4S++6zn+yRKIIDULvEH4jJ8dBrMmRyfGAKCH7O7u3U/v2b9eAhGktLCv+sDL6Sud0Te5zujoXDlII7Xw59/x7P90CUSQKgq7cbPfODsrgNmtFBjKlVRNhapolSgWfY5/qQRiSDEKZ6b6V0HM3IzVddIQRYXLFPDroZmdYckYHM90DK6tdemfxtcUxltsYkhh/NNSmBuFUA0IbkXLvBwI2eqqWqD/7FkIrup4Oa7fr+NvYfGfz4T2AhzRWBjyMiQLVkOqmjOv/NBpABO3ehXcqmYO1xfVGK0ho9Zbf1c4e1dkb83kXcouGGBEW4m8kCwsmuJU4XAsuQFWAw2WoM/Enx5pjW+UhUJY+IPlXG8SGzfCtjrT7Xf8XfFuo6wZx92R9M/ruGCsEe01x03YvHphvO3KEaccq2rqYkMz1poXguEuWPiDwBmps3DC1l9W2aJkJhmP70j8t0Ux0qNE1yjrmSpJlrqPhFo+9VIyYmY2dzPHIWZ5WgykkyXbiVYTH9VSL4pQdRxZYYIUuXhcIWEXSyuAazGvE9RnG3zFCrkLziPjSRbiLTk+DAUBrnHW81SSbLeJ+fJSeDEZMS+bXn6i3QvGGkjrPQbMimMkWu1ZsJ61IVUgShcPl3kCcipsg2ur6VizyHjBnd4Br1VYFSbr9njP04UaWHaS4bmnVHZfTEZUWdmUzGy3F4xl0QUihtM/4INPJLOUJeztupPc3dAy8tjYnYKIKZoPwVSHo7D4IfEFcvYbyuQg3GZjZZZKluWGJp2UFy+fEshKJbwxiBD8nuXyTGZpYVtrKaYwU186gvZ5ilk+rTwxWWS8vWRL8jnGkGapFPhlNLdN4gTSrFR8rVEcr7qswFdmIc3RQrYWe81uqDbrqK3nOUZU8fwH7s8i4x2nU4sz2cCUpVJk9yZWLycjftdyMYCjiY/6GOpkpmhOelykJ1ejkS5LjwJyQMY74fSlE+otSdJYGajEe1LLfCK7P0B6MRlRBdl0lqfpjFvTxQCfE7ljLIguN7a6qnXzGi9fNrDGJ+OdcPq82/3d2j6hxkpf5Rm/j6lFvjq7T5C+jowILlRoIRJsRpWgM9pMuZ0LxoJoV5fRupi+7WfyZEOXPTKeOuT0dWVtf+4lFkA2cE2nsdJTye6N2MmBeTCylRmduaKyey8mI4LzFGYM5nH0LVcxnTFt+QVjUbSrfcarNfLGHQupR8ZT7NzgyU6K05dK33bKcNFY6ak85fedQPpCMiL429JsRpVn+gVjSbTdncNsi3UqRo4gXkptGCFbofiMbXgtGQ8kzjl9sRq1YB0l7wdsxcoL/L6DRd2glkIyMXNNUsnK+JaMCPO4JJsRai97USM6Y2z6BWNZdKbwoVhN6nhCLxEPMnDNNPNnh0ceGU9lcfqCBCpqdY3L2UJ6gd+3ngyPXkdGBHdaks0IfSybuKUzBqYLpE7LLpmRReHdZPsztkA1+gxwmRR+NKAILu4eGF8/XHdkPBTO4fQ5pW0Nvo7C0ABdLXUqOV8H/D4vpN2p5b0XkxH3LFdHdEYvjwJphrFGFF4M4t1/sItBYy3j3xy41yINrsGzZLwLnD5RVvKoTdwWYqVVec7v8wdaopW2LycjwjqGlHBguTqmM9pMXjDWiK46vxWFWQ+OkGHJ1CZ4uiMOQSf4NU6fu9/VUnvulN9nnVj2li/sfDvjgYJcOqNAajO8b6wRrbJbXtDJYzQTRGjTONwRt70T+hqnz92fgPSU33fktvc1H+5/O+O+AujEsHqc0xk3kO4ba0ShMw2XTg6sMh2jdAIHkt6lzQrO1zh9nkY7PLLnzvh9h4trVsvZzrcz7ilQ2XTGDaT7xopoHHu0b5hUOB7lV5mtLy2B7yv9yhXJ+u693mCIZDeP1e6d73fhgrEimg0pxhz1OJXiai19/mkh3B+ocsrZc7NhWsz7TweqXDBWRHMhrcplWTBigWcy7xy5+wJ+3+mD+2sCCWNzIYU3/sAPxibIaR+e9+H/GobnCedCeq7pkXiTEggh3ZINU4uQb5L1JxvpEgghNe8R9MmGD9cwXXDvezaCdEM2TC1Cvo81dnnofbL0+zmJIN2QDZ2X9vfzusmBtzy0ufa5J4r/eeQH8DHDoDYgG74119BbHvpcBDeWR7V0QzZ8a66htzy0MexzT0SQbsiGb881/LTv2pw/qhGkMdnwZ7iGFxh3KpY1ITznln6MRARpTDY85RoagvH3yksczjlaUNbz2rq4iZybP0ImhjQiG55xDYH/BMWUR5bbL0+CNFMJyVrmnCwP7eu+eqUa6eXZebdBI5Yn+JNSMaQR2fCMa0hvIcVIB4nX+tIHBLmW5ikhWVkBtctDtxQZrxd2/FRnafTYuFnyPyKU+w7BNNcQvp/Aufwe5Y4hzePtsSzHKdjloVuKqjO28OcEb1H5K0riWrqbiSTX8B6yocQpZBH/TI0mHrMsD+1m+tIFeTw/BtIU1xCYMKbQcshy++VrammWEiNbZkZV7CcaX1kkpvkCpG0VOGpilb9znFtLk1zDu8iGBqZb6IVXi1G+ibgOuh7oTSPj0MKXOHjc0xbrBMML+WDiWut6gT94oAbdrC3HzFbzss44mDDSV7Nws3wupEmuobLR9AHl7nIWDaRZSkRWxmOXEwtv8L6JKF+IGdEq/IoAROYgMalv4M98MLFDUiCHvVJEE36hrcNBv4L2ykmHafzwUSakaa6h+dIJZNmn3CnHokx+E3JroYEpUIJSqcVaI3tAL9zqPzjj0RAtpNRPE/eWv+yDMxX5YCLxHSiend4ig400QY5va3PSBwm+/lImpDsZscw0n3J3xB/NZdypM8boARdtJ6/J0/ZrawCQhZQaAKyOlYYPosG30aDWygcTF6i9C74Ws6fOnPrdGr4eRPwSK51M66dOBpAyUSHjX3JnIfUpdz6LMiZRyo3h1tQ8T8l3GKOh7uMjn4ZoIaWGFCFdXZCzJbRBVZxUs5hXPRGk3QQUj8KXPk70xVcDSC+n5cIrPcodk46u8EcFUqfklDF60zquraUwJ0VIAUcT2cG1FI/pZyEt6g4+3jN21O4qhLTFuPlV9xXe8ga/XUhtwMARn9QOj3zK3XX+qEAqjLuML0Ie0AsvlapPQwR40NvAbwYnfGpqgwFDRzutNIyAAT0i8RGk9LZFBa2zk76UhbuF6TX1CaVewMABn9Q5zR1Z7gv8UYHUKdklUYpbwouoT+Q+/5T3TcQCBq0RpBUNkpAqLa0y7CHMjB7Dv+CIWMEA2Ennp/8CSagYSa1ewMABn9Q1f5ZyR9qu8UcFJsfbM+T/A8boLr0wac3BSfkmIogMAzzISE8cqmXU5OrthmKG13j5H0ykVwHx+4BItuunFd61h6MlI32Q2k9c2mMjegEDR6sNW7JhwKK8SKK0Bp8yRq3byt7y7NgSiF/Iay/A6wDP+aTiF3V3BSzKzG9CSsNrteyTKE2NvoVeaJP7Yzvz/is4cvikG1aYz6J8AYmSIZXFtT+GxV3mDHtj7yw+6YZs6LEoX0GiZEg3D9JdhfFH9JTp985Jm3rCJ72DbCg0ut0C9ca3KOsFquze8tkX4BMT2wKwAQMX+aRbTTeccS6NG5R9hAr6BEFoqQ0YeAc+aYJEGeb2OcooAQkYePikGYX1LiL/BwVJlQdZUP+6AAAAAElFTkSuQmCC\n", "text/latex": [ "$$\\begin{cases} 0 & \\text{for}\\: V_{SD} < \\left|{V_{thp}}\\right| \\\\\\frac{V_{SD} W k_{p'}}{2 L} \\left(V_{SD} - 2 \\left|{V_{thp}}\\right|\\right) & \\text{for}\\: V_{SD} < V_{SD} - \\left|{V_{thp}}\\right| \\\\\\frac{W k_{p'}}{2 L} \\left(V_{SD} - \\left|{V_{thp}}\\right|\\right)^{2} & \\text{otherwise} \\end{cases}$$" ], "text/plain": [ "⎧ 0 for V_SD < │Vₜₕₚ│ \n", "⎪ \n", "⎪V_SD⋅W⋅k_p'⋅(V_SD - 2⋅│Vₜₕₚ│) \n", "⎪───────────────────────────── for V_SD < V_SD - │Vₜₕₚ│\n", "⎪ 2⋅L \n", "⎨ \n", "⎪ 2 \n", "⎪ W⋅k_p'⋅(V_SD - │Vₜₕₚ│) \n", "⎪ ─────────────────────── otherwise \n", "⎪ 2⋅L \n", "⎩ " ] }, "execution_count": 47, "metadata": {}, "output_type": "execute_result" } ], "source": [ "PIdSimpDiodConected=simplify(PMOS.IdSimp(subs={VSG:VSD}))\n", "PIdSimpDiodConected" ] }, { "cell_type": "code", "execution_count": 48, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$$\\begin{cases} 0 & \\text{for}\\: \\left|{V_{thp}}\\right| > - V_{D} + V_{S} \\\\\\frac{W k_{p'}}{2 L} \\left(- V_{D} + V_{S}\\right) \\left(- V_{D} + V_{S} - 2 \\left|{V_{thp}}\\right|\\right) & \\text{for}\\: - V_{D} + V_{S} < - V_{D} + V_{S} - \\left|{V_{thp}}\\right| \\\\\\frac{W k_{p'}}{2 L} \\left(- V_{D} + V_{S} - \\left|{V_{thp}}\\right|\\right)^{2} & \\text{otherwise} \\end{cases}$$" ], "text/plain": [ "⎧ 0 for │Vₜₕₚ│ > -V_D + V_S \n", "⎪ \n", "⎪W⋅k_p'⋅(-V_D + V_S)⋅(-V_D + V_S - 2⋅│Vₜₕₚ│) \n", "⎪─────────────────────────────────────────── for -V_D + V_S < -V_D + V_S - │V\n", "⎪ 2⋅L \n", "⎨ \n", "⎪ 2 \n", "⎪ W⋅k_p'⋅(-V_D + V_S - │Vₜₕₚ│) \n", "⎪ ───────────────────────────── otherwise \n", "⎪ 2⋅L \n", "⎩ \n", "\n", " \n", " \n", " \n", "ₜₕₚ│\n", " \n", " \n", " \n", " \n", " \n", " \n", " " ] }, "execution_count": 48, "metadata": {}, "output_type": "execute_result" } ], "source": [ "PIdSimpDiodConected=PIdSimpDiodConected.subs(VSD, VS-VD)\n", "PIdSimpDiodConected" ] }, { "cell_type": "code", "execution_count": 49, "metadata": {}, "outputs": [], "source": [ "subsP={W:8e6,L:2e6, nTechConst:2e-6, Vnth:1.1, VnA:1/.02, VD:5}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# I will finish this later" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "author": "Diode Connected MOSFET Tobology", "hide_input": false, "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.3" }, "latex_envs": { "LaTeX_envs_menu_present": true, "autocomplete": true, "bibliofile": "biblio.bib", "cite_by": "apalike", "current_citInitial": 1, "eqLabelWithNumbers": true, "eqNumInitial": 1, "hotkeys": { "equation": "Ctrl-E", "itemize": "Ctrl-I" }, "labels_anchors": false, "latex_user_defs": false, "report_style_numbering": false, "user_envs_cfg": false }, "toc": { "nav_menu": {}, "number_sections": true, "sideBar": true, "skip_h1_title": false, "toc_cell": true, "toc_position": { "height": "calc(100% - 180px)", "left": "10px", "top": "150px", "width": "190px" }, "toc_section_display": true, "toc_window_display": false } }, "nbformat": 4, "nbformat_minor": 2 }