为什么我不能在逻辑模拟器中制作触发器?

电器工程 数字逻辑 模拟 拖鞋 顺序逻辑
2022-01-17 20:03:55

我一直在玩一些逻辑模拟器,但不明白为什么触发器不起作用。我正在尝试用 NAND 门实现 T 触发器:

在此处输入图像描述

我尝试过的所有模拟器都给出了相同的结果。Q 或 Q' 采用时钟状态而不是在上升沿切换,具体取决于内部更新的时序。鉴于电路的对称性,我并不感到惊讶,但想知道它在实践中是如何工作的。

这甚至可能吗,或者这些模拟器是否提供触发器组件,因为它不可能与基本部件有关?如果是这样,为什么以及缺少什么?

模拟器:

NAND 门电路与提供的 T 触发器 (circuitverse.org) 相比:

在此处输入图像描述

在simulator.io 中也是如此(使用AND+NOT,因为没有NAND):

在此处输入图像描述

4个回答

因为从这个页面开始,您展示的样式只有在时钟脉冲的宽度被调整为足够长以使输出级做出反应,但又足够短以使事物不振荡时才有效。不模拟传播时间的逻辑模拟器可能无法应对。

要模拟您的电路,您需要一个“了解”传播延迟的电路模拟器,或者您需要在晶体管级别模拟您的电路。

同一页显示了用于完全同步 J-K 触发器的此电路(只需将 J 和 K 连接在一起以获得 T ff):

在此处输入图像描述

您可能想在模拟器中尝试一下,看看会发生什么。

您展示的电路是门控 JK 锁存器,而不是触发器。它有一个缺陷:在 T 高和时钟高的情况下,交叉耦合的 NAND 门形成一个环形振荡器。这有时被称为“绕行”问题。在时钟恢复为低电平之前,输出永远不会稳定。

该电路说明了如何不制作时钟触发器。否则就没用了。一个实际的触发器将在两个阶段使用一对锁存器,时钟在相反的水平上。这有时被称为“边沿触发”或“主从”触发器。

更多信息:第一次在 JK 触发器中如何确定 Q 和 Q'?

在这里:JK 闩锁,可能是 Ben Eater 错误?

要实现不依赖于门延迟时序的边沿触发 T 触发器,我相信至少需要 6 个与非门。下面的电路在 CircuitLab 中模拟得很好。

示意图

模拟此电路- 使用CircuitLab创建的原理图

编辑:

有人评论说该电路不是 T 触发器,因为该电路仅依赖于时钟,并且没有单独的 T 和时钟输入。

然而,当我在谷歌上搜索“T 触发器”时,第一个出现的结果是

T 或“切换”触发器在每个时钟边沿改变其输出,将输出信号频率的一半提供给 T 输入。

它可用于构建二进制计数器、分频器和通用二进制加法设备。它可以由 JK 触发器通过将其两个输入连接到高电平来制成。

其中包含图形:

在此处输入图像描述

我并不认为这必然是对 T 触发器必须具有单独的 T 和时钟输入的说法的权威反驳。(互联网上肯定有很多关于触发器的错误信息。例如,OPs 电路出现在所有标记为 T 触发器的地方,尽管它存在其他答案中描述的问题。)然而,我提供上述信息作为评论者的替代观点。

Edit2:评论者要求提供电路的状态图。我将提供这些信息,但不是图表。

正常运行时有 4 个稳定状态和 12 个在稳定状态之间过渡的状态。

稳定状态是:

状态:Vin N1 N2 N3 N4 N5 N6

S1:0 1 1 0 1 1 0

S2:1 0 1 0 1 0 1

S3:0 1 1 1 0 0 1

S4:1 1 0 1 1 1 0

过渡如下

S1 输入N1N6N5S2

S2 输入N1N4N3S3

S3 输入N2N5N6N4S4

S4 输入N2N3S1

您可能(但应该)遇到的另一个问题是:第一次在 JK 触发器中如何确定 Q 和 Q'?.

对于 T 型触发器尤其如此。

对于只有 2 个输入(T 和时钟)的 T 触发器,在支持“X”的模拟中,输出无法进入已知状态。

一个好的模拟器会在两个输出上显示一个“X”,这表明该值是未知的。

正如我在回答中提到的,可以使用同步或异步输入将输出设置为已知状态。

作为参考,我使用主从 JK 触发器构建了一个带有异步输入的 T 触发器,您可以在浏览器中对其进行模拟:

T型触发器 模拟此电路- 使用MultisimLive创建的示意图