Почему работает теорема об опасности гонки?


12

Так что для тех, кто не знает, теорема о расовой опасности (RHT) гласит:

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

Я понимаю другую часть RHT, о задержках и тому подобном, но я не понимаю, почему приведенное выше логическое утверждение должно быть правдой, может кто-нибудь помочь мне понять это?

Ответы:


20

Как указывали другие, математически утверждения точно такие же, и дополнительный термин является «избыточным». Для меня также было бы «излишним» копировать их математические доказательства здесь.

Вы также можете легко проверить эквивалентность утверждений, составив таблицу истинности из 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, глюк исправим. Но если бы это были некоторые формы динамической логики, это могло бы распространить ошибку.

Добавление избыточного термина является решением для устранения этой проблемы.


2
Даунтинг, потому что это даже не попытка ответить на вопрос, который был задан. Это отвечает на другой вопрос.
user253751

@immibis Очевидно, спрашивающий согласен с этим ответом.
glglgl

@immibis Кроме того, без этого ответа многие вещи были бы не совсем очевидны.
glglgl

@glglgl Аскер конкретно говорит, что он / она уже знает эту часть.
user253751

4
@immibis: Если честно, основная часть ответа - справочная информация, но суть в первом абзаце: выписать таблицы истинности. Две стороны уравнения идентичны, потому что их таблицы истинности идентичны. Для всех 8 возможных значений A, B и C левые и правые равны. Далее в ответе объясняется, почему в действительности мы не можем предположить, что {A,A',B,C}они ограничены только 8 значениями; есть это переходное состояние A = A '.
MSalters

9

Доказательство по булевой алгебре:

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 [ИЛИ отрицание истинно]
= 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, что равно 1 независимо от A.
    Следовательно, LHS равно RHS.
  • Предположим, что B x C неверно.
    Тогда правая часть становится A x B + A 'x C + 0 = A x B + A' x C, что делает ее идентичной LHS.
    Следовательно, LHS равен RHS.

Во всех случаях LHS равен RHS. Поэтому мы приходим к выводу, что две формулы всегда оцениваются в одно и то же значение.

Ссылки:


8

Рассмотрим LHS отдельно:
A x B + A 'x C

Если и B, и C верны в этом утверждении, имеет ли условие A какое-либо значение для результата?
Нет - потому что (A x B) или (A 'x C) будет истинным, что приведет к результату true.

Итак, теперь, глядя на RHS, первые 2 термина AND являются просто дубликатом LHS, а третий термин AND представляет то, что мы только что узнали о B & C.


3

AB+AC+BC=AB+AC+(A+A)BC -- Multiply BC term by 1=AB+AC+ABC+ABC -- Distribute the term=(AB+ABC)+(AC+ABC) -- regroup=AB(1+C)+AC(1+B) -- factor=AB+AC -- Simplify


2

Давайте посмотрим на карту Карно :

CBCBCBCBA0110A1100

ABACBC

ABACBC

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.