模拟集成电路设计系列博客——1.1.3 Cascode电流镜
1.1.3 Cascode电流镜
Cascode电流镜是一种高输出阻抗电流镜,其基本结构如下图所示:

首先从\(Q_2\)漏极看进去的输出阻抗仅为\(r_{ds2}\),其分析和基本电流镜非常一样。因此可以认为\(Q_4\)是一个带有\(r_{ds2}\)的源极退化电阻的电流源,利用之前的\((1.1.10)\)公式,可以得到:
\]
其中\(R_s=r_{ds2}\),因此输出阻抗为:
\approx r_{ds4}[1+R_{s}(g_{m4}+g_{s4})] \\
\approx r_{ds4}(r_{ds2}g_{m4}) \tag{1.1.15}
\]
因此输出阻抗倍增了\(g_{m4}r_{ds2}\)的倍数,即一个单管MOS放大器的增益上限,其值可以在10到100之间,根据管子尺寸,电流,以及使用的工艺条件而决定。这个典型的输出阻抗的增长可以用于实现大低频增益的单级放大器。
使用Cascode的电流镜的一个坏处是,它降低了晶体管进入线性区前的最大输出信号摆幅,为了理解这种降低,可以假定有一个n沟道MOS管处于饱和区,其漏源电压必须大于\(V_{eff}\),\(V_{eff}\)的定义是:
\]
其值由下式求出:
\]
如果我们假设所有的晶体管的尺寸与电流相同,则其都有相同的\(V_{eff}\),因此所有的管子都有相同的栅源电压\(V_{GS}=V_{eff}+V_{tn}\),因此:
\]
且:
\]
因此\(Q_2\)的漏源电压比最小的饱和区漏源电压需求要大出一个\(V_{tn}\),由于使得\(Q_4\)不进入线性区的最小输出电压\(V_{D4}\)可以由\(V_{DS2}+V_{eff}\)给出,最小的允许的输出电压\(V_{out}\)可以由下图给出:
\]
再次比\(2V_{eff}\)大出了一个\(V_{tn}\),这种信号的摆幅损失对于最大供电电压可能只有\(1V\)甚至更小的现代工艺来说是一种严重的缺点。
例题:
考虑如上所示Cascode电流镜,\(I_in=100\mu A\)且每个晶体管宽长比为\(W/L=10\mu m/0.4\mu m\),假定使用下表的\(0.35\mu m\)参数,求出电流镜的\(r_{out}\),假定体效应为\(0.2g_{m}\),同时计算出让晶体管都保持在饱和区的最小输出电压\(V_{out}\)。

解答:
假定\(I_{out}=I_{in}\),则可以求出:
\]
以及有:
\]
现在利用公式\((1.1.15)\),可以求出输出阻抗:
\]
为了找到最小输出电压,我们首先确定\(V_{eff}\):
\]
因此可以求出最小输出电压\(V_{out}=2V_{eff}+V_{tn}=0.98V\),与基本电流镜例题相比,其输出阻抗增大了30倍,但是其输出摆幅下降了\(0.76V\)。
模拟集成电路设计系列博客——1.1.3 Cascode电流镜的更多相关文章
- Flutter 即学即用系列博客——03 在旧有项目引入 Flutter
前言 其实如果打算在实际项目中引入 Flutter,完全将旧有项目改造成纯 Flutter 项目的可能性比较小,更多的是在旧有项目引入 Flutter. 因此本篇我们就说一说如何在旧有项目引入 Flu ...
- Django 系列博客(七)
Django 系列博客(七) 前言 本篇博客介绍 Django 中的视图层中的相关参数,HttpRequest 对象.HttpResponse 对象.JsonResponse,以及视图层的两种响应方式 ...
- Django 系列博客(一)
Django 系列博客(一) 前言 学习了 python 这么久,终于到了Django 框架.这可以说是 python 名气最大的web 框架了,那么从今天开始会开始从 Django框架的安装到使用一 ...
- ARM的体系结构与编程系列博客——ARM处理器系列介绍
ARM处理器系列介绍 现在到了3月,过年过得过于舒服了.系列博客也停更了近半月,我果然是个慢(lan)性(gui)子,那么趁着到校的第一天晚上,就写一篇博客来继续我的系列博客了!众所周知,ARM处理器 ...
- 窥探Swift系列博客说明及其Swift版本间更新
Swift到目前为止仍在更新,每次更新都会推陈出新,一些Swift旧版本中的东西在新Swift中并不适用,而且新版本的Swift会添加新的功能.到目前为止,Swift为2.1版本.去年翻译的Swift ...
- Flutter 即学即用系列博客——05 StatelessWidget vs StatefulWidget
前言 上一篇我们对 Flutter UI 有了一个基本的了解. 这一篇我们通过自定义 Widget 来了解下如何写一个 Widget? 然而 Widget 有两个,StatelessWidget 和 ...
- Flutter 即学即用系列博客——04 Flutter UI 初窥
前面三篇可以算是一个小小的里程碑. 主要是介绍了 Flutter 环境的搭建.如何创建 Flutter 项目以及如何在旧有 Android 项目引入 Flutter. 这一篇我们来学习下 Flutte ...
- Flutter 即学即用系列博客——09 MethodChannel 实现原生与 Flutter 通信(二)
前言 上一篇我们讲解了如何通过 EventChannel 实现 Android -> Flutter 的通信. 并且也看到了 Flutter 内部 EventChannel 源码也是对 Meth ...
- Flutter 即学即用系列博客——09 EventChannel 实现原生与 Flutter 通信(一)
前言 紧接着上一篇,这一篇我们讲一下原生怎么给 Flutter 发信号,即原生-> Flutter 还是通过 Flutter 官网的 Example 来讲解. 案例 接着上一次,这一次我们让原生 ...
- Flutter 即学即用系列博客——08 MethodChannel 实现 Flutter 与原生通信
背景 前面我们讲了很多 Flutter 相关的知识点,但是我们并没有介绍怎样实现 Flutter 与原生的通信. 比如我在 Flutter UI 上面点击了一个按钮,我希望原生做一些处理,那么原生怎么 ...
随机推荐
- 前端开发系列050-基础篇之组件的概念和使用(Vue)
本文是早期学习Vue整理的一些阶段性总结,内容主要关于Vue框架中组件的概念和数据传递. 一.组件的相关概念 在Vue学习的时候参考了很多文档和书籍,这些文档和书籍中总是充满各种术语(定语),在这里先 ...
- AI-Compass宝藏资源库:构建最全面的AI学习与实践生态,服务AI全群体
AI-Compass宝藏资源库:构建最全面的AI学习与实践生态,服务AI全群体 AI-Compass将为你和社区提供在AI技术海洋中航行的方向与指引.无论你是刚踏入AI领域的初学者,还是寻求技术突破的 ...
- SciTech-Power-焊接:超声波焊接技术+美标USCAR-38 + Standard VS
超声波焊接技术 在端子和线束连接上应用比较成熟, 最高技术的方法涉及通过以 15~40kHz 的频率 将 绞合线一起振动,以在单根导线之间形成牢固的冶金结合. 这种振动能量会导致表面氧化物在单股导线上 ...
- POLIR-Society-Organization-Management:Transform Business Skills with Proven Simulation and Assessment Technology
Capsim Management Simulations, Inc. Privacy Policy Terms Accessibility Policy Transform Business Ski ...
- SciTech-BigDataAIML-Tensorflow-Keras是用在Tensorflow的高层API
[https://tensorflow.google.cn/guide/keras](Keras: The high-level API for TensorFlow) https://tensorf ...
- CompletableFuture笔记
CompletableFuture是java8引入的一个很实用的特性,可以视为Future的升级版本,以下几个示例可以说明其主要用法(注:示例来自<java8实战>一书第11章) 一.引子 ...
- MySQL 21 为什么我只改一行的语句,锁这么多?
上篇文章中,介绍了间隙锁和临键锁,但并未说明加锁规则.本文首先介绍加锁规则,由于间隙锁在可重复读隔离级别下才有效,因此接下来的内容默认在可重复读隔离级别下. 加锁规则(限5.x系列<=5.7.2 ...
- C函数atoi()
C函数atoi() int atoi(const char *str) 把参数 str 所指向的字符串转换为一个整数(类型为 int 型). atoi() 函数的声明 int atoi(const c ...
- 【译】Visual Studio Copilot 中更智能的人工智能编辑
当我们最初着手在 Visual Studio Copilot 中实现更智能的 AI 编辑功能时,我们就知道自己在应对一个极其复杂的问题.这不仅仅是生成出色的建议,还关乎弄清楚如何将这些建议无缝应用到你 ...
- Vue2.0的v-model指令
Vue2.0的v-model指令 v-model="属性" 写在标签中上,相当于在一个标签上,同时写了 :value='属性值' @iinput='handler' ...