Synchroner vs. asynchroner Reset: Timing, Takt und Freigabe

Beide Mechanismen setzen Flip-Flops auf einen definierten Anfangswert, unterscheiden sich aber im Zeitpunkt, zu dem der Reset wirkt. Beim synchronen Reset wird das Reset-Signal wie andere Daten an der Taktflanke übernommen. Beim asynchronen Reset wird der Reset-Anschluss des Flip-Flops direkt genutzt, sodass der Reset unabhängig vom Takt sofort wirkt. In der Praxis wird häufig ein Verfahren eingesetzt, bei dem der Reset asynchron sofort aktiviert und nur seine Freigabe mit dem Takt synchronisiert wird.

MerkmalSynchroner ResetAsynchroner Reset
WirkzeitpunktWenn bei aktivem Reset eine Taktflanke eintrifftSofort, wenn der Reset aktiv wird. Kein Warten auf den Takt
Takt erforderlich?Ja. Steht der Takt, ist kein Reset möglichNein. Wirkt auch, bevor der Takt anläuft oder während er steht
Verilog-Codealways @(posedge clk) if (!rst_n) q <= 0; else q <= d;always @(posedge clk or negedge rst_n) if (!rst_n) q <= 0; else q <= d;
SchaltungsaufbauVor dem Dateneingang wird Reset-Logik eingefügtEs werden Flip-Flops mit Reset-Anschluss verwendet
Fläche und DatenpfadIm Datenpfad kommen Gatter hinzu, was Verzögerung und Fläche entsprechend erhöhen kannDie Zelle ist um den Reset-Anschluss größer, im Datenpfad kommt aber keine Logik hinzu
Glitch-FestigkeitHoch. Glitches außerhalb des Flankenzeitpunkts werden nicht übernommenGering. Glitches auf der Reset-Leitung können einen ungewollten Reset auslösen
Pulsbreite des ResetsMuss mindestens eine Taktperiode lang aktiv gehalten werdenWirkt auch bei kurzen Pulsen
Timing-AnalyseWie ein normaler Dateneingang über Setup und Hold analysierbarDas Timing der Freigabe (Recovery- und Removal-Zeit) wird separat geprüft
Hinweise zur Reset-FreigabeDa synchron zum Takt, treten innerhalb derselben Taktdomäne kaum Probleme aufLiegt die Freigabe nahe an der Taktflanke, kann der Freigabezyklus von Flip-Flop zu Flip-Flop abweichen oder Metastabilität auftreten. Ein Reset-Synchronisierer richtet die Freigabe am Takt aus
Geeignete SchaltungenSchaltungen mit ständig laufendem Takt, Schaltungen mit störanfälligem Reset-SignalSchaltungen, die direkt nach dem Einschalten initialisiert werden sollen, Schaltungen, deren Takt anhalten kann

Die Zahlenwerte sind typische Größenordnungen und variieren je nach Prozessgeneration und Produkt.

Wann welche Variante?

Synchroner Reset
Wenn der Takt ständig läuft und Glitches auf dem Reset-Signal zu befürchten sind. Wenn der Reset wie ein normaler Datenpfad in die Timing-Analyse einbezogen werden soll.
Asynchroner Reset
Wenn auch vor dem Anlaufen oder bei stehendem Takt sofort initialisiert werden soll, etwa in Schaltungen, deren Ausgänge schnell in einen sicheren Zustand gebracht werden müssen.
Kombination
Weit verbreitet ist das Verfahren „asynchron aktivieren, synchron freigeben“ (Reset-Synchronisierer). Die Aktivierung wirkt sofort, die Freigabe wird über zwei Flip-Flop-Stufen an der Taktflanke ausgerichtet.

Häufige Fragen

Warum wird die Freigabe eines asynchronen Resets mit dem Takt synchronisiert?

Erfolgt die Freigabe nahe an einer Taktflanke, werden Recovery- oder Removal-Zeit verletzt; dann beginnt etwa ein Flip-Flop im aktuellen Zyklus und ein anderes erst im nächsten zu arbeiten, oder es tritt Metastabilität auf. Da ein Zustandsautomat dadurch in einem ungültigen Zustand starten kann, wird die Freigabe über zwei Flip-Flop-Stufen am Takt ausgerichtet und erst dann verteilt.

Was passiert beim synchronen Reset, wenn der Takt steht?

Auch wenn das Reset-Signal aktiviert wird, werden die Flip-Flops nicht initialisiert. Für Schaltungen, die schon vor der Stabilisierung des Takts einen sicheren Zustand brauchen, etwa direkt nach dem Einschalten, wird ein asynchroner Reset verwendet.

Brauchen alle Flip-Flops einen Reset?

Nein. Bei Registern, die vor der Verwendung stets beschrieben werden, etwa im Datenpfad, wird der Reset mitunter weggelassen, um Fläche und Verdrahtung zu sparen. Zustandsautomaten, Steuersignale und andere Elemente, deren Anfangswert das Verhalten beeinflusst, erhalten einen Reset.

Verständnis prüfen

Welche Aussage zum Unterschied zwischen synchronem und asynchronem Reset ist korrekt?

  1. ADer synchrone Reset wirkt unabhängig vom Takt, der asynchrone nur an der Taktflanke
  2. BDer synchrone Reset wirkt nur an der Taktflanke, der asynchrone sofort unabhängig vom Takt
  3. CBeide verhalten sich völlig gleich, nur die Namen sind verschieden
Antwort und Erläuterung anzeigen

Antwort: B. Der synchrone Reset wirkt nur an der Taktflanke, der asynchrone sofort unabhängig vom Takt

Ein synchroner Reset wird wie die übrigen Eingänge an der Taktflanke übernommen; die Timing-Analyse ist dadurch einfacher, bei stehendem Takt kann aber nicht zurückgesetzt werden. Ein asynchroner Reset nutzt direkt den Reset-Anschluss des Flipflops und setzt auch ohne Takt sofort zurück; liegt der Moment der Rücknahme nahe an der Taktflanke, kann der Zeitpunkt der Rücknahme jedoch von Flipflop zu Flipflop streuen.

Warum wird in einer Schaltung mit asynchronem Reset die Rücknahme des Resets (Wechsel von 0 auf 1) über zwei Flipflops mit dem Takt synchronisiert, bevor sie an die Schaltungsteile verteilt wird?

  1. AUm das Auslösen des Resets um 2 Takte zu verzögern und sicherer zu machen
  2. BUm das Resetsignal doppelt so schnell zu machen
  3. CWeil bei Rücknahme nahe der Taktflanke der Zyklus der Rücknahme je Flipflop abweichen oder instabil werden kann und die Rücknahme daher auf den Takt ausgerichtet wird
Antwort und Erläuterung anzeigen

Antwort: C. Weil bei Rücknahme nahe der Taktflanke der Zyklus der Rücknahme je Flipflop abweichen oder instabil werden kann und die Rücknahme daher auf den Takt ausgerichtet wird

Erfolgt die Rücknahme eines asynchronen Resets kurz vor oder nach der Taktflanke, werden die Zeitbedingungen für die Rücknahme verletzt, und es kommt zu Versätzen, bei denen ein Flipflop im aktuellen Zyklus und ein anderes im nächsten zu arbeiten beginnt. Das ist eine Ursache dafür, dass ein Zustandsautomat in einem unzulässigen Zustand startet. Eine Reset-Synchronisierschaltung lässt das Auslösen des Resets sofort wirken und richtet nur die Rücknahme über zwei Flipflops am Takt aus, bevor sie an alles verteilt wird.

In der Simulation war der Wert eines Registers ohne Reset anfangs X. Was ist im realen Chip zu erwarten?

  1. ABeim Einschalten wird es entweder 0 oder 1, welcher Wert, ist aber nicht festgelegt
  2. BAuch im realen Chip bleibt es auf einer Spannung zwischen 0 und 1 stehen
  3. CIm realen Chip ist es stets 0
Antwort und Erläuterung anzeigen

Antwort: A. Beim Einschalten wird es entweder 0 oder 1, welcher Wert, ist aber nicht festgelegt

Reale Flipflops pendeln sich beim Einschalten in einem stabilen Zustand 0 oder 1 ein, doch welcher es ist, hängt von Chip, Ort und Temperatur ab und ist nicht festgelegt. Das X der Simulation bedeutet „unbekannt, welcher von beiden“. Beeinflusst dieser Wert das Verhalten der Schaltung, muss er per Reset auf einen festen Wert gesetzt werden. Bei Registern, die vor der Verwendung stets beschrieben werden, etwa auf Datenpfaden, kann der Reset auch entfallen.

  1. Welche Art von Reset und welches Verhalten hat die obige Beschreibung?
  2. Wie heißt der Zustand, in dem der Ausgang eines Flipflops, das ein asynchrones Signal empfängt, die Setup- oder Hold-Zeit nicht erfüllt und vorübergehend weder als 0 noch als 1 definiert ist?

Übungsfragen zu Hardwarebeschreibungssprachen und Verifikation

Wichtige Begriffe erklärt

Synchroner Reset
Reset, bei dem das Resetsignal mit der Taktflanke übernommen wird, um die Flipflops zu initialisieren. Die Timing-Analyse ist einfacher, aber bei angehaltenem Takt wirkt der Reset nicht.
Asynchroner Reset
Reset, der das Flipflop unabhängig vom Takt sofort initialisiert, sobald das Reset-Signal aktiv wird. Das Lösen sollte grundsätzlich mit dem Takt synchronisiert werden.
Reset-Synchronisierer
Schaltung, die einen asynchronen Reset sofort wirksam werden lässt, seine Freigabe aber über zwei Flipflop-Stufen auf den Takt synchronisiert, bevor sie an die gesamte Schaltung verteilt wird.
Metastabilität
Zustand, in dem der Ausgang eines Flipflops bei verletzter Setup- oder Hold-Zeit eine Zeit lang weder 0 noch 1 ist. Asynchrone Signale werden mit einem zweistufigen Flipflop synchronisiert.
Glitch
Unerwünschter kurzer Impuls am Ausgang, z. B. durch Laufzeitunterschiede verschiedener Signalpfade. In kombinatorischen Schaltungen auch Hazard genannt; im DA-Wandler tritt er beim Codewechsel auf.

Verwandte Vergleiche