Tengo una confusión con respecto a la resolución de la metaestabilidad usando flip flops, sé que debería agregar un sincronizador de dos o tres d-flip flop para garantizar una transmisión segura en el dominio del reloj que cruza los límites, pero mi confusión es que la salida de la metaestabilidad es impredecible. , podría conducir 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 captar el valor correcto que se transmitirá, si el primer flip flop está siempre en estado metaestable y podría establecerse en un nivel incorrecto?
El primer FF no siempre es metaestable. Suponiendo que los bordes de entrada se distribuyen uniformemente con respecto a su reloj, el primer FF tiene una cierta probabilidad de volverse metaestable que está relacionada con el período del reloj y sus requisitos de tiempo de configuración/retención. Si se vuelve metaestable, se resuelve por sí mismo dentro de una cierta cantidad de tiempo; la probabilidad de permanecer metaestable después del tiempo t es una función exponencialmente decreciente de t .
El segundo FF tiene una probabilidad mucho menor de volverse metaestable, porque tendría que sincronizarse en el instante justo cuando el primer FF (si era metaestable) se estaba resolviendo solo. De lo contrario, su salida será definitivamente alta o definitivamente baja. El cambio de señal puede retrasarse por una metaestabilidad extendida del primer FF, pero es muy poco probable que provoque que el segundo FF se vuelva metaestable y afecte negativamente el funcionamiento del resto de la lógica.
Un tercer FF reduce las posibilidades de metaestabilidad a niveles infinitesimales.
Cuando tiene un escenario de metaestabilidad, es decir, la señal de entrada cambia exactamente en el borde del reloj de muestreo, tanto 0 como 1 son valores correctos. Lo importante es que toda la lógica posterior ve el mismo valor (suponiendo que la señal de la víctima se extienda a varios puntos de captura finales). Si el borde del reloj hubiera sido un poco más temprano o más tarde, obtendría un claro 0 o 1, por lo que debería ser razonable que no pueda elegir con precisión una u otra para que sea la respuesta correcta.
Los fracasos en cascada tendrán cada vez más probabilidades de resolverse en un valor estable dentro de un ciclo de reloj, por lo que la salida de la secuencia debe ser estática (para una entrada estática), o una transición dentro de +/- un ciclo de la transición de entrada más 2 o 3 ciclos dependiendo si es doble o triple sincronización.
Un efecto secundario de esto es que cuando se muestrean varias señales de forma asincrónica (o sin una configuración clara), debe anticipar todas las posibles condiciones de carrera y no depender de ver los cambios en las mismas combinaciones precisas de ciclo que fueron. generado.
usuario105652
Hachani Ahmed
usuario105652
usuario105652
david tweed
Hachani Ahmed
Hachani Ahmed
david tweed