触发器是使用时钟脉冲CLK
触发存储动作的单元电路。
触发器Flip-Flop
需要两组或非门电路:
- 特点:一组或非门的输入是另一组的输出。
反馈
:当系统的输出返回给输入,从而达到某种程度上的控制
效果的时候,就说明这个系统具有了反馈
的特性。- 作用:
- 当闭合上面的开关时,灯泡点亮且即使再次断开上面的开关,灯泡也不会灭。
- 这时再去闭合和断开下面的开关,灯泡就会熄灭且维持。
- 你会发现,上面的开关只能点亮灯泡,而下面的开关只能熄灭灯泡。
- 好像是灯泡会
记忆
改变它状态的开关一样。
1
位锁存器
R-S触发器的设计:
R
用来复位Reset
,S
用来置位Set
,Q
和Q-
记录输出状态。
- 为了确保
Q
和Q-
互异,我们不允许R
和S
同时为1
。
保持位的设计:
- 设置一个
保持位
,保持位控制数据端的输入:保持位为0
,复位
和置位
输入无效,保持位为1
,复位
和置位
输入将输出到Q
和Q-
。 - 这就像我们键盘上的
Lock
,NumLock
点亮时可以输入数字,关闭时,数字键盘失效。
- 设置一个
电平触发的
D
型触发器:- 将
复位
和置位
统一作为输入端,保持位作为控制端,设计使用电平保持位
触发的数据Data
输入控制器。这样的电路可以保存1
位的二进制数据,所以又叫做1位存储器
。
- 将
1
位存储器:- 当
Clk=0
时,数据被保持,要使用这个数据,只要把输出端接到你想接到的地方就可以了,比如一个接地了的灯泡,灯泡亮与不亮就直接显示了这个锁存器存入的是0
还是1
。 - 如果你想改变这个锁存器存入的值,就将
Clk
置为1
,从输入端改变输入的值就可以了。
- 当
我的思考:
- 一开始我会觉得这种设计是多么得多余,如果你只是想要一个可以保留并输出
0
和1
的电路,一个继电器就可以满足需求了。 - 那为什么又要费尽周章来做这样一个复杂的触发器来做几乎完全相同的事情?
- 还记得前面我提到的一个很有趣的场景吗?
- 就像我们键盘上的
Lock
,NumLock
点亮时可以输入数字,关闭时,数字键盘失效。
- 就像我们键盘上的
- 我猜这么做是为了达到一种
控制
,这种控制可以让你随心所欲地输入
,不必受到开关
只能开
和关
的制约。
- 一开始我会觉得这种设计是多么得多余,如果你只是想要一个可以保留并输出
连续加法器
下图的设计原理:将加法器的结果输出给8位锁存器
,然后再输出到B
输入端作为加数与下一个输入的A
加和,从而实现连续加和,用户只需要不断输入A
的值即可。
- 首先,需要一个8位的锁存器——8个
D型触发器
相连,Clk
串行(同一输入端)。 边沿触发器——两个
R-S触发器
:要求:只有当
Clk
输入从0
跳到1
的瞬间,数据端输入才有效实现原理:时钟位为
0
时,第二个R-S触发器
处于保持位,第一个R-S触发器
保存数据端输入到输出端(同时也是第二个R-S触发器
的输入端),时钟位变为1
的瞬间,第一个R-S触发器
被保持,其输出端数据输入到第二个R-S触发器
输出结果。注意
:从1
变为0
的瞬间无效,因为两个R-S触发器
的输入输出是有次序的。
清零
的设计:- 当
清零
位为0
时,或门输出不受影响;当清零
位为1
时,或门输出为1
,或非门输出为0
,即强制使Q端输出0
。
- 当