利用锁存器缓存结果

在有了锁存器的原型之后, 回到之前关于如何进行多个数相加的加法器设想中, 比如要做 1+2+3, 希望只用到一个加法器, 因此需要两个步骤:

  1. 先做 1+2, 然后把结果 3 存起来.
  2. 再做第二次加法, 把第一步的结果 3 和另一个加数 3 加起来, 也即 3+3, 最终得到 6.

把一个四位加法器的输出端接入四个 R-S 锁存器, 如下图:

锁存器缓存加法器之和-初始化

之前曾说到, 锁存器两个输入端不能同时为低电平, 否则输出的状态是不确定的. 为在初始化时有一个确定的状态, 在 R 端统一先置入高电平, 从而使输出端 Q 统一复位为低电平.

之后将 R 端置回到低电平, 否则 S 端无法将 Q 置位为高电平, 然后加法器的两个输入端, A 设为 1(0001), B 设为 2(0010), 和为 3(0011), 所以输出端 S0 和 S1 均变为高电平, 从而将锁存器置位:

锁存器缓存加法器之和-锁存和

此时, 如果撤掉加法器两个输入 A 和 B, 则 S0 和 S1 回到低电平, 但由于锁存器的作用, 锁存器的输出仍然为 3(0011):

锁存器缓存加法器之和-和被锁存

目前的结构初步达到了锁存的目的, 但还存在一个问题.

比方说假如现在想从新计算 1+1, 并希望把结果 2 锁存起来, 会发现无法实现:

锁存器缓存加法器之和-无法复位

可看到输出 S0 为低电平, 但锁存器依然是保持高电平.

其实之前撤掉两个输入时我们就应该意识到这一点, 一旦锁存器 Q 的结果变为高电平, 是无法再通过 S 端将其复位的, 复位只能通过 R 端, 因此只将输出连接到 S 端是有缺陷的.

在下一章节, 我们将引入一个新的结构设计, 以解决此问题.

results matching ""

    No results matching ""