锁存器与触发器

发布于 2022-02-08  5 次阅读


PS: 如果对逻辑门不了解可能本文会阅读困难,建议先通过芯片的组成与运作一文了解逻辑门是什么,为什么我们要使用逻辑门。

SR锁存器(SR Latch)是所有存储设备的基础单元

一般的,SR Latch 由 两个 NAND 或 NOR 门 组成,且只给定两个输入。将其中一个输入称为 S: set 另一个输入称为 R: reset

例如NAND LATCH

NOR Latch

在不去详细理解具体电路的情况下, 我们可以简单的认为 S 决定一种状态,而 R 决定另一种状态。而当我们同时S & R 时结果就不可知,所以不倡导同时启动 S & R。

具体的 SR Latch

无论是由 NOR 门 还是 NAND 门 组成的锁存器的默认的SR设置都是使结果未知.可恶啊为什么我的电路那么丑Error

  1. 当 由两个NOR门组成时:

    • 我们需要通过设置 S=0, R=1 亦或是 S=1, R=0, 都会使锁存器运作, 锁下状态
    • 若我们设置S=0, R=1, 与 R 连接的 NOR 门 会输出 0 并作为 与 S 连接的 NOR 门 的输入, 与 S 一起 得到输出 1.
      • NORS0R1
      • 我们这时候更改 R 并不会使状态发生改变, 从而实现 锁存.
      • NORS0R1 2
    • 设置S=1, R=0, 与 S 连接的 NOR 门 将会输出 0 并作为 与 R 连接的 NOR 门 的输入, 与 R 一起 得到输出 1.
      • NORS1R0 1
      • 我们这时候更改 S 并不会使状态发生改变, 从而实现 锁存.
      • NORS1R0 2
  2. 当 由两个 NAND 门组成时,情况些许复杂,为了使操作更为方便,我们的 S,R 输入需要经过 NOT 处理:Usable NAND

    • 同样的, 我们需要先设置 S=0, R=1 亦或是 S=1, R=0使锁存器运作, 锁下状态

    • 设置S=1, R=0, 即 S'=0, R'=1. 与 S 连接的 NAND 门 将会输出 1 并作为 与 R 连接的 NAND 门 的输入, 与 R 一起 得到输出 0.

      • NANDS1R0 1
      • 在这时我们更改 S 并不会使状态发生改变, 从而实现 锁存.
      • NANDS1R0 2
    • 设置S=0, R=1, 即 S'=1, R'=0. 这时与 R 连接的 NAND 门 会输出 1 并作为 与 S 连接的 NAND 门的输入, 与 S 一起得到输出 0.

      • NANDS1R0 1
      • 我们这时候更改 R 并不会使状态发生改变, 从而实现 锁存.
      • NANDS1R0 1

更有效的锁存器 配合 触发器

如果我们想要设计一个存储单元,我们将用到了大量的锁存器,并将他们连接起来。但是问题来了,当我改变一个输入时,所有的锁存器都会跟着改变,但我们的本意就有可能使改变一个锁存器的状态。为了达到只更改一个的目的,我们引入一个时钟脉冲(Clock)或说CLK. 只有当CLK到达时,锁存器才会改变状态。而这种由CLK与锁存器的组合我们称为触发器(Flip-flop 更专业点为 Bistable Multivibrator)

我们常用的触发器有

  • Clocked SR Latch: 由 4 个 NAND 门 和 3个输出组成
    • Flip-flop
    • 当CLK未被触发时Clock=0, SR的输入无论怎么改变都不会改变输出结果. 例如:
    • CLatchS0C0R1
  • D Latch 由 4 个 NAND 门 和 2 个输出组成,L=0L=1分别控制一种状态.
    • DLatchD1C1
    • 同样的, 当CLK未被触发时Clock=0, D的输入无论怎么改变都不会改变输出结果. 例如:
    • DLatchD0C0

浊酒情殇逝,失心狂傲往。 无情者伤人,有情者自伤。