¿Hay una condición de falla / carrera en la salida de este circuito?

1

Losbordesascendenteydescendentedelaentradaseproducenenelmomentot=0.Losretrasosdepropagacióndelaspuertasrespectivasson3y4ns,comosemuestra.

Segúnmianálisis,lasformasdeondasonlassiguientes:

Como dibujé anteriormente, no creo que haya ningún problema técnico en la salida final Y2 , ya que ambas entradas i1 y i2 tiene una transición en t = 0 ; y si hubiera un error, habría estado en t = 4 solo si las 2 entradas de la puerta AND fueran altas antes de t = 0 .

Pero como Y1 es bajo antes de t = 0 y cambia a Alto solo después de t = 3 , y para el momento Y1 pasa a Alto, la otra entrada i2 ya está en Bajo. Así que no hay ningún fallo en la salida Y2 .

¿Esto es correcto? ¿O me estoy perdiendo algo aquí?

    
pregunta potato_in_my_ear

2 respuestas

3

Una especificación de tiempo de propagación adecuada para una puerta debe indicar el tiempo mínimo garantizado y el tiempo máximo garantizado. Aunque los simuladores generalmente no lo hacen, sugeriría que debería modelar una puerta OR con una propagación mínima de 1 ns y una propagación máxima de 3 ns como:

-1- Alto si, dentro del último nanosegundo, cualquiera de las entradas ha estado o ha estado en un nivel alto válido durante al menos nanosegundos sólidos.

-2- Bajo si, dentro del último nanosegundo, ambas entradas han estado o han estado en un nivel bajo válido durante al menos tres nanosegundos sólidos.

-3- Indeterminado en todos los demás casos.

Por lo tanto, si la compuerta OR en el diagrama anterior tuviera una propagación mínima de 1 ns y 3 ns, la salida habría sido baja desde el momento 0-1, indeterminada desde el tiempo 1-3 y alta posteriormente.

Hasta el tiempo 1, la puerta AND tendría su primera entrada baja (y su salida sería baja). Hasta el tiempo 2, tendría "dentro del último nanosegundo" haber visto la entrada 0 baja durante al menos cuatro nanosegundos sólidos. En el momento 2, su salida sería indeterminada hasta que en el momento 4, nuevamente tendría una entrada que fue baja durante cuatro nanosegundos sólidos.

Por lo tanto, la salida de la compuerta AND debe considerarse baja hasta el tiempo 2, indeterminada desde el tiempo 2-4 y baja después del tiempo 4.

Tenga en cuenta que si este enfoque indica que un circuito funcionará de manera confiable, lo hará, pero hay muchos diseños de circuitos que se demorarán en tener "estado indeterminado" en todas partes, aunque en realidad tendrían un comportamiento útil. Tales problemas a menudo se pueden resolver asignando valores mínimos de retardo de propagación que están muy cerca de los valores máximos. Esto no es del todo realista, e introduce la posibilidad de que un circuito pueda simular correctamente pero falle en el mundo real. Por otro lado, a menudo es necesario modificar solo una pequeña cantidad de elementos del circuito de esta manera; si uno puede validar el comportamiento en el mundo real de esos pocos elementos mientras el resto de los elementos se comportan "más descuidadamente" que los circuitos del mundo real, uno debe estar bastante seguro de que las señales que se reportan como altas serán altas, y esas que se informen como bajos, serán bajos (aquellos que son "indeterminados" podrían en realidad ser altos válidos, bajos válidos, oscilantes, sentados en la mitad del riel o cualquier otra cosa).

Tenga en cuenta que muchas simulaciones suponen un "modelo inercial" o un "modelo de transporte" para los retrasos de propagación. El modelo inercial asume que una salida no parecerá que cambie hasta que el valor aparentemente correcto se haya mantenido estable por una duración igual al retraso de propagación. El modelo de transporte asume que el estado informado de una salida representará su estado computado en base al valor que las entradas tuvieron algún tiempo antes. Si un inversor tiene un retraso de propagación de 10 ns con el modelo inercial, un impulso de 6 ns en la entrada no representará nada en la salida, mientras que un impulso de 15 ns hará que aparezca un pulso de 15 ns en la salida que se retrasó 10 ns. Bajo el modelo de transporte, ese mismo pulso 6ns causaría que un pulso 6ns apareciera en la salida retrasada en 10ns (de modo que la salida cambiaría primero 4ns después del final del pulso), y el pulso 15ns parecería igual que con modelo inercial. Ninguno de los dos modelos, desafortunadamente, generalmente tiene provisiones para las incertidumbres de tiempo.

    
respondido por el supercat
1

Hay una raza; Los estímulos de prueba actuales simplemente no lo encuentran. Aumente la cobertura de la prueba sistemáticamente y debería ser detectada.

    
respondido por el Brian Drummond

Lea otras preguntas en las etiquetas