很多同学提问到锁存器的相关问题,说明大家对这方面知识还不是很了解,今天我们就来探讨一下。

上图是两个没有else的代码,其等效于下图的代码。

也就是说,当if条件里面没有写else时,默认是表示“保持不变”的意思。
接下来,我们来讨论一下,硬件中是如何实现“保持不变”的。

左边是时序时序逻辑的代码,右边是该代码所对应的硬件电路。特别注意图中红色的那个线,那个就是保持不变的“反馈”。由图中可以看出,当时钟上升沿的时候,当选择器的结果赋值给信号b;非上升沿的时候,b一直保持不变,因此红色线在此期间也是保持不变的。当a为0的时候,选择器选择当前b的结果,然后在下一个时钟上升沿赋给信号b。
由引可见,实现“保持不变”的关键在于D寄存器。
众所周知,组合逻辑代码是没有D寄存器的,那么它又是如何实现保持不变呢?这个就会用到锁存器了。


上图是组合逻辑代码,及其对应电路。为了让信号b保持不变,就要用到一个叫“锁存器”的器件。

最低0.47元/天 解锁文章
1506

被折叠的 条评论
为什么被折叠?



