¿Por qué funciona el teorema de riesgo de carrera?

12

Entonces, para aquellos que no lo saben, el teorema de riesgo de carrera (RHT) establece que:

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

Entiendo la otra parte del RHT, sobre los retrasos de tiempo y demás, pero no entiendo por qué la afirmación lógica anterior debe ser cierta. ¿Puede alguien ayudarme a entender esto?

    
pregunta Cursed

5 respuestas

20

Como han señalado otros, matemáticamente las afirmaciones son exactamente iguales, y el término adicional es "redundante". También sería "redundante" para mí copiar sus pruebas matemáticas aquí.

También puedes verificar fácilmente que las declaraciones sean equivalentes haciendo una tabla de verdad de 8 filas para las tres combinaciones de entradas.

    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

El propósito del término adicional es evitar que A provoque cambios cuando B y C sean altos.

Como ejemplo, supongamos que hay un retardo de tiempo finito entre A y A '(razonable). Ahora también considera que tanto B como C son '1'. Como puede ver en las formas de onda a continuación, hay un error en la salida.

Suponiendo que la lógica es CMOS estática, la falla se puede recuperar. Pero, si se tratara de algunas formas de lógica dinámica, podría propagar el error.

La adición del término redundante es una solución para cubrir el problema técnico.

    
respondido por el jbord39
9

Prueba de álgebra booleana:

A x B + A 'x C [lado izquierdo]
= A x B x 1 + A 'x C x 1 [No simplificar Y con verdadero]
= A x B x (1 + C) + A 'x C x (1 + B) [Verdadero O nada]
= A x B x 1 + A x B x C + A 'x 1 x C + A' x B x C [Distribuir]
= A x B + A x B x C + A 'x C + A' x B x C [Simplifica AND con verdadero]
= A x B + A 'x C + A x B x C + A' x B x C [Reordenar términos]
= A x B + A 'x C + (A + A') x B x C [Factorizar]
= A x B + A 'x C + 1 x B x C [O la negación es verdadera]
= A x B + A 'x C + B x C [lado derecho]

Prueba por casos:

  • Supongamos que B x C es verdadero.
    Entonces B es verdadero y C es verdadero simultáneamente.
    Entonces, el lado derecho se convierte en A x B + A 'x C + 1 x 1 = 1.
    El lado izquierdo se convierte en A x 1 + A 'x 1, que es 1 independientemente de A.
    Por lo tanto, el LHS es igual al RHS.
  • Supongamos que B x C es falso.
    Luego, el lado derecho se convierte en A x B + A 'x C + 0 = A x B + A' x C, por lo que es idéntico al LHS.
    Por lo tanto, el LHS es igual al RHS.

En todos los casos, el LHS es igual al RHS. Por lo tanto, concluimos que las dos fórmulas siempre se evalúan al mismo valor.

Referencias:

respondido por el Nayuki
8

Considere el LHS por sí mismo:
A x B + A 'x C

Si tanto B como C son verdaderas en esta declaración, ¿la condición de A hace alguna diferencia al resultado?
No, porque cualquiera (A x B) o (A 'x C) será verdadera, produciendo un resultado verdadero.

Por lo tanto, ahora observando el RHS, los primeros 2 términos Y son simplemente un duplicado del LHS, y el tercer término AND representa lo que acabamos de descubrir sobre B & C.

    
respondido por el brhans
3

\ $ AB + A'C + BC = AB + A'C + (A + A ') BC \ textrm {- Multiplica el término de BC por 1} \\  = AB + A'C + ABC + A'BC \ textrm {- Distribuir el término} \\  = (AB + ABC) + (A'C + A'BC) \ textrm {- reagrupar} \\  = AB (1 + C) + A'C (1 + B) \ textrm {- factor} \\  = AB + A'C \ textrm {- Simplificar} \ $

    
respondido por el pgvoorhees
2

Echemos un vistazo al mapa de Karnaugh :

$$ \ begin {matrix} &erio; C \ land B '& C \ land B & C '\ land B & C '\ land B \\ A & 0 & 1 & 1 & 0 \\ A '& 1 & 1 & 0 & 0 \\ \ end {matriz} $$

Puede hacer los 3 grupos en el lado derecho de la ecuación \ $ A \ land B \ $, \ $ A '\ land C \ $ y \ $ B \ land C \ $.

En un mapa de karnaugh, las condiciones de carrera se muestran en regiones adyacentes pero desunidas (al contar la envoltura toroidal). Si solo toma las regiones \ $ A \ land B \ $ y \ $ A '\ land C \ $, obtendrá 2 regiones adyacentes pero no unidas. Necesita el término \ $ B \ land C \ $ para cerrar la brecha.

    
respondido por el ratchet freak

Lea otras preguntas en las etiquetas