CMOS组合逻辑(二)

news2024/12/22 17:33:13

        在前面介绍了静态互补CMOS逻辑,这里主要说明有比逻辑和动态CMOS逻辑。

CMOS组合逻辑_vtc曲线_沧海一升的博客-CSDN博客介绍了静态互补CMOS逻辑https://blog.csdn.net/qq_21842097/article/details/107456036

一、有比逻辑

1、伪NMOS

        因为互补CMOS优点是全轨输出,静态功耗低,但是代价是稳定输出的时候,有一半的管子属于冗余的。如果当资源(如面积)有限时,我们需要另外一种静态CMOS的设计方法来减少MOS管的数目。因此有了有比逻辑这种设计方法,当扇入是N时,它仅需N+1个MOS管;但于此同时它需要以降低稳定性和额外的静态功耗作为代价。

额定低电压不是0,因为存在PDN和伪NMOS的通路。这降低了噪声容限,并且引起了静态功耗。

        之所以称之为有比逻辑,是因为输出电平和功能取决于NMOS和PMOS的尺寸比。不同于无比逻辑,无比逻辑高低电平与尺寸无关。

        其做法为将PUN替换为一个无条件负载器件。通常为一个栅极接地的PMOS负载(伪NMOS门)。

         虽然静态功耗限制了伪NMOS的应用,但是当面积是最重要的因素时,伪NMOS还是可以使用的,因此还是可以看到伪NMOS有时应用在大扇入的电路中。

2、差分串联电压开关逻辑(DCVSL)

        差分级联电压开关逻辑,目的在于完全消除静态电流并提供轨到轨的电压摆幅的有比逻辑。用两个PMOS和两个对偶的互斥输入的NMOS实现逻辑功能,其原理为差分逻辑和正反馈:

  • 差分门要求每个输入都具有互补形式,同时也产生互补输出。
  • 反馈机制保证不需要负载时将其关断

优点在于:

  • 消除静态电流,提供轨到轨输出
  • 同时产生了输出和其反信号,节省了额外的反相器,避免使用反相器引起的时差问题。这实际上受益于差分逻辑。

         这就是DCVSL的结构,下面的两个N网络输出为互斥的信号,通过上面两个PMOS的加强实现输出的稳定。基本原理是下面两个N网络总会有一个导通,输出L0,L0使得上面两个PMOS中一个导通,抬高另外一个PMOS的输入使其关闭,实现信号的稳定。实现稳态的过程为有比电路,存在稳定延时。如XOR-XNOR门:

        当然,DCVSL也存在一定缺陷:

  • 在翻转期间PMOS和PDN会同时导通一段时间,产生短路通路,造成渡越电流。(不同于静态电流,静态电流在PDN导通时一直存在)
  • 在实际布线时导线数量加倍,使得电路复杂
  • 动态功耗较高

3、传输管逻辑

        传输管逻辑主要目的在于减少晶体管数,利用输入驱动栅极和源漏端来减少逻辑需要的晶体管数。

        与只允许驱动栅极的CMOS不同。

         传输管的缺点在于存在阈值损失。并且由于体效应这种情况更加严重。此外,应该避免传输管驱动另一个栅极,这样会导致阈值损失传递。

1)差分传输管逻辑CPL

        高性能设计中通常使用差分传输管逻辑,称为CPL或DPL.

  • CPL属于静态门,输出节点通过低阻路径连到VDD或地。
  • 互补输入输出
  • 具有模块化特点,门单元库设计简单。

        

         缺点在于因为存在VTH,高电平时充电充不到VDD,只能充到VDD-VTH。

2)解决阈值损失和静态功耗

        正如上面所说由于传输管在高电平无法充电到VDD,少了一个VT,所以在驱动后级的反相器时反相器会有静态功耗。因此,常用以下方案设计稳定有效的传输管

        a、电平恢复器

        一种简单的方法是使用一个PMOS连到反馈环路中:

        通过上拉的PMOS将高电平充到VDD,消除了后级反相器的静态功耗,传输管和恢复器中也没有静态电流路径。但电平恢复器也有以下缺陷:

  • 是有比逻辑,增加了复杂性。在节点从高到低的过程中,传输管试图拉低节点,而电平恢复器却要上拉到高,因此传输管的下拉能力必须大于恢复器的上拉能力。这就要求仔细设计各个管的尺寸。
  • 电平恢复器对器件切换速度有影响。增加恢复器增加了内部节点X的电容,减慢了门的速度。

        b、多阈值晶体管

        使用零阈值的NMOS传输管可以消除大部分阈值损失。所有非传输管都用高阈值器件实现。

        同样也存在缺陷:

  • 需要对器件的注入准确控制才能达到0阈值,并且由于体效应,难以真的达到全摆幅
  • 用零阈值对功耗有不利影响。这是因为即使器件关断,也会有亚阈值电流流过传输管

        c、传输门逻辑

        最广泛采用的是传输门逻辑,利用NMOS和PMOS的互补特性。

         两个管子并联,控制信号相反,任何时候两者都导通。通常消耗更少的管子。例如实现下面的逻辑:

\bar{F}=(A\cdot S+B\cdot \bar{S})

        采用CMOS逻辑需要8管,而传输门逻辑只需要6管。(不包括反向输入信号的生成):

         这种传输门本身没有驱动能力,需要靠前一级的驱动能力,或在这个传输门前后各增加一级反相器,共增加两级反相器,同时保证有驱动能力,和信号极性保持不变。

        应用场景有,在常见的MUX多路选择电路中,在DFF和latch中时钟采样信号。在前者MUX多路选择电路中,选择信号是一些低速信号,甚至有可能是寄存器(register)。而在后者DFF和latch中,选择信号就是时钟信号,是高速信号。

        非理想选择信号造成的影响,主要是指选择信号变化时,SEL和SELB在切换过程有交叠,存在一个管子本该关断,但是还没有关断,或者存在一个管子本该开启,却还没有开启。在MUX多路选择电路中,正是因为选择信号是一些低速信号,少有切换过程,故影响不大。而在DFF和Latch中,时钟信号不断地翻转,不断有切换过程,当时钟信号有交叠时,是会直接影响输出信号的好坏。

二、动态CMOS逻辑

1、基本介绍

        静态CMOS是指稳态时,通过低阻路径连接GND或VDD:

  • 互补CMOS:上下网络互补,上拉到VDD,下拉到GND。管子数为2N
  • 传输管逻辑:上拉网络用其他代替,有比逻辑,存在VTH。管子数为N+1

        动态CMOS:依靠高阻抗上的电容存储临时的信号,管子数为N+2。

        其结构如下:

         工作分为两个阶段:

  • 预充电:CLK=0,Mp导通,对CL充电。输出节点Out被PMOS管预充电至VDD。此期间NMOS求值管Me关断,所以下拉不工作。求值管消除了预充电期间的任何静态功耗。
  • 求值:CLK=1,Me导通,OUT和GND之间存在低阻通路。预充电管Mp关断,输出根据下拉拓扑结构有条件地放电。

        特点:

  • 全电压摆幅
  • 无比逻辑(同互补CMOS,异传输管逻辑)
  • 噪声容限低。因为out在预充电阶段已经充电到vdd,即Vds已经满足>Vov,于只要Vin>VTH,管子就会导通。
  • 需要预充电和求值的时钟
  • 较快的开关速度。原因如下,
    • 相对互补CMOS,缺少了上拉网络的一个门,相对负载是互补CMOS,负载是动态门的CL比较小
    • 动态门没有短路电流(同一个时刻,只能一个M导通),由下拉网络提供的所有电流都用于CL​电容的放电
    • 如果IN=0​,则不存在输出延时(预充电完输出即为1);如果IN=1​,则需要CL​放电
  • 晶体管重复利用,减小面积(多输出多米诺)

        优点

  • 提高速度
  • 减小面积(多输出多米诺;N+2​个管子)
  • 没有短路功耗
  • 没有毛刺(因为一次只能翻转一次,CL放电完只能等效下一次预充电才能回到1)

        缺点

  • 动态逻辑的时钟功耗可以很大
  • 当增加抗漏电器件时可能会有短路功耗
  • 由于周期性的预充和放电,动态逻辑会有较高的开关活动性。

2、存在的问题——信号完整性

1)电荷泄漏

        预充电到高后,电容上将保持高电平,但总是会有泄露电流导致电荷漏掉。

         可见存储在CL上的电荷将通过漏电左图的几个漏电渠道漏掉,因此动态电路有一个最低的频率要求,一般为几KHZ。

       电荷泄露的解决通常通过增加伪NMOS上拉以及反馈来补偿:

 

         通过反馈来控制上拉管可以降低静态功耗。通常泄露器的尺寸比较小(电阻比较大),以保证下拉网络可以下拉。

2)电荷分享

        下图展示了电荷分享。在求值期间,假设B=0,A置高后Ma导通,CL上的电容会在CL和Ca之间重新分配,导致输出电平的降低。

         解决方案为使用上拉管对关键的内部节点预充电:

         代价是面积和功耗。

3)电路耦合

        输出节点较高的阻抗使得电路对串扰很敏感。使得Vout略有下降。

4)时钟馈通

        时钟输入和动态节点输出之间的耦合电容引起。耦合电容由预充器件的栅漏电容组成。其次,快速上升和下降的时钟边沿会耦合到信号节点上。

        时钟反转过快,则当CLK0→1​​时,动态节点输出>Vdd;则当CLK​​ 1→0​​时,动态节点输出<0 。时钟馈通危险在于可能使正常情况下反偏二极管变为正向偏置,导致出错。

3、动态门的串联

        动态门的串联会遇到延时的问题,例如下面的电路:

         当Out1开始放电时,此时Out2应该维持不变,但是out1放电需要时间,导致out2也开始放电,产生错误。 但是如果每一级动态门在预充电后输出都为0,则不会由这样的问题。这也是动态门串联的条件。

1)多米诺逻辑

        动态逻辑后加一个反相器,再级联其他多米诺逻辑。反相器可以保证动态逻辑再预充电后输出为0,避免1->0的翻转。目的就是保证预充电时,输入均为0;求值时,输入只做0→1的翻转。

        初始状态均为0,求值的时候根据前一级输出确定下一级输入,从而求下一级输出。

        特点:

  • 求值层层传播,如多米诺骨牌
  • 求值阶段的时间取决于逻辑深度(因为求值时候的特性,见上)
  • 只能实现非反向逻辑
  • 无比逻辑
  • 节点需要在预充电充完电,求值的过程中,输入需要特别稳定。
  • 速度非常快(因为当上一级的输入都是0时,下一级相当于无延迟传播)
  • 输入电容小(和互补CMOS比,只有一个管子)

2)去掉下拉时钟网络

        如下图所示

         优点:

  • 只需要第一级的下拉时钟负载,后面的不用。减少时钟负载
  • 速度和性能可以得到大大提升

        缺点:

  • 去掉下拉时钟网络,需要满足该动态门CLK=0​​时,该动态门输入均为0,否则可能导致短路
  • 为了达到上文的目标,需要精确把控时钟

3)多米诺逻辑的性能优化

  1. 调整反相器的晶体管尺寸

    分析可知,

    预充电过程中,主要经过两个门的延迟:

    • Vdd通过上拉时钟PMOS管对CL进行充电
    • 本级动态门输出逻辑1经过反相器(INV的PMOS管)输出逻辑0,作为下一级输入

    求值过程中,如果存在该动态门输入存在从0→1​​​跳变,主要经过两部分延迟:

    • 本级动态门下拉网络对CL进行放电
    • 本级动态门输出逻辑0经过反相器(INV的PMOS管)输出输出逻辑1,作为下一级的求值输入

    可根据情况进行反相器尺寸的调整(一般为了减低求值时间,会增大INV的PMOS尺寸

  2. 面积优化

    • 采用多输出多米诺逻辑,见下文。

      多输出多米诺逻辑中,动态逻辑门可以实现多种逻辑,可以重复利用一些晶体管,使得晶体管数目减小

    • 或者使用组合多米诺逻辑,见下文。

      组合多米诺逻辑,并不需要在每个动态门之后加反相器,而是借助一个复合互补CMOS门将多个动态门组合起来。

4)多输出多米诺

        多输出多米诺可以重复利用一些晶体管,一个复合逻辑门里面可以实现多种逻辑,减小了晶体管数量,大大减小面积。

5)组合逻辑多米诺

        组合多米诺逻辑,并不需要在每个动态门之后加反相器,而是借助一个复合互补CMOS门将多个动态门组合起来。

 

        如上图,动态门组成逻辑:Y1=\overline{A\cdot B};经过静态互补CMOS门,组成逻辑Y2=\overline{Y1\cdot In},注意,Y2结果并不需要经过反相器。

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

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

相关文章

WinForm——软件加载读条界面卡死问题

WinForm——软件加载读条界面卡死问题 前言一、问题现象二、测试部分代码1.Loading窗体2.加载代码Program处 三、分析原因四、解决方案代码1.Loading窗体2.加载代码Program处 前言 在制作软件开启界面&#xff0c;读条加载时&#xff0c;在Program中new了个Loading窗体&#x…

02 表达客观事物的术语

文章目录 02 表达客观事物的术语类与对象&#xff08;1&#xff09;定义与表示&#xff08;2&#xff09;类名(类的标识)&#xff08;3&#xff09;属性(attribute)属性的作用范围&#xff1a;定义属性的格式为&#xff1a; (4)操作(operation)表达操作的完整语法格式 &#xf…

帮忙投票的链接创建投票链接设置投票怎么弄的微信怎么

近些年来&#xff0c;第三方的微信投票制作平台如雨后春笋般络绎不绝。随着手机的互联网的发展及微信开放平台各项基于手机能力的开放&#xff0c;更多人选择微信投票小程序平台&#xff0c;因为它有非常大的优势。 1.它比起微信公众号自带的投票系统、传统的H5投票系统有可以图…

【CMake 入门与进阶(7)】 CMakeLists.txt 部分常用变量-续(附使用代码)

继续来学习CMakeLists.txt 常用变量 描述系统的变量 顾名思义&#xff0c;这些变量描述了系统相关的一些信息&#xff1a; 变量说明CMAKE_HOST_SYSTEM_NAME运行 cmake 的操作系统的名称&#xff08;其实就是 uname -s&#xff09;CMAKE_HOST_SYSTEM_PROCESSOR运行 cmake 的操…

Android协程

协程 文章目录 协程1.讲协程之前的一些相关概念1.并发与并行2.同步与异步3.阻塞3.1Looper的阻塞3.1.1 loop的源码3.1.2loopOnce源码3.1.3注意 3.2Looper处于死循环是否会导致ANR3.2.1ANR是什么3.2.2Looper的死循环是否会导致ANR3.2.3总结 4.挂起4.1阻塞和挂起的区别 5.多任务 2…

pytorch深度学习框架—torch.nn模块(二)

pytorch深度学习框架—torch.nn模块&#xff08;二&#xff09; 激活函数 pytorch中提供了十几种激活函数&#xff0c;常见的激活函数通常为S形激活函数&#xff08;Sigmoid&#xff09;双曲正切激活函数(Tanh) 和线性修正单元&#xff08;ReLu&#xff09;激活函数等 层对应的…

Material—— RBD(Houdini To UE)

Houdini刚体碎块导入UE&#xff0c;有两个方面需还原&#xff0c;一是材质还原&#xff0c;一是动态还原&#xff1b; 一&#xff0c;ABC to UE 材质方面&#xff0c;Houdini里的每个Primtive Group属性&#xff0c;都表示UE内的对应材质球&#xff1b;导入时勾选Find Material…

AST使用(一)

关于安装及环境配置可以看https://mp.csdn.net/mp_blog/creation/editor/131155968 下面所有案例的JS原代码如下&#xff1a; const a 3; let string "hello"; for (let i 0;i < 3;i){string "world" } console.log("string",string) …

深度学习QA之卷积神经网络

深度学习Q&A之卷积神经网络 前言1 卷积基础知识问题1 简述卷积的基本操作&#xff0c;并分析其与全连接层的区别 &#xff08;难度&#xff1a; ★ \bigstar ★&#xff09;分析与解答&#xff1a; ♣ \clubsuit ♣ 局部连接: ♣ \clubsuit ♣ 权值共享: ♣ \clubsuit ♣ 输…

ubuntu 20.04 aarch64 平台交叉编译 opencv

编译环境 win10 64 位 VMware Workstation Pro 16 虚拟机 虚拟机安装 ubuntu 20.04 opencv 版本&#xff1a; 来自 github 当前最新 4.7 目的 交叉编译 opencv&#xff0c;用于 嵌入式 aarch64 平台 下载 opencv 可以直接从 github 下载 release 版本或者 使用 git clon…

『2023北京智源大会』6月9日上午|开幕式及全体大会

『2023北京智源大会』6月9日上午|开幕式及全体大会 文章目录 一. 黄铁军丨智源研究院院长1. 大语言模型2. 大语言模型评测体系FlagEval3. 大语言模型生态(软硬件)4. 三大路线通向 AGI(另外2条路径) 二. Towards Machines that can Learn, Reason, and Plan(杨立昆丨图灵奖得主…

Spring Boot整合JPA

文章目录 一、Spring Boot整合JPA&#xff08;一&#xff09;创建Spring Boot项目JPADemo&#xff08;二&#xff09;创建ORM实体类1、创建评论实体类 - Comment2、创建文章实体类 - Article &#xff08;三&#xff09;创建自定义JpaRepository接口 - ArticleRepository&#…

【Flutter】Flutter 中处理 loading 状态

文章目录 一、引言二、在 Flutter 中处理 loading 状态三、用具体业务逻辑代码示例展示四、常见问题及解决方案五、结语 一、引言 今天我们将一起探讨在 Flutter 中如何控制 loading 状态。 Flutter&#xff0c;作为一个高效、简洁的 UI 框架&#xff0c;已经在全球范围内得到…

FPGA基础知识-数据流建模

目录 学习目标 学习内容 1.门的类型 2.门延迟 学习时间 学习小结 学习目标 学习Verilog 提供的门级原语 理解门的实例引用、门的符号以及andor&#xff0c;bufnot类型的门的真值表 学习如何根据电路的逻辑图来生成verilog描述 讲述门级设计中的上升、下降和关断延迟 …

【MyBatis学习】MyBatis操纵数据库进行查询操作 ?MyBatis与JDBC想比怎么样,赶快与我一起探索吧 ! ! !

前言: 大家好,我是良辰丫,从今天开始我们就要进入MyBatis的学习了,请君与我一起操纵数据库,MyBatis到底是什么呢?我们慢慢往下瞧! ! !&#x1f48c;&#x1f48c;&#x1f48c; &#x1f9d1;个人主页&#xff1a;良辰针不戳 &#x1f4d6;所属专栏&#xff1a;javaEE进阶篇之…

前端——自定义组件

目录 一、创作纪念日——6月7日&#xff08;机缘巧合&#xff09; 二、收获 三、前端组件 3.1、重要的CSS 3.2、实用组件 1、站点访问次数 2、鼠标样式 3、烟花点击特效 4、GIF动态小人&#xff08;出现在左下角&#xff09; 5、天气插件 6、音乐播放器 3.3、CSS组…

leetcode337. 打家劫舍 III(java)

打家劫舍 leetcode337. 打家劫舍 III题目描述 暴力递归解题思路代码演示 递归加缓存代码演示 动态规划专题 leetcode337. 打家劫舍 III 来源&#xff1a;力扣&#xff08;LeetCode&#xff09; 链接&#xff1a;https://leetcode.cn/problems/house-robber-iii 题目描述 小偷又…

湖南大学CS-2019期末考试解析

【特别注意】 答案来源于@wolf 是我在备考时自己做的,仅供参考,若有不同的地方欢迎讨论。 【试卷评析】 有必要一做。 【试卷与答案】 一. 填空题(10 分,每空 2 分) 1. 0xb1e56f07 存放在采用小端存储的机器上,地址为 0x3287 到 0x328a ,则 0x3288 处存…

远程仓库拉不下来怎么办

因为项目需要做一个word转pdf的功能, 当我想要从阿里的仓库引入依赖时发现版本一直报错,无论怎么引入都爆红😭😭 *我将aspose的包先下载到本地,然后再安装安装到本地的maven仓库* mvn install:install-file -Dfile=C:\Users\Administrator\Downloads\aspose-words-18.…

Day01 项目简介分布式基础概念 -谷粒商城

最近在改进公司开发的商城项目&#xff0c;看到了尚硅谷的谷粒商城&#xff0c;就快速学习了下&#xff0c;因为之前的Kafka,Redis都是在这学习的&#xff0c;还有大数据的Flink。所以感觉一定不错&#xff0c;就开始了。 这里做一下学习笔记 一、项目简介 1 、项目背景 1 &…