Ein noch nicht genannter Faktor ist die Metastabilität. Wenn eine Verriegelungsschaltung mit einer Folge von Eingaben / Übergängen getroffen wird, so dass der resultierende Zustand von Ausbreitungsverzögerungen oder anderen unvorhersehbaren Faktoren abhängen würde, gibt es keine Garantie dafür, dass der resultierende Zustand ein sauberes "Hoch" oder "Niedrig" ist. Betrachten wir zum Beispiel ein flankengetriggertes Flip-Flop, das gerade ein "low" ausgibt und dessen Eingang sich fast gleichzeitig mit dem Eintreffen einer Taktflanke von low auf high ändert. Wenn die Taktflanke lange genug vor dem Eingangswechsel auftritt, bleibt der Ausgang einfach bis zur nächsten Taktflanke niedrig. Wenn die Taktflanke lange genug nach dem Eingangswechsel auftritt, schaltet der Ausgang schnell von niedrig auf hoch und bleibt dort bis zur nächsten Taktflanke. Wenn keine dieser Bedingungen zutrifft,. Es kann niedrig bleiben oder schnell einmal umschalten und hoch bleiben, aber es kann für eine Weile niedrig bleiben und dann umschalten oder umschalten und dann einige Zeit später umschalten oder ein paar Mal hin und her schalten usw.
Wenn eine Konstruktion vollständig synchron ist und alle Eingänge doppelt synchronisiert sind, ist es sehr unwahrscheinlich, dass ein Zeitsteuerungsimpuls den ersten Latch eines Synchronisierers so trifft, dass er zum perfekten Zeitpunkt umschaltet und den zweiten verwirrt verriegeln. Im Allgemeinen ist es sicher, solche Dinge als "einfach nicht passieren" zu betrachten. Bei einem asynchronen Entwurf ist es jedoch oft viel schwieriger, über solche Dinge nachzudenken. Wenn eine Zeitbeschränkung für eine Latch-Schaltung (nicht nur Flip-Flops, sondern eine beliebige Kombination von Logik, die als Latch fungieren würde) verletzt wird, kann nicht gesagt werden, was der Ausgang tun wird, bis das nächste Mal eine gültige Eingangsbedingung vorliegt, die den Latch erzwingt zu einem bekannten Zustand. Es ist durchaus möglich, dass verzögerte Ausgänge dazu führen, dass die zeitlichen Einschränkungen der nachgeschalteten Eingänge verletzt werden, was zu unerwarteten Situationen führt.
Der sicherste Weg, eine asynchrone Schaltung zu modellieren, besteht darin, dass fast jede Ausgangsschaltung für eine kurze Zeit einen "X" -Ausgang erzeugt, wenn sie zwischen "0" und "1" wechselt. Leider führt dieser Ansatz häufig dazu, dass fast alle Knoten "X" anzeigen, selbst in Fällen, die in der Realität mit ziemlicher Sicherheit zu einem stabilen Verhalten geführt hätten. Wenn ein System funktionieren kann, wenn simuliert wird, dass alle Ausgänge unmittelbar nach einer Eingangsänderung zu "X" werden und "X" bleiben, bis die Eingänge stabil sind, ist dies ein gutes Zeichen dafür, dass die Schaltung funktioniert, aber asynchrone Schaltungen unter solchen Einschränkungen funktionieren ist oft schwierig.