¿Por qué los D-Flip Flops en cascada evitan la metaestabilidad?

15

Entiendo qué es la metaestabilidad, pero no entiendo cómo vincular flip flops reduce esto.

Si la salida del primer flipflop es metaestable, esto se usa como entrada para el segundo. Pero no veo cómo el segundo flip flop podrá hacer algo con esta entrada y hacerla estable.

¡Gracias por adelantado!

Wouter A
fuente
2
Siempre buscando la oportunidad de mencionar el trasero de Buridan: en.wikipedia.org/wiki/…
copper.hat

Respuestas:

11

La metaestabilidad no puede ser 'curada', pero si espera lo suficiente , la probabilidad de que ocurra puede hacerse arbitrariamente pequeña. Una vez que lo haya reducido a una vez en la era del universo, es probable que no le cause problemas.

Es como balancear un lápiz sobre su punta. Es probable que se caiga, y cuanto más espere, menos probable es que permanezca de pie.

Hay dos problemas con esperar mucho tiempo, y uno de ellos es fundamental.

El problema fundamental es que si tiene un único elemento de memoria (cierre o flip-flop, ambos sufren de metaestabilidad) en un sistema con reloj que recibe la salida de un sistema externo asíncrono, entonces físicamente no puede definir un límite inferior para el tiempo de espera , a veces la señal externa hará una transición cerca del borde de control de enclavamiento. Tienes que canalizar la señal a otro flip-flop para que espere allí. Esto le brinda un tiempo de espera mínimo garantizado de un ciclo de reloj.

El segundo problema es que a menudo estás tratando de ejecutar un sistema lo más rápido posible, y la velocidad del reloj del sistema no puede reducirse para dar suficiente tiempo en el segundo flip-flop. La única forma de aumentar la latencia de la señal a lo que es necesario, sin disminuir el rendimiento, es canalizar la espera a más etapas.

Algunas personas tienen problemas para visualizar lo que sucede entre las chanclas. Hay dos formas de inducir la metaestabilidad, y ambas implican violar las reglas del flip-flop. Una forma es violar la configuración de entrada y los tiempos de espera, para hacer una transición cuando el flip-flop espera que la entrada sea estable. El otro es violar los niveles lógicos de entrada, hacer que la entrada de datos del flip-flop se asiente en un nivel de voltaje intermedio. Un flip-flop que sea metaestable puede producir cualquier tipo de violación en su salida, para pasar al siguiente flip-flop.

Neil_UK
fuente
66
Como ejemplo, cuando estaba haciendo el diseño del chip, poseía metaestabilidad, todos los cruces de reloj, hicimos los cálculos, descubrimos las posibilidades de falla del sincronizador en cada flop, grupo de flops, etc., etc. ser ... en su mayoría, un píxel en la pantalla podría burbujear, al final todo el chip se redujo a aproximadamente una vez cada dos años: esta era una tarjeta gráfica para Win95 que en ese momento no podía mantenerse por más de Aproximadamente un día decidimos que nadie notaría un sincronizador MTBF de 2 años.
Taniwha
77
También una cosa que nadie menciona es lo que sucede con la falla absoluta de la metaestabilidad en el peor de los casos ... a veces la falla del sincronizador resulta en un flop que oscila internamente a una frecuencia estúpidamente alta, tal vez a niveles entre las altas y bajas digitales normales, si escapa a su alta. obtener flops sincronizadores anti-metaestabilidad que un desastre ruidoso y zumbido puede infectar a todos los flops aguas abajo (a medida que las cosas se abren) resultando en enormes corrientes de corriente e incluso sobrecalentamiento y muerte de chip, así que preste atención a esto como un problema
Taniwha
@Neil_UK Usas la palabra pestillo que creo que es confuso. En mis círculos, un pestillo es un elemento asincrónico. Los llamaría chanclas para mayor claridad.
jalalipop
1
@jalalipop Estaba usando latch para referirme a flip-flop, aunque quizás su significado ha cambiado en las décadas desde que comencé a usarlo. Si bien estoy de acuerdo en que 'enclavamiento' generalmente se refiere al tipo transparente asíncrono, también sufren de metaestabilidad si los datos cambian en el borde 'enclavado' de la entrada de habilitación. Un flip-flop maestro esclavo generalmente se construye internamente a partir de un par de pestillos accionados en antifase por el reloj. Gracias por mencionarlo, modificaré la respuesta para aclarar.
Neil_UK
@ Tamiwha ¿Puede proporcionar una respuesta con diagramas y constantes de tiempo y las matemáticas, para aclarar los comportamientos internos de los pestillos a medida que intentan resolverlos? Debe mostrar (como seguramente sabe) cómo la ganancia de bucle y la constante de tiempo de regeneración y el ruido de fondo (térmico y VDD) afectan la capacidad de resolución.
analogsystemsrf
9

Reduce la probabilidad de que la metaestabilidad afecte el circuito al permitir más tiempo hasta que la señal se use realmente. Con dos flip-flops, permite un ciclo de reloj extra completo para que la señal se estabilice. Con tres, permite dos ciclos de reloj adicionales.

usuario253751
fuente
2
Buena respuesta. El punto importante es que la metaestabilidad no se previene , solo reducimos la probabilidad a un nivel aceptable.
Elliot Alderson
1
¿Entonces los flipflops en cascada dan tiempo para que la señal se establezca entre 0 y 1 pero no resuelve un valor incorrecto? ya que una señal metaestable puede caer en ambos sentidos?
Wouter A
2
@WouterA Si es metaestable, ambos valores son correctos.
user253751
44
No creo que esta sea una buena respuesta, solo el primer flop está muestreando la señal de entrada en este caso. Como se mencionó anteriormente, lo que está sucediendo es que hay una probabilidad de que ocurra metaestabilidad (depende de la ganancia en los bucles de retroalimentación interna del flop, la velocidad del reloj y la velocidad con la que la cosa que se muestrea pasa entre los umbrales de entrada) en cualquier flop particular es (con suerte) un número pequeño <1 = p - dos flops nos dan p ^ 2 posibilidades de que MS pase 2 flops, 3 p ^ 3, etc., etc.
Taniwha
4

No evitan que la metaestabilidad afecte la salida, pero pueden aumentar considerablemente el tiempo medio entre incidentes ya que la metaestabilidad tendría que ser de una duración relativamente larga.

La conexión en cascada de tres (o más) chanclas bien diseñadas puede aumentar el tiempo entre incidentes a algo así como la edad de la tierra.

Spehro Pefhany
fuente
Depende de su frecuencia de reloj y tecnología de proceso. Un flip-flop podría ser suficiente para que su MTBF sea infinitesimal, siempre y cuando mantenga la holgura alta.
jalalipop
@jalalipop Claro. Hay alguna información de prueba real (muy anticuada ahora) en el documento original de IEEE. DOI: 10.1109 / TC.1983.1676187
Spehro Pefhany
@jalalipop: generalmente este es un problema que es más relevante cuando no se puede garantizar el tiempo de inactividad ... también conocido como diseño asíncrono, como el FIFO que se comunica entre el núcleo de la CPU y el SOC cuando los relojes respectivos no están bloqueados en fase. De lo contrario, simplemente establece un tiempo de configuración difícil y garantiza que no se producirá metaestabilidad.
jbord39
Sí, la metaestabilidad es una preocupación en una interfaz asíncrona. La holgura a la que me refiero es la holgura de la lógica síncrona después del flip flop. Si su holgura es alta, el evento Metastability se extinguirá antes de que afecte al resto de su diseño.
jalalipop
2

Debido a que el primer flip-flop, incluso si es metaestable, tendrá todo el período del reloj para estabilizarse. Cuando el segundo flip-flop muestrea el primer flip-flop, su salida ya podría ser estable.

Claudio Avi Chami
fuente
1

Si desea la emoción de la metaestabilidad, implemente DOS INVERSORES MUY LENTOS, conéctelos uno al lado del otro y sesgúelos (en una simulación) en VDD / 2. Luego, elimine el sesgo y observe la velocidad de resolución a los niveles logic1 y logic0. Es posible que deba elegir un voltaje de polarización inicial que no sea VDD / 2.

Si sus 2 o 3 flipflops son LENTOS en comparación con el período del reloj, la vida puede estar llena de problemas.

analogsystemsrf
fuente
1

La metaestabilidad simplemente significa que, si tiene una transición de datos dentro de una ventana de tiempo particular referenciada al reloj, la salida se comportará mal durante un cierto período después del borde del reloj. Sin embargo, la ventana no es un intervalo fijo. Más bien, la probabilidad de un mal valor (oscilación o nivel de voltaje intermedio) disminuye exponencialmente con el tiempo. Entonces, si muestreas la señal con un reloj y luego esperas un poco antes de aplicar el reloj al segundo flip-flop, puedes reducir las posibilidades de un bit malo a cualquier probabilidad deseada (pero no nula). Si el tiempo requerido es demasiado largo, puede usar 3 o más chanclas en serie.

WhatBoughBeast
fuente