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.

KenmerkSynchrone resetAsynchrone reset
Moment van werkingWanneer er een klokflank komt terwijl de reset actief isOp het moment dat de reset actief wordt. Wacht niet op de klok
Is een klok nodigJa. Als de klok stilstaat, kan niet worden geresetNee. Werkt ook voordat de klok start of als die stilstaat
Verilog-notatiealways @(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 schakelingVóór de data-ingang wordt resetlogica geplaatstFlip-flops met een resetingang worden gebruikt
Oppervlak en datapadEr komen poorten in het datapad bij, wat vertraging en oppervlak kan verhogenDe cel is groter door de resetingang, maar er komt geen logica in het datapad bij
Bestendigheid tegen glitchesHoog. Glitches buiten het moment van de flank worden niet ingekloktLaag. Een glitch op de resetlijn kan een onbedoelde reset veroorzaken
Pulsbreedte van de resetMoet minstens één klokperiode actief blijvenWerkt ook bij een korte puls
TiminganalyseTe analyseren als gewone data-ingang met setup en holdDe timing van de vrijgave (recovery- en removaltijd) wordt apart gecontroleerd
Aandachtspunt bij vrijgaveOmdat de reset synchroon is met de klok, ontstaan binnen hetzelfde klokdomein weinig problemenAls 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 schakelingenSchakelingen waarin de klok altijd loopt, schakelingen waarbij het resetsignaal gevoelig is voor ruisSchakelingen 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.

Wanneer welke variant?

Synchrone reset
Wanneer de klok altijd loopt en er een risico is op glitches op het resetsignaal. Wanneer de reset net als het gewone datapad met timinganalyse moet worden gecontroleerd.
Asynchrone reset
Wanneer ook voordat de klok loopt of terwijl die stilstaat direct moet worden geïnitialiseerd. Bijvoorbeeld schakelingen waarvan de uitgangen snel in een veilige toestand moeten komen.
Combinatie
Veel gebruikt wordt een aanpak met asynchroon activeren en synchroon vrijgeven (resetsynchronisator). Het activeren werkt direct en de vrijgave wordt met twee flip-flops op de klokflank uitgelijnd.

Veelgestelde vragen

Waarom wordt de vrijgave van een asynchrone reset met de klok gesynchroniseerd?

Als de vrijgave dicht bij een klokflank valt, worden recovery- en removaltijd niet gehaald, en kunnen verschuivingen ontstaan waarbij de ene flip-flop in de huidige cyclus en een andere pas in de volgende cyclus begint te werken, of kan metastabiliteit optreden. Dat kan een toestandsmachine in een ongeldige toestand laten starten, dus wordt de vrijgave eerst met twee flip-flops op de klok uitgelijnd en daarna verdeeld.

Wat gebeurt er bij een synchrone reset als de klok stilstaat?

Ook als het resetsignaal wordt aangelegd, worden de flip-flops niet geïnitialiseerd. Voor schakelingen die al vóór het stabiliseren van de klok een veilige toestand nodig hebben, zoals direct na het inschakelen, wordt een asynchrone reset gebruikt.

Heeft elke flip-flop een reset nodig?

Nee. Bij registers die altijd worden beschreven voordat ze worden gebruikt, zoals in een datapad, wordt de reset soms weggelaten om oppervlak en bedrading te besparen. Zaken waarvan de beginwaarde de werking beïnvloedt, zoals toestandsmachines en stuursignalen, worden wel gereset.

Test uw begrip

Welke uitspraak over het verschil tussen synchrone en asynchrone reset is juist?

  1. ASynchrone reset werkt onafhankelijk van de klok en asynchrone reset werkt alleen op de klokflank
  2. BSynchrone reset werkt alleen op de klokflank en asynchrone reset werkt direct, onafhankelijk van de klok
  3. CBeide werken volledig hetzelfde en verschillen alleen in naam
Antwoord en toelichting tonen

Antwoord: B. Synchrone reset werkt alleen op de klokflank en asynchrone reset werkt direct, onafhankelijk van de klok

Bij synchrone reset wordt het resetsignaal net als de andere ingangen op de klokflank overgenomen, wat timinganalyse gemakkelijk maakt, maar niet kan resetten als de klok niet loopt. Asynchrone reset gebruikt direct de resetaansluiting van de flipflop en kan ook zonder klok direct resetten, maar als het loslaten dicht bij de klokflank ligt, kan het tijdstip van loslaten per flipflop gaan spreiden.

Waarom wordt in een schakeling met asynchrone reset het loslaten van de reset (verandering van 0 naar 1) met een flipflop van twee trappen op de klok gesynchroniseerd voordat het over de schakelingen wordt verdeeld?

  1. AOm het toepassen van de reset met 2 klokken te vertragen en veilig te maken
  2. BOm het resetsignaal twee keer zo snel te maken
  3. COmdat bij loslaten dicht bij de klokflank het loslaat-cyclus per flipflop kan verschuiven of instabiel kan worden, zodat het loslaten op de klok wordt uitgelijnd
Antwoord en toelichting tonen

Antwoord: C. Omdat bij loslaten dicht bij de klokflank het loslaat-cyclus per flipflop kan verschuiven of instabiel kan worden, zodat het loslaten op de klok wordt uitgelijnd

Als het loslaten van een asynchrone reset vlak vóór of vlak na de klokflank plaatsvindt, wordt niet aan de tijdvoorwaarden voor het loslaten voldaan en kan het zijn dat de ene flipflop in de huidige cyclus begint te werken en een andere in de volgende. Dit veroorzaakt dat toestandsmachines in een ongeldige toestand starten. Een reset-synchronisatieschakeling past de reset direct toe, maar lijnt alleen het loslaten met een tweetraps-flipflop uit op de klok en verdeelt het dan over het geheel.

In de simulatie was de waarde van een register zonder reset eerst X. Wat wordt aangenomen dat er in een echte chip gebeurt?

  1. ABij het inschakelen wordt het 0 of 1, maar het staat niet vast welke van de twee
  2. BOok in de echte chip blijft het stilstaan op een spanning tussen 0 en 1
  3. CIn de echte chip wordt het altijd 0
Antwoord en toelichting tonen

Antwoord: A. Bij het inschakelen wordt het 0 of 1, maar het staat niet vast welke van de twee

Een echte flipflop komt bij het inschakelen tot rust in een stabiele toestand van 0 of 1, maar welke van de twee verschilt per chip, plaats en temperatuur en staat niet vast. De X in simulatie geeft aan dat het niet bekend is welke van de twee. Als die waarde de werking van de schakeling beïnvloedt, moet met een reset een vaste waarde worden bepaald. Bij registers waarin vóór gebruik altijd wordt geschreven, zoals in een datapad, wordt de reset soms weggelaten.

  1. Welke uitspraak over het soort reset en de werking in de bovenstaande beschrijving is juist?
  2. Hoe heet de toestand waarin een flip-flop, bij ontvangst van een asynchroon signaal waarvan setup- of hold-tijd niet wordt gehaald, een uitgang krijgt die tijdelijk noch 0 noch 1 is?

Oefenvragen over Hardwarebeschrijvingstalen en verificatie

Belangrijke termen uitgelegd

Synchrone reset
Reset waarbij het resetsignaal op de klokflank wordt overgenomen om de flipflop te initialiseren. De timing is gemakkelijk te analyseren, maar de reset werkt niet als de klok stilstaat.
Asynchrone reset
Reset die de flipflop meteen initialiseert zodra het resetsignaal actief wordt, onafhankelijk van de klok. Het loslaten wordt in de regel met de klok gesynchroniseerd.
Reset-synchronisator
Schakeling die een asynchrone reset direct laat werken, maar alleen het loslaten met twee flipflops synchroniseert op de klok voordat het over de hele schakeling wordt verdeeld.
Metastabiliteit
Toestand waarin de uitgang van een flipflop enige tijd noch 0 noch 1 is, doordat de setup- of holdtijd niet is gehaald. Als maatregel worden asynchrone signalen met een tweetraps-flipflop gesynchroniseerd.
Glitch
Ongewenste puls die heel kort op de uitgang verschijnt, bijvoorbeeld door verschillen in vertraging tussen signaalpaden. In combinatorische schakelingen ook hazard genoemd; bij DA-omzetters ontstaat hij bij het omschakelen van codes.

Verwante vergelijkingen