模拟集成电路设计系列博客——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 上面点击了一个按钮,我希望原生做一些处理,那么原生怎么 ...
随机推荐
- 前端开发系列117-进阶篇之ast && render
本文将讨论 AST 转换为 渲染字符串并最终调整为 render 渲染函数的具体过程,这样的讨论有益于我们加深对常见的模板引擎其工作机制以及Vue等前端框架的理解 . 在上图中简单画出了这篇文章的代码 ...
- leetcode 1406
简介 国服第一的刷题视频 参考链接 https://www.bilibili.com/video/BV1W54y197NM?from=search&seid=16875469481128889 ...
- robots.txt 简单解析
简介 robots.txt 是一个规范,对于执行正常操作的爬虫理应遵守的规范. 例子 博客园例子 https://www.cnblogs.com/robots.txt User-Agent: * Al ...
- PostgreSQL 数据库中 ETL 操作的实战技巧
在当今数字化时代,数据已成为企业最为宝贵的资产之一,而数据库则是存储与管理这些关键数据的核心.PostgreSQL 作为一款功能强大的开源关系型数据库,在众多领域都发挥着重要作用.今天,就让我们深入探 ...
- unity text mesh pro 缺字
解决方案 把图集大小从1024改成2048,因为汉字太多了,1024的图集本来就装不下导致的部分缺字 做字体的我们先根据原始字体创建一个 Font Asset 这个为静态,复制一个做动态,修改动态的图 ...
- 仅一个 Python 文件,狂揽近 2 万 Star「GitHub 热点速览」
朋友们,GitHub 热点速览并没有"停更"哦! 最近断更,是因为榜单几乎被大模型"霸占":GLM-4.5(智谱).Step3(阶跃星辰).Intern-S1( ...
- 解密prompt系列58. MCP - 工具演变 & MCP基础
作为结构化推理的坚定支持者,我一度对MCP感到困惑:Agent和工具调用的概念早已普及,为何还需要MCP这样的额外设计呢?本文就来深入探讨MCP,看看它究竟解决了什么问题. 我们将分几章解析MCP:本 ...
- 抱怨一下中文网站的环境_文件无法从本地复制到服务器 windows报错0x80070032
原文永久链接:https://forum.piwind.com/d/33-bao-yuan-yi-xia-zhong-wen-wang-zhan-de-huan-jing-wen-jian-wu-fa ...
- 解锁硬件潜能:Java向量化计算,性能飙升W倍!
机器相关的编译优化 与机器相关的编译优化常见的有指令选择(Instruction Selection).寄存器分配(Register Allocation).窥孔优化(Peephole Optimiz ...
- JavaSE-数组中生成随机数(Random)
数组中生成随机数(Random) 要通过随机数索引来访问数组中的某一个元素,可以使用Java中的 Random 类来生成一个随机数,然后用这个随机数作为索引来访问数组.以下是一个示例代码,展示了如何实 ...