Condiciones de carrera

Actualmente estoy atascado tratando de entender dos cosas relacionadas con las condiciones de carrera.

1 tema:

Me han presentado la siguiente pregunta:

We consider the digital circuit and the value of its inputs a,
and b as given below. For all logic gates, we assume that
there is a gate delay of exactly one time unit (i.e. the gate
delay equals the time between two dotted lines in the
diagram). Give the values of c, d, e, f in the digital circuit for
every point of time between 0 and 8.

enter image description here

Y la respuesta dada es la siguiente:

enter image description here

¿Cómo se logra esto exactamente? Esto es lo que pienso hasta ahora:

  • c comienza en 1 porque a empezar en 0
  • d comienza en 0 porque b empezar en 1
  • Cuando el tiempo es igual a 2 a se convierte en 1... hay un retraso de propagación de 1 para c para cambiar a 0, por lo tanto, se convierte en 0 en 3 unidades de tiempo
  • La misma lógica se aplica a d
  • e y f están destinados a ser constantes 1 o 0, pero parecen verse afectados por algo.

¿Qué está pasando realmente aquí? ¿Está relacionado con una función booleana o algo así? ¿Entonces qué?

2 tema:

¿Alguien tiene una forma simple o un enfoque lógico para producir un circuito simple (usando funciones booleanas XOR, AND, OR, NOT, NAND con:

  • condición de carrera estática: cuando el valor debe ser constante
  • condición de carrera dinámica: cuando se espera que un valor cambie

Muchas gracias de antemano!

preguntado el 12 de junio de 12 a las 19:06

@Hans jaja es revisión para un examen de Ciencias de la Computación -

1 Respuestas

Bien, entonces las condiciones de carrera en los circuitos asincrónicos ocurren cuando las entradas cambian en diferentes momentos para una puerta. Digamos que su función lógica se ve así

λ = ab + ~b~a

la forma más sencilla de implementar esta función con puertas parece

NOTA: Supongo que sus componentes básicos son AND, OR y NOT. Obviamente, en los circuitos CMOS, NAND, NOR y NOT es la forma en que se construyen los circuitos, pero el principio general sigue siendo el mismo. También asumo que AND, NOR y NOT tienen el mismo retraso cuando en realidad NAND y NOR tienen diferentes retrasos si la salida va desde 0 to 1 or 1 to 0, y NOT es aproximadamente un 20 % más rápido que NAND o NOR.

a ->| AND |-------->| OR | -> λ
b ->|  1  |         |    |
                    |    |
a ->| NOT |->|AND|->|    |
b ->| NOT |->| 2 |  |    |

Ahora, suponga que AND y NOT tienen un retraso de 2ns. Eso significa que la puerta OR ve el valor en su primera posición cambiar 2 ns antes de ver el valor en su segunda posición cambiar.

Lo que significa que si a y b ambos van de 1 a 0, esperarías λ permanecer igual, ya que la salida de la primera puerta AND va de 1 a 0, pero la salida de la puerta AND va de 0 a 1, lo que significa que la condición OR se mantiene verdadera.

Sin embargo, si obtiene la salida de la segunda puerta AND un poco después de la primera puerta AND, entonces su puerta OR verá momentáneamente 0,0 en su entrada durante la transición de 1,0 a 0,1. Lo que significa λ tendrá un chapuzón momentáneo y se verá como

     __
   a   |___________
     __
   b   |___________
     ____
AND1     |_________
            _______
AND2 ______|
     ______   _____
   λ       |_|

Si observa las entradas de la compuerta OR justo entre AND1 baja y AND2 sube, propaga un 0 a través de la puerta OR y, efectivamente, hay una caída en la salida 2 ns más tarde.

Esa es una descripción general de cómo surgen las condiciones de carrera. Espero que te ayude a entender tu pregunta.

Respondido el 12 de junio de 12 a las 20:06

como leerías λ = ab + ~b~a - solo hemos estado usando AND, OR, NOT al nombrar nuestras funciones lógicas. - Matusalén

ab es equivalente a (a y b). El razonamiento es que si considera que 0 significa falso y cualquier otro valor significa 1, entonces ab es 0 si a y b son 0. a + b es equivalente a a o b. El razonamiento es que si a o b son > 0, entonces a + b > 0. ~a es otra forma de escribir no a. como es !a, -a, y a'. - hans z

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.