转载-从CMOS到触发器(三)

前面说了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锁存器。
①RS锁存器
  在数字电路里面,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’也不能确定…这就无限循环下去了,于是我们像交叉耦合反相器那样进行输出假设:  
  1)RS=00,保持
  假设原来的状态Q=0时,对应的原来状态就是Q’=1;那么N2的输入就是0和0,输出Q’=1,这样子就巩固了原来的状态Q’=1;Q’=1,对于N2,输入就是0和1,输出Q=0,也巩固了原来的状态,也就是与原来的假设一致。所以这个状态可以稳定下来,也就是当输入SR=00时,输出Q=1,Q’=0是可以存在的,如下图所示:
  在这里插入图片描述
  2)R=0,S=1置位
  输入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输入的线延时)如下图所示:
  在这里插入图片描述
  3)R=1,S=0复位
  这种情况跟SR=10类似,只不过是输出Q=0,也就是复位的功能。
  4)当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位的寄存器);比如带使能的触发器。

发布了12 篇原创文章 · 获赞 0 · 访问量 277

猜你喜欢

转载自blog.csdn.net/dxz44444/article/details/104553650