Un factor que aún no se ha mencionado es la metastabilidad. Si un circuito de retención se golpea con una secuencia de entradas / transiciones tal que el estado resultante dependería de los retrasos de propagación u otros factores impredecibles, no hay garantía de que el estado resultante sea limpio o "alto" o "bajo". Considere, por ejemplo, un flip-flop activado por borde que actualmente está emitiendo un "bajo", y tiene su cambio de entrada de bajo a alto casi al mismo tiempo que llega el borde del reloj. Si el borde del reloj es lo suficientemente largo antes del cambio de entrada, la salida simplemente se sentará baja hasta el próximo borde del reloj. Si el borde del reloj pasa el tiempo suficiente después del cambio de entrada, la salida cambiará rápidamente una vez de bajo a alto y permanecerá allí hasta el siguiente borde del reloj. Si ninguna de estas condiciones se aplica, la salida puede hacer cualquier cosa . Puede permanecer bajo, o cambiar rápidamente una vez y permanecer alto, pero puede permanecer bajo por un tiempo y luego cambiar, o cambiar y luego un tiempo más tarde volver a cambiar, o alternar unas y otras veces, etc.
Si un diseño es completamente síncrono y todas las entradas están sincronizadas doble, es muy poco probable que un impulso de sincronización golpee el primer pestillo de un sincronizador de tal manera que haga que se conmute en el momento perfecto para Confundir el segundo pestillo. En general, es seguro considerar estas cosas como "simplemente no sucederá". En un diseño asíncrono, sin embargo, a menudo es mucho más difícil razonar acerca de tales cosas. Si se viola una restricción de tiempo en un circuito de enclavamiento (no solo los flip flops, sino cualquier combinación de lógica que actúe como un enclavamiento), no se sabe qué hará la salida hasta la próxima vez que exista una condición de entrada válida que obligue al enclavamiento. a un estado conocido. Es totalmente posible que las salidas retrasadas causen la violación de las restricciones de tiempo de las entradas en sentido descendente, dando lugar a situaciones inesperadas, especialmente si se utiliza una salida para calcular dos o más entradas (algunas pueden calcularse como si el seguro fuera alto, otras como aunque fuera bajo).
La forma más segura de modelar un circuito asíncrono sería hacer que casi todos los circuitos de salida produzcan una "X" por un tiempo cada vez que cambie entre "0" y "1". Desafortunadamente, este enfoque a menudo da como resultado que casi todos los nodos muestren una "X", incluso en casos que en realidad casi con seguridad han dado como resultado un comportamiento estable. Si un sistema puede funcionar cuando se simula que todas las salidas se convierten en "X" inmediatamente después de que cambie una entrada y permanezcan en "X" hasta que las entradas estén estables, es una buena señal de que el circuito funcionará, pero hacer que los circuitos asíncronos funcionen bajo tales restricciones A menudo es difícil.