一个门输入与其他门的多个输出之间的连接如何导致电路记忆?

How can a connection between one gate input with mutiple outputs of other gates causes circuit memory?

我正在阅读 David Harris 和 Sarah Harris 的 Digital Design and Computer Architecture。作者给出组合逻辑的定义如下:

A combinational circuit’s outputs depend only on the current values of the inputs; in other words, it combines the current input values to compute the output... A combinational circuit is memoryless, but a sequential circuit has memory. The functional specification of a combinational circuit expresses the output values in terms of the current input values.

但是,他们声称此电路不是组合电路:

因为“节点n6连接到I3和I4的输出端”。事实上,当一个方案不能组合时,它是指定的标志之一,但是,根据作者的说法:

Certain circuits that disobey these rules are still combinational, so long as the outputs depend only on the current values of the inputs.

据我所知,上述电路是这样的:当且仅当其输入均为1时,其输出为1,否则输出为0。因此输出被定义为函数输入(AND 函数)。

其实计算机科学网已经有关于这个电路的问题了,而且有一个accepted answer。以下是摘录:

Circuit (d) cannot be written in this form [of formula], since the outputs of I3 and I4 are wired together. What is the relation between the input to the rightmost gate and the outputs of I3 and I4? Not something that can be described combinatorially.

不幸的是,由于

,我仍然感到困惑

我需要详细说明。如果有人提供一个电路示例,当两个门输出连接到一个输入并且它实际上导致“记忆”(与所考虑的示例相反)时,事情可能会落到实处。

电路(d)不是组合电路,因为它根本不是逻辑门电路。
我认为这是一个非常愚蠢的例子来解释组合电路与时序电路。

在逻辑电路中,一条输出线不能转到另一条输出线。您假设输出连接在一起时将作为它们自身的逻辑或或与。
这不是真的(否则我们为什么要首先使用 AND/OR 门?)。
What will happen depends on the specific implementation of the gates(即您使用的特定 IC 或制造工艺),这不是逻辑电路用来建模的东西
无论您使用什么品牌,逻辑电路都必须表现相同。

在电路(d)中,I3的输出将同时馈入最右边的NOT的输入和I4的输出(互补也是如此)。
如果电流从它们的输出端流入,大多数 IC 都会损坏,其他人不会,但它们会干扰最右边的 NOT 感应其输入的能力。
逻辑电路是静止电路,因此理论上,您应该执行完整的电路分析,包括求解微分方程,以求解它们的输出。
数字电子学是从这些“低级”细节中抽象出来的一个分支,但以做出一些假设为代价,其中之一是:输出永远不会在没有门的情况下合并。

组合电路的全部意义在于你可以写out = f(in0, in1, ..., ink),但并不总是可能的。
以一个 edge detector 为例,它只是一个 f(A) = (NOT A) AND A,根据排中律,它应该总是输出 0.
但它不会,因为 NOT A 路径需要稍长的时间才能到达 AND 输入。
如何用 f(A) 函数描述这种动态行为?

不要想太多,当你接触到时序电路时,你会立即发现不同之处(如果你需要预览,请查找“锁存电路”)。