gmid方法设计五管OTA二级远放

2023-12-06 23:28

本文主要是介绍gmid方法设计五管OTA二级远放,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

首先给出第一级是OTA,第二级是CS的二级运放电路图:
在这里插入图片描述
gmid的设计方法可以根据GBW、Av、CL来进行电路设计,因此在设计电路之前需要以上的参数要求。

1、为了满足电路的相位裕度至少60°,需要对GBW、主极点、零点进行分析。
首先给出其表达式:

GBW=gmin/Cc
p1=-gm1/CL
在这里插入图片描述

p1为主极点,实际位置在第一级输出点;
p2为次极点,实际位置在第二级输出;
z为零点,实际位置在密勒补偿支路上,零点的产生是由于有两条前馈通路。

按我们理想的设计方法进行增益、相位设计时,在单位增益带宽内应该只有一个极点,因此可以近似为单极点系统。因此考虑如下的相位图:
在这里插入图片描述
主极点贡献90°相位是我们不能控制的,只能尽量将第二极点、零点频率尽量增大来提高相位裕度。

以相位裕度PM60°为指标,可以设计为:
第二极点频率=3GBW;
零点频率=6
GBW;
这样大约有62°相位裕度。
根据 零点频率是第二极点频率二倍,我们可以计算出第一级输入管跨导gm1是第二级输入管跨导gm2的6倍;

gm1=6*gm2

也能够计算出

CL=2Cc

再根据主极点频率公式可以计算出gm1的数值,便可以计算出gm2的数值。

2、下面选定管子长度:

输入管的gmid可以选取10~12,我选择10,这个取值和FOM有关,后续学习后会补充。

确定gmid=10后,也可以计算出两级运放每一级运放的工作电流Id1和Id2。

根据电路图计算二级运放的增益计算公式为:

Av=gm1,2*(ro1,2//,ro3,4)*gm7 *(ro7//ro6)

这里假设并联的电阻阻值近似相等,可以算出

Av=(self_gain(第一级)self_gain(第二级))/4

此时根据NMOS和PMOS的gmid_selfgain曲线进行L的选择,这里给出gmid=10时的曲线。

NMOS↓
在这里插入图片描述PMOS↓
在这里插入图片描述对NMOS和PMOS分别选择合适的L,使其self_gain的乘积满足上边提到的等式,比要求高一些稳妥。

确定L后根据L进行W的确定,选择扫描gmid_id曲线,w设定为1u,这样方便后续对w的确定。也可以扫描gmid_id/w曲线,根据电流去计算W。将W设定为1u其实就是将分母消除掉了。
下面给出w=1u时的gmid与id曲线:

NMOS↓
在这里插入图片描述PMOS↓
在这里插入图片描述根据电流选择w,因为id正相关与w,1u的w流过的电流为扫描图中的数据,则多少u才能流过你想要的电流进行简单计算就可以。这样输入管的W、L就都确定下来了。

下面进行电流镜管子尺寸的设置:
电流镜在电路图中为M5,M6,实际中还需要多一个管子以构成电流镜。这几个管子的gmid都选择8,这样噪声比较小一些。
L尽量选大一些以避免沟长调制效应。W的选取与刚刚讲过的输入管w选定方法一致。
下面给出w=2u的gmid与id曲线。

PMOS↓
在这里插入图片描述
NMOS↓
在这里插入图片描述

这样电流镜的W和L也就确定下来。

下面确定第一级OTA的电流源负载管的W和L,由于其与第二级CS的Vgs一致,因此需要保证和M7的gmid和L一致才能保证两级都正常运作在饱和状态,因此仅需要复制M7的L,并根据gmid和id的曲线选定W即可。

在这里插入图片描述这样所有的MOS管尺寸就都确定了。

3、最后补充一个零点消除电阻
补偿电阻的阻值计算公式:

在这里插入图片描述

最终在cadence中的电路图为:
在这里插入图片描述
在这里插入图片描述
最终我设计了一个增益90dB,GBW=5.8MHz,相位裕度接近80°

这篇关于gmid方法设计五管OTA二级远放的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/463730

相关文章

Python判断for循环最后一次的6种方法

《Python判断for循环最后一次的6种方法》在Python中,通常我们不会直接判断for循环是否正在执行最后一次迭代,因为Python的for循环是基于可迭代对象的,它不知道也不关心迭代的内部状态... 目录1.使用enuhttp://www.chinasem.cnmerate()和len()来判断for

Java循环创建对象内存溢出的解决方法

《Java循环创建对象内存溢出的解决方法》在Java中,如果在循环中不当地创建大量对象而不及时释放内存,很容易导致内存溢出(OutOfMemoryError),所以本文给大家介绍了Java循环创建对象... 目录问题1. 解决方案2. 示例代码2.1 原始版本(可能导致内存溢出)2.2 修改后的版本问题在

四种Flutter子页面向父组件传递数据的方法介绍

《四种Flutter子页面向父组件传递数据的方法介绍》在Flutter中,如果父组件需要调用子组件的方法,可以通过常用的四种方式实现,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录方法 1:使用 GlobalKey 和 State 调用子组件方法方法 2:通过回调函数(Callb

一文详解Python中数据清洗与处理的常用方法

《一文详解Python中数据清洗与处理的常用方法》在数据处理与分析过程中,缺失值、重复值、异常值等问题是常见的挑战,本文总结了多种数据清洗与处理方法,文中的示例代码简洁易懂,有需要的小伙伴可以参考下... 目录缺失值处理重复值处理异常值处理数据类型转换文本清洗数据分组统计数据分箱数据标准化在数据处理与分析过

Java中Object类的常用方法小结

《Java中Object类的常用方法小结》JavaObject类是所有类的父类,位于java.lang包中,本文为大家整理了一些Object类的常用方法,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. public boolean equals(Object obj)2. public int ha

golang1.23版本之前 Timer Reset方法无法正确使用

《golang1.23版本之前TimerReset方法无法正确使用》在Go1.23之前,使用`time.Reset`函数时需要先调用`Stop`并明确从timer的channel中抽取出东西,以避... 目录golang1.23 之前 Reset ​到底有什么问题golang1.23 之前到底应该如何正确的

Vue项目中Element UI组件未注册的问题原因及解决方法

《Vue项目中ElementUI组件未注册的问题原因及解决方法》在Vue项目中使用ElementUI组件库时,开发者可能会遇到一些常见问题,例如组件未正确注册导致的警告或错误,本文将详细探讨这些问题... 目录引言一、问题背景1.1 错误信息分析1.2 问题原因二、解决方法2.1 全局引入 Element

Python调用另一个py文件并传递参数常见的方法及其应用场景

《Python调用另一个py文件并传递参数常见的方法及其应用场景》:本文主要介绍在Python中调用另一个py文件并传递参数的几种常见方法,包括使用import语句、exec函数、subproce... 目录前言1. 使用import语句1.1 基本用法1.2 导入特定函数1.3 处理文件路径2. 使用ex

Oracle查询优化之高效实现仅查询前10条记录的方法与实践

《Oracle查询优化之高效实现仅查询前10条记录的方法与实践》:本文主要介绍Oracle查询优化之高效实现仅查询前10条记录的相关资料,包括使用ROWNUM、ROW_NUMBER()函数、FET... 目录1. 使用 ROWNUM 查询2. 使用 ROW_NUMBER() 函数3. 使用 FETCH FI

Git中恢复已删除分支的几种方法

《Git中恢复已删除分支的几种方法》:本文主要介绍在Git中恢复已删除分支的几种方法,包括查找提交记录、恢复分支、推送恢复的分支等步骤,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录1. 恢复本地删除的分支场景方法2. 恢复远程删除的分支场景方法3. 恢复未推送的本地删除分支场景方法4. 恢复