Timing-Analyse und CDC
Was ist der richtige Grund dafür, dass bei einem asynchronen FIFO Schreib- und Lesezeiger vor der Synchronisierung in die jeweils andere Domäne in Gray-Code umgewandelt werden?
- AWeil sich mit Gray-Code die Bitanzahl halbiert und weniger Synchronisierer benötigt werden
- BWeil sich bei jedem Schritt nur 1 Bit ändert, sodass auch bei Übernahme während der Änderung der korrekte Wert vor oder nach dem Schritt herauskommt
- CWeil Gray-codierte Signale nicht metastabil werden und daher keine Synchronisierung nötig ist
Antwort und Erläuterung anzeigen
Antwort: B. Weil sich bei jedem Schritt nur 1 Bit ändert, sodass auch bei Übernahme während der Änderung der korrekte Wert vor oder nach dem Schritt herauskommt
Bei einem binären Zeiger ändern sich mehrere Bits gleichzeitig, etwa von 0111 auf 1000; synchronisiert man jedes Bit einzeln, kann ein völlig unzusammenhängender Wert empfangen werden. Bei Gray-Code ändert sich pro Inkrement nur 1 Bit; auch wenn dieses Bit metastabil wird und sich auf den alten oder den neuen Wert festlegt, ist das Ergebnis der Wert vor oder nach dem Schritt. Es wird lediglich ein etwas älterer Wert gesehen, sodass der FIFO nicht fehlerhaft wird. Die Bitanzahl ändert sich nicht, und Metastabilität selbst kann auftreten, daher sind Synchronisierer erforderlich.