Propagación de errores de metastabilidad con flip flop

4

Tengo una confusión con respecto a la resolución de metastabilidad usando flip flops, sé que debo agregar un sincronizador de dos o tres d-flip flop para garantizar una transmisión segura en los límites del dominio del reloj, pero mi confusión es que la salida de la metastabilidad es impredecible, puede llevar a un nivel alto o bajo, y esa salida se propagará al resto del circuito, entonces ¿cómo puede el segundo o el tercer flip-flop capturar el valor correcto para ser transmitido, si el primer flip-flop ¿Está siempre en estado metaestable y podría establecerse en un nivel incorrecto?

    
pregunta Hachani Ahmed

2 respuestas

3

El primer FF no es siempre metaestable. Suponiendo que los bordes de entrada se distribuyan uniformemente con respecto a su reloj, el primer FF tiene una cierta probabilidad de que sea metaestable que esté relacionado con el período del reloj y sus requisitos de tiempo de configuración / retención. Si es metaestable, se resuelve solo dentro de un período de tiempo: la probabilidad de permanecer metaestable después del tiempo t es una función de descomposición exponencial de t .

El segundo FF tiene una probabilidad mucho menor de ir hacia una mesa metaestable, ya que tendría que ser cronometrado justo en el momento correcto cuando la primera FF (si fuera metaestable) se resolviera por sí sola. De lo contrario, su salida será definitivamente alta o definitivamente baja. El cambio de señal puede estar retrasado por una metastabilidad extendida del primer FF, pero es muy poco probable que el segundo FF sea metaestable y afecte negativamente el funcionamiento del resto de la lógica.

Un tercer FF reduce las posibilidades de metastabilidad a niveles infinitesimales.

    
respondido por el Dave Tweed
0

Cuando tiene un escenario de metastabilidad, es decir, la señal de entrada cambia exactamente en el borde del reloj de muestreo, tanto 0 como 1 son valores correctos. Lo que es importante es que toda la lógica subsiguiente ve el mismo valor (suponiendo que la señal de su víctima se extienda a varios puntos de captura finales). Si el borde del reloj hubiera sido ligeramente anterior o posterior, obtendría un claro 0 o 1, por lo que debería ser razonable que no pueda elegir con precisión uno u otro para que sea la respuesta correcta.

Es más probable que los flops en cascada se resuelvan a un valor estable dentro de un ciclo de reloj, por lo que la salida de la secuencia debería ser estática (para una entrada estática), o una transición dentro de +/- un ciclo del transición de entrada más 2 o 3 ciclos dependiendo de si se trata de una sincronización doble o triple.

Un efecto secundario de esto es que cuando se muestrean varias señales de forma asíncrona (o sin una configuración clara), es necesario anticipar todas las posibles condiciones de carrera y no confiar en ver los cambios en las mismas combinaciones de ciclos precisos. que fueron generados.

    
respondido por el Sean Houlihane

Lea otras preguntas en las etiquetas