Pourquoi le théorème du danger racial fonctionne-t-il?

12

Donc, pour ceux qui ne le savent pas, le théorème des dangers raciaux (RHT) déclare que:

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

Je comprends l'autre partie de la RHT, sur les délais et autres, mais je ne comprends pas pourquoi l'énoncé logique ci-dessus devrait être vrai, quelqu'un peut-il m'aider à comprendre cela?

Alex Robinson
la source

Réponses:

20

Comme d'autres l'ont souligné, mathématiquement, les énoncés sont exactement les mêmes et le terme supplémentaire est "redondant". Il serait également "redondant" pour moi de copier leurs preuves mathématiques ici.

Vous pouvez également vérifier facilement que les déclarations sont équivalentes en créant une table de vérité à 8 lignes pour les trois combinaisons d'entrées.

    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

Le but du terme supplémentaire est d'empêcher A de provoquer un basculement lorsque B et C sont élevés.

Par exemple, supposons qu'il y ait un délai fini entre A et A '(raisonnable). Maintenant, considérez également que B et C sont tous deux «1». Comme vous pouvez le voir dans les formes d'onde ci-dessous, il y a un problème à la sortie.

danger

En supposant que la logique est CMOS statique, le problème est récupérable. Mais, s'il s'agissait de certaines formes de logique dynamique, cela pourrait propager l'erreur.

L'ajout du terme redondant est une solution pour couvrir le problème.

jbord39
la source
2
Downvoting parce que cela n'essaie même pas de répondre à la question qui a été posée. Cela répond à une question différente.
user253751
@immibis De toute évidence, le demandeur est d'accord avec cette réponse.
glglgl
@immibis D'ailleurs, sans cette réponse, beaucoup de choses n'étaient pas évidentes.
glglgl
@glglgl Le demandeur dit spécifiquement qu'il connaît déjà cette partie.
user253751
4
@immibis: Pour être honnête, l'essentiel de la réponse est le fond, mais le noyau est dans le premier paragraphe: écrivez les tables de vérité. Les deux côtés de l'équation sont identiques, car leurs tables de vérité sont identiques. Pour les 8 valeurs possibles de A, B et C, la gauche et la droite sont égales. Le reste de la réponse explique alors pourquoi, en réalité, nous ne pouvons pas supposer qu'elles {A,A',B,C}sont limitées à seulement 8 valeurs; il y a cette condition transitoire A = A '.
MSalters
9

Preuve par l'algèbre booléenne:

A x B + A 'x C [Côté gauche]
= A x B x 1 + A' x C x 1 [Non simplifié ET avec vrai]
= A x B x (1 + C) + A 'x C x ( 1 + B) [Vrai OU n'importe quoi]
= A x B x 1 + A x B x C + A 'x 1 x C + A' x B x C [Distribuer]
= A x B + A x B x C + A 'x C + A' x B x C [Simplifier ET avec vrai]
= A x B + A 'x C + A x B x C + A' x B x C [Réorganiser les termes]
= A x B + A 'x C + (A + A ') x B x C [Factoriser]
= A x B + A' x C + 1 x B x C [OU la négation est vraie]
= A x B + A 'x C + B x C [ Du côté de la main droite]

Preuve par cas:

  • Supposons que B x C soit vrai.
    Alors B est vrai et C est vrai simultanément.
    Ainsi, le côté droit devient A x B + A 'x C + 1 x 1 = 1.
    Le côté gauche devient A x 1 + A' x 1, qui est 1 indépendamment de A.
    Par conséquent, le LHS est égal au RHS.
  • Supposons que B x C est faux.
    Ensuite, le côté droit devient A x B + A 'x C + 0 = A x B + A' x C, ce qui le rend identique au LHS.
    Par conséquent, le LHS est égal au RHS.

Dans tous les cas, le LHS est égal au RHS. Par conséquent, nous concluons que les deux formules ont toujours la même valeur.

Les références:

Nayuki
la source
8

Considérez le LHS seul:
A x B + A 'x C

Si B et C sont vrais dans cette affirmation, la condition de A fait-elle une différence dans le résultat?
Non - parce que (A x B) ou (A 'x C) sera vrai, produisant un résultat vrai.

Alors maintenant, en regardant le RHS, les 2 premiers termes ET sont simplement un double du LHS, et le 3ème terme ET représente ce que nous venons de découvrir sur B & C.

brhans
la source
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

pgvoorhees
la source
2

Jetons un œil à la carte de karnaugh :

CBCBCBCBA0110A1100

ABACBC

ABACBC

monstre à cliquet
la source