Después de la metastabilidad, ¿el valor finalmente se establece en el valor correcto?

5

Estoy confundido acerca de la metastabilidad. Sé que la metastabilidad es la condición en la que la salida de un flip flop se vuelve impredecible (ya sea alta o baja) por alguna "duración del tiempo" " ... De acuerdo, desde esta definición, se establece que la metastabilidad no seguir para siempre, verdad? ¿Significa esto que después de este período, la salida del flop eventualmente irá al valor correcto? ¿O va en un valor impredecible según el valor que se haya generado después del período metaestable?

Tome nota, estoy preguntando qué sucede DESPUÉS del período metaestable, NO durante el período metaestable.

@Neil_UK,

En la imagen de abajo, el segundo flop no siempre muestra un valor alto. Estoy en lo correcto?

Si el primer flop se vuelve metaestable, después de un tiempo la metastabilidad ha decaído, su valor puede establecerse aleatoriamente en la lógica 0 o en la lógica 1. ¿Es esto correcto? ... Lo pregunto porque el autor dice que muestra las muestras. Valor tan alto. No sé cómo muestra un alto valor. ¿Es por casualidad que la salida del primer flop se establece en la lógica 1?

Si el primer flop no salió del estado metaestable dentro de un período de bclk, entonces el segundo flop también será metaestable ... y esto también podría ocurrir cuando se conecte otra etapa del flop ... ¿Es esto lo que quieres decir? ¿No hay ninguna garantía de que un sincronizador dé 'absolutamente' el resultado deseado correcto?

Estoy leyendo algunas cosas sobre metastabilidad y sincronizadores. Estoy confundido con la explicación de algunos de los autores, como este. Estoy leyendo este artículo, enlace en la página 9.

    
pregunta ReubenMijares

3 respuestas

7

Tienes algunos conceptos erróneos sobre la metastabilidad

1) Hablas de DESPUÉS del período de metastabilidad.

El punto principal es que, aunque se puede explorar la forma de onda después del evento y averiguar cuándo terminaron las cosas, el circuito, al intentar hacer el trabajo de decisión, en ese momento, no tiene manera de "observar" toda la forma de onda , no puede mirar hacia el futuro. Los circuitos que intentan superar la metastabilidad al determinar cuándo ha finalizado, sufren de metastabilidad en el bloque de decisión 'ha finalizado'.

2) Usted habla de que el resultado 'deseado' es '1'.

La metastabilidad solo ocurre cuando el resultado correcto podría ser 1, podría ser 0, no importa cuál, pero tiene que ser sólidamente uno u otro.

Por ejemplo, una interrupción asíncrona llega a un procesador con un reloj diferente al que genera la interrupción. No importa si la interrupción procesa este ciclo, o el ciclo siguiente, siempre que haga uno o el otro.

Si es importante que la interrupción procese este ciclo, entonces su interrupción debe cumplir con la configuración de la interrupción del procesador con respecto a su reloj. Si no es así, tiene un problema de diseño del sistema , no un problema de metastabilidad.

La metastabilidad se resuelve de forma exponencial. Si la probabilidad de seguir siendo metaestable después de 1nS es (por ejemplo) 1e-6, luego de 2nS será 1e-12, y después de 10nS será 1e-60. Notarás que esta última probabilidad aún no es cero, pero es poco probable que la veas en tu tiempo de descanso, o incluso en la edad del universo. ¡Si lo hicieras, sería muy difícil repetirlo!

Entonces, si espera lo suficiente, la metastabilidad se convierte en un problema demasiado pequeño como para ser un problema práctico. Usted DEBE permitir suficiente latencia para que se tome esa decisión.

Pero es posible que no quieras correr el reloj de tu sistema lo suficientemente lento. Tubería! Al igual que lo hace con multiplicadores lentos o unidades de control de ejecución. Distribuya la operación en varias unidades de ejecución en serie y haga funcionar su reloj rápidamente. El proceso 'esperar' es solo un D-flop. Use una cadena de dos o más flops D hasta que haya esperado el tiempo necesario para reducir el efecto de la metastabilidad a "poco probable en la edad del universo".

Hay dos formas de enviar un d-flop metaestable. Lo primero es violar los requisitos de tiempo de entrada de configuración / retención. El segundo es violando los niveles lógicos. Lo primero ocurre típicamente cuando un evento generado en un dominio de reloj diferente llega a una entrada temporizada, el primer flip flop de un sincronizador. Como los dominios de reloj son diferentes, aquí no está garantizado que se cumplan los requisitos de tiempo, y puede producirse un borde de datos rápido al mismo tiempo que la señal de reloj. Normalmente, el segundo sucederá entre el primer y el segundo flops en un sincronizador, si el primer flop ha sido enviado como metaestable y está generando un nivel lógico intermedio. Esto puede leerse como 0 o 1 en el siguiente flop, o también puede enviar ese metaestable.

Piense en un sincronizador cuando se le pide que tome una decisión sobre si la transición de datos de 0 a 1 ocurrió primero, o el reloj. Si el reloj, la salida es 0. Si la transición de datos, la salida es 1. Un d-flop que está en el proceso de enclavamiento es un amplificador, con retroalimentación positiva. Como amplificador, hecho de transistores reales, tiene un ancho de banda. Puede ver lo que sucede con los tiempos de configuración y retención en una hoja de datos para cmos d-flops a medida que cambia la tensión de alimentación y, como resultado, su ancho de banda cambia. Un ancho de banda más grande puede resolver una configuración más pequeña y tiempos de espera. Pero, a medida que el borde de datos se acerca, y luego cruza la sincronización del borde del reloj, la diferencia de tiempo se vuelve infinita, y así el ancho de banda requerido para tomar la decisión se vuelve infinito. No puede tener un amplificador de ancho de banda infinito, y un amplificador de ancho de banda finito no puede garantizar tomar la decisión en un tiempo finito. Metastabilidad. Pero cuanto más espere, más probable será que haya tomado una decisión. Pero no garantizado.

    
respondido por el Neil_UK
3

Si el flip flop está muestreando una señal de entrada, por ejemplo, un flip-flop D y la entrada 'D' cambian al mismo tiempo que el reloj, entonces el giro correcto es indeterminado, no hay un 'valor correcto', cualquiera de los dos valores es correcto.

Ahora, en la práctica, la salida se establecerá en un valor; Debido a que el flop-flop metaestable es un circuito de alta ganancia que comienza desde un punto de equilibrio inestable, el asentamiento se logra exponencialmente, ya que la señal se desvía del punto de balance, cambia más rápido y más rápido. El tiempo para establecerse en un estado estable se describe mejor estadísticamente; por ejemplo, el 90% del tiempo se establecerá en 2 ns; 99% dentro de 3 ns; 99.999% dentro de 5 ns etc.

    
respondido por el jp314
1

Como recuerdo de una experiencia ejecutada en mi universidad en 1995, el flip flop no se ajusta a un valor conocido. Además, la duración de la metastabilidad sigue a una expresión estadística y puede llevar mucho tiempo.

La metastabilidad implica que el circuito FF está en un modo de operación lineal (en lugar de una operación saturada) donde es un poco estable (= metaestable) entre los estados extremos. El ruido suficiente puede hacer que suba o baje.

Puedes comparar esto con un teeterboard (paradigma). Es estable cuando cualquiera de los lados está hacia abajo, pero puede ponerlo en un estado metaestable cuando balancea cuidadosamente el tablero de teeter horizontalmente. La más mínima perturbación lo hará ir en cualquier dirección. Podría permanecer horizontal durante mucho tiempo, pero realmente depende del "ruido" como el viento, las vibraciones, los bypassers, etc.

Con las FF, se supone en la práctica que la sincronización de la misma señal asíncrona "más lenta" en dos FF secuenciales evitará la metastabilidad. Pero hay una fórmula que indica la probabilidad de que el FF todavía sea metaestable en el n-th clock. Cómo manejarlo realmente depende de cuán crítica sea la aplicación. Puede marcar la señal muchas veces hasta que alcance un nivel aceptable de falla, lo que es estadísticamente inevitable pero puede ser extremadamente bajo.

    
respondido por el le_top

Lea otras preguntas en las etiquetas