CMOS组合逻辑

1. 静态互补CMOS

实际上就是静态CMOS反相器扩展为具有多个输入。更反相器一样具有良好的稳定性,性能和功耗。

  • 静态的概念:每一时刻每个门的输出通过低阻抗路径连到VDD或VSS上。任何时候输出即为布尔函数值。
  • 动态电路通常依赖把信号暂存在高阻抗节点的电容上。

1.1 阈值损失

互补结构PUN(pull up network)+PDN(pull down network)可以解决。上拉采用PMOS,下拉采用NMOS。

1.2 两输入与非门实例

与非门的VTC曲线与输入有关,从下图可以发现,A=B=0时,PUN全部导通,对应强上拉,而当A或B中有不导通的时候,PUN中只有一个导通,相当于驱动能力下降(在反相器中提到P管驱动能力下降导致VTC左移,VM上漂),因此VTC左移到红色和绿色线。
而红绿两线的主要区别在于NMOS的内部节点int上,由于体效应的缘故会使得M1和M2在分别导通时阈值电压不同,VTC曲线会有微小的差异。

undefined

虽然互补CMOS是实现逻辑门比较简单的方式,但是随着扇入增加,会带来两个问题

  • 实现一个N扇入的门需要2N个器件,会增大实现面积。
  • 互补CMOS的传播延时随着扇入增大迅速增大(无负载本征延时在最坏时与扇入成二次函数关系)

1.3 延时与扇入的关系

例如对于一个四输入与非门

  • 在最坏情况下,PUN只导通一条通路,此时从低到高的延时tpLHtpLH最大,当增大扇入数,PUN的器件随着扇入线性增加,电容也线性增加,但最坏情况PUN的等效电阻不变,因此tpLHtpLH随着N的增加呈线性增加
  • 而对于PDN,串联会使得门进一步变慢。在PDN中分布RC网络带来的延时与串联链元件数呈平方关系。

下图是NAND门的本征传播延时与扇入的关系曲线:

 

1.4 解决大扇入的方法

  1. 增大晶体管尺寸。可以减少串联电阻。
    • 局限:会增加寄生电容。只有当负载以扇出电容为主时有用,否则只会增加"自载效应"。
  2. 逐级加大尺寸。因为从公式中可以看到M1-M4的电阻出现次数依次递增,所以因该让他们的电阻值依次递减才能得到最优解。
    • 局限: 在实际版图中不易实现。
  3. 重新安排输入。由于输入信号不都在同时间到达,因此可以把关键信号放到靠近输出端的晶体管上以提高速度。(关键信号:在所有输入中最后到达稳定值的信号)
  4. 重组逻辑结构。比如,将6输入OR门变为两个三输入NOR门加上一个二输入与非门。原理是减小了扇入。

问题:为什么把关键信号放到靠近输出端的晶体管上可以提高速度?
其实就是一个放电顺序的问题:

上图中,如果M1是最后才导通的那个,则直到M1导通前CL和C2都无法放电。而把M1放到最上面以后,C2和C1就可以先放电,节省了时间。

参考

https://www.cnblogs.com/lyc-seu/p/12832029.html

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

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

相关文章

绘制泰森多边形

使用到的数据文件,内容如图: 代码: clc; clear; close all; % 导入需要的坐标数据成矩阵 a load(test.txt); x a(:,1); y a(:,2); x x;%获取坐标的横坐标 y y;%获取坐标的纵坐标 %根据点 绘制泰森多边形 voronoi(x,y); %设定x轴的边界 x…

(八)限定某个目录禁止解析php、限制user_agent和PHP相关配置

2019独角兽企业重金招聘Python工程师标准>>> 限定某个目录禁止解析php 对于使用php语言编写的网站,有一些目录是有需求上传文件的。如果网站代码有漏洞,让黑客上传了一个用PHP写的木马,由于网站可以执行PHP程序,最终会…

静态时序分析——多周期、半周期和伪路径

一、多周期 multicycle paths 在一些情况下,如下图所示,两个寄存器之间的组合电路传输的逻辑延时超过一个时钟周期。在这样的情况下,这个组合路径被定义为多周期路径(multicycle path)。尽管后一个寄存器会在每一个的…

微信头像单张图片上传

后台配置 public function upload_img($img){import(ORG.Tencent.Weixin);$wx new Weixin(get_app_config());$media_data$wx->getMedia($img);$path./Uploads/.uniqid()..jpg;if(!file_put_contents($path,$media_data)){$this->error(图片上传失败);}return $path;}前…

u-boot nand flash read/write cmd

支援的命令函數說明1. nand info/nand device功能:顯示當前nand flash晶片資訊。函數調用關係如下(按先後順序):static void nand_print(struct nand_chip *nand) ;2. nand erase 功能:擦除指定塊上的數據。 函數調用關係如下(按先後順序)&am…

APP测试瞎话

APP测试 一、功能性 1、APP的安装、卸载 2、APP中业务功能 二、性能测试 1、高、中、低端机上运行效果 2、APP安装过程、卸载过程的耗时 3、APP运行时,手机的CPU、内存、耗电量、流量、FPS(画面每…

网络七层协议之物理层

我们以一个非常简单的例子开始: 两服务器通讯问题 如上图,有两台服务器,分别是 Server 1 和 Server 2 。 我们先做一个假设:计算机网络现在还没有被发明出来, 作为计算机科学家的你,想在这两台服务器间传递…

静态时序分析——On-chip Variation

OCV(on-chip variation)是指在同一个芯片上, 由于制造工艺和环境等原因导致芯片上各部分特征不能完全一样,从而造成偏差,对时序分析造成影响。这些偏差对互联线和cell的延时都是有影响的。 由于OCV对延时有影响,那么我…

Exception和RuntimeException的区别

1.Exception表示程序运行过程中可能出现的非正常状态 RuntimeException表示虚拟机的通常操作中可能遇到的异常,是一种常见运行错误。 Java编译器要求方法必须声明抛出可能发生的费运行异常,但是并不要求必须声明抛出未被捕获的运行时异常, 即…

[转载]IIS7报500.23错误的解决方法

原文出处: 原文作者:pizibaidu 原文链接:http://pizibaidu.blog.51cto.com/1361909/1794446 背景:今天公司终端上有一个功能打开异常,报500错误,我用Fiddler找到链接,然后在IE里打开&#xff0c…

关于用户空间和内核空间

当一个任务(进程)执行系统调用而陷入内核代码中执行时,我们就称进程处于内核运行态(内核态)。在内核态下,CPU可执行任何指令。当进程在执行用户自己的代码时,则称其处于用户运行态(用…

kaggle中zillow比赛中模型融合的方法及其代码

在机器学习这个领域,尤其是做多媒体(声音、图像、视频)相关的机器学习方法研究,会涉及很多特征、分类模型(分类任务)的选择。以声音识别为例,常见的特征有MFCC、LPCC、spectrogram-like feature…

静态时序分析——Timing borrow

Timing Borrow技术又称为cycle stealing技术,主要是利用latch的电平敏感特性,通过有效电平获取数据,通过无效电平保持被锁存的数据,主要用于解决路径时序不满足电路要求的情况。 通过TimingBorrow可以对电路进行加速,当路径延迟较…

homebrew 常用命令

安装(需要 Ruby):ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/Go/install)" 搜索:brew search MySQL 查询:brew info mysql 主要看具体的信息,比如目前的版本&#xff0c…

从Mysql某一表中随机读取n条数据的SQL查询语句

若要在i ≤ R ≤ j 这个范围得到一个随机整数R ,需要用到表达式 FLOOR(i RAND() * (j – i 1))。例如, 若要在7 到 12 的范围(包括7和12)内得到一个随机整数, 可使用以下语句: SELECT FLOOR(7 (RAND() * 6)); 以上摘…

基于MTD的NAND驱动开发(二)

基于MTD的NAND驱动开发(二) 基于MTD的NAND驱动开发(三) http://blog.csdn.net/leibniz_zsu/article/details/4977853 http://blog.csdn.net/leibniz_zsu/article/details/4977869 四、基于MTD的NAND 驱动架构 1 、platform_device 和platform_driver 的定义和注册 对于我们的…

静态时序分析——Data to data check

setup和hold的检查也有可能发生在任意两个数据端口,其中不包括时钟端口。 我们将其中一个端口(pin)设置为约束端口(constrainted pin),就像触发器中的数据端口;将另一个一个端口(pin…

开源数据库中间件-MyCa初探与分片实践

如今随着互联网的发展,数据的量级也是撑指数的增长,从GB到TB到PB。对数据的各种操作也是愈加的困难,传统的关系性数据库已经无法满足快速查询与插入数据的需求。这个时候NoSQL的出现暂时解决了这一危机。它通过降低数据的安全性,减…

【JAVA设计模式】外观模式(Facade Pattern)

一 定义 为子系统中的一组接口提供一个一致的界面。Facade模式定义了一个高层的接口,这个接口使得这一子系统更加easy使用。二 案例 一个子系统中拥有3个模块。每一个模块中都有3个方法。当中一个为client调用方法,其它两个则为各子模块间互相调用方法…

return的用处

#include "stdio.h" main() {int a,b1,c0;for(a1;a<5;a){ cca;}printf("%d",c);return ;printf("hello word"); } 输出结果是10并没有hello word&#xff1b;return将不会执行下面的语句。转载于:https://www.cnblogs.com/doublekai/p/6148…