PS: 如果对逻辑门不了解可能本文会阅读困难,建议先通过芯片的组成与运作一文了解逻辑门是什么,为什么我们要使用逻辑门。
SR锁存器(SR Latch)是所有存储设备的基础单元
一般的,SR Latch 由 两个 NAND 或 NOR 门 组成,且只给定两个输入。将其中一个输入称为 S: set 另一个输入称为 R: reset
例如
或
在不去详细理解具体电路的情况下, 我们可以简单的认为 S 决定一种状态,而 R 决定另一种状态。而当我们同时S & R 时结果就不可知,所以不倡导同时启动 S & R。
具体的 SR Latch
无论是由 NOR 门 还是 NAND 门 组成的锁存器的默认的SR设置都是使结果未知.可恶啊为什么我的电路那么丑
当 由两个NOR门组成时:
- 我们需要通过设置
S=0, R=1
亦或是S=1, R=0
, 都会使锁存器运作, 锁下状态 - 若我们设置
S=0, R=1
, 与 R 连接的 NOR 门 会输出 0 并作为 与 S 连接的 NOR 门 的输入, 与 S 一起 得到输出 1. - 我们这时候更改 R 并不会使状态发生改变, 从而实现 锁存.
- 我们需要通过设置
- 设置
S=1, R=0
, 与 S 连接的 NOR 门 将会输出 0 并作为 与 R 连接的 NOR 门 的输入, 与 R 一起 得到输出 1. - 我们这时候更改 S 并不会使状态发生改变, 从而实现 锁存.
当 由两个 NAND 门组成时,
情况些许复杂,为了使操作更为方便,我们的 S,R 输入需要经过 NOT 处理:同样的, 我们需要先设置
S=0, R=1
亦或是S=1, R=0
使锁存器运作, 锁下状态设置
S=1, R=0
, 即S'=0, R'=1
. 与 S 连接的 NAND 门 将会输出 1 并作为 与 R 连接的 NAND 门 的输入, 与 R 一起 得到输出 0.- 在这时我们更改 S 并不会使状态发生改变, 从而实现 锁存.
设置
S=0, R=1
, 即S'=1, R'=0
. 这时与 R 连接的 NAND 门 会输出 1 并作为 与 S 连接的 NAND 门的输入, 与 S 一起得到输出 0.- 我们这时候更改 R 并不会使状态发生改变, 从而实现 锁存.
更有效的锁存器 配合 触发器
如果我们想要设计一个存储单元,我们将用到了大量的锁存器,并将他们连接起来。但是问题来了,当我改变一个输入时,所有的锁存器都会跟着改变,但我们的本意就有可能使改变一个锁存器的状态。为了达到只更改一个的目的,我们引入一个时钟脉冲(Clock)或说CLK. 只有当CLK到达时,锁存器才会改变状态。而这种由CLK与锁存器的组合我们称为触发器(Flip-flop 更专业点为 Bistable Multivibrator)
我们常用的触发器有
- Clocked SR Latch: 由 4 个 NAND 门 和 3个输出组成
- 当CLK未被触发时
Clock=0
, SR的输入无论怎么改变都不会改变输出结果. 例如:
L=0
和L=1
分别控制一种状态.Clock=0
, D的输入无论怎么改变都不会改变输出结果. 例如:
Comments | NOTHING