Synchrone versus asynchrone reset: timing, klok en aandachtspunten bij vrijgave
Beide zijn mechanismen om flip-flops in een vaste beginwaarde te zetten, maar ze verschillen in het moment waarop de reset werkt. Een synchrone reset klokt het resetsignaal net als andere data in op de klokflank. Een asynchrone reset gebruikt rechtstreeks de resetingang van de flip-flop en werkt direct, los van de klok. In de praktijk wordt vaak een aanpak gebruikt waarbij het activeren asynchroon en direct werkt en alleen de vrijgave met de klok wordt gesynchroniseerd.
| Kenmerk | Synchrone reset | Asynchrone reset |
|---|---|---|
| Moment van werking | Wanneer er een klokflank komt terwijl de reset actief is | Op het moment dat de reset actief wordt. Wacht niet op de klok |
| Is een klok nodig | Ja. Als de klok stilstaat, kan niet worden gereset | Nee. Werkt ook voordat de klok start of als die stilstaat |
| Verilog-notatie | always @(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; |
| Opbouw van de schakeling | Vóór de data-ingang wordt resetlogica geplaatst | Flip-flops met een resetingang worden gebruikt |
| Oppervlak en datapad | Er komen poorten in het datapad bij, wat vertraging en oppervlak kan verhogen | De cel is groter door de resetingang, maar er komt geen logica in het datapad bij |
| Bestendigheid tegen glitches | Hoog. Glitches buiten het moment van de flank worden niet ingeklokt | Laag. Een glitch op de resetlijn kan een onbedoelde reset veroorzaken |
| Pulsbreedte van de reset | Moet minstens één klokperiode actief blijven | Werkt ook bij een korte puls |
| Timinganalyse | Te analyseren als gewone data-ingang met setup en hold | De timing van de vrijgave (recovery- en removaltijd) wordt apart gecontroleerd |
| Aandachtspunt bij vrijgave | Omdat de reset synchroon is met de klok, ontstaan binnen hetzelfde klokdomein weinig problemen | Als de vrijgave dicht bij een klokflank valt, kan de cyclus van vrijgave per flip-flop verschillen of kan metastabiliteit optreden. Met een resetsynchronisator wordt de vrijgave op de klok uitgelijnd |
| Geschikte schakelingen | Schakelingen waarin de klok altijd loopt, schakelingen waarbij het resetsignaal gevoelig is voor ruis | Schakelingen die direct na het inschakelen moeten worden geïnitialiseerd, schakelingen waarin de klok kan stilstaan |
De getalswaarden zijn typische ordegroottes en variëren per procesgeneratie en product.