Timinganalyse en CDC
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?
- ADe cyclus waarin wordt overgenomen verschilt per bit, waardoor tussenwaarden zoals 1111 of 0000 kunnen worden ontvangen
- BNa de synchronisator lopen alle bits in dezelfde cyclus gelijk, dus er ontstaat geen probleem
- CAlle 4 bits worden metastabiel en keren niet meer terug naar 0 of 1
Antwoord en toelichting tonen
Antwoord: A. De cyclus waarin wordt overgenomen verschilt per bit, waardoor tussenwaarden zoals 1111 of 0000 kunnen worden ontvangen
Bij een synchronisator met 2 trappen ligt per bit niet vast of de verandering op deze flank of op de volgende wordt overgenomen. Bij de verandering van 0111 naar 1000 veranderen alle 4 bits, dus kan gedurende 1 cyclus een waarde zoals 1111, 0000 of 0100 worden ontvangen waarin slechts een deel van de bits de nieuwe waarde heeft. Gebruikt de ontvanger die waarde, dan werkt hij fout. Metastabiliteit dooft na verloop van tijd uit tot 0 of 1. Bij tellerwaarden wordt omgezet naar Gray-code zodat maar één bit verandert; bij willekeurige data worden een handshake of een asynchrone FIFO gebruikt.