锁存器与触发器
来源 https://zhuanlan.zhihu.com/p/363273167
常见存储电路
RS锁存器
锁存器的机制为电平触发。基本的RS锁存器有两个输入端:set端和reset端。两个输出端:Q和Q非
以下图为例:
- 当置位时,SD位为1,RD位为0 ——>Q为1,Q非为0
- 当复位时,SD位为0,RD位为1—— >Q为0,Q非为1
可以看出这时Q的状态就是锁存器的状态
- 锁存器可以存值的原理:
已复位为例,假设此时输入端的激励信号消失,那么SD和RD都为0。
此时G1门的输入端的Q非应该为上次复位时的值1(时序电路的特点) - 禁止出现SD为1,RD也为1的情况。(既复位又置位),会导致Q的状态不确定。
- RS锁存器也可使用与非门实现(低电平有效)
D锁存器
与非门实现的D锁存器结构如下:
- 可以看出,当C=1时,该锁存器有效。此时D的状态决定了Qn+1的状态
- 当C被拉高时,Q的状态随着D的状态变化
- 当C被拉低时,锁存此时D的状态
但触发器会出现空翻现象,即当C有效,D不断变化时,一次时钟来到期间,触发器多次翻转
主从D触发器
触发器是边沿触发的。主从D触发器可以很好地解决空翻现象
- F1为主触发器,F2为从触发器
- 主从D触发器为边沿触发
当激励产生,CLK=0,D=1,F1工作,此时Q1=1,但F2只能等到下一拍才可触发。下一拍CLK=1,Q1=1,F2工作,Q=1。 - 可以有效解决空翻
寄存器
寄存器的工作原理与D触发器基本一致,可以保持当前值直到时钟边沿的到来。
右移位寄存器
移位寄存器就是根据D触发器的特性串联实现的,一次信号变化移动一位
- 第一次变化如下图,第一位置1,其余位不变
- 第二次变化如下图,第二位在时钟边沿到达时,由于触发器的特性而置1
- 后面的变化与上面类似
触发器是时序电路中一种非常常见的元器件,在时序电路中用来锁存值,也与非阻塞赋值有关。
而在verilog编码中要尽量防止锁存器的出现。
============= End