利用反相器解决锁存器无法复位问题

在之前遗留一个问题, 锁存器 Q 端一旦进入高电平就无法复位, 除非手动在 R 端置入高电平.

原因在于锁存器的输入只接在了 S 端. 那现在需要把输入同时接在 S 和 R 端吗?

根据之前的 R-S 锁存器的真值表:

R S Q !Q
之前状态 之前状态

真正有效的两个状态是中间两行, 此时 R 和 S 是正好相反的.

而如果 R 和 S 状态相同, 则输出要么是低电平, 要么是保持之前状态. 所以 R 和 S 直接接同一个输入是不行的.

为达到 R 和 S 相反的目的, 可以引入一个反相器(非门), 如下:

R-S 锁存器引入非门使两个输入相反

如此一来, 无论输入是什么, R 和 S 总是获得一个相反的输入:

R-S 锁存器加入反相器后两个输入总是相反

在加法器输出的每个锁存器上都引入同样的结构, 如下:

在加法器上应用带反相器的锁存器结构

在加法器上应用带反相器的锁存器结构 在线可互动操作示例

如此一来, 一开始在每个 R 端手动设置的输入也不需要了.

现在测试一下, 先做 1+2, 结果是 3(0011):

测试带反相器的锁存器

再改成 1+1, 锁存器的结果也跟随变成了 2, 问题解决了:

测试带反相器的锁存器

但是否会有新的问题呢? 很不幸的, 正如那句"按下葫芦起了瓢"的谚语所说的那样, 如果此时我们把输入都撤掉, 也即是变成类似 0+0:

带反相器是锁存器的新问题--无法缓存

会发现锁存器的结果也直接变为了 0, 因为它总是实时跟随加法器的输出而变化.

还记得我们引入锁存器的初衷吗? 不就是为了能缓存这个结果吗? 显然需要进一步改进这个结构!

results matching ""

    No results matching ""