当前位置: 首页 > news >正文

Chapter 5 Current Mirrors and Biasing Techniques

Chapter 5 Current Mirrors and Biasing Techniques

这一章介绍电流镜

5.1 Basic Current Mirrors

MOS工作在饱和区, 表现为一个电流源.

考虑电源变化, PVT波动, 我们会首先产生一路精准电流源, 再复制这路电流.

如何复制呢? 电流转电压再转电流就行了, 如下图所示

考虑到器件的mismatch, 并不能精准的复制电流. 尤其是LOD效应(gate到有源区距离影响Vth)和WPE效应(gate到well影响Vth)

Threshold Voltage Mismatch

即Vgs越大, Vdsat越大, 电流受Vth mismatch的影响越小

To attain high speed and to reduce the effects of threshold voltage mismatch, a large gate overdrive voltage should be used (remembering for a long-channel process that Vovn = VDS,sat = VGS - VTHN).

5.2 Cascode Current Mirrors

请注意Chanel Length Modulation, 也就是Vds会导致Ids电流变化

解决办法是就加入casecode, 挡住上面电压变化, 让mirroor管的VDS相同

但是这会带来headroom挑战, 因为Vy=Vgs, P点电压=Vgs+Vdsat=2Vdsat+Vth.

当VX减小时M3和M2谁先进入线性区? 答案是M3先进入线性区, VB迅速下降, 因为线性区的M3需要更大的Vgs才能维持Ix. 当VB<VA-Vth2时, 即Vx<VA-Vth2+Vds3时, M2进入线性区, 电流Ix开始迅速下降.

为了解决输出电压headroom问题

可以采用下面结构. Vout,min=2*Vds.

注意保证M1和M0要处于饱和区. 因此Vb-Vth0<Vx (确保M0饱和), Vgs1(Vx)-Vth1<VA=Vb-Vgs0 (确保M1饱和), 因此

VGS0 + (VGS1 − VTH1) ≤ Vb ≤ VGS1 + VTH0

第二个问题是如何产生Vb电压

可以采用下面两种方式

a)中 Vb=Vgs5+Vgs6-I*R

b) Vb=Vgs6/7 (串联降低W/L, 增大Vgs)

下图展示了一种high output impedance的电流镜, 如下图所示. M3通过检测VX, 控制VN, 提高了输出阻抗.

但是VX如果太大, M3吃掉所有的电流, 另外X的电压需要大于Vth3.

5.3 Active Current Mirrors

current mirror很大作用是放在运放中, 配合OTA使用. 例如下图最经典的5管运放.

采用半边电路分析, 半边电流分析, 小信号增益为
V o u t V o u t = g m 2 ( r o 1 ∥ r o 2 ) \frac{V_{out}}{V_{out}}=g_{m2}(r_{o1}\parallel r_{o2}) VoutVout=gm2(ro1ro2)
输出电压Vout的DC工作点, 考虑到对称性和沟道调制效应, Vout=VDD-Vsg3

5.3.3 Common-Mode Properties

共模增益:
A C M = Δ V o u t Δ V i n , C M A_{CM}=\frac{\Delta V_{out}}{\Delta V_{in,CM}} ACM=ΔVin,CMΔVout
为degenerated common source结构, 因此Acm增益为

因此CMRR为, 为 (gm*ro)^2

Effect of Mismatches

前面提到, 由于管子mismatch带来的CMRR影响更大.

5.3.4 Other Properties of Five-Transistor OTA

5管OTA的两大缺点: 1:即使匹配很好, CMRR较差, 因为CM影响输出. 2: supply rejection较差

supply rejection: 考虑VDD上有step跳变, 因为M1处于饱和区, 类似电流镜, 那么VF上也跳变相同step. 考虑对称性, Vout也跳变相同的step.

提高supply rejection的解决办法, 采用全差分结构, 如下图所示. VDD跳变step, 如果XY下面的impedance为M1/M2和电流镜的阻抗很大, 那么XY也跳变step (类似电阻分压原理). 但是由于全差分结构, Vout输出不变.

5.4 Biasing Techniques

5.4.1 CS Biasing

我们需要bias CS结构的VIN和小信号(a). 因此考虑在VIN和CS gate之间加电容. 再加上Rb, 形成high-pass filter (b).

为了确定VX的DC工作点, 加入电流镜和diode MOS结构©. 用MOS替代R, (d). 为了确保MR能开启, 在gate上加diode结构(E)

可得

CS Stage with Current-Source Load

CS Stage with Current-Source Load类似, M1和M2都需要bias (b), 设计Ib1=Ib2. 但是M1和M2相互打架, 因此M2 采用diode-connected结构©, 在高频时CG short M2 gate, Av=-gm1*(ro1||ro2||RG). 在©中Vout=VDD-Vsg2. 因此采用(d), Vout = VN + IG x RG. VN可以足够低保证M2在饱和区, Vout电压值得到提升.

Complementary CS Stage

对于互补型CS Stage的偏置. M1和M2相互打架, 因此加入大电阻RF, RF上没有电流, Vin=Vout, M1和M2 自己形成diode-connected结构了(b). 再加上电流I1来精准确定偏置电流©, 和加入ac coupling电容(d). Cin和C1的取值有讲究, 确保Av=(gm1+gm2)*(ro1||ro2)

5.4.2 CG Biasing

对于common gate偏置, 可考虑下图

VX到Vout增益为

5.4.3 Source Follower Biasing

下图就是Source Follower Biasing的典型应用, 通过加电容, 确保VX点的DC工作点可以比较低

5.4.4 Differential Pair Biasing

相关文章:

Chapter 5 Current Mirrors and Biasing Techniques

Chapter 5 Current Mirrors and Biasing Techniques 这一章介绍电流镜 5.1 Basic Current Mirrors MOS工作在饱和区, 表现为一个电流源. 考虑电源变化, PVT波动, 我们会首先产生一路精准电流源, 再复制这路电流. 如何复制呢? 电流转电压再转电流就行了, 如下图所示 考虑到…...

Avalonia Image控件上通过鼠标拖动画出矩形框

注册鼠标事件&#xff1a;首先&#xff0c;你需要注册 Image 控件上的鼠标事件&#xff0c;包括 PointerPressed、PointerMoved 和 PointerReleased。你可以在 XAML 文件或代码中注册这些事件。 <Image PointerPressed"Image_PointerPressed" PointerMoved"…...

Wireshark Lua插件入门

摘要 开发中经常通过抓包分析协议&#xff0c;对于常见的协议如 DNS wireshark 支持自动解析&#xff0c;便于人类的理解&#xff0c;对于一些私有协议&#xff0c;wireshark 提供了插件的方式自定义解析逻辑。 1 动手 废话少说&#xff0c;直接上手。 第一步当然是装上wiresh…...

XXE漏洞简介

目录 漏洞原理 漏洞危害 前置知识 XML简介 DTD简介 DTD的两种声明方式 实体 实体分类 内置实体(Built-inentities) 字符实体&#xff08;Characterentities&#xff09; 通用实体&#xff08;Generalentities&#xff09; 参数实体(Parameterentities) XXE漏洞…...

小白跟做江科大32单片机之蜂鸣器

1.复制之前编写的工程库项目&#xff0c;详细工程库创建过程如下链接&#xff1a; 小白跟做江科大32单片机之LED闪烁-CSDN博客https://blog.csdn.net/weixin_58051657/article/details/139295351?spm1001.2014.3001.55022.按照江科大老师给的图片进行连接蜂鸣器 接线时要用公…...

IsoBench:多模态基础模型性能的基准测试与优化

随着多模态基础模型的快速发展&#xff0c;如何准确评估这些模型在不同输入模态下的性能成为了一个重要课题。本文提出了IsoBench&#xff0c;一个基准数据集&#xff0c;旨在通过提供多种同构&#xff08;isomorphic&#xff09;表示形式的问题&#xff0c;来测试和评估多模态…...

MyEclipse使用教程

MyEclipse使用教程如下&#xff0c;按照以下步骤&#xff0c;您可以逐步熟悉并掌握MyEclipse的基本使用&#xff1a; 一、MyEclipse安装与准备 软件准备&#xff1a; 在使用MyEclipse之前&#xff0c;您需要确保已经安装了JDK&#xff08;Java Development Kit&#xff09;。J…...

TiDB学习9:Ti Cloud简介

目录 1. 为什么选择TiDB 2. 多租户 3. TiDB架构 4. 什么是TiDB Cloud 5. TiDB Cloud Provider Region 6. TiDB Cloud 入门 6.1 在浏览器中打开TiDB Cloud 6.2 创建您的账户 6.3 Developer Tier 与Dedicated Tier 6.3.1 Developer Tier 6.3.2 Dedicated Tier 6.3.2.…...

JavaScript 创建新节点的方法

在 JavaScript 中&#xff0c;可以使用 document.createElement() 方法来创建新的节点。该方法接受一个字符串参数&#xff0c;表示要创建的节点类型&#xff0c;如 "div"、"p" 等。 创建一个新节点的基本步骤如下&#xff1a; 使用 document.createElem…...

在phpstorm2024版里如何使用Jetbrains ai assistant 插件 ?

ai assistant激活成功后&#xff0c;如图 ai assistant渠道&#xff1a;https://web.52shizhan.cn/activity/ai-assistant 在去年五月份的 Google I/O 2023 上&#xff0c;Google 为 Android Studio 推出了 Studio Bot 功能&#xff0c;使用了谷歌编码基础模型 Codey,Codey 是…...

进程间通信(27000字超详解)

&#x1f30e;进程间通信 文章目录&#xff1a; 进程间通信 进程间通信简介       进程间通信目的       初识进程间通信       进程间通信的分类 匿名管道通信       认识管道       匿名管道       匿名管道测试       管道的四种…...

一、大模型推理

https://github.com/hiyouga/LLaMA-Factory/blob/main/README_zh.md https://github.com/hiyouga/LLaMA-Factory/blob/main/examples/README_zh.md 安装 v7.1 https://github.com/hiyouga/LLaMA-Factory/releases/tag/v0.7.1 git clone --depth 1 https://github.com/hiyoug…...

.NET IoC 容器(三)Autofac

目录 .NET IoC 容器&#xff08;三&#xff09;AutofacAutofacNuget 安装实现DI定义接口定义实现类依赖注入 注入方式构造函数注入 | 属性注入 | 方法注入注入实现 接口注册重复注册指定参数注册 生命周期默认生命周期单例生命周期每个周期范围一个生命周期 依赖配置Nuget配置文…...

Day44 动态规划part04

背包问题 01背包问题&#xff1a;每件物品只能用一次完全背包问题&#xff1a;每件物品可以使用无数次 01背包问题 暴力解法&#xff1a;每一件物品其实只有两个状态&#xff0c;取或者不取&#xff0c;所以可以使用回溯法搜索出所有的情况&#xff0c;那么时间复杂度就是 o…...

html期末复习速览

一.基础标签 1.段落标签<p></p> 特点&#xff1a;分段分割 2.标题标签<h1></h1>……<h6></h6> 特点&#xff1a;文字加粗&#xff0c;单独占一行 3.换行标签<br /> 特点&#xff1a;单标签&#xff0c;强制换行 二.文本格式化…...

CTFHUB-信息泄露-目录遍历和PHPINFO

目录 目录遍历 PHPINFO 目录遍历 很简单&#xff0c;挨着把每个目录都点开看一下 发现2目录下有个 flag.txt 文件&#xff0c;点开发现了本关的flag PHPINFO 这关也很简单&#xff0c;进来之后是一个phpinfo页面&#xff0c;按 CTRL F键打开查询&#xff0c;输入flag&#…...

面向Java程序员的Go工程开发入门流程

对于一个像我这样没有go背景的java程序员来说&#xff0c;使用go开发一个可用的程序的速度是肉眼可见的缓慢。 其难点不在于go语言本身&#xff0c;而是搭建整个工程链路的过程&#xff0c;即所谓的“配环境”。 本文主要讲述如何配出一个适合go开发的环境&#xff0c;以免有同…...

vue3开发高德地图

在vue3的index.html 使用动态注入地址名和key <html lang"en"><head><meta charset"UTF-8" /><link rel"icon" type"image/svgxml" href"/vite.svg" /><meta name"viewport" conten…...

通过DLL方式链接glfw3.dll

主要是CMakeLists.txt文件变化 cmake_minimum_required(VERSION 3.10) project(glfwTest) set(CMAKE_CXX_STANDARD 11) aux_source_directory(. SRC_SOURCES) set(GLFW_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/include) set(GLFW_LIBRARY_DIR ${CMAKE_SOURCE_DIR}/lib/glfw) add_ex…...

Python自然语言处理(NLP)库之NLTK使用详解

概要 自然语言处理(NLP)是人工智能和计算机科学中的一个重要领域,涉及对人类语言的计算机理解和处理。Python的自然语言工具包(NLTK,Natural Language Toolkit)是一个功能强大的NLP库,提供了丰富的工具和数据集,帮助开发者进行各种NLP任务,如分词、词性标注、命名实体…...

[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?

&#x1f9e0; 智能合约中的数据是如何在区块链中保持一致的&#xff1f; 为什么所有区块链节点都能得出相同结果&#xff1f;合约调用这么复杂&#xff0c;状态真能保持一致吗&#xff1f;本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里&#xf…...

Leetcode 3576. Transform Array to All Equal Elements

Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接&#xff1a;3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到&#xf…...

rknn优化教程(二)

文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK&#xff0c;开始写第二篇的内容了。这篇博客主要能写一下&#xff1a; 如何给一些三方库按照xmake方式进行封装&#xff0c;供调用如何按…...

Vue3 + Element Plus + TypeScript中el-transfer穿梭框组件使用详解及示例

使用详解 Element Plus 的 el-transfer 组件是一个强大的穿梭框组件&#xff0c;常用于在两个集合之间进行数据转移&#xff0c;如权限分配、数据选择等场景。下面我将详细介绍其用法并提供一个完整示例。 核心特性与用法 基本属性 v-model&#xff1a;绑定右侧列表的值&…...

Python爬虫实战:研究feedparser库相关技术

1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...

2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面

代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口&#xff08;适配服务端返回 Token&#xff09; export const login async (code, avatar) > {const res await http…...

论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一)

宇树机器人多姿态起立控制强化学习框架论文解析 论文解读&#xff1a;交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架&#xff08;一&#xff09; 论文解读&#xff1a;交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个生活电费的缴纳和查询小程序

一、项目初始化与配置 1. 创建项目 ohpm init harmony/utility-payment-app 2. 配置权限 // module.json5 {"requestPermissions": [{"name": "ohos.permission.INTERNET"},{"name": "ohos.permission.GET_NETWORK_INFO"…...

关于 WASM:1. WASM 基础原理

一、WASM 简介 1.1 WebAssembly 是什么&#xff1f; WebAssembly&#xff08;WASM&#xff09; 是一种能在现代浏览器中高效运行的二进制指令格式&#xff0c;它不是传统的编程语言&#xff0c;而是一种 低级字节码格式&#xff0c;可由高级语言&#xff08;如 C、C、Rust&am…...

SAP学习笔记 - 开发26 - 前端Fiori开发 OData V2 和 V4 的差异 (Deepseek整理)

上一章用到了V2 的概念&#xff0c;其实 Fiori当中还有 V4&#xff0c;咱们这一章来总结一下 V2 和 V4。 SAP学习笔记 - 开发25 - 前端Fiori开发 Remote OData Service(使用远端Odata服务)&#xff0c;代理中间件&#xff08;ui5-middleware-simpleproxy&#xff09;-CSDN博客…...