Wat is 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.

Japanse benaming: 非同期リセット

“Asynchrone reset” komt voor in 5 oefenvragen uit 3 onderwerpen, bijv. Hardwarebeschrijvingstalen en verificatie, Timinganalyse en CDC, Logische schakelingen.

Vakgebied: Hardwarebeschrijvingstalen en verificatie

Hoe je een asynchrone reset schrijft

In Verilog staat een asynchrone reset samen met de klok in de sensitivity list, zoals in always @(posedge clk or negedge rst_n) gevolgd door if (!rst_n) q <= 0; else q <= d;. Omdat ook de dalende flank van rst_n het blok triggert, wordt q gewist op het moment dat de reset actief wordt, zonder op een klokflank te wachten. Het achtervoegsel _n is een gangbare naamgevingsconventie voor actief-lage signalen. Synthese beeldt dit patroon af op flipflops met een speciale reset- of clear-pin, zodat de reset niet door de logica in het datapad loopt.

Asynchrone vs. synchrone reset

Een synchrone reset is gewoon een extra ingang die op de klokflank wordt bemonsterd: hij gaat door logica vóór de D-ingang van de flipflop en werkt alleen als de klok loopt. Dat maakt timinganalyse eenvoudig, maar zo kun je geen blok initialiseren waarvan de klok stilstaat, en het voegt logica toe aan het datapad. Een asynchrone reset gebruikt de resetpin van de flipflop en werkt meteen, ook zonder klok, wat handig is bij het inschakelen of als klokken gegate zijn. Het zwakke punt is het moment van loslaten, dat zijn eigen timingeisen heeft.

Het probleem bij het loslaten van de reset

Flipflops specificeren recovery- en removal-tijden, die voor het deactiveren van een asynchrone reset de rol spelen van setup- en holdtijden. Wordt de reset te dicht bij een klokflank losgelaten, dan kan een flipflop metastabiel worden, of kunnen flipflops op verschillende plekken in het resetnetwerk in verschillende klokcycli uit de reset komen. Een toestandsmachine waarvan de bits een cyclus na elkaar starten, kan in een ongeldige toestand beginnen. Omdat de externe resetbron niets met de klok te maken heeft, is deze situatie niet uit te sluiten zonder het loslaten te synchroniseren.

Asynchroon activeren, synchroon loslaten

De gebruikelijke remedie is een resetsynchronisator: twee flipflops in serie, geklokt door de doelklok, waarvan de asynchrone resetpinnen door de externe reset worden aangestuurd en waarbij de data-ingang van de eerste trap aan het inactieve niveau ligt. Activeren van de reset wist beide trappen tegelijk, zodat de reset nog steeds meteen werkt. Bij het loslaten moet het inactieve niveau door de twee flipflops schuiven, zodat de verdeelde reset in de pas met de klok deactiveert, en de tweede trap geeft de eerste de tijd om uit metastabiliteit te komen. Elk klokdomein heeft een eigen synchronisator nodig.

Nu oefenen: vragen over Asynchrone reset

Welke controle onderzoekt bij STA of bij een flip-flop met asynchrone reset het opheffen van de reset niet te dicht bij de klokflank ligt?

  1. AClock-gating-check
  2. BRecovery- en removal-check
  3. CControle van de maximale transitietijd (max transition)
Antwoord en toelichting tonen

Antwoord: B. Recovery- en removal-check

Het opheffen van een asynchrone reset moet net als de data-ingang een bepaalde tijd van de klokflank verwijderd zijn. De recovery-check kijkt of het opheffen niet te kort vóór de flank ligt (vergelijkbaar met setup), de removal-check of het niet te kort na de flank ligt (vergelijkbaar met hold). Bij een overtreding ligt niet vast of de reset in die cyclus wordt opgeheven, en verschilt per flip-flop de cyclus waarin hij begint te werken. De controle van de transitietijd kijkt naar het afvlakken van de signaalgolfvorm en heeft een ander doel.

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.

Veelgestelde vragen

Wat is het verschil tussen een synchrone en een asynchrone reset?

Een synchrone reset werkt alleen op een actieve klokflank en heeft een lopende klok nodig, terwijl een asynchrone reset via de resetpin van de flipflop meteen werkt, ongeacht de klok.

Waarom synchroniseren we het loslaten van een asynchrone reset?

Als de reset vlak bij een klokflank wordt losgelaten, kunnen flipflops de recovery- of removal-timing schenden, metastabiel worden of in verschillende cycli uit de reset komen; een synchronisator met twee flipflops lijnt het loslaten uit op de klok.

Wat zijn recovery- en removal-tijden?

Dat zijn de minimale tijden waarmee een asynchrone reset vóór een actieve klokflank moet zijn gedeactiveerd (recovery) of erna nog moet worden vastgehouden (removal), vergelijkbaar met setup- en holdtijden voor data.

“Asynchrone reset” in de toelichting

Vragen met “Asynchrone reset” (5)

  1. Welke controle onderzoekt bij STA of bij een flip-flop met asynchrone reset het opheffen van de reset niet te dicht bij de klokflank ligt?
  2. Welke uitspraak over het verschil tussen synchrone en asynchrone reset is juist?
  3. 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?
  4. Hoe heet de ongewenste puls die in een combinatorisch circuit kortstondig op de uitgang verschijnt door verschillen in vertraging tussen paden wanneer een ingang verandert?
  5. Welke uitspraak over het soort reset en de werking in de bovenstaande beschrijving is juist?

Vergelijkingen met deze term

Verwante termen

Numerieke apertuur (NA) Flipflop STA (statische timinganalyse) Synchrone reset Via Glitch Sensitivity list Blocking assignment Combinatorische lus (combinational loop) Constrained-random-verificatie

Naar de woordenlijst