为什么种族危险定理有效?

电器工程 数字逻辑 逻辑门 定时 竞争条件
2022-02-01 14:08:44

所以对于那些不知道的人,种族危险定理(RHT)指出:

A x B + A' x C = A x B + A' x C + B x C

我了解 RHT 的另一部分,关于时间延迟等,但我不明白为什么上面的逻辑陈述应该是正确的,有人可以帮助我理解这一点吗?

4个回答

正如其他人指出的那样,从数学上讲,这些陈述完全相同,并且附加术语是“多余的”。我在这里复制他们的数学证明也是“多余的”。

您还可以通过为三个输入组合制作一个 8 行真值表来轻松验证语句是否等效。

    A B C           A*B + A'*C                       A*B + A'*C + B*C
    0 0 0               0                                    0
    0 0 1               1                                    1
    0 1 0               0                                    0
    0 1 1               1  ** hazard b/w states              1
    1 0 0               0                                    0
    1 0 1               0                                    0
    1 1 0               1                                    1
    1 1 1               1  ** hazard b/w states              1

额外术语的目的是防止 A 在 B 和 C 都为高时引起任何切换。

例如,假设 A 和 A' 之间存在有限的时间延迟(合理)。现在还要考虑 B 和 C 都是“1”。正如您在下面的波形中看到的那样,输出端有一个毛刺。

冒险

假设逻辑是静态 CMOS,则毛刺是可恢复的。但是,如果它是某种形式的动态逻辑,它可能会传播错误。

添加冗余项是解决故障的解决方案。

布尔代数证明:

A x B + A' x C [左侧]
= A x B x 1 + A' x C x 1 [用真简化与]
= A x B x (1 + C) + A' x C x ( 1 + B) [真或任何东西]
= A x B x 1 + A x B x C + A' x 1 x C + A' x B x C [分发]
= A x B + A x B x C + A ' x C + A' x B x C [用真简化与]
= A x B + A' x C + A x B x C + A' x B x C [重新排列项]
= A x B + A' x C + (A + A') x B x C [分解]
= A x B + A' x C + 1 x B x C [OR 否定为真]
= A x B + A' x C + B x C [右手边]

案例证明:

  • 假设 B x C 为真。
    那么 B 为真,C 同时为真。
    因此,右侧变为 A x B + A' x C + 1 x 1 = 1。
    左侧变为 A x 1 + A' x 1,无论 A 为 1。
    因此 LHS 等于 RHS。
  • 假设 B x C 为假。
    然后右侧变为 A x B + A' x C + 0 = A x B + A' x C,使其与 LHS 相同。
    因此,LHS 等于 RHS。

在所有情况下,LHS 等于 RHS。因此,我们得出结论,这两个公式的计算结果总是相同的。

参考:

单独考虑 LHS:
A x B + A' x C

如果此语句中 B 和 C 都为真,那么 A 的条件对结果有什么影响吗?
否 - 因为 (A x B) 或 (A' x C) 都会为真,从而产生真结果。

所以现在看 RHS,前 2 个 AND 项只是 LHS 的一个副本,而第 3 个 AND 项代表我们刚刚发现的关于 B&C 的内容。

\$AB + A'C + BC = AB + A'C + (A+A')BC \textrm{ -- BC 项乘以 1}\\ = AB + A'C + ABC + A'BC \textrm { -- 分配项}\\ = (AB + ABC) + (A'C + A'BC) \textrm{ -- 重组} \\ = AB(1+C) + A'C (1 + B) \textrm{ -- 因子} \\ = AB + A'C \textrm{ -- 简化} \$