SR锁存器—>带EN的SR锁存器—>D锁存器—>边沿触发式D触发器—>寄存器
-
SR锁存器到底是什么?其实SR锁存器有两种方式,一种是与非门的锁存器,一种是或非门的锁存器,我们只讲与非门的锁存器,与非门构成的SR锁存器是是一个以低点平为信号的锁存器,其中S,R的初始状态都是高电平的,其中的S是set是设置Q的,其中的R是reset是设置Q非的。当如果S,R一开始都是高电平的话,那么其中的Q和非Q都是不确定的,因为这个结构是循环的,上一个与非门的结果会通过正反馈来控制下面的与非门(相反也是一样的),所以当两个都设置为为1的时候,其中的Q和非Q到底谁亮是取决于上次电路的结果的。当S,R都处于初始位置的时候,即都是高亮的时候,这个时候就需要一个发号施令进入低电平来行使对应的功能,比如其中的R变成低电平的话,那么就会让非Q变亮,而Q会被暗淡下来,为什么呢?是有一个过程的,其中R是通过低电平来重置Q的,让其回到非Q的状态,而由于非Q是和Q是相斥的,所以这个时候就得有一条电路进行正反馈,通知Q,要他变为低电平的(这个时候的S是始终都是亮的,因为这个是正常的状态,还没有轮到S来行使功能),这个时候不管R怎么变化,那么其中非Q的值也不会变化,因为其中Q的反馈是低电平的,无论R怎么变化,也达不到两个都是高电平的状态,这个电路设计的非常巧妙,难以用基本的逻辑来从0-1,所以记住即可,因为这个结构会在后面经常使用。
所以总的来说,在与非门的SR锁存器中,S控制和其平行的Q的信号的,使用低电平控制;而R是控制与其平行的非Q信号的,使用低电平控制。记住,高电平是S和R的基本状态
-
既然我们有了一个基本的锁存器,能够锁定住在Q中的状态,那么我们能够设置一个开关,来决定是否动用这个锁存器呢?可以的,只需要引入一个EN就好了,这个就是开关。
那为什么这样设计呢?我们需要的是,当我们开启EN的时候,那么就可以正常的去控制的,否则的话是控制不了的。那怎么设计呢?我们知道与非门的SR锁存器是通过低电平控制的,那么只要控制其在EN没有打开的时候,一定输出不了低电平就好了,也就是说,当EN是低电平的时候,S和EN的输入永远都是高电平,即EN,S = (0,1)和(0,0)都是表示高电平,同时保证当EN是高电平的时候,其中的(1,0)(1,1)存在低电平,或电路不可以,与电路也不可以,这个时候与非刚好可以,那么这个时候,就可以在S和EN之间建立一个与非门来控制电路了,但是由于这个时候是(1,1)输出的是低电平从而控制了整个锁存器,所以这个时候的带EN的锁存器,从原来的锁存器由低电平控制,变成了现在的由高电平控制了,即当EN通的时候,S的高电平控制Q的置位,Q的高电平控制非Q的置位。
-
是不是上面的锁存器就很厉害了呢?其实并不是,因为我们在设计之处,是想让Q一定是位非Q的反面的,两者是不能同时存在的,但是上面的锁存器中,当普通的SR锁存器S和R都是低电平的时候,会出现两个Q和非Q都是亮的情况,那么这个和我们原来的初衷是相反的,是无效的。为什么说和我们的初衷是相反的呢?这是因为当S,R都为低电平的时候,我们确实存储了一个高电平的Q,但是当我们的S,R同时变化成高电平的时候,那么这个时候就会出现竞争,因为率先达到与非门进行计算的就一定会让对应的Q或者非Q变成低电平从而影响到另外一个Q或者非Q,那么这个时候,Q或者是非Q的输出就非常地不确定,可能是Q亮,也可能是非Q亮,因为其中一个输出一旦熄灭了,那么另外一个就一定不可能熄灭了,因为被熄灭的这个正反馈锁住了。与其说是有这种情况存在,不如说是这种结构就导致了这种情况的存在,那么唯一的办法就是改变这种结构,即不让其有两个输入,只有一个输入就好了,同时一个输入表示两个不同的状态,就避免了S,R同时是一种状态了
这个就是大名鼎鼎的D锁存器,其中的输入状态还是高电平来控制Q亮,D高电平的话,那么Q亮就进入输出存储。且一定锁住(因为没有另外一个输入R来影响了,只有一个D来影响,身兼两职,且D是稳定的),且不会发生下一步Q和非Q的不确定。
-
那是不是这种方式就很完美了呢?并不是的!我们锁存的条件是EN是开启的,且D高电平Q才能输入锁存,但是D一旦关闭的话Q就没了,比如D是低电平的话,那么Q就重置了,变成了非Q,即在EN开启的时候,Q的是否是亮的,即Q是否能锁住,取决于D本身是否是稳定的,如果D是不稳定的,那么其中存储的Q也就是不稳定的,所以有没有一个东西,让D高亮锁存的一瞬间就让Q脱离D的关系呢?这个一瞬间怎么来表示呢?记不记得我们前面提到过的需要等到EN高亮的时候,D才能存进去Q,存的条件是EN是一直高亮的,也就是说通道一直是开着的,所以D波动才能影响到Q,那么如果我们让通道不是常开的,我们设置一下,让通道快要开启的时候,这个时候让D锁存,然后等到EN高亮的时候,反而D锁存不了呢?也就是在EN从低电平到高电平拉高的一瞬间让其存进去呢?有的!看下面的电路!
怎么分析呢?这样的电路设计的太巧妙了!其首先是让D是处于一个亮的状态的,同时中间使用了一个非门,使得就算EN的通道没有开放的话,那么也能让信号输出到第一个D锁存器的Q口,那么这个时候,就得等通道的信号了,通道的信号来了之后,同时第二个D口连接着上一个的Q口,这个时候就能里面 缩进去,同时由于通道已经打开,导致第一个锁存器无法正常输出Q亮,所以就堵住了前往后续的道路,故这时无论怎么变化D,里面锁住的信息都不会发生改变。那么这样边沿触发的D触发器才是真正能隔绝外界干扰的锁存器,即一个bit的锁存器,那么多个这样的锁存器拜访在一起的话,就变成了一个寄存器,非常的nice.