电子技术——CMOS反相器
电子技术——CMOS反相器

在本节,我们深入学习CMOS反相器。
电路原理
下图是我们要研究的CMOS反相器的原理图:

下图展示了当输入 vI=VDDv_I = V_{DD}vI=VDD 时的 iD−vDSi_D-v_{DS}iD−vDS 曲线:

我们把 QNQ_NQN 当做是驱动源,而 QPQ_PQP 作为负载,我们在图像上叠加关于 QPQ_PQP 在 vSGP=0v_{SGP} = 0vSGP=0 的负载曲线。因为 vSGP<∣Vt∣v_{SGP} < |V_t|vSGP<∣Vt∣ 因此负载曲线是一条零电流的水平直线。两个曲线的交点就是我们的工作点,我们发现此时电流为零,输出电压为零。同样意味着此时耗散功率为零。然而,工作点处在曲线 iD−vDSi_D-v_{DS}iD−vDS 的上升处,具有有限的斜率,因此 QNQ_NQN 对外表现出有限的阻抗,如图©:
rDSN=1/[kn′(WL)n(VDD−Vtn)]r_{DSN} = 1 / [k_n'(\frac{W}{L})_n (V_{DD} - V_{tn})] rDSN=1/[kn′(LW)n(VDD−Vtn)]
另外一种情况,当输入 vI=0v_I = 0vI=0 的时候,如图:

因为 vGSN=0v_{GSN} = 0vGSN=0 此时驱动曲线是一条零电流的直线,此时负载曲线是 vSGP=VDDv_{SGP} = V_{DD}vSGP=VDD 的曲线。我们发现,此时交点在零电流,输出电压为 vO=VDDv_O = V_{DD}vO=VDD 。耗散功率为零。同样的,QPQ_PQP 表现出有限的阻抗:
rDSP=1/[kp′(WL)p(VDD−∣Vtp∣)]r_{DSP} = 1 / [k_p' (\frac{W}{L})_p (V_{DD} - |V_{tp}|)] rDSP=1/[kp′(LW)p(VDD−∣Vtp∣)]
虽然,静态电流为零,这种CMOS反相器可以提供较大的负载能力。例如,负载是容性负载的时候,当 QNQ_NQN 导通的时候,由于其较小的开关阻抗,可以提供一个较短的对地回路,可以使得容性负载迅速泄放电荷,拉低电位,因此 QNQ_NQN 称为下拉元件。同样的,当 QPQ_PQP 导通的时候,由于其较小的开关阻抗,可以提供一个较短的对电压通路,可以使得容性负载迅速充满电荷,拉高电位,因此 QPQ_PQP 称为上拉元件。
根据上面的讨论CMOS反相器作为理想的反相器:
- 输出电压的范围在 0−VDD0-V_{DD}0−VDD 电压压摆达到最大。同时,两个MOS可以进行匹配使得提供一个对称的电压传导特性,具有较宽的噪声容限。
- 静态功率为零,这是因为电压源和地直接没有直接的DC回路。
- 对地和电压都是低阻抗路径,较低的输出阻抗使得反相器具有较高的驱动能力,以及实现电气功能与元件参数无关,提高噪声和其他干扰的容忍性。
- 上拉的下拉元件使得电路的翻转速度更快,对于容性负载具有较高的驱动能力。
- 输入阻抗为无穷大。所以CMOS反相器可以驱动大量同样的CMOS反相器而不造成电压水平损失。当然,增加被驱动元件的数量就意味着增加了容性负载,这会降低电平的翻转速度。
电压传导特性
通过联立两个曲线,我们可以绘制出CMOS反相器的电压传导特性曲线,这里给出驱动和负载方程:
iDN=kn′(WL)n[(vI−Vtn)vO−12vO2],vO≤vI−Vtni_{DN} = k_n'(\frac{W}{L})_n [(v_I - V_{tn})v_O - \frac{1}{2}v_O^2], v_O \le v_I - V_{tn} iDN=kn′(LW)n[(vI−Vtn)vO−21vO2],vO≤vI−Vtn
iDN=12kn′(WL)n(vI−Vtn)2,vO≥vI−Vtni_{DN} = \frac{1}{2}k_n' (\frac{W}{L})_n (v_I - V_{tn})^2, v_O \ge v_I - V_{tn} iDN=21kn′(LW)n(vI−Vtn)2,vO≥vI−Vtn
iDP=kp′(WL)p[(VDD−vI−∣Vtp∣)(VDD−vO)−12(VDD−vO)2],vO≥vI+∣Vtp∣i_{DP} = k_p' (\frac{W}{L})_p [(V_{DD} - v_I - |V_{tp}|)(V_{DD} - v_O) - \frac{1}{2}(V_{DD} - v_O)^2], v_O \ge v_I + |V_{tp}| iDP=kp′(LW)p[(VDD−vI−∣Vtp∣)(VDD−vO)−21(VDD−vO)2],vO≥vI+∣Vtp∣
iDP=12kp′(WL)p(VDD−vI−∣Vtp∣)2,vO≤vI+∣Vtp∣i_{DP} = \frac{1}{2} k_p' (\frac{W}{L})_p(V_{DD} - v_I - |V_{tp}|)^2, v_O \le v_I + |V_{tp}| iDP=21kp′(LW)p(VDD−vI−∣Vtp∣)2,vO≤vI+∣Vtp∣
通常电路设计者通常将阈值电压设计为 Vtn=∣Vtp∣=VtV_{tn} = |V_{tp}| = V_tVtn=∣Vtp∣=Vt 。同样,尽管并不总是这样,我们也假设两个MOS完全匹配,即 kn′(W/L)n=kp′(W/L)pk_n'(W/L)_n = k_p'(W/L)_pkn′(W/L)n=kp′(W/L)p 。因为存在电子速率差异,当两个MOS具有相同的长度的时候,其宽度满足:
WpWn=μnμp\frac{W_p}{W_n} = \frac{\mu_n}{\mu_p} WnWp=μpμn
此时电路具有对称的传递特性,以及相同的负载驱动能力。电压传导特性如图:

其中BC段为MOS的放大器区,因为我们忽略了沟道宽度调制效应,因此在BC端具有无限大的增益。由于电路的对称性,传导中点发生在 VM=VDD/2V_M = V_{DD} / 2VM=VDD/2 的地方,上下边界点为 vO(B)=VDD/2+Vtv_O(B) = V_{DD} / 2 + V_tvO(B)=VDD/2+Vt (QPQ_PQP 进入三极管区) 以及 vO(C)=VDD/2−Vtv_O(C) = V_{DD} / 2 -V_tvO(C)=VDD/2−Vt(QNQ_NQN 进入三极管区)。
为了决定点 VIHV_{IH}VIH 的位置,我们注意到此时 QNQ_NQN 进入三极管区,通过电流相等我们联立方程:
(vI−Vt)vO−12vO2=12(VDD−vI−Vt)2(v_I - V_t)v_O - \frac{1}{2} v_O^2 = \frac{1}{2} (V_{DD} - v_I - V_t)^2 (vI−Vt)vO−21vO2=21(VDD−vI−Vt)2
对 vOv_OvO 求导可得:
(vI−Vt)dvOdvI+vO−vOdvOdvI=−(VDD−vI−Vt)(v_I - V_t) \frac{dv_O}{dv_I} + v_O - v_O \frac{dv_O}{dv_I} = -(V_{DD} - v_I - V_t) (vI−Vt)dvIdvO+vO−vOdvIdvO=−(VDD−vI−Vt)
带入 vI=VIHv_I = V_{IH}vI=VIH 以及 dvOdvI=−1\frac{dv_O}{dv_I} = -1dvIdvO=−1 我们得到:
vO=VIH−VDD2v_O = V_{IH} - \frac{V_{DD}}{2} vO=VIH−2VDD
带入 vI=VIHv_I = V_{IH}vI=VIH 得到 vOv_OvO 带回上式得到:
VIH=18(5VDD−2Vt)V_{IH} = \frac{1}{8} (5V_{DD} - 2V_t) VIH=81(5VDD−2Vt)
同样的做法我们得到:
VIL=18(3VDD+2Vt)V_{IL} = \frac{1}{8} (3V_{DD} + 2V_t) VIL=81(3VDD+2Vt)
可以计算出噪声容限:
NMH=VOH−VIH=18(3VDD+2Vt)NM_H = V_{OH} - V_{IH} = \frac{1}{8}(3V_{DD} + 2V_t) NMH=VOH−VIH=81(3VDD+2Vt)
NML=VIL−VOL=18(3VDD+2Vt)NM_L = V_{IL} - V_{OL} = \frac{1}{8}(3V_{DD} + 2V_t) NML=VIL−VOL=81(3VDD+2Vt)
正如期望的那样,若两个MOS完全一样,则此时传导特性完全对称。
MOS不完全匹配的情况
若我们想使得MOS完全匹配,那么PMOS器件的尺寸就要是NMOS尺寸的3到4倍。这会导致更大的硅区域。一方面浪费了一些硅区域,为器件小型化造成了不利条件,另一方面增加了器件的容性阻抗,增加了CMOS反相器的时间延迟。因此,通常情况下MOS是不完全匹配。
首先我们推导不完全匹配下的M点,因为两个MOS都工作在饱和区,因此带入 vI=vO=VMv_I = v_O = V_MvI=vO=VM 我们得到:
VM=r(VDD−∣Vtp∣)+Vtnr+1V_M = \frac{r(V_{DD} - |V_{tp}|) + V_{tn}}{r + 1} VM=r+1r(VDD−∣Vtp∣)+Vtn
这里:
r=kpkn=μpWpμnWnr = \sqrt{\frac{k_p}{k_n}} = \sqrt{\frac{\mu_p W_p}{\mu_n W_n}} r=knkp=μnWnμpWp
这里我们让 LLL 的长度相同,通常是在指定工艺下的最小精度值,注意到当MOS完全匹配的时候,此时 r=1r = 1r=1 。对于 ∣Vtp∣=Vtn|V_{tp}| = V_{tn}∣Vtp∣=Vtn 并且 r=1r = 1r=1 产生 VM=VDD/2V_M = V_{DD} / 2VM=VDD/2 。对于给定 VDDV_{DD}VDD 和 VtnV_{tn}Vtn 以及 VtpV_{tp}Vtp 则 VMV_MVM 是一个和工艺参数 rrr 相关的函数。例如,在0.18um工艺下:

我们可以总结关键两点:
- VMV_MVM 随着 rrr 的增大而增大。因此,让 kp>knk_p > k_nkp>kn 则 VMV_MVM 向 VDDV_{DD}VDD 偏移,让 kp<knk_p < k_nkp<kn 则 VMV_MVM 向 000 偏移。
- VMV_MVM 并不是与 rrr 强相关,例如让 rrr 降低两倍,则 VMV_MVM 降低0.13V。
第2条告诉我们,若我们能够接受极小的 NMLNM_LNML 减小和 VMV_MVM 点偏移,我们可以不让MOS完全匹配,从而提高器件性能等等。
相关文章:
电子技术——CMOS反相器
电子技术——CMOS反相器 在本节,我们深入学习CMOS反相器。 电路原理 下图是我们要研究的CMOS反相器的原理图: 下图展示了当输入 vIVDDv_I V_{DD}vIVDD 时的 iD−vDSi_D-v_{DS}iD−vDS 曲线: 我们把 QNQ_NQN 当做是驱动源&#x…...
gazebo仿真轨迹规划+跟踪(不在move_base框架下)
以Tianbot为例子,开源代码如下: https://github.com/tianbot/tianbot_mini GitHub - tianbot/abc_swarm: Ant Bee Cooperative Swarm, indicating air-ground cooperation. This repository is for Tianbot Mini and RoboMaster TT swarm kit. 1.在…...
C. Good Subarrays(前缀和)
C. Good Subarrays一、问题二、分析三、代码一、问题 二、分析 这道题目的意思就是给我们一个数组,然后我们从数组中选取一个连续的区间,这个区间满足条件:区间内的元素和等于区间的长度。 对于区间和问题我们先想到的是前缀和的算法。 那…...
关于Facebook Messenger CRM,这里有你想要知道的一切
关于Facebook Messenger CRM,这里有你想要知道的一切!想把Facebook Messenger与你的CRM整合起来吗?这篇博文是为你准备的! 我们将介绍有关获得Facebook Messenger CRM整合的一切信息。然后,我们将解释为什么你需要像SaleSmartly&a…...
ChIP-seq 分析:数据与Peak 基因注释(10)
动动发财的小手,点个赞吧! 1. 数据 今天,我们将继续回顾我们在上一次中研究的 Myc ChIPseq。这包括用于 MEL 和 Ch12 细胞系的 Myc ChIPseq。 可在此处[1]找到 MEL 细胞系中 Myc ChIPseq 的信息和文件可在此处[2]找到 Ch12 细胞系中 Myc ChIP…...
《C++ Primer Plus》第18章:探讨 C++ 新标准(8)
使用大括号括起的初始化列表语法重写下述代码。重写后的代码不应使用数组 ar: class Z200 { private:int j;char ch;double z; public:Z200(int jv, char chv, zv) : j(jv), ch(chv), z(zv) {} ... };double x 8.8; std::string s "What a bracing effect!&q…...
YOLO-V5 系列算法和代码解析(八)—— 模型移植
文章目录工程目标芯片参数查阅官方文档基本流程Python 版工具链安装RKNPU2的编译以及使用方法移植自己训练的模型工程目标 将自己训练的目标检测模型【YOLO-V5s】移植到瑞芯微【3566】芯片平台,使用NPU推理,最终得到正确的结果。整个过程涉及模型量化、…...
js实现复制拷贝的兼容方法
1. 定义复制拷贝的方法 在某个工具类方法中定义该方法,兼容不同浏览器处理 /*** description 拷贝的类方法*/ class CopyClass {// constructor() {}setRange(input) {return new Promise((resolve, reject) > {try {// 创建range对象const range document.c…...
学习 Python 之 Pygame 开发魂斗罗(八)
学习 Python 之 Pygame 开发魂斗罗(八)继续编写魂斗罗1. 创建敌人类2. 增加敌人移动和显示函数3. 敌人开火4. 修改主函数5. 产生敌人6. 使敌人移动继续编写魂斗罗 在上次的博客学习 Python 之 Pygame 开发魂斗罗(七)中࿰…...
Lesson11---分类问题
11.1 逻辑回归 11.1.1 广义线性回归 课程回顾 线性回归:将自变量和因变量之间的关系,用线性模型来表示;根据已知的样本数据,对未来的、或者未知的数据进行估计 11.1.2 逻辑回归 11.1.2.1 分类问题 分类问题:垃圾…...
Python基础学习12——异常
在Python中,会使用“异常”这个十分特殊的对象来管理程序执行期间发生的错误,即报错。本文将介绍一下python基础的处理异常的方法以及一些基本的异常类型。 异常处理方法 try-except代码块 当我们编写程序时,我们可以编写一个try-except代…...
[日常练习]练习17:链表头插法、尾插法练习
[日常练习]练习17:链表头插法、尾插法练习练习17描述输入输出输入示例1输出示例1输入示例2输出示例2代码演示:总结练习17 【日常练习】 链表头插法、尾插法练习 描述 输入3 4 5 6 7 9999一串整数,9999代表结束,通过头插法新建链…...
第十四届蓝桥杯模拟赛(第三期)试题与题解 C++
目录 一、填空题 (一)最小的十六进制(答案:2730) (二)Excel的列(答案:BYT) (三)相等日期(答案:70910) (四)多少种取法(答案:189)…...
关于 “宏“
起源 宏 Macro"这个词源于希腊语 “makros”,意为“大的,长的” 延伸使用 随后用于计算机领域是,在汇编语言时用于描述一大堆的汇编指令。 只要用宏指令,就是直接用的一大堆的汇编指令(有点函数的味道…...
1.2 CSS标签选择器,类选择器
CSS选择器: 根据不同的需求选出不同的标签,进行美化装饰 1. 标签选择器 标签选择器(元素选择器):用 HTML标签名作为选择器,按标签名称进行分类,为页面某一类标签指定统一的CSS样式 作用: 可以把某一类标签全部选中&…...
【Linux】进程等待 | 详解 wait/waitpid 的 status 参数
🤣 爆笑教程 👉 《看表情包学Linux》👈 猛戳订阅 🔥 💭 写在前面:在上一章中我们讲解了进程创建与进程终止,本章我们开始讲解进程等待。进程等待这部分知识相较于前面还是较为复杂的࿰…...
OpenAI眼中的无线调优策略
问:无线调优策略该怎么优化无线调优是指对无线网络的各种参数进行优化,以提高网络性能和用户体验。以下是几个无线调优策略:频谱分配:通过优化频谱的分配,可以提高网络的容量和覆盖范围。在频谱分配时,需要…...
DataX入门
目录 1. DataX介绍 2. DataX支持的常用数据源类型 3. 设计理念 4. DataX框架设计 4.1. Reader 4.2. Writer 4.3. Framework 5. DataX的运行流程 6. DataX与Sqoop对比 7. 部署 8. 配置详解 9. 案例 同步MySql到HDFS 9.1. 整体结构 9.2. mySqlReader 9.2.1. …...
第二章SpringBoot基础学习
文章目录SpringBoot依赖管理特性依赖管理开发导入starter场景启动器SpringBoot自动配置特性自动配好Tomcat自动配好SpringMVC默认的包结构各种配置拥有默认值按需加载所有自动配置项SpringBoot注解底层注解ConfigurationImport导入组件Conditional条件装配ImportResource导入Sp…...
B - Build Roads (最小生成树 + 打表)
https://vjudge.net/problem/Gym-103118B/origin 在猫的国度里,有n个城市。猫国国王想要修n -1条路来连接所有的城市。第i市有一家ai经验价值的建筑公司。要在第i市和第j市之间修建公路,两个城市的建筑公司需要相互合作。但是,在修路的过程中…...
前端倒计时误差!
提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...
使用分级同态加密防御梯度泄漏
抽象 联邦学习 (FL) 支持跨分布式客户端进行协作模型训练,而无需共享原始数据,这使其成为在互联和自动驾驶汽车 (CAV) 等领域保护隐私的机器学习的一种很有前途的方法。然而,最近的研究表明&…...
【CSS position 属性】static、relative、fixed、absolute 、sticky详细介绍,多层嵌套定位示例
文章目录 ★ position 的五种类型及基本用法 ★ 一、position 属性概述 二、position 的五种类型详解(初学者版) 1. static(默认值) 2. relative(相对定位) 3. absolute(绝对定位) 4. fixed(固定定位) 5. sticky(粘性定位) 三、定位元素的层级关系(z-i…...
【单片机期末】单片机系统设计
主要内容:系统状态机,系统时基,系统需求分析,系统构建,系统状态流图 一、题目要求 二、绘制系统状态流图 题目:根据上述描述绘制系统状态流图,注明状态转移条件及方向。 三、利用定时器产生时…...
UR 协作机器人「三剑客」:精密轻量担当(UR7e)、全能协作主力(UR12e)、重型任务专家(UR15)
UR协作机器人正以其卓越性能在现代制造业自动化中扮演重要角色。UR7e、UR12e和UR15通过创新技术和精准设计满足了不同行业的多样化需求。其中,UR15以其速度、精度及人工智能准备能力成为自动化领域的重要突破。UR7e和UR12e则在负载规格和市场定位上不断优化…...
Python基于历史模拟方法实现投资组合风险管理的VaR与ES模型项目实战
说明:这是一个机器学习实战项目(附带数据代码文档),如需数据代码文档可以直接到文章最后关注获取。 1.项目背景 在金融市场日益复杂和波动加剧的背景下,风险管理成为金融机构和个人投资者关注的核心议题之一。VaR&…...
Git常用命令完全指南:从入门到精通
Git常用命令完全指南:从入门到精通 一、基础配置命令 1. 用户信息配置 # 设置全局用户名 git config --global user.name "你的名字"# 设置全局邮箱 git config --global user.email "你的邮箱example.com"# 查看所有配置 git config --list…...
Chrome 浏览器前端与客户端双向通信实战
Chrome 前端(即页面 JS / Web UI)与客户端(C 后端)的交互机制,是 Chromium 架构中非常核心的一环。下面我将按常见场景,从通道、流程、技术栈几个角度做一套完整的分析,特别适合你这种在分析和改…...
LCTF液晶可调谐滤波器在多光谱相机捕捉无人机目标检测中的作用
中达瑞和自2005年成立以来,一直在光谱成像领域深度钻研和发展,始终致力于研发高性能、高可靠性的光谱成像相机,为科研院校提供更优的产品和服务。在《低空背景下无人机目标的光谱特征研究及目标检测应用》这篇论文中提到中达瑞和 LCTF 作为多…...
HTML前端开发:JavaScript 获取元素方法详解
作为前端开发者,高效获取 DOM 元素是必备技能。以下是 JS 中核心的获取元素方法,分为两大系列: 一、getElementBy... 系列 传统方法,直接通过 DOM 接口访问,返回动态集合(元素变化会实时更新)。…...
