什么是人字拖的比赛条件?

电器工程 数字逻辑 拖鞋
2022-01-07 10:51:58

我已经阅读了两本教科书并咨询了我的老师,但似乎没有任何东西可以澄清我的疑问。

我被教过的两个版本的种族是 -

  1. 当 SR 触发器的 S 和 R 输入为逻辑 1 时,输出变得不稳定,称为竞态条件。

  2. 当 SR 触发器的 S 和 R 输入为逻辑 1,然后输入更改为任何其他条件时,输出变得不可预测,这称为竞争条件。

哪一个是对的?或者,他们都错了,如果是这样,什么是真正的种族?

4个回答

竞争条件是与时间相关的现象。一个标准的 SR FF(两个交叉耦合的 NAND 或 NOR 门)对于任何稳定的输入都是稳定的。

在此处输入图像描述

'乐趣'是在 S=1 R=1 输入,记忆的情况。FF 的状态取决于 11 之前是哪个状态,如果是 01 则 FF 处于 Q=1 状态,如果是 10 则 FF 处于 Q=0 状态。这是 FF 的经典记忆效应。

但是如果它是 00 并且两个输入在时间上足够接近彼此变为 1,则 FF 可以进入亚稳态,其持续时间明显长于门的延迟时间。在这种状态下,输出可以缓慢地漂移到最终状态,或者在稳定到最终状态之前显示出阻尼振荡。稳定所需的时间是无限的,但分布会随着 t >> gate-delay 迅速下降。

在正常操作中,从 00 输入开始,一个输入变为 1,触发器中的反馈回路将这个(或者更确切地说,剩余的 0 输入)通过两个门进行传播,直到 FF 处于稳定状态。当另一个输入也变为 1 而第一个的传播仍在进行时,它也开始传播,任何人都可以猜测哪个会获胜。在某些情况下,两者都不会立即获胜,FF 会进入亚稳态。

竞争条件是,从 00 输入状态开始,一个输入变为 0,而第二个输入在第一个更改的效果确定之前也变为 0 。现在,这两个变化的效果是“竞相”优先。

所述解释适用于简单的 Set-Reset FF(或锁存器,或您想如何称呼它)。一个电平触发电路(我称之为锁存器)可以被认为是一个 RS-FF,两个输入都由使能输入(图中的 CLK)门控:

在此处输入图像描述

在该电路中,交叉耦合 NANDS 的隐藏“输入”的模拟 00 -> 11 转换仍然会导致竞争条件。当 D 输入与 CLK 输入从 1 变为 0 同时变化时,可能会发生这种转换(由于反相器引起的延迟)。

可以认为一个真正的时钟(边沿触发)存储器电路由两个锁存器组成,由相反的时钟电平(主从布置)启用。显然,第一个闩锁仍然容易受到相同竞争条件的影响。

在此处输入图像描述

PS谷歌搜索我从如何将1位存储在触发器中的适当图片?:)

当输出的最终状态取决于输入的到达方式时,数字电路中的竞态就会发生。

数字电路具有固有的延迟。因此,其中一个输入可能比其他输入稍早或稍晚到达,即本来应该同时存在的输入实际上由于沿其路径的不同延迟而在不同时间到达。

因此,输出会发生不可预测的变化。换句话说,输入之间存在竞争,即哪个输入会影响输出。通常,这采用尖峰的形式,可以是高的也可以是低的。

对于您的情况:

在此处输入图像描述

考虑如果 S 和 R 都很高会发生什么。

最初假设 q = 0 和 q' = 1。然后

如果 A 在 B 之前到达, Q 将变为高,这将暂时将 Q' 设置为低,而理想情况下应该保持 Q 高,依此类推。

现在过了一会儿,B 到了(持续时间很短)。这将打开 Q' 高,这反过来又将设置 Q 高。

您可以查看当 B 在 A 之前到达时会发生什么。

现在实际上,这里发生了两件事:

1) 输出暂时取决于哪个输入先到达。这本质上是竞争条件。

2) 最终状态是 q = 1 和 q' = 1 。这不是竞争条件。这只是一个无效状态。理想情况下,Q 和 Q' 必须相反,这里不是这种情况。

我希望我是正确的。

所有的答案在此处输入图像描述

首先,它不是围绕条件竞争......不要混淆它......它的竞争条件......

当 S=R=1 Q=Q'=1。它定义明确..但是当 S 和 R 同时从 1 变为 0(从高到低)时,就会出现问题

晶体管将尝试摆脱饱和...

现在,晶体管 Qr 和 Q's 都将尝试脱离饱和状态……但是,如果晶体管在大规模生产中很少相等,则饱和延迟……饱和延迟较小的晶体管将获胜……并将锁存电路。 ..

如果 Qr 更快,则 M 处的电压将下降且 Q=0 如果 Qs 更快,则 N 处的电压将下降且 Q'=0

因此输出是不可预测的

即使速度相等,输出 Q 和 Q' 也会在 1 到 0 和 0 到 1 之间振荡,因此输出不稳定......

我认为案例1是合适的。即,当 SR 锁存器的两个输入均为“1”时,输出不稳定。

现在从 S=R='1' 输入变为 S=R='0' 在这种情况下输出应该是先前的状态。但之前的状态不稳定。因此输出可能锁定为“1”或“0”。你无法预测。

因此,如果输入从“11”更改为“00”,则案例 2 是正确的。