数字集成电路设计之CMOS
数字集成电路设计理论
1、基本的理论结构
现在主流的集成电路器件还是CMOS,所以理论的结构还是基于CMOS。CMOS有N和P两种MOS组合组合在一起。CMOS最简单的器件就是反相器。然后是标准的逻辑门(与门和或门),标准单元是采用w/L=2:1的PMOS和NMOS组成的与非门和或非门。然后,就可以实现所有的数字逻辑。当然,在实际的应用中,还有一些其他的重要结构,但是这三个单元是基本。
2、重要部分
逻辑门:
构建一个逻辑门,需要确定输入和输出,然后使用NMOS拓扑和PMOS拓扑构成逻辑门。这里由于NMOS和PMOS的连接关系一般采用对偶关系(串联对并联,并联对串联),所以只需要采用一个拓扑就可以得到逻辑门所实现的功能。以NMOS为例:串联为与,并联是或,最后的输出加非即可。其他的多输入模型也是基于这个来设计的。
传输特性:
前面提到,串联为与,并联为或。这是基于开关器件来说的。在实际的MOS器件时,串联的结构是具有延时的。例如A和B两个输入,A在B上面,也就是A靠近输出。在A=0,B=0时,F输出高电压。在A高时,NMOS-A的作用为电阻,可以较快地下降;而当B高时,NMOS-B的作用相当于电阻,NMOS-A相当于加了一个下拉电阻,需要更长的时间导通。也就是A=1,B=0->1的延时要比B=1,A=0->1的延时要小。这里区分了与门的两扇入的区别。
这个延时,最直接的结果就是限制了输入的数量。如果扇入过多,延时将增加到不可接受。而且可能出现最上面的MOS栅压大于电源电压而失效。一般输入数小于等于4最好。
对于输入更多的器件,可以采用单元电路组合的方法实现。这种实现方法的延时将转化为多路径,其中最慢的路径就是电路的速度。这里的分析就是要考虑逻辑努力。
逻辑努力:
计算逻辑努力有软件可以仿真,而对于估算来说,使用反相器模型会比较好理解。
一般的设计,MOS的W/L的值是确定的。所以对于一个反相器而言,延时也是一定的。理想的反相器的总延时Di=tp0(1+fi),而我们使用的一般是Di=tp0(p+gi hi)。
这里tp0的作用相当于一个单位延时,和长度的m是一个概念。P则是输入电容的延时,用于输入延时的描述,在空载时就是这个电路的延时。而g则是等效反相器个数,也就是逻辑努力。h则是Cout/Cin,也就是扇出。显然扇出越大,所能容纳的级数越大,延时越大。下面说一下这几个参数的计算:
g,将串联的宽长比除以串联个数,并联不变,相加除以2就是分母,分子就是总和除以2;简单理解就是串联延时增大,体现为分母减小修正。这里一般使用2:1的反相器为标准。
P,与输入个数成正比。
BG:就是连接输出的下一级的个数与g的乘积。一般是同样的输出级,不同的应该要区分写。这里直接相乘就是分别写的缩写。
h:就是Cout/Cin,可以理解为最小延时。
这里就比较奇怪,为什么其他支路会影响分析的干路。个人理解是其他支路的输入电阻与输出电容构成的RC分路会提高延时。具体的原理可能用到模电的分析,这里就不做讨论了。
这就是逻辑努力的基本概念,可以试着分析一下各个输入的延时,理解每一个逻辑电路的延时的概念。
延时优化:
从前面的分析可以看出,一个路径的延时的最小就是h(忽略单位),但是前面提到了一级内部不能加入过多的扇入。所以,多少级的结构合适呢?Fi=Bi*Gi*Hi,这就是每一级延时的乘积。根据数学原理,要使总的延时(也就是每一级的延时之和)最小,等比分布是最小的。
这里使用了一个重要的关系式:h1*h2*……*hi=Cout/Cin,理解为Hi的1~i乘积等于Cout/Cin,当然也可以根据每一级的F,B,G得到每一级的H。
这里理解起来还是比较复杂的。
主要的区分点是每一级的参数还是总的参数。
小结:
后面的内容就是CMOS的改进。一些基于其他的NMOS和PMOS的组合方法可以实现一些特定的功能,这里由于时间关系就不多说,后面有时间再补充。
3、实验部分
实验部分就是绘制版图,在别的部分有过介绍,这里不再赘述。在使用cadence工具中找到过。
数字集成电路设计之CMOS的更多相关文章
- 数字集成电路设计-8-一个简单sobel图像边缘检测加速器的设计,实现,仿真与综合
引言 图像视频处理等多媒体领域是FPGA应用的最主要的方面之一,边缘检测是图像处理和计算机视觉中的基本问题,所以也是最常用的,随着数据量的不断增加以及对实时性的要求,一般软件已经不能满足实际需要,这时 ...
- 数字集成电路设计-14-DPI
引言 在进行IC验证时,尤其是规模较大的时候,单纯用Verilog和SV来构建testbench.可能会稍显吃力. 在这样的情况下,使用C或者C++等软件语言往往会大大加快验证速度,提高验证效率. P ...
- VerilogHDL概述与数字IC设计流程学习笔记
一.HDL的概念和特征 HDL,Hard Discrimination Language的缩写,翻译过来就是硬件描述语言.那么什么是硬件描述语言呢?为什么不叫硬件设计语言呢?硬件描述语言,顾名思义就是 ...
- 数字IC前后端设计中的时序收敛(六)--Max Fanout违反
本文转自:自己的微信公众号<数字集成电路设计及EDA教程>(二维码见博文底部) 里面主要讲解数字IC前端.后端.DFT.低功耗设计以及验证等相关知识,并且讲解了其中用到的各种EDA工具的教 ...
- 数字IC前后端设计中的时序收敛(五)--Max Transition违反的修复方法
本文转自:自己的微信公众号<数字集成电路设计及EDA教程> 里面主要讲解数字IC前端.后端.DFT.低功耗设计以及验证等相关知识,并且讲解了其中用到的各种EDA工具的教程. 考虑到微信公众 ...
- 数字IC前后端设计中的时序收敛(四)--Max Capacitance违反的修复方法
本文转自:自己的微信公众号<数字集成电路设计及EDA教程> 里面主要讲解数字IC前端.后端.DFT.低功耗设计以及验证等相关知识,并且讲解了其中用到的各种EDA工具的教程. 考虑到微信公众 ...
- 数字IC前后端设计中的时序收敛(三)--Hold违反的修复方法
本文转自:自己的微信公众号<数字集成电路设计及EDA教程>(二维码见博文底部) 里面主要讲解数字IC前端.后端.DFT.低功耗设计以及验证等相关知识,并且讲解了其中用到的各种EDA工具的教 ...
- 数字IC前后端设计中的时序收敛(二)--Setup违反的修复方法
本文转自:自己的微信公众号<数字集成电路设计及EDA教程> 里面主要讲解数字IC前端.后端.DFT.低功耗设计以及验证等相关知识,并且讲解了其中用到的各种EDA工具的教程. 考虑到微信公众 ...
- 数字IC前后端设计中的时序收敛(一)前言
本文转自:自己的微信公众号<数字集成电路设计及EDA教程> 里面主要讲解数字IC前端.后端.DFT.低功耗设计以及验证等相关知识,并且讲解了其中用到的各种EDA工具的教程. 为了纪念,同时 ...
- 数字IC设计工程师的知识结构
刚毕业的时候,我年少轻狂,以为自己已经可以独当一面,庙堂之上所学已经足以应付业界需要.然而在后来的工作过程中,我认识了很多牛人,也从他们身上学到了很多,从中总结了一个IC设计工程师需要具备的知识架构, ...
随机推荐
- Swoole从入门到入土(16)——WebSocket服务器[事件]
WIKI: 问:websocket协议虽然和http协议不同,但是兼容于http协议,如何判断客户端连接使用的是http协议? 答:通过使用 $server->connection_info($ ...
- Java设计模式-职责链模式Chain of Responsibility
介绍 职责链模式(Chain of Responsibility Pattern), 又叫 责任链模式,为请求创建了一个接收者对象的链(简单示意图).这种模式对请求的发送者和接收者进行解耦. 职责链模 ...
- zabbix-server.service failed解决方法
1.问题描述 centos7中安装的zabbix server在重启系统后无法启动了,查看状态报错如下: 2.问题原因 selinux没有关闭! 3.解决 永久关闭selinux, 将SELINUX值 ...
- maven打包时打包指定的lib文件夹
今天在打包自己的spring boot项目时遇到了问题, 报找不到类和符号. 因为我有些依赖是放在项目lib文件夹中,那么打包的时候要连把它一起打包. 修改pom.xml, 添加一下内容: <b ...
- [BUUCTF][WEB][极客大挑战 2019]BabySQL 1
靶机打开url 界面上显示,它做了更严格的过滤.看来后台是加了什么过滤逻辑 老规矩先尝试时候有sql注入的可能,密码框输入 123' 爆出sql错误信息,说明有注入点 构造万能密码注入 123' or ...
- Thinkpad T14 AMD版无线网卡不可用
硬件环境: Thinkpad T14 AMD 操作系统: Windows 10家庭版 问题描述: Windows 10在后台默默做了补丁更新,导致无线网卡和蓝牙鼠标都不可用(但是有线网却是能正常工作的 ...
- OpenCV开发笔记(五十七):红胖子8分钟带你深入了解直方图反向投影(图文并茂+浅显易懂+程序源码)
若该文为原创文章,未经允许不得转载原博主博客地址:https://blog.csdn.net/qq21497936原博主博客导航:https://blog.csdn.net/qq21497936/ar ...
- 【C++ OOP 03 友元】各种友元例子以及如何类外写成员函数
[友元] 在程序里,有些私有属性 也想让类外特殊的一些函数或者类进行访问,就需要用到友元的技术 友元的目的就是让一个函数或者类 访问另一个类中私有成员 友元的关键字为 friend 友元的三种实现 全 ...
- Java 程序员第一次运行 Python 项目,使用 python-pptx 提取 ppt 中的文字和图片
人工智能时代,最需要学习的编程语言是:python .笔者是个 python 小白,昨天花了两个小时,第一次成功运行起来 python 项目 . 项目是 powerpoint-extractor ,可 ...
- TR069-STUN
原理 1.NAT穿越技术,为了解决NAT设备对P2P网络的通信限制 2.作用:检测网络中是否存在NAT设备,并获取两个通信端点经NAT设备分配的IP地址和端口号,然后建立一条可穿越NAT的P2P链 ...