La metaestabilidad no se puede "curar", pero si esperar lo suficiente La probabilidad de que ocurra puede hacerse arbitrariamente pequeña. Una vez que se ha reducido a una vez en la edad del universo, es poco probable que cause problemas.
Es como equilibrar un lápiz sobre su punta. Es probable que se caiga, y cuanto más esperes, menos probable será que se mantenga en pie.
Esperar mucho tiempo tiene dos problemas, y uno de ellos es fundamental.
El problema fundamental es que si tienes un solo elemento de memoria (latch 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 puedes definir un límite inferior al tiempo de espera, a veces la señal externa hará una transición cerca del borde de control del latch. 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 se intenta hacer funcionar un sistema lo más rápido posible, y la velocidad de reloj del sistema no puede reducirse para dar suficiente tiempo al segundo flip-flop. La única manera 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 ocurre entre las chanclas. Hay dos maneras de inducir la metaestabilidad, y ambas implican violar las reglas de los flip-flops. Una forma es violar los tiempos de preparación y retención de la entrada, para hacer una transición cuando el flip-flop espera que la entrada sea estable. La otra es violar los niveles lógicos de entrada, para hacer que la entrada de datos del flip-flop se sitúe en un nivel de voltaje intermedio. Un flip-flop que está siendo metaestable puede producir cualquier tipo de violación en su salida, para pasar en cascada al siguiente flip-flop.
2 votos
Siempre buscando una oportunidad para mencionar el culo de Buridan: es.wikipedia.org/wiki/