Skip to content

Commit

Permalink
Built site for gh-pages
Browse files Browse the repository at this point in the history
  • Loading branch information
Quarto GHA Workflow Runner committed Nov 26, 2024
1 parent de40137 commit 8834a70
Show file tree
Hide file tree
Showing 61 changed files with 124 additions and 122 deletions.
2 changes: 1 addition & 1 deletion .nojekyll
Original file line number Diff line number Diff line change
@@ -1 +1 @@
00779d04
30eeab7e
192 changes: 97 additions & 95 deletions _tex/index.tex

Large diffs are not rendered by default.

28 changes: 14 additions & 14 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -249,7 +249,7 @@ <h2 id="toc-title">Table of contents</h2>
</ul></li>
<li><a href="#sec-cs-amplifier" id="toc-sec-cs-amplifier" class="nav-link" data-scroll-target="#sec-cs-amplifier"><span class="header-section-number">5</span> Common-Source Amplifier</a>
<ul class="collapse">
<li><a href="#sense-amplifier-for-50-ohm-load" id="toc-sense-amplifier-for-50-ohm-load" class="nav-link" data-scroll-target="#sense-amplifier-for-50-ohm-load"><span class="header-section-number">5.1</span> Sense Amplifier for 50 Ohm Load</a></li>
<li><a href="#sense-amplifier-driving-50-ohm-matched-load" id="toc-sense-amplifier-driving-50-ohm-matched-load" class="nav-link" data-scroll-target="#sense-amplifier-driving-50-ohm-matched-load"><span class="header-section-number">5.1</span> Sense Amplifier Driving 50 Ohm Matched Load</a></li>
</ul></li>
<li><a href="#sec-current-mirror" id="toc-sec-current-mirror" class="nav-link" data-scroll-target="#sec-current-mirror"><span class="header-section-number">6</span> Current Mirror</a></li>
<li><a href="#sec-diff-pair" id="toc-sec-diff-pair" class="nav-link" data-scroll-target="#sec-diff-pair"><span class="header-section-number">7</span> Differential Pair</a>
Expand Down Expand Up @@ -1592,7 +1592,7 @@ <h2 data-number="4.6" class="anchored" data-anchor-id="conclusion-1"><span class
</section>
<section id="sec-cs-amplifier" class="level1" data-number="5">
<h1 data-number="5"><span class="header-section-number">5</span> Common-Source Amplifier</h1>
<p>We now want to design something more useful, and we will use a basic circuit structure, namely a single-ended common-source amplifier. The structure of this circuit, using a resistor as a load, is shown in <a href="#fig-cs-amplifier" class="quarto-xref">Figure&nbsp;18</a>.</p>
<p>We now want to step up our game, and use more components to design something useful. We will use a basic circuit structure, namely a single-ended common-source amplifier. The structure of this circuit, using a resistor as a load, is shown in <a href="#fig-cs-amplifier" class="quarto-xref">Figure&nbsp;18</a>.</p>
<div id="cell-fig-cs-amplifier" class="cell" data-execution_count="12">
<div class="cell-output cell-output-display">
<div id="fig-cs-amplifier" class="quarto-float quarto-figure quarto-figure-center anchored">
Expand All @@ -1607,14 +1607,14 @@ <h1 data-number="5"><span class="header-section-number">5</span> Common-Source A
</div>
</div>
</div>
<p>The function of this circuit is as follows: Assuming the MOSFET <span class="math inline">\(M_1\)</span> is kept in saturation, then a small-signal voltage <span class="math inline">\(v_\mathrm{in}\)</span> applied at the gate is converted into a drain current <span class="math inline">\(i_\mathrm{d}\)</span> using the MOSFET’s transconductance <span class="math inline">\(g_\mathrm{m}\)</span>. Then, this current is converted into a voltage again in the resistor <span class="math inline">\(R_1\)</span>. Ultimately, we have a voltage gain <span class="math inline">\(A_\mathrm{v}\)</span> of</p>
<p>The function of this circuit is as follows: Assuming the MOSFET <span class="math inline">\(M_1\)</span> is kept in saturation, then a small-signal voltage <span class="math inline">\(v_\mathrm{in}\)</span> applied at the gate is converted into a drain current <span class="math inline">\(i_\mathrm{d}\)</span> by the MOSFET’s transconductance <span class="math inline">\(g_\mathrm{m}\)</span>. Then, this current is converted into a voltage again in the resistor <span class="math inline">\(R_1\)</span>. Ultimately, we have a voltage gain <span class="math inline">\(A_\mathrm{v}\)</span> of</p>
<p><span class="math display">\[
A_\mathrm{v} = \frac{v_\mathrm{out}}{v_\mathrm{in}} \approx - \frac{g_\mathrm{m}v_\mathrm{in} R_1}{v_\mathrm{in}} = - g_\mathrm{m}R_1
A_\mathrm{v} = \frac{v_\mathrm{out}}{v_\mathrm{in}} \approx - \frac{g_\mathrm{m}v_\mathrm{in} R_1}{v_\mathrm{in}} = - g_\mathrm{m}R_1.
\]</span></p>
<section id="sense-amplifier-for-50-ohm-load" class="level2" data-number="5.1">
<h2 data-number="5.1" class="anchored" data-anchor-id="sense-amplifier-for-50-ohm-load"><span class="header-section-number">5.1</span> Sense Amplifier for 50 Ohm Load</h2>
<p>Let us now size and design an exemplary implementation (of course using the <span class="math inline">\(g_\mathrm{m}/I_\mathrm{D}\)</span> method). In order to have useful real-life specifications, we want to build an amplifier which can be used to sense an on-chip voltage and drive external measurement equipment. Often, this equipment has a load impedance of 50<span class="math inline">\(\Omega\)</span>, and we want to have an impedance-matched output. The voltage gain shall be set to 1 (essentially, we want to sense a voltage and drive the measurement equipment).</p>
<p>The resulting circuit is shown in <a href="#fig-meas-amplifier" class="quarto-xref">Figure&nbsp;19</a>. As the load is usually ground-referred, and as we want to avoid a dc-block at the output, we use a PMOS amplifier stage (compare with <a href="#fig-cs-amplifier" class="quarto-xref">Figure&nbsp;18</a>).</p>
<section id="sense-amplifier-driving-50-ohm-matched-load" class="level2" data-number="5.1">
<h2 data-number="5.1" class="anchored" data-anchor-id="sense-amplifier-driving-50-ohm-matched-load"><span class="header-section-number">5.1</span> Sense Amplifier Driving 50 Ohm Matched Load</h2>
<p>Let us now size and design an exemplary implementation of this amplifier (of course using the <span class="math inline">\(g_\mathrm{m}/I_\mathrm{D}\)</span> method). In order to have useful real-life specifications, we want to build an amplifier which can be used to sense an on-chip voltage and drive off-chip measurement equipment. Often, this equipment has an input impedance of 50<span class="math inline">\(\Omega\)</span>, and we want to have an impedance-matched output. The voltage gain shall be set to 1 (essentially, we want to sense a voltage and drive the measurement equipment).</p>
<p>The resulting circuit is shown in <a href="#fig-meas-amplifier" class="quarto-xref">Figure&nbsp;19</a>. As the load is usually ground-referred, and we want to avoid a dc-block at the output, we use a PMOS amplifier stage (compare with <a href="#fig-cs-amplifier" class="quarto-xref">Figure&nbsp;18</a>).</p>
<div id="cell-fig-meas-amplifier" class="cell" data-execution_count="13">
<div class="cell-output cell-output-display">
<div id="fig-meas-amplifier" class="quarto-float quarto-figure quarto-figure-center anchored">
Expand Down Expand Up @@ -1642,8 +1642,8 @@ <h2 data-number="5.1" class="anchored" data-anchor-id="sense-amplifier-for-50-oh
<p>Please think about why exactly we want this measurement amplifier be based on a PMOS instead of an NMOS.</p>
</div>
</div>
<p>The <a href="https://en.wikipedia.org/wiki/Impedance_matching">power matching</a> condition at the output mandates that <span class="math inline">\(R_1 = R_\mathrm{load}\)</span>, so <span class="math inline">\(R'_1 = R_\mathrm{load} \parallel R_1 = 25\,\Omega\)</span>. The voltage gain requirement of <span class="math inline">\(|A_\mathrm{v}| = 1\)</span> results in <span class="math inline">\(g_\mathrm{m}= 1 / R'_1 = 40\,\text{mS}\)</span>.</p>
<p>We now need to find <span class="math inline">\(W\)</span> and <span class="math inline">\(L\)</span> of <span class="math inline">\(M_1\)</span> and set the required bias current <span class="math inline">\(I_\mathrm{D}\)</span>. We also need to find out the proper <span class="math inline">\(V_\mathrm{GS}\)</span> to set this current. As usual, we use a Jupyter notebook to calculate these values. Since we require modest speed of this buffer we use a <span class="math inline">\(g_\mathrm{m}/I_\mathrm{D}=8\)</span> and set <span class="math inline">\(L = 0.13\,\mu\text{m}\)</span>. The notebook is available <a href="./sizing/sizing_measurement_amplifier-preview.html">here</a>. The resulting circuit including all component values is shown at the end of the notebook (the red input capacitor shows the <span class="math inline">\(C_\mathrm{gg}\)</span> of the MOSFET).</p>
<p>The <a href="https://en.wikipedia.org/wiki/Impedance_matching">power matching</a> requirement at the output mandates that <span class="math inline">\(R_1 = R_\mathrm{load}\)</span>, so <span class="math inline">\(R'_1 = R_\mathrm{load} \parallel R_1 = 25\,\Omega\)</span>. The voltage gain requirement of <span class="math inline">\(|A_\mathrm{v}| = 1\)</span> results in <span class="math inline">\(g_\mathrm{m}= 1 / R'_1 = 40\,\text{mS}\)</span>.</p>
<p>We now need to find <span class="math inline">\(W\)</span> and <span class="math inline">\(L\)</span> of <span class="math inline">\(M_1\)</span> and calculate the required bias current <span class="math inline">\(I_\mathrm{D}\)</span>. We also need to find the proper <span class="math inline">\(V_\mathrm{GS}\)</span> to set this current. As usual, we use a Jupyter notebook to calculate these values. Since we require modest speed of this buffer we use a <span class="math inline">\(g_\mathrm{m}/I_\mathrm{D}=8\)</span> and set <span class="math inline">\(L = 0.13\,\mu\text{m}\)</span>. The notebook is available <a href="./sizing/sizing_measurement_amplifier-preview.html">here</a>. The resulting circuit including all component values is shown at the end of the notebook (the red input capacitor shows the <span class="math inline">\(C_\mathrm{gg}\)</span> of the MOSFET).</p>
<div class="callout callout-style-default callout-tip callout-titled" title="Exercise: Measurement Amplifier Simulation">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
Expand All @@ -1655,12 +1655,12 @@ <h2 data-number="5.1" class="anchored" data-anchor-id="sense-amplifier-for-50-oh
</div>
<div class="callout-body-container callout-body">
<p>Please go through the <a href="./sizing/sizing_measurement_amplifier-preview.html">sizing notebook</a> of the measurement amplifier and double-check the calculations. Do you agree that the calculations are correct?</p>
<p>Once you agree with the circuit sizing please build an Xschem simulation testbench where you simulate the small-signal voltage of this measurement amplifier if it is driven with an ideal voltage source. Keep in mind that the maximum MOSFET finger width is 10µm in this technology, so you need to set the parameter <code>ng</code> accordingly (the shown <span class="math inline">\(W\)</span> is the total width of the MOSFET, and <span class="math inline">\(W / \text{ng} \le 10\mu\text{m}\)</span> is the width per MOSFET gate finger).</p>
<p>Once you agree with the circuit sizing please build an Xschem simulation testbench where you simulate the small-signal voltage gain <span class="math inline">\(A_\mathrm{v}\)</span> of this measurement amplifier if it is driven with an ideal voltage source. Keep in mind that the maximum MOSFET finger width is 10µm in this technology, so you need to set the parameter <code>ng</code> accordingly (the shown <span class="math inline">\(W\)</span> is the total width of the MOSFET, and <span class="math inline">\(W / \text{ng} \le 10\mu\text{m}\)</span> is the width per MOSFET gate finger).</p>
<ul>
<li>What is the dc gain of this amplifier when loaded with 50<span class="math inline">\(\Omega\)</span>?</li>
<li>The dc gain is likely not 0dB. Why is this so?</li>
<li>The dc gain is likely not exactly 0dB. Why is this so?</li>
<li>Increase the width <span class="math inline">\(W\)</span> of the PMOS until the gain is correct. What is the <span class="math inline">\(W\)</span> that you had to set, and how much is <span class="math inline">\(I_\mathrm{D}\)</span> now?</li>
<li>What is the bandwidth (i.e., the -3dB corner frequency) of the output, when the voltage source has a source resistance of 1k<span class="math inline">\(\Omega\)</span>?</li>
<li>What is the bandwidth (i.e., the -3dB corner frequency) of the output voltage, when the voltage source has a source resistance of 1k<span class="math inline">\(\Omega\)</span>?</li>
</ul>
<p>If you get stuck, <a href="./xschem/measurement_amplifier.sch">here</a> is the solution to this exercise, and it is also shown in <a href="#fig-meas-amp-tb" class="quarto-xref">Figure&nbsp;20</a>.</p>
<div id="fig-meas-amp-tb" class="quarto-float quarto-figure quarto-figure-center anchored">
Expand All @@ -1675,7 +1675,7 @@ <h2 data-number="5.1" class="anchored" data-anchor-id="sense-amplifier-for-50-oh
</div>
</div>
</div>
<p>By now we have designed a measurement amplifier based on a common-source stage. One problem with this stage is the relatively large input capacitance of approx. 0.3pF, which loads the input. Another issue even more severe is that the fact that the bias point in the circuit is set by the dc voltage level at the input. In general, we want a setup where the bias points of the circuit are largely independent of the dc input voltages. This is why in integrated circuit design we often design differential circuits where the input and output signals are given by the differential voltages, and are largely independent from the common-mode voltages. This is usually an advantage.</p>
<p>By now we have designed a measurement amplifier based on a common-source stage. One problem with this stage is the relatively large input capacitance <span class="math inline">\(C_\mathrm{GG}\)</span> of approx. 0.3pF, which loads the input source. Another issue even more severe is that the fact that the bias point in this circuit is set by the dc voltage level at the input. In general, we want a setup where the bias points of the circuit are largely independent of the dc input voltages. This is why in integrated circuit design we often design <strong>differential circuits</strong> where the input and output signals are given by the differential voltages, and are largely independent from the common-mode voltages. This is usually an advantage.</p>
</section>
</section>
<section id="sec-current-mirror" class="level1" data-number="6">
Expand Down
Binary file modified index.pdf
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file modified index_files/mediabag/xschem/dc_lv_nmos.pdf
Binary file not shown.
Binary file modified index_files/mediabag/xschem/measurement_amplifier.pdf
Binary file not shown.
Binary file modified index_files/mediabag/xschem/mosfet_diode_loopgain.pdf
Binary file not shown.
Binary file modified index_files/mediabag/xschem/mosfet_diode_noise.pdf
Binary file not shown.
Binary file modified index_files/mediabag/xschem/mosfet_diode_settling.pdf
Binary file not shown.
Binary file modified index_files/mediabag/xschem/ota-improved-res-4.pdf
Binary file not shown.
Binary file modified index_files/mediabag/xschem/ota-improved.pdf
Binary file not shown.
Binary file modified index_files/mediabag/xschem/ota-improved_tb-ac.pdf
Binary file not shown.
Binary file modified index_files/mediabag/xschem/ota-improved_tb-tran.pdf
Binary file not shown.
Binary file modified index_files/mediabag/xschem/techsweep_sg13g2_lv_nmos.pdf
Binary file not shown.
Binary file modified index_files/mediabag/xschem/techsweep_sg13g2_lv_pmos.pdf
Binary file not shown.
2 changes: 1 addition & 1 deletion sizing/lookup_sg13.out.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
"source": [
"# MOSFET gm/ID Lookup for IHP SG13G2"
],
"id": "ab9f90b6-3f2d-4628-8001-0e107068e8f7"
"id": "2ad30e71-09b5-4f7f-9ffa-48d11d52833e"
},
{
"cell_type": "markdown",
Expand Down
2 changes: 1 addition & 1 deletion sizing/sizing_basic_ota.out.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
"source": [
"# Sizing for Basic 5T-OTA"
],
"id": "88f508f0-cee7-499b-bbfa-b63d7bd694be"
"id": "e335cd02-047c-4a92-b7c6-a79f4296e54f"
},
{
"cell_type": "markdown",
Expand Down
2 changes: 1 addition & 1 deletion sizing/sizing_basic_ota_improved.out.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
"source": [
"# Sizing for Basic (Improved) OTA"
],
"id": "1731c160-b033-47fe-a8d2-5c423bd2da6e"
"id": "d7cbb5f7-1fef-42d1-ac82-8cb083ce7be4"
},
{
"cell_type": "markdown",
Expand Down
2 changes: 1 addition & 1 deletion sizing/sizing_basic_ota_improved_w_circuit.out.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
"source": [
"# Sizing for Basic (Improved) OTA With Schematic"
],
"id": "04df2d97-3dde-4258-a2ad-23cc49e4152b"
"id": "87797671-6d33-4a2f-bce2-b0fc78680f58"
},
{
"cell_type": "markdown",
Expand Down
2 changes: 1 addition & 1 deletion sizing/sizing_basic_ota_w_circuit.out.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
"source": [
"# Sizing for Basic 5T-OTA With Schematic"
],
"id": "2840676e-04b9-4590-9555-8fc0951e4e95"
"id": "30473456-f170-4695-b459-67f9f601c2f3"
},
{
"cell_type": "markdown",
Expand Down
2 changes: 1 addition & 1 deletion sizing/sizing_current_mirror.out.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
"source": [
"# Sizing for Improved Current Mirror"
],
"id": "07182f56-d385-490d-b783-8343818289ba"
"id": "dd94a193-fb2e-4002-b388-2c11731831f7"
},
{
"cell_type": "markdown",
Expand Down
2 changes: 1 addition & 1 deletion sizing/sizing_measurement_amplifier.out.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
"source": [
"# Sizing for Measurement Amplifier"
],
"id": "00c8b747-9622-4208-a853-fb1e3da63bd5"
"id": "3b986909-b956-4846-bb19-10e6c78441b6"
},
{
"cell_type": "markdown",
Expand Down
2 changes: 1 addition & 1 deletion sizing/sizing_mosfet_diode.out.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
"source": [
"# Sizing for MOSFET Diode Example"
],
"id": "a049a870-415b-41dd-9d66-265f5d14f128"
"id": "2f974bf1-8cd1-4d59-95cb-2017515def39"
},
{
"cell_type": "markdown",
Expand Down
2 changes: 1 addition & 1 deletion sizing/techsweep_sg13_plots_nmos.out.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
"source": [
"# MOSFET gm/ID Evaluation Script for IHP SG13G2"
],
"id": "ad7b4276-96a4-4caf-b2f4-ed7caf369392"
"id": "6daad0de-054a-4c78-97a2-d42513c69e6c"
},
{
"cell_type": "markdown",
Expand Down
2 changes: 1 addition & 1 deletion sizing/techsweep_sg13_plots_pmos.out.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
"source": [
"# MOSFET gm/ID Evaluation Script for IHP SG13G2"
],
"id": "5df52353-14da-43ca-80e4-496eccd055a5"
"id": "c068c9da-377f-4feb-b4aa-5afcb430a198"
},
{
"cell_type": "markdown",
Expand Down
2 changes: 1 addition & 1 deletion sizing/techsweep_sg13_plots_triode.out.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
"source": [
"# MOSFET gm/ID Lookup for IHP SG13G2 in Triode Region"
],
"id": "3baf8ea2-f6e7-4078-8eae-1e9efa7b8353"
"id": "e069869e-5f42-46c7-bf08-6599595a3931"
},
{
"cell_type": "markdown",
Expand Down
2 changes: 1 addition & 1 deletion sizing/techsweep_sg13_txt_to_mat.out.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
"source": [
"# Conversion of TXT to MAT for gm/ID result files for SG13G2"
],
"id": "2b5a12ad-ac90-4c7e-9581-10429f4112f4"
"id": "eac6614d-04ba-4190-8713-41f69a419367"
},
{
"cell_type": "markdown",
Expand Down

0 comments on commit 8834a70

Please sign in to comment.