Wat is Handshake?

Schema dat data betrouwbaar overdraagt door een verzoek (req) van de zender en een bevestiging (ack) van de ontvanger uit te wisselen. Tussen klokdomeinen worden alleen req en ack gesynchroniseerd terwijl de data stabiel wordt gehouden; dat is veilig, maar kost enkele cycli of meer per overdracht.

Japanse benaming: ハンドシェイク

“Handshake” komt voor in 7 oefenvragen uit 3 onderwerpen, bijv. Timinganalyse en CDC, Interfaces en busstandaarden, Logische schakelingen.

Vakgebied: Timinganalyse en CDC

Nu oefenen: vragen over Handshake

Wat is bij een 4-fasen-handshake met req en ack de juiste volgorde van de signalen bij het doorgeven van één data-item?

  1. Areq op 1 zetten en tegelijk de data beginnen te veranderen → ontvanger zet ack op 1 → req en ack tegelijk op 0 zetten
  2. BOntvanger zet eerst ack op 1 → verzender legt de data vast en zet req op 1 → ontvanger neemt de data over → req en ack tegelijk op 0 zetten
  3. CData vastleggen en req op 1 zetten → ontvanger neemt de data over en zet ack op 1 → req op 0 zetten → ack op 0 zetten
Antwoord en toelichting tonen

Antwoord: C. Data vastleggen en req op 1 zetten → ontvanger neemt de data over en zet ack op 1 → req op 0 zetten → ack op 0 zetten

Bij een 4-fasen-handshake gaan req en ack elk één keer omhoog en omlaag; met in totaal 4 veranderingen is één overdracht voltooid. De verzender legt de data vast en zet dan req hoog; de ontvanger ziet de gesynchroniseerde req, neemt de data over en zet ack hoog. De verzender ziet de gesynchroniseerde ack en zet req laag, en de ontvanger ziet dat req laag is geworden en zet ack laag. req en ack zijn 1 bit, dus ze kunnen veilig met een synchronisator met 2 trappen worden doorgegeven. Wordt req hoog gezet terwijl de data verandert, dan kan de ontvanger een waarde overnemen die nog aan het veranderen is.

Wat is juist een nadeel van dataoverdracht tussen klokdomeinen met een handshake?

  1. AOmdat de synchronisatie van req en ack heen en weer gaat, kost één overdracht veel cycli, wat ongeschikt is voor continue overdracht van grote hoeveelheden
  2. BBij het doorgeven van multibitdata raakt de data beschadigd door het verschil in synchronisatie per bit
  3. CHet werkt alleen als de klokfrequenties van verzender en ontvanger gelijk zijn
Antwoord en toelichting tonen

Antwoord: A. Omdat de synchronisatie van req en ack heen en weer gaat, kost één overdracht veel cycli, wat ongeschikt is voor continue overdracht van grote hoeveelheden

Bij een 4-fasen-handshake kost het 2 synchronisatiecycli voordat req de ontvanger bereikt en 2 cycli voordat ack terugkomt bij de verzender, en het terugkeren van elk naar 0 kost evenveel, dus één overdracht kost in beide domeinen samen 8 cycli of meer. Daarom is het geschikt voor data die af en toe wordt doorgegeven, zoals instelwaarden van stuurregisters. De data blijft tijdens de hele overdracht stabiel, dus fouten door verschillen per bit treden niet op, en de frequentieverhouding maakt niet uit. Om vrijwel elke cyclus data te laten stromen, wordt een asynchrone FIFO gebruikt.

“Handshake” in de toelichting

Vragen met “Handshake” (7)

  1. Wat is bij een 4-fasen-handshake met req en ack de juiste volgorde van de signalen bij het doorgeven van één data-item?
  2. Wat is juist een nadeel van dataoverdracht tussen klokdomeinen met een handshake?
  3. Op welk moment wordt bij de VALID/READY-handshake die in elk AXI-kanaal wordt gebruikt, de data overgedragen?
  4. 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?
  5. Elke bit van 4-bit data krijgt een eigen synchronisator met 2 trappen en wordt zo naar een ander klokdomein doorgegeven. Welk probleem kan juist optreden als de data van 0111 naar 1000 verandert?
  6. Een puls die in een klokdomein van 500 MHz één cyclus (2 ns) lang 1 is, wordt met een synchronisator met 2 trappen doorgegeven aan een domein van 100 MHz. Welk probleem kan juist optreden?
  7. Welke beperking geldt juist bij het doorgeven van pulsen met toggle-synchronisatie van een snel naar een traag klokdomein?

Verwante termen

Synchronisator Asynchrone FIFO Klokdomein Numerieke apertuur (NA) Metastabiliteit AXI MTBF (gemiddelde tijd tussen storingen) Via Gray-code CRPR (clock reconvergence pessimism removal)

Naar de woordenlijst