电路ABC

https://www.cnblogs.com/IClearner/p/6441265.html

https://www.cnblogs.com/IClearner/p/6622524.html

 

https://www.cnblogs.com/IClearner/p/6443539.html

 

 

从CMOS到触发器(一)

PS:转载请标明出处:http://www.cnblogs.com/IClearner/

  作为一个微电子专业的IC learner,这个学期也有一门课:《微电子器件》,今天我就来聊聊基本的器件:CMOS器件及其电路。在后面会聊聊锁存器和触发器。

  今天的主要内容如下所示:

    ·MOS晶体管结构与工作原理简述

    ·CMOS单元电路与版图

    ·CMOS门电路

    ·CMOS的功耗表示

 

老实说,CMOS比较偏微电子器件,微电子器件还真难...这里我就说一些做数字设计或许要了解的东西吧(以后要是有必要,会补充)。

 

1、MOS晶体管结构与工作原理简述

  我们或多或少知道,晶体管在数字电路中的主要作用就是一个电子开关,通过电压或者电流,控制这个“开关”开还是关。晶体管大概有两种分类:一种是双极性晶体管(BJT,bipolar  junction  transistor),另外一种是金属-氧化物-半导体场效应晶体管(MOSFET或者MOS,metal-oxide-semiconductor  field effect transistor)。我们这里主要来聊聊MOS了,那个BJT在现在数字IC设计中已经不是主流工艺了。

  ①MOS晶体管分为PMOS和NMOS,是哪一类MOS取决于衬底掺杂浓度。至于是怎么形成的,这太复杂了,简单的三言两语说不清楚,这里干脆就不说了,我们直接来看他们的截面图和简单地讲解它们的工作原理好了(以下均以NMOS为例)。

NMOS晶体管的横截面结构如下所示:

                    

 

  最底层是硅晶元圆衬底(substrate)(Body Si那里),最顶上是导电的栅极(gate),中间是二氧化硅构成的绝缘层。在过去栅极是由金属构成的,因此叫做金属-氧化物-半导体,现在的栅极使用的是多晶硅(poly)。MOS结构中,金属(多晶硅)与半导体衬底之间的二氧化硅会形成一个电容。

  好吧,上面那一段看不懂也没关系,也不重要,需要你记住的是,上述的NMOS晶体管中,衬底是P型的,衬底上有两个n型的掺杂区域分别称为源极(Source)和漏极(Drain)(其实你把左边定义为漏而右边定义为源也没有问题,因为这个时候这个器件是对称的,在连接电源和地之后,S和D才真正确定),中间最上面的称为栅极(Gate,这就是NMOS的三个电极了(实际上的MOS是一个4端器件,它的衬底也是一个端)。下面来说一下他们怎么工作。

  前面我们说了,晶体管的作用就是大致就是一个开关,在电流或者电压的控制下进行开和关,对于NMOS晶体管,我们现在给它加上电压,让它开始工作:

                

 

如上左图所示,加上电压后,所谓的源极,就相当于电子的源头;所谓的漏极,就相当于漏出电子的开口;而中间的栅极,就像控制开关一样:一方面通过控制在栅极施加的电平电压,使源漏之间出现沟道,电子通过沟道从源极流向漏极,电流的方向也就是从漏到源了,从而进行导电,也就是“开关”打开的的时候(由于是形成的N沟道,也就是电子导电,因此成为N型CMOS)。另一方面再通过控制在栅极施加电平电压,让沟道关断,因此就源漏之间就关断了,也就是“开关”关断的时候。上面就是NMOS的结构和工作流程了。(PMOS的工作流程恰好相反:通过控制在栅极施加的低电平电压,进行打开,而通过控制在栅极施加高电平电压,让沟道关断。)

注意:栅极的电压达到一定数值时,沟道才会形成,沟道形成时的电压称为阈值电压(Vth)

  ②下面我们来看一下I-V特性曲线(注意这两个称呼,一个是转移特性曲线,一个是输出特性曲线):

               

 

   在前面我们知道,对于NMOS,源极(S)是接地的,漏极(D)是接数字电源的,在工作的时候,一般Vds是不变的,然后根据栅极(G)上的电压决定沟道是否导通。工作的时候,Vg的值(也就是输入信号的电压值)是一个定值,要么高电平(可能有波动),要么是低电平,从这里我们也知道NMOS工作的时候,是有电流从电源(VDD)流到地(GND)的(也就是从D流到S的),在电源电压不变的时候,这个电流随着栅极上的电压增大而增大。

    ③接着我们看看MOS的内部自个形成的电容(寄生电容),如下图所示:

                       

   主要分为:

    (1)栅和沟道之间的氧化层电容C1; 

    (2)衬底和沟道之间的耗尽层电容C2; 

    (3)多晶硅栅与源和漏的交叠而产生的电容C3 和C4; 

    (4)源/漏区与衬底之间的结电容C5与C6。

  好吧,其实这些个MOS这个电容我们看看就好了,毕竟我们不是做器件的。

 

2、CMOS单元电路与版图

  在现在工艺中,我们主要使用的是成为CMOS(互补型半导体,Complementary MOS)的工艺,这种工艺主要就是把PMOS和NMOS这两类晶体管构成一个单元,称为CMOS单元或者反相器单元,其结构把PMOS和NMOS同时集成在一个晶元上然后栅极相连,漏极相连,下面是它的结构图(关于电路符号和功能将在后面讲):

               

 

  在上图中,左边是NMOS,右边是PMOS。A是共连栅极输入,Y是共连漏极输出,VDD连接PMOS的源极,GND连接GND。关于CMOS工艺中阱的问题可以进一步查看该链接:http://www.doc88.com/p-065160919221.html

下面电路符号图了,上面的那个CMOS反相器对于的电路符号图如下所示:

                             

 

  现在我们就来分析一下这个CMOS反相器的工作原理来说明这个为什么CMOS工艺是主流吧:

  A当输入信号A=1时,PMOS关断,NMOS打开,输出信号Y的电压相当于GND的电压,也就是Y=0;在这个过程中,从VDD到GND这一个供电回路都没有导通,因此理论不存在电流从VDD流到GND,因此功耗为0.

  B当输入信号A=0时,PMOS打开,而NMOS关闭,输出信号Y=VDD=1,但是从VDD到GND这一个供电回路也没有导通,因此理论上也不存在电流从VDD流到GND,因此功耗也为0。

  C因此可以得出,理论上反相器进行传输信号时,没有功耗(好吧,我们应该这样说:功耗极其地低),这就是为什么使用CMOS的工艺的原因。

  下面我们来看一下CMOS单元的版图:

                   

  左边是CMOS的电路符号,右边是版图(这个版图先凑合着看),下面来说一下这个版图吧:

  这是一个是使用了p阱CMOS工艺的反相器版图。首先是从下往上看,金属(蓝色)连接到数字地(Vss)上面;白色背景红色虚线边框的P阱区域是为说明,下面的绿色掺杂区域形成的是NMOS,上面绿色掺杂区域形成的是PMOS;

  然后   绿色的掺杂区域  分布在  红色的多晶硅附近,然后多晶硅连在一起(也就是把PMOS和NMOS的栅极连在一起),然后通过金属引出(那个X表示通孔)为输入Vi。

  然后下面的NMOS的源极通过通孔跟金属连在一起(绿色跟蓝色通过X连在一起);NMOS和PMOS的漏极通过通孔连接到同一块金属上面然后当做输出。

  PMOS的源极通过通孔连接到金属然后连接到了数字电源上。

  上面的右图中,也展示出左图中的宽长比:在右边的版图中,NMOS的沟道是1/1,即沟道宽度与沟道长度的比例是1:1,而PMOS的宽长比是3:1(我们可以看栅与有源掺杂区的重叠部分来体会器件的宽长比,其中栅的宽度大致为沟道的长度)。在手画版图时,要注意是先后的区别,也就是哪一个区域被哪一个区域覆盖,简而言之就是:基本衬底在最下面,一次往上是阱衬底,然后是有源掺杂区,接着是栅,最后是金属和通孔。

 

  更加抽象(好看一点)的图如下所示(N阱CMOS工艺):

                  

 

  版图的基本知识就到这好了,更详细的知识还是查看更专业的书籍吧。

 

3、CMOS门电路

  ①CMOS非门:上面的一个CMOS单元的功能就是非门的功能了,因此CMOS非门也就是这个CMOS的单元,也称为反相器。其电路结构就是反相器的电路结构。

  ②(二输入)CMOS与非门(NAND):

直接上图吧,CMOS与非门的电路符号结构如下所示:

               

 

                   

    (PMOS的电路符号栅极处本来应该有个小圈圈,表示低电平有效的)

③(二输入)CMOS或非门(NOR)的电路符号和工作原理如下所示:

                 

      (PMOS的电路符号栅极处本来应该有个小圈圈,表示低电平有效的)

 

  数字逻辑电路都可以由上面的三种电路化简构成,也就是说一个电路可以由NAND或者NOR电路构成,我们来看看他们的特点来推导数字CMOS电路的特点。

容易知道(反正我们就当做结论好了):

  反相逻辑门的通用结构如下所示:

                   

    此外我们也注意到,使用到功能的时候,NMOS网络是联的;使用功能时,NMOS网络是并联的。因此可以这么记忆:要NOMS都一起,才能一起(与),只要NMOS其中一个就可以(或),与还是或,可以根据NMOS的串并结构判断。

  然后设计多少个输入的NXXX门,就把多少个NMOS串/并联起来,然后PMOS就是并/串就可以了。

 

4、CMOS的功耗表示

  功耗是单位时间内消耗的能量,在数字系统中的功耗主要包括静态功耗和动态功耗,我们将从CMOS电路角度聊聊静态功耗和动态功耗。

  CMOS的静态功耗:当CMOS不翻转/不工作时的功耗。在CMOS都不工作时,也就是晶体管都处于截止状态的时候,从VDD到GND并不是完全没有电流流过的,还是有些微电流从电源流到地,这个静态电流Idd称为电源和地之间的漏电流,跟器件有关(至于漏电流是怎么引起的,这里就不再阐述了)。初中的时候,我们就学过P=UI,因此静态功耗就可以这样表示 :

                  Ps = Idd*Vdd.

  CMOS的动态功耗是信号在0和1变化之间,电容充放电所消耗的功耗。我们知道,不仅仅CMOS器件有寄生电容,导线间也有电容。将电容C充电到电压Vdd所需要的能量CVdd^2。如果电容每秒变换f次(也就是电容的切换频率为f,在一秒内,电容充电f/2次,放电f/2次),由于放电不需要从电源那里获取功耗,因此动态功耗就可以这样表示:

        Pd = 1/2* C*Vdd^2*f  即:  

 

 

PS:上面主要是列举了一些主要的功耗,比如动态功耗中除了翻转时电容消耗功耗外,还有在栅极信号翻转的时候PMOS和NMOS同时导通引起的短路功耗。

这里不一一陈述,主要是考虑上面的那两种功耗。也许后面记载低功耗设计的时候会详细说明一下。

 

本文中的图片主要来自Google 网络,部分来自:《数字IC系统设计》

 

 

 

不忘初心:写博客最初目的就是记录自己容易忘记的东西,而不是像写书那样专门写给别人看的。所以,除禁止转载的博文外,其他博文可以转载。 尽自己的努力,做到更好!

从CMOS到触发器(二)

PS:可以转载,转载请标明出处:http://www.cnblogs.com/IClearner/

前面说了CMOS器件,现在就接着来聊聊锁存器跟触发器吧,下面是这次博文要介绍的主要内容:

    ·双稳态器件

    ·锁存器常见结构

    ·锁存器的应用

    ·触发器

    ·触发器的建立时间和保持时间

1、双稳态器件

  双稳态器件是指稳定状态有两种,一种是0,一种是1的器件;双稳态器件是存储器件的基本模块,双稳器件的的一种电路结构是:交叉耦合反相器 结构,如下图所示:

 

                   

 

  连个反相器连在一起,这就构成了一个双稳态器件,为什么是双稳态呢?我们现在就来分析一下:

  由于没有输入,于是我们就假设I1的输出先为1,即Q=1;那么I2的输入为1,Q’就为0,于是反馈给Q的输入,导致Q的输出为1,也就是使得Q的状态稳定为1,因此这个器件有一个稳定的状态为1.如下图所示:

 

             

 

  我们再假设I1的输出先为0,即Q=0;那么I2的输入为0,Q’就为1,于是反馈给Q的输入,导致Q的输出为0,也就是使得Q的状态稳定为0,因此这个器件还有一个稳定的状态为0.如下图所示:

           

 

  由此可见,这种交叉耦合反相器的器件是双态器件。但是需要注意的是,电路有可能存在第三种状态,称为亚稳态,它不是一种稳定的状态,关于亚稳态我们后面会进行介绍。

  为什么介绍双稳态器件呢?那是因为锁存器、寄存器都是双稳态器件,它们都有两个稳定状态1和0。正是因为它们有两个稳定的状态,因此才可以拿它们来存储数据,也就是说双稳态电路(比如交叉耦合反相器、锁存器和寄存器)可以存储数据。下面我们就来看看锁存器和寄存器吧。

 

2、常见的锁存器结构

  很显然,上面的那种交叉耦合反相器没有输入,是存储不了输入的数据的了,因此就需要有输入的类似“交叉耦合反相器”结构的双稳态电路,锁存器应运而生了,最常见最基本的锁存器是S-R锁存器,然后常见常用的锁存器是D锁存器,下面就逐步看看他们的结构和工作原理吧。

①SR锁存器

  在数字电路里面,SR锁存器是最简单的时序单元,它由一对交叉耦合的或非门构成,如下所示:

                 

 

 

  主要功能就是通过输入的S、R端分别控制Q进行置位(set)和复位(reset)。下面我们就对这个电路的分析:

  二输入或非门的功能是,只要有一个输入为1,输出就为了0。这SR锁存电路在正常情况下,输入RS的组合之一4种可能,即00、01、10和11,下面我们就来看看这4种输入对输出Q的影响:

·输入R=0,S=0时:对于或非门N1,输入是0和Q’,由于Q’不知道是0还是1,因此Q的输出不能确定;对于或非门N2,输入是0和Q,由于不知道Q的值,因此Q’也不能确定...这就无限循环下去了,于是我们像交叉耦合反相器那样进行输出假设:

  A,假设原来的状态Q=0时,对应的原来状态就是Q’=1;那么N2的输入就是0和0,输出Q’=1,这样子就巩固了原来的状态Q’=1;Q’=1,对于N2,输入就是0和1,输出Q=0,也巩固了原来的状态,也就是与原来的假设一致。所以这个状态可以稳定下来,也就是当输入SR=00时,输出Q=1,Q’=0是可以存在的,如下图所示:

                   

 

B,假设原来的状态Q=1时,对应的原来状态就是Q’=0;那么N2的输入就是0和1,输出Q’=0,这样子就巩固了原来的状态Q’=0;Q’=0,对于N2,输入就是0和0,输出Q=1,也巩固了原来的状态,也就是与原来的假设一致。所以这个状态可以稳定下来,也就是当输入SR=00时,输出Q=0,Q’=1是也是可以存在的,如下图所示:

                 

 

  由此可见,只要原来的状态一定了,那么输入SR=00时,输出也就是原来的状态。

 

    ·输入S=1,R=0时,根据或非门的功能,由于S=1,N2的输出Q’= 0;于是N1的输入就是00,输出Q就等于1;然后Q=1反馈回N2的输入,让N2的输出稳定为0,从而让Q的输出稳定为1;输入SR=10时,输出Q=1,称为置位功能。(这里我们看一下,在SR=10时,S的信号稳定多久输出Q和Q’才稳定下来:S=1到来,首先经过N2的门延时t1,然后是Q’反馈回N1的线延时t2,接着是N1的门延时t3,再然后是Q反馈回N2的门延时t4,也就是有2个门延时和两个线延时,这是对于Q’的;对于Q还有增加一个N2门延时和一个Q’反馈回N1输入的线延时)如下图所示:

                       

   从上面的分析中,我们知道输入S=1,R=0时,输出Q=1,也就是置位的功能。

    ·当S=0,R=1时,这种情况跟SR=10类似,只不过是输出Q=0,也就是复位的功能。

    ·当S=1,R=1时,根据或非门的功能知道,输出Q=0,Q’=0。很显然这时候Q=Q’了,这跟我们给输出取值的字面意义是相反的,我们把这种状态称为错误输出,这是要注意的。这里需要说明的是,S和R都有效是没有意义的,锁存器不能同时被复位和置位,这样会引起输出都是0的混乱电路反应。

通过上面的分析,我们知道,SR锁存器可以具有锁存数据的功能:在S有效时,复位输出Q=1;在R有效时,输出复位Q=0;当S和R都无效时,就会保持前一个状态的输出。

 

②D锁存器

虽然SR锁存器可以锁存数据,电路结构也简单,但是有一个毛病就是S和R同时有效时,输出错误,使用不够方便;还有一个问题就是某个时候存某个数据分不开,相当于时间和内容不够清晰。因此就因此了D锁存器,D锁存的功能是在时钟高/低电平的时候通过数据,在时钟低/高电平的时候锁存数据(这样就明确地说明了什么时候锁存什么数据,而不是像SR锁存器一样,不知道锁存什么数据),具体的结构图和分析如下所示:

D锁存器常见结构和电路符号图如下所示:

          

可以看到,D锁存器可以分为前级门电路(两个与门和一个非门)和后级SR锁存器组成,(PS:反相器2个晶体管,两个与门共12个晶体管,两个或非门共8个晶体管,D锁存器一个22个晶体管)下面我们就来分析一下它的功能:

输入是Clk和D,也就是输入有四种可能:

·当clk=0时,红S红R都为0,也就是SR锁存器的输入为00,根据SR锁存器的功能,输出Q和Q’将保持原来的状态;因此clk=0时,不管D是什么,输出Q和Q’都不随D变化,只与原来的状态有关,也就是保持。

·当clk=1时,R=(1·D’)=D’;S=(1·D)=D。

也就是说,当clk=1的时候,SR锁存的输入是互补的,不会出现S和R同时有效的情况。当D=1时,S=1,置位有效,输出Q=1;当D=0时,R=1,复位有效,输出Q=0;因此就可以知道,在clk=1时,输出Q=D,也就是输出等于输入。

通过上面的分析,上面的D锁存器结构功能为:在clk=1时,数据通过D锁存器流到了Q;在Clk=0时,Q保持原来的值不变。这样的锁存器也称为透明锁存器或者电平敏感锁存器(这里需要注意的是,上面结构中电平敏感锁存器是高电平敏感也是就是高电平有效,这里的有效不是指“锁存”的这个功能有效,而是指输出发生变化即输入信号得以传送到输出,方便后面的锁存操作)。然后低电平敏感的D锁存器的电路结构这里就不介绍了。

 

3、D锁存器的应用

锁存器用来锁存数据,这是初始的功能应用,这里来聊聊锁存的其他的简单应用吧。

①锁存器的常用应用就是用来防电路毛刺了,具体的应用就是门控时钟了,这里请查看我的另外一篇博文,那里有较为详细的关于门控电路的描述。

②此外,锁存器可以用来构造触发器,这个我们在后面的触发器中进行介绍。

③锁存器的一种叫做锁定锁存器( lockup latch)的玩意用于修复扫描链插入时引起的时钟偏移问题,帮助修复保持时间违规,具体情况可以查看下面链接:

http://vlsiuniverse.blogspot.com/2013/06/lockup-latches-soul-mate-of-scan-based.html  (貌似需要fan墙才能查看...)

④类似通过修复保持时间来增强性能、锁存器流水线的应用,这些应用很难三言两语的说明,有些我也不是完全掌握,以后有时间再进行撰写。

 

4、(D)触发器

触发器有很多类型,比如J-K触发器、T触发器、D触发。前面我们也说了,锁存器的应用之一就是构成触发器,这里我们只聊最简单的触发器——D触发器,D触发器的结构和电路符号图如下所示:

 

            

 

 

 

    D触发器可以由两个D锁存器构成,驱动时钟的相位相反(也就是),前面的D锁存器称为主锁存器,后面的D锁存器称为从锁存器,因此D触发器也可以称为主从触发器(PS:两个D锁存器共44个晶体管,非门2个晶体管,因此D触发器46个晶体管)。下面我们分析一下D触发的功能:

  假设要传输的数据D=D1:在(clock简称clk)clk=0的时候,主锁存打开进行传输数据,把输入传送到从到从锁存器的输入端,即Qm = D1。然后clk从0→1的时候,主锁存器准备关闭,保持原来的值D1,与此同时从锁存器准备打开,把Qm的值传输到输出Qs,也就是Qs=Qm=D1。在clk=1的时候,主锁存器是关闭的,Qm保持D1不变,即Qm=D1;从锁存器是打开的,Qs=Qm=D1。接着clk从1→0的时候,主锁存器准备打开,准备传输数据;而从锁存器准备关闭。在clk=0的时候,主锁存打开进行传输数据,把输入传送到从到从锁存器的输入端,即Qm *= D2;与此同时,从锁存器关闭,由于新的Qm即Qm*还没有到达从锁存器的D端,因此在从锁存器关闭的时候,从锁存器锁存的是原来的值即D1,因此输出Qs =D1。然后接下来上升沿就传输D2....

  从上面的分析可以找到,D触发器在时钟上升沿的时候锁存在时钟上升沿采到的值,并且保持一个时钟周期。这种在时钟上升沿锁存数据的触发器称为正边沿触发器,与此对应的还有负边沿触发的触发器,这里就不进行介绍了。

  由D触发器延伸出去的知识点还有很多,比如寄存器,寄存器由多个D触发器构成(一个D触发器可以看做1位的寄存器);比如带使能的触发器:

                   

 

带复位的触发器:

                     

 

 

OK,触发器的结果和功能就聊到这里,接下来我们来聊聊触发器的建立时间(setup time)和保持时间(hold time).

 

5、(D)触发器的建立时间和保持时间

  首先我们来看看建立时间和保持时间的定义,然后再看看为什么会这样。

  建立时间:时钟有效沿到来之前的某段时间内,数据必须稳定,否则触发器锁存不住数据,这段时间成为建立时间,用Tsetup或者Tsu表示,也就是说要锁存的数据必须比上升沿早来时间必须大于建立时间。

  保持时间:时钟有效沿到来之后的某段时间内,数据也必须稳定,否则触发器锁存不住数据,这段时间成为保持时间,用Thold或者Th表示。也就是说,要锁存的数据,在上升沿到来之后,还要停留比保持时间大的时间。

如下图所示:

             

 

  在第二个时钟上升沿的时候,要锁存住输入端D的高电平,D1是满足了建立时间和保持时间的情况;而D2则是建立时间没有满足,因此不能成功锁存住输入的高电平;D3保持时间不满足,也不能成功锁存输入的高电平。

  下面我们就来探讨一下为什么会会有建立时间和保持时间的要求(别跟我说不满足要求就不能锁存正确数据,我要的是根本原因,不是后果,也就是为什么不满足建立/保持时间会导致不能捕获正确锁存数据的原因):

  首先D触发器的门级结果如下所示:

      

 

  我们知道D触发器是在(上升)边沿进行锁存数据的,也就是clk从在0→1的时候锁存数据,那我们就看看这个上升沿的时候发生了什么:

假设原来的数据是1(也就是从锁存器锁存的数据是1),然后我们要锁存的数据是0。我是这么理解建立时间和保持时间的:

  首先,要让时钟上升沿之后Q输出为了,就是要让从锁存器输出为0,即是要主锁存器在时钟上升沿之后稳定地锁存住0,换个角度看就是:在上升沿到来以及到来之后,主锁存器负责锁存数据,而从锁存器则是负责传输 主锁存器所锁存好的 数据;这样一来,我们的研究重点就放在了主锁存器

  对于主锁存器,我们可以看这个图:

                 

 

  在时钟上升沿到来后,我们要让Q输出0。假如数据的建立时间不足,会发生什么呢,也就是数据(0)相对于时钟上升沿来得太晚了会怎么样呢?

  假设在T=0ns的时候,clk从0变成1(为方便分析,假设时钟是理想的,没有跳变延时)。我们假设一个数据D1=0在T=-0.7ns(即比时钟上升沿提前0.7s)的时候到达数据的端口,然后另一个数据D2=0在T=-0.3ns的时候才来到数据端口(也就是说,D1来得早,而D2来得比较晚即建立时间不足)。然后D1这个0翻山越岭越过了反相器,变成1,经过了与门(由于与门的另一个输入为1)变成了1,经过或非门之后,使输出Q变成了0,也就是变成了从锁存器要锁存的0值。然后主锁存器Q刚输出0的时候,还不稳定,需要通过反馈使得自己的或非门的输入为1就是需要t1+t2+t3的时间(如下图所示)进行维持Q的稳定。

                 

 

  然后我们再看看D2数据翻山越岭,刚刚翻到与门那里,时钟沿就来了,它都没有成功到达或非门输入。于是D2就肯定达不到目标了,也就是变不成了从锁存器要锁存的0值,这就是建立时间不足的引起锁存不住值的问题。

  接着我们看一下保持时间,还是从主锁存器这边看。加入0时刻时钟clk发生0→1的上升沿跳变时候,clk的1信号首先需要经过反相器(inst10)变成0信号后传到后面的与门(inst13和inst14)。信号从时钟端口到达与门需要经过t1的延迟时间(如下图所示)即他t1时刻与门的输入就为低电平0。那么在这个t1时刻之前,与门的输入端clk始终保持高电平1;在t1时刻之前,如果输入端D发生跳变,也就是从0变成1(也就是低电平0这个信号保持得不够久,由于某些原因被冲成了高电平1),变换后的数据端高电平1经过t2延时之后,到达与门的另一个输入端。当t2

               

 

    因此我们需要输入D在时钟沿跳变之后保持不变,这个保持时间的实质就是这个t1与t2的差值,即数据到达之后,要保持t1-t2。假如这跟导线很长,即t2的延迟很长,比t1还长,那么保持时间就是一个负值,这时候就完全没有必要关注保持时间了,而是关注建立时间了。

 

从上面的分析可以知道,保持时间一般情况下会比建立时间小,我另一篇讲解时序库的博客中(链接https://www.cnblogs.com/IClearner/p/6622524.html 在靠后面的位置 寄存器单元的综合模型--D端口  这里可以看到建立时间和保持时间的信息和讲解)也证明了这点。

 

 

你可能感兴趣的:(电路ABC)