¿Por qué las D-Flip Flops en cascada previenen la metaestabilidad?

Entiendo qué es la metaestabilidad, pero no entiendo cómo la vinculación de chanclas reduce esto.

Si la salida del primer flip-flop es metaestable, 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!

Siempre buscando una oportunidad para mencionar el culo de Buridan: en.wikipedia.org/wiki/…

Respuestas (6)

La metaestabilidad no se puede 'curar', pero si espera lo suficiente , la probabilidad de que ocurra puede reducirse arbitrariamente. Una vez que lo reduzcas a una vez en la edad del universo, es poco probable que te cause problemas.

Es como equilibrar un lápiz en 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 solo elemento de memoria (latch o flip-flop, ambos sufren de metaestabilidad) en un sistema cronometrado que recibe la salida de un sistema externo asincrónico, 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 enganche. Tienes que canalizar la señal a otro flip-flop para que espere allí. Esto le da un tiempo de espera mínimo garantizado de un ciclo de reloj.

El segundo problema es que, a menudo, intenta ejecutar un sistema lo más rápido posible y la velocidad del reloj del sistema no se puede ralentizar para dar suficiente tiempo en el segundo flip-flop. La única forma de aumentar la latencia de la señal a lo 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, para hacer que la entrada de datos del flip-flop se asiente en un nivel de voltaje intermedio. Un flip-flop que es metaestable puede producir cualquier tipo de violación en su salida, para pasar al siguiente flip-flop.

Como ejemplo, cuando estaba haciendo el diseño de chips, 'poseía' la metaestabilidad, todos los cruces de reloj, hicimos los cálculos, descubrimos las posibilidades de falla del sincronizador en cada fracaso, grupo de fracasos, etc., miramos cuáles serían los resultados. 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 permanecer en funcionamiento por más de Aproximadamente un día decidimos que nadie notaría un MTBF de 2 años del sincronizador.
Además, una cosa que nadie menciona es lo que sucede con la falla de metaestabilidad absoluta en el peor de los casos ... a veces la falla del sincronizador da como resultado un flop que oscila internamente a una frecuencia estúpidamente alta, tal vez a niveles entre los altos y bajos digitales normales, si se escapa de su alto. obtenga fallas del sincronizador anti-metaestabilidad que el desastre ruidoso y zumbante puede infectar todas las fallas descendentes (a medida que las cosas se desvanecen) lo que resulta en grandes consumos de corriente e incluso sobrecalentamiento potencial y muerte del chip, así que preste atención a esto como un problema
@Neil_UK Usas la palabra pestillo que creo que es confuso. En mis círculos, un pestillo es un elemento asíncrono. Yo los llamaría flip-flops para mayor claridad.
@jalalipop Estaba usando pestillo para decir flip-flop, aunque tal vez su significado haya cambiado en las décadas desde que comencé a usarlo. Si bien estoy de acuerdo en que 'bloqueo' generalmente se refiere al tipo transparente asíncrono, también sufren de metaestabilidad si los datos cambian en el borde 'bloqueo' 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.
@ Tamiwha ¿Puede proporcionar una respuesta con diagramas y constantes de tiempo y matemáticas, para aclarar los comportamientos internos de los pestillos a medida que intentan resolver? Debe mostrar (como ciertamente sabe) cómo la ganancia del bucle y la constante de tiempo de regeneración y el ruido de fondo (térmico y VDD) afectan la capacidad de resolución.

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

Buena respuesta. El punto importante es que no se previene la metaestabilidad , simplemente reducimos la probabilidad a un nivel aceptable.
Entonces, ¿los flip-flops en cascada dan tiempo para que la señal se estabilice entre 0 y 1 pero no resuelve un valor incorrecto? ya que una señal metaestable puede caer en ambos sentidos?
@WouterA Si es metaestable, ambos valores son correctos.
No creo que esta sea una buena respuesta, solo el primer fracaso está muestreando la señal de entrada en este caso. Como se mencionó anteriormente, lo que está sucediendo es que existe la probabilidad de que ocurra metaestabilidad (depende de la ganancia en los bucles de retroalimentación internos del flop, la velocidad del reloj y la velocidad a la que pasa el objeto muestreado entre los umbrales de entrada) en cualquier flop en 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.

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) flip-flops bien diseñados puede aumentar el tiempo entre incidentes a algo así como la edad de la tierra.

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 que mantenga la holgura alta.
@jalalipop Claro. Hay alguna información de prueba real (muy anticuada ahora) en el documento original de IEEE. DOI: 10.1109/TC.1983.1676187
@jalalipop: en general, este es un problema que es más relevante cuando no se puede garantizar el tiempo de holgura... también conocido como diseño asincrónico, como el FIFO que se comunica entre el núcleo de la CPU y el SOC cuando los respectivos relojes no están bloqueados en fase. De lo contrario, simplemente establezca un tiempo de configuración estricto y garantice que no se producirá metaestabilidad.
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 desaparecerá antes de que afecte el resto de su diseño.

Porque el primer flip-flop, aunque sea metaestable, tendrá todo el período del reloj para estabilizarse. Para cuando el segundo flip-flop muestree el primer flip-flop, su salida ya podría ser estable.

Si quiere la emoción de la metaestabilidad, implemente DOS INVERSORES MUY LENTOS, conéctelos espalda con espalda y polarícelos (en una simulación) en VDD/2. Luego elimine la polarización 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 flip-flops son LENTOS en comparación con el período del reloj, la vida puede estar llena de problemas.

La metaestabilidad simplemente significa que, si tiene una transacción de datos dentro de una ventana de tiempo particular con referencia 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 valor incorrecto (oscilación o nivel de voltaje intermedio) disminuye exponencialmente con el tiempo. Por lo tanto, si muestrea la señal con un reloj y luego espera un poco antes de aplicar el reloj al segundo flip-flop, puede reducir las posibilidades de un bit defectuoso a cualquier probabilidad deseada (pero distinta de cero). Si el tiempo requerido es demasiado largo, puede usar 3 o más flip-flops en serie.