数字集成电路设计理论

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的更多相关文章

  1. 数字集成电路设计-8-一个简单sobel图像边缘检测加速器的设计,实现,仿真与综合

    引言 图像视频处理等多媒体领域是FPGA应用的最主要的方面之一,边缘检测是图像处理和计算机视觉中的基本问题,所以也是最常用的,随着数据量的不断增加以及对实时性的要求,一般软件已经不能满足实际需要,这时 ...

  2. 数字集成电路设计-14-DPI

    引言 在进行IC验证时,尤其是规模较大的时候,单纯用Verilog和SV来构建testbench.可能会稍显吃力. 在这样的情况下,使用C或者C++等软件语言往往会大大加快验证速度,提高验证效率. P ...

  3. VerilogHDL概述与数字IC设计流程学习笔记

    一.HDL的概念和特征 HDL,Hard Discrimination Language的缩写,翻译过来就是硬件描述语言.那么什么是硬件描述语言呢?为什么不叫硬件设计语言呢?硬件描述语言,顾名思义就是 ...

  4. 数字IC前后端设计中的时序收敛(六)--Max Fanout违反

    本文转自:自己的微信公众号<数字集成电路设计及EDA教程>(二维码见博文底部) 里面主要讲解数字IC前端.后端.DFT.低功耗设计以及验证等相关知识,并且讲解了其中用到的各种EDA工具的教 ...

  5. 数字IC前后端设计中的时序收敛(五)--Max Transition违反的修复方法

    本文转自:自己的微信公众号<数字集成电路设计及EDA教程> 里面主要讲解数字IC前端.后端.DFT.低功耗设计以及验证等相关知识,并且讲解了其中用到的各种EDA工具的教程. 考虑到微信公众 ...

  6. 数字IC前后端设计中的时序收敛(四)--Max Capacitance违反的修复方法

    本文转自:自己的微信公众号<数字集成电路设计及EDA教程> 里面主要讲解数字IC前端.后端.DFT.低功耗设计以及验证等相关知识,并且讲解了其中用到的各种EDA工具的教程. 考虑到微信公众 ...

  7. 数字IC前后端设计中的时序收敛(三)--Hold违反的修复方法

    本文转自:自己的微信公众号<数字集成电路设计及EDA教程>(二维码见博文底部) 里面主要讲解数字IC前端.后端.DFT.低功耗设计以及验证等相关知识,并且讲解了其中用到的各种EDA工具的教 ...

  8. 数字IC前后端设计中的时序收敛(二)--Setup违反的修复方法

    本文转自:自己的微信公众号<数字集成电路设计及EDA教程> 里面主要讲解数字IC前端.后端.DFT.低功耗设计以及验证等相关知识,并且讲解了其中用到的各种EDA工具的教程. 考虑到微信公众 ...

  9. 数字IC前后端设计中的时序收敛(一)前言

    本文转自:自己的微信公众号<数字集成电路设计及EDA教程> 里面主要讲解数字IC前端.后端.DFT.低功耗设计以及验证等相关知识,并且讲解了其中用到的各种EDA工具的教程. 为了纪念,同时 ...

  10. 数字IC设计工程师的知识结构

    刚毕业的时候,我年少轻狂,以为自己已经可以独当一面,庙堂之上所学已经足以应付业界需要.然而在后来的工作过程中,我认识了很多牛人,也从他们身上学到了很多,从中总结了一个IC设计工程师需要具备的知识架构, ...

随机推荐

  1. 【framework】RootWindowContainer简介

    1 前言 ​ RootWindowContainer 是窗口容器的根容器,子容器是 DisplayContent.关于其父类及祖父类的介绍,见→WindowContainer简介.Configurat ...

  2. Swoole从入门到入土(28)——协程[核心API]

    本节专门介绍swoole提供的协程机制中核心的API 类方法: 1) set():协程设置,设置协程相关选项. Swoole\Coroutine::set(array $options); 2) ge ...

  3. spring boot+sqlite+mybatis实现增删改查例子

    主要是更换了下sqlite的数据源而已,其他代码不变. 我都贴一下吧,这个算是比较通用的基础增删改查代码. 1.创建test.db 可以使用Idea自带的Database插件配置,也可以命令行创建,具 ...

  4. AIGC程序员效能提升之道

    得益于IT产业近几年的繁荣,老杨所在公司的业务也出奇的兴隆,每天干不完的工作背后,也意味着健康的消耗和体重的不断增加. 曾记否,刚毕业的老杨体重刚刚堪堪破百,同事们经常调侃他说是一阵风就能吹走,经过了 ...

  5. pikachu 水平越权,垂直越权

    水平越权 查看到其他用户的信息或者通过其他用户去编辑或修改其他用户的信息 1. 用lucy/123456登录 2. 点击查看信息 3. 使用burpsuite拦截请求 GET /vul/overper ...

  6. 记一个 Andorid 生成文件失败的bug

    Android生成文件失败:java.lang.IllegalStateException:Failed to build unique file: /storage/emulated/0/... 1 ...

  7. 2-Django之三板斧

    HttpResponse 返回字符串类型的数据 HttpResponse: 这是 Django 自带的类,用于构建基本的 HTTP 响应 我的app名称是demo,我们先按照正常的流程,在views中 ...

  8. JS中Date和时间戳转换

    <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="C ...

  9. 游戏H5引擎Canvas屏幕自适应CSS代码

    canvas.style = `touch-action: none; width:${ width }px; height:${ height }px; cursor: inherit;`;

  10. TLS数据包重组

    TLS解密 参考以下链接:Wireshark 解密 TLS报文_在线tls解密-CSDN博客 总结: 配置环境变量 wireshark首选项配置 TLS解密例子 Frame 2700 Frame 27 ...