gm/ID设计方法学习笔记(一)
前言:为什么需要gm/id
(一)主流设计方法往往侧重于强反型区(过驱>0.2V),低功耗设计则侧重于弱反型区(<0),但现在缺乏对中反型区的简单和准确的手算模型。
1.对于弱反型,有最低的功耗但速度慢;
2.中反型区:功耗速度恰当;
3.强反型区:速度较快但功耗和摆幅较差。
(二)现代集成电路制造中使用的制程十分先进,短沟道效应等非理想效应使得先进工艺下MOSFET器件的I-V特性无法用Square-law很好的拟合。
(三)Square-law仅仅反应了器件沟道强反型时的理想电子漂移电流模型,对于弱反型等情况无法表示。
(四)foundry给出的工艺库中几乎无法查找到所需参数。无法通过手算分析电路,设计人员容易陷入盲目调节管子的尺寸,调着调着不知怎地“恰好”满足了设计的需求,但往往给出的并不是最优解,而且也缺少标准化的设计方法。gm/id方法就是利用管子被做出来后(或者依据pdk被设计后)固有的参数,与我们所需要的电流、跨导、栅长宽构成联系,通过图表的方式呈现出来供我们参考。相比依据推算的理想公式,自然要准确的多。
一、基础公式理解
(,过驱动电压
)
由: ,
(饱和区电流公式,并且忽略了沟道长度调制效应)
可得:
理解:
(1) 可以理解为单位电流下的
,这里可以定义为“
效率”。即在分配相同的电流
时,当管子的“
效率”
越大 ,所得到的
越大。
(2)从 可以分析出,对于不同
值的管子,达到相同的
所需要的过驱动电压
不一样。而
固定,电流
仅由过驱动电压
有关,过驱动电压越大,电流越大。
二、gm/ID的取值讨论
通过对一个管子的 的合理取值,来达到增益与带宽的折中(增益带宽积GBW确定),同时兼顾噪声的影响。
对于一个固定工艺和固定参数的管子:
1.增益gain
gm/ID值越大,增益越大;
栅长L值越大,增益越大。
2.带宽
gm/ID值越小,带宽越大;
栅长L值越小,带宽越大。
3.噪声
此处只考虑管子自身最大的噪声源——热噪声,与频率有关的闪烁噪声暂不考虑。
- MOS作为放大器,噪声在输入端,设计时要使得
稍大(gm/ID稍大)
- MOS作为电流镜,噪声在输出端,设计时要使得
稍小(gm/ID稍小)
三、依据gm/ID设计管子尺寸(W、L)
电流密度 :单位尺寸W下的电流。
在不同的gm/ID取值下,有着不同的电流密度 。同时管子的栅长L对电流密度
也有一定影响。
设计管子尺寸思路:
(1)选定合适的gm/ID的数值;
(2)选定L的数值;
(3)即可得到唯一确定的ID/W的数值;
(4)计算得到W的数值。
四、设计流程
1.计算gm的数值(一般为输入管)
从给定的增益带宽积GBW和所需要的负载电容入手
(需要考虑电路本身的寄生参数,所以计算时取1.2倍的
。)
2.带宽和增益折中后,选定gm/ID和L,得到ID
若所在支路电流是确定的,可以直接跳到步骤3。
3.在曲线里得到ID/W的数值
4.得到W
5.仿真验证,可跳到步骤2重新微调
五、曲线仿真
本文使用的工艺库为smic13mmrf_1233。

对变量赋初值。其中,W对仿真结果稍微有点影响,后期根据实际得出的W,微调后重新仿真。

设置dc仿真,变量为vgs:

打开Calculator,找到waveVsWave来绘制波形:

选择 waveVsWave后,点击Calculator中上方的os按钮,之后点击原理图中的晶体管,在小窗口选择gmoverid。

将Calculator中缓冲区Buffer里显示的公式复制粘贴到波形绘制区的x轴位置:

再将“self_gain”添加进Y轴。此处不需要再次点击晶体管了,只需要在小窗口中的list里直接选择即可:

部分工艺库没有self_gain,就手动输入下面公式:
OS("/M0","gm")/OS("/M0","gds")
点击Apply,再点小齿轮将生成的公式送回到仿真环境中。

还需要id的数值,添加进去之后,手动输入除以变量W,就是前面提到的电流密度。

另外,我们也可以扫描出过驱动电压Vov和沟道长度调制系数 λ,可以直接使用以下代码。在一些文献中也提到用VGS参数。
waveVsWave(?x OS("/M0" "gmoverid") ?y (OS("/M0" "vgs") - OS("/M0" "vth")))
waveVsWave(?x OS("/M0" "gmoverid") ?y (OS("/M0" "gds") / OS("/M0" "id")))
waveVsWave(?x OS("/M0" "gmoverid") ?y OS("/M0" "vgs"))
设置参数扫描,将栅长L从500n扫描至2000n 。

右键单击id/w-gmoverid图像的Y轴,将其改成对数显示。

修改之后如下所示,更加直观。

快捷键V可添加一个Marker。
后话:
声明:本文仅供个人学习交流,无任何商业行为。
参考文章链接
链接一:模拟CMOS集成电路设计中的gm/id设计方法及用Cadence Virtuoso IC617仿真有关参数曲线_virtuoso 算斜率-CSDN博客
链接二:
gm/ID设计方法学习与仿真_gmid-CSDN博客
相关文章:
gm/ID设计方法学习笔记(一)
前言:为什么需要gm/id (一)主流设计方法往往侧重于强反型区(过驱>0.2V),低功耗设计则侧重于弱反型区(<0),但现在缺乏对中反型区的简单和准确的手算模型。 1.对于…...
高度细化的SAGA模式实现:基于Spring Boot与RabbitMQ的跨服务事务
场景与技术栈 场景:电商系统中的订单创建流程,涉及订单服务(Order Service)、库存服务(Inventory Service)、支付服务(Payment Service)。 技术栈: Java 11 Spring Bo…...
Vue工程化开发
Vue工程化开发 一、工程化开发和脚手架 1.开发Vue的两种方式 核心包传统开发模式:基于html / css / js 文件,直接引入核心包,开发 Vue。工程化开发模式:基于构建工具(例如:webpack)的环境中开…...
Ray_Tracing_The_Next_Week下
5image Texture Mapping 图像纹理映射 我们之前虽然在交点信息新增了uv属性,但其实并没有使用,而是通过p交点笛卡尔坐标确定瓷砖纹理或者大理石噪声纹理的值 现在通过uv坐标读取图片,通过std_image库stbi_load(path)…...
ES索引生命周期管理
基于如何 定时删除ES索引过期数据 而引发的一系列关于ES索引生命周期管理ILM(Index Lifecycle Management)的学习 快速上手 :定时删除ES索引中的过期数据 1. ILM解决什么问题? ES从6.7版本引入ILM,通过ILM可以解决哪些问题呢? 自动新建…...
Oracle数据库体系结构基础
关于Oracle体系结构 基于Oracle11g体系结构 目标: 了解Oracle体系结构掌握逻辑存储结构掌握物理存储结构熟悉Oracle服务器结构熟悉常用的数据字典 Oracle数据库管理中的重要的三个概念 实例(instance):实例是指一组Oracle后台进程以及在服务器中分配…...
QT学习笔记4.5(文件、参数文件)
QT学习笔记4.5(文件、参数文件) 1.保存配置参数 1.使用QSettings保存到注册表,ini文件 2.文件存储:使用 QFile 和其他类将参数保存到文本文件、二进制文件、XMLWENJIAN、JSON 文件等。 文本文件:以简单的键值对格式…...
服务器虚拟化的详细学习要点
服务器虚拟化的详细学习要点可以归纳为以下几个方面: 1. 基本概念与原理 定义与原理:了解服务器虚拟化是一种将物理服务器资源转化为虚拟服务器资源的技术,允许在一台物理服务器上运行多个虚拟服务器。 虚拟化层次:理解虚拟化的不同层次,如裸机虚拟化(Type 1)和托管虚…...
创建一个Java Web API项目
创建一个Java Web API涉及多个步骤和技术栈,包括项目设置、依赖管理、数据访问层实现、业务逻辑实现、控制层开发以及测试和部署。在这篇详解中,我将带领你通过一个完整的Java Web API实现流程,采用Spring Boot和MyBatis-Plus作为主要技术工具…...
对称加密算法的使用Java和C#
1. JAVA中的使用 1.1.原生使用 Main函数代码 import symmetric_encryption.AESExample; import symmetric_encryption.BlowfishExample; import symmetric_encryption.DESExample; import symmetric_encryption.TripleDESExample; public class App { public static…...
10款好用的开源 HarmonyOS 工具库
大家好,我是 V 哥,今天给大家分享10款好用的 HarmonyOS的工具库,在开发鸿蒙应用时可以用下,好用的工具可以简化代码,让你写出优雅的应用来。废话不多说,马上开整。 1. efTool efTool是一个功能丰富且易用…...
ubuntu22.04中备份Iptables的设置
在 Ubuntu 22.04 中备份 iptables 的设置,您可以采用以下几种方法: 使用 iptables-save 命令: 您可以使用 iptables-save 命令将当前的 iptables 规则保存到文件中。例如,要将规则保存到 /etc/iptables/rules.v4 文件中࿰…...
(PyTorch) 深度学习框架-介绍篇
前言 在当今科技飞速发展的时代,人工智能尤其是深度学习领域正以惊人的速度改变着我们的世界。从图像识别、语音处理到自然语言处理,深度学习技术在各个领域都取得了显著的成就,为解决复杂的现实问题提供了强大的工具和方法。 PyTorch 是一个…...
若依从redis中获取用户列表
因为若依放入用户的时候,会在减值中添加随机串,所以用户的key会在redis中变成: login_tokens:6af07052-b76d-44dd-a296-1335af03b2a6 这样的样子。 如果用 Set<Object> items redisService.redisTemplate.keys("login_tokens&…...
文件上传之%00截断(00截断)以及pikachu靶场
pikachu的文件上传和upload-lab的文件上传 目录 mime type类型 getimagesize 第12关%00截断, 第13关0x00截断 差不多了,今天先学文件上传白名单,在网上看了资料,差不多看懂了,但是还有几个地方需要实验一下&#…...
Chainlit集成LlamaIndex并使用通义千问实现和数据库交互的网页对话应用(text2sql)
前言 我在之前的几篇文章中写了如何使用Chainlit集成Langchain并使用通义千问实现和数据库交互的网页对话应用,但是发现Langchain的几种和数据库交互的组件都不够让我满意,虽然已经满足了大部分场景的需求,但是问题还是很多,比如…...
计组复习笔记
计组笔记 汇编部分 通用寄存器(General Registers): AX (Accumulator): 用于累加运算,也是乘法和除法的默认寄存器。BX (Base Register): 可以用作一个基址寄存器,通常用于存放数据的基地址。CX (Counter Register): 通常用于循环…...
62. 环境贴图2
环境贴图作用测试 实际生活中光源照射到一个物体上,这个物体反射出去的光线也会影响其他的物体,环境贴图就是用一种简单方式,近似模拟一个物体周边环境对物体表面的影响。 测试:对于PBR材质,如果threejs三维场景不添…...
MATLAB中数据导入与导出的全面指南
在MATLAB中,数据的导入与导出是数据处理工作流中的两个基本步骤。导入是将外部数据加载到MATLAB工作区的过程,而导出则是将工作区中的数据保存到外部文件中。这两个步骤对于数据分析、可视化和结果共享至关重要。本文将详细介绍如何在MATLAB中进行数据的…...
Jenkins从入门到精通,构建高效自动化流程
目录 一、Jenkins简介1、Jenkins的历史与发展(1)Jenkins的起源(2)Jenkins的发展(3)Jenkins的社区与生态系统(4)Jenkins在我国的发展 2、Jenkins的核心功能3、Jenkins的应用场景 二、…...
铭豹扩展坞 USB转网口 突然无法识别解决方法
当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…...
基于ASP.NET+ SQL Server实现(Web)医院信息管理系统
医院信息管理系统 1. 课程设计内容 在 visual studio 2017 平台上,开发一个“医院信息管理系统”Web 程序。 2. 课程设计目的 综合运用 c#.net 知识,在 vs 2017 平台上,进行 ASP.NET 应用程序和简易网站的开发;初步熟悉开发一…...
Opencv中的addweighted函数
一.addweighted函数作用 addweighted()是OpenCV库中用于图像处理的函数,主要功能是将两个输入图像(尺寸和类型相同)按照指定的权重进行加权叠加(图像融合),并添加一个标量值&#x…...
将对透视变换后的图像使用Otsu进行阈值化,来分离黑色和白色像素。这句话中的Otsu是什么意思?
Otsu 是一种自动阈值化方法,用于将图像分割为前景和背景。它通过最小化图像的类内方差或等价地最大化类间方差来选择最佳阈值。这种方法特别适用于图像的二值化处理,能够自动确定一个阈值,将图像中的像素分为黑色和白色两类。 Otsu 方法的原…...
站群服务器的应用场景都有哪些?
站群服务器主要是为了多个网站的托管和管理所设计的,可以通过集中管理和高效资源的分配,来支持多个独立的网站同时运行,让每一个网站都可以分配到独立的IP地址,避免出现IP关联的风险,用户还可以通过控制面板进行管理功…...
iview框架主题色的应用
1.下载 less要使用3.0.0以下的版本 npm install less2.7.3 npm install less-loader4.0.52./src/config/theme.js文件 module.exports {yellow: {theme-color: #FDCE04},blue: {theme-color: #547CE7} }在sass中使用theme配置的颜色主题,无需引入,直接可…...
[大语言模型]在个人电脑上部署ollama 并进行管理,最后配置AI程序开发助手.
ollama官网: 下载 https://ollama.com/ 安装 查看可以使用的模型 https://ollama.com/search 例如 https://ollama.com/library/deepseek-r1/tags # deepseek-r1:7bollama pull deepseek-r1:7b改token数量为409622 16384 ollama命令说明 ollama serve #:…...
抽象类和接口(全)
一、抽象类 1.概念:如果⼀个类中没有包含⾜够的信息来描绘⼀个具体的对象,这样的类就是抽象类。 像是没有实际⼯作的⽅法,我们可以把它设计成⼀个抽象⽅法,包含抽象⽅法的类我们称为抽象类。 2.语法 在Java中,⼀个类如果被 abs…...
HTML前端开发:JavaScript 获取元素方法详解
作为前端开发者,高效获取 DOM 元素是必备技能。以下是 JS 中核心的获取元素方法,分为两大系列: 一、getElementBy... 系列 传统方法,直接通过 DOM 接口访问,返回动态集合(元素变化会实时更新)。…...
【Kafka】Kafka从入门到实战:构建高吞吐量分布式消息系统
Kafka从入门到实战:构建高吞吐量分布式消息系统 一、Kafka概述 Apache Kafka是一个分布式流处理平台,最初由LinkedIn开发,后成为Apache顶级项目。它被设计用于高吞吐量、低延迟的消息处理,能够处理来自多个生产者的海量数据,并将这些数据实时传递给消费者。 Kafka核心特…...
