【gmid】设计一个CS放大器

news2025/1/12 18:47:42

1.电路原理图 & 电路指标

设计指标:

  • 负载电容CL=2 pF
  • 增益带宽积GBW=100 MHz
  • 增益 Av=10
  • gm/Id=10

 

2. 根据电路指标进行 手算

2.1 确定 gm

GBW=\frac{g_m}{2\pi C_L} \Rightarrow g_m=2\pi GBW=2\pi *(2*10^{-12})*(100*10^6)=1.256 mS

2.2 确定负载电阻 RD

|A_V|=g_mR_D\Rightarrow R_D=\frac{|A_V|}{g_m}=\frac{10}{1.256mS}=7.96 k\Omega

2.3 确定 Id

\frac{g_m}{I_D}=10\Rightarrow I_D=\frac{g_m}{10}=125.6\mu A

Vov > 150mVgm/id  < 10MOS管处于 强反型区
Vov < 0gm/id  较大MOS管处于 亚阈值区
0 < Vov < 150 mVgm/id  < 10MOS管处于 强反型区
  • Vov:过驱动电压,(Vgs-Vth)
  • gm/id一般选10

3. gmid设计 

  1. 确定gm
  2. 选择沟道长度 L
    1. L小,fT(截止频率)高
    2. L大,gmro(本征增益)大
  3. 选择合适的gm/id值(需要经验选择)
    1. gm/id大,低功耗,低Vdsat,高摆幅
    2. gm/id小,高ft,噪声性能好
  4. 确定Id
  5. Id/W确定W

4. virtuoso 操作

4.1 dc扫描gmid曲线

需要扫描3条曲线

  • gm ro ~gmid图:使用|A_V|=g_mR_D这个公式,需要在g_mr_{o} >>g_m R_D的情况下才可以,使用这个图,确定MOS的沟道长度L.(ro=rds=1/gds,沟道电阻)
  • Vgs ~gmid图:根据确定的L,读出Vgs值
  • Id / W ~ gmid图:确定宽度W

4.1.1 dc扫描原理图

 

4.1.2 变量设置

  •  L,为之后扫参变量
  • vds为电源电压

4.1.3 dc分析

 设置,vgs进行扫参

4.1.4 L扫参

 4.1.5 绘制图像

4.1.5.1 绘制gmro~ gmid图

waveVsWave(?x gmid ?y OS("/NM0" "self_gain")))

 如果MOS没有self_gain参数选项,可以使用 gm/gds来计算出self_gain.

4.1.5.2 绘制vgs~ gmid图

waveVsWave(?x gmid ?y OS("/NM0" "vgs"))

 

4.1.5.2 绘制id / W ~ gmid图

waveVsWave(?x gmid ?y (id / VAR("W")))

4.1.6 扫参结果图

4.1.6.1 gmro ~ gmid

4.1.6.2 vgs ~ gmid

 

4.1.6.3 id/W  ~gmid

4.2 根据之前计算结果读出参数

4.2.1 确定沟道长度 L

如图所示,设计指标确定 gmid=10,要确保 gm*Rd <<gm*ro,则gmro数量级比gmRd大

故选择,L为1.3 um,比AV=10大一个数量级。

 

 4.2.2 读出 vgs

gmid=10; L=1.38u,则可以读出vgs=587.757mV

4.2.3 确定W

gmid=10; L=1.38u,则可以读出id/W=3.61089

由之前手算得出,Id=125.6 uA

则 W=Id/3.61089=125.6 u/3.61089=34.78 u

4.3 仿真设置

4.3.1 dc设置

4.3.2 ac设置

4.3.3 output设置

(VF("/vout") / VF("/vin"))

gainBwProd((VF("/vout") / VF("/vin")))

4.4 仿真结果

GBW=93MHz

 AV=7.9

与设计略有误差。

4.5 可以通过提高VDD来使得性能与设计相符

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1959455.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

深入解析 Go 语言 GMP 模型:并发编程的核心机制

前言 本章是Go并发编程的起始篇章&#xff0c;在未来几篇文章中我们会围绕Go并发编程进行理论和实战的学习&#xff0c;欢迎关注我哦&#xff01; 本章主要以介绍GMP模型为主&#xff0c;偏向于面试和八股&#xff0c;目的是让小伙伴们注重于知识本身&#xff0c;面向面试&am…

昇思25天学习打卡营第20天|CV-ResNet50图像分类

打卡 目录 打卡 图像分类 ResNet网络介绍 数据集准备与加载 可视化部分数据集 残差网络构建 Building Block 结构 代码实现 Bottleneck结构 代码实现 构建ResNet50网络 代码定义 模型训练与评估 可视化模型预测 重点&#xff1a;通过网络层数加深&#xff0c;感知…

Windows系统使用Docker搭建Focalboard项目管理工具详细教程

目录 前言 1. 使用Docker本地部署Focalboard 1.1 在Windows中安装 Docker 1.2 使用Docker部署Focalboard 2. 安装Cpolar内网穿透工具 3. 实现公网访问Focalboard 4. 固定Focalboard公网地址 前言 作者简介&#xff1a; 懒大王敲代码&#xff0c;计算机专业应届生 今天给…

TCP为什么需要四次挥手?

tcp为什么需要四次挥手&#xff1f; 答案有两个&#xff1a; 1.将发送fin包的权限交给被动断开发的应用层去处理&#xff0c;也就是让程序员处理 2.接第一个答案&#xff0c;应用层有了发送fin的权限&#xff0c;可以在发送fin前继续向对端发送消息 为了搞清楚这个问题&…

【java】力扣 反转字符串中的单词

目录 题目描述题目描述思路代码 题目描述 151.反转字符串中的单词 题目描述 思路 主要是利用快慢指针和字符串的截取 还要了解去掉首尾空格的函数是trim 那s"the sky is blue"举例 这个例子是没有首尾空格的&#xff0c;以防万一&#xff0c;我们不管有没有&#…

第06课 Scratch入门篇:侏罗纪公园

侏罗纪公园 入门篇适合新手&#xff0c;如您已经学过&#xff0c;可以忽略本节课&#xff01; 一、故事背景&#xff1a; 在遥远的过去&#xff0c;有一个充满神秘与惊奇的时代——侏罗纪。那是一个恐龙称霸的时代&#xff0c;各种巨大的生物在这片古老的土地上留下了它们的足…

APT 安装软件详细教程

文章目录 APT 安装软件详细教程APT 概述APT 的基本命令APT 命令详解安装软件包更新和升级软件包删除软件包搜索和查找软件包管理软件包依赖清理软件包缓存APT 配置软件源配置自定义软件源常见问题及解决方案解决软件包依赖问题处理软件源错误其他常见问题使用 APT 的最佳实践总…

【设计模式】工厂模式详解

1.简介 工厂模式是一种创建型设计模式&#xff0c;通过提供一个接口或抽象类来创建对象&#xff0c;而不是直接实例化对象。工厂模式的主要思想是将对象的创建与使用分离&#xff0c;使得创建对象的过程更加灵活和可扩展。 工厂模式主要包括以下角色&#xff1a; 抽象工厂&a…

java 字符串a+b到底生成几个对象?

我们知道&#xff0c;java内存模型是堆栈元空间&#xff08;也叫方法区&#xff0c;它是在内存中的&#xff09;。 字符串常量池保存在堆里面。为了节约空间&#xff0c;如果常量池里面有&#xff0c;就不需要创建对象&#xff0c;只需要返回常量池里面的引用&#xff1b;如果…

c#实际开发长到的知识

个人建议先把rotion的库导入进来再操作,具体需要导入的库有,helper库包含了modbus通讯封装好的模块,而mvvm则可以用来做设计mvvm模块,你可以使用里面封装好的实现方法,用起来特别简单更容易实现其中的操作,但是我担心那天被卡脖子了啊啊啊,要是我罗工把库下架了那不是死…

圈子论坛小程序搭建,文章源码链接上传功能社交需求带支付功能

论坛小程序技术栈 前端&#xff1a;uni-app,vue3 后端&#xff1a;PHP,thinkphp8 数据库设计&#xff1a; 设计数据库结构&#xff0c;存储用户数据、帖子数据等。 数据库系统&#xff1a;MySQL5.7 功能开发&#xff1a; 明确小程序的功能需求&#xff1a;浏览、发帖、评…

ChemLLM:化学领域的大模型

人工智能咨询培训老师叶梓 转载标明出处 在化学这一特定学科的应用上&#xff0c;一直缺乏专门的对话模型。化学数据和科学知识通常存储在结构化的数据库中&#xff0c;这给直接使用这些数据训练语言模型带来了挑战。为了解决这一问题&#xff0c;来自上海人工智能实验室的研究…

RabbitMQ高级篇(如何保证消息的可靠性、如何确保业务的幂等性、延迟消息的概念、延迟消息的应用)

文章目录 1. 消息丢失的情况2. 生产者的可靠性2.1 生产者重连2.2 生产者确认2.3 生产者确认机制的代码实现2.4 如何看待和处理生产者的确认信息 3. 消息代理&#xff08;RabbitMQ&#xff09;的可靠性3.1 数据持久化3.2 LazyQueue&#xff08; 3.12 版本后所有队列都是 Lazy Qu…

《七日世界》游玩感想

《七日世界》是一款最近新出的引人入胜的游戏&#xff0c;它以独特的故事情节和精美的画面设计吸引了许多玩家的关注。在这款游戏中&#xff0c;玩家需要在七天的时间里探索一个神秘的幽灵世界&#xff0c;解开其中的谜题&#xff0c;救出被困的灵魂。 首先&#xff0c;让我来聊…

1996-2023年上市公司绿色并购数据(含原始数据+处理代码+计算结果)

1996-2023年上市公司绿色并购数据&#xff08;含原始数据处理代码计算结果&#xff09; 1、时间&#xff1a;1996-2023年 2、指标&#xff1a;股票代码、首次公告日期、年份、买方、卖方、标的方、交易概述、标的物名称、标的物说明、买方经营范围、卖方经营范围、标的方经营…

28.jdk源码阅读之CopyOnWriteArraySet

1. 写在前面 CopyOnWriteArraySet 是 Java 中一个线程安全的 Set 实现&#xff0c;它的底层是基于 CopyOnWriteArrayList 实现的。这种数据结构在并发编程中非常有用&#xff0c;因为它在写操作时会创建一个新的数组副本&#xff0c;从而避免了并发修改问题。不知道大家对它的底…

angular入门基础教程(五)父子组件的数据通信

组件之间的通信是我们业务开发中少不了的,先了解下父子组件的通信 父组件传数据给子组件 前面&#xff0c;我们学会会动态属性的绑定&#xff0c;所以在父组件中给子组件绑定属性&#xff0c;在子组件中就可以使用这个属性了。 父组件中声明然后赋值 export class AppCompon…

C语言 | Leetcode C语言题解之第304题二维区域和检索-矩阵不可变

题目&#xff1a; 题解&#xff1a; typedef struct {int** sums;int sumsSize; } NumMatrix;NumMatrix* numMatrixCreate(int** matrix, int matrixSize, int* matrixColSize) {NumMatrix* ret malloc(sizeof(NumMatrix));ret->sums malloc(sizeof(int*) * (matrixSize …

图论:721. 账户合并(并查集扩展)

文章目录 1、题目链接2、题目描述3、并查集思路3.1、按秩合并3.2、常用并查集代码 4、题目解析 1、题目链接 721. 账户合并 2、题目描述 3、并查集思路 并查集可以在很短的时间内合并不同的集合。它的思想为&#xff0c;一开始将不同单元单独作为一个结点&#xff0c;然后按…