Timinganalyse en CDC
Wat is de juiste reden waarom het een probleem kan zijn om het pad waarlangs de Gray-codepointer van een asynchrone FIFO naar het andere domein gaat zonder constraint te laten (false path), alleen omdat het asynchroon is?
- AOmdat bij een false path de flip-flops van de synchronisator door logische synthese worden verwijderd
- BOmdat als het verschil in vertraging tussen de bits groter wordt dan het update-interval van de pointer, de aanname dat per keer maar één bit verandert aan de ontvangende kant niet meer klopt
- COmdat bij een false path de pointer door de tool weer naar binair wordt omgezet
Antwoord en toelichting tonen
Antwoord: B. Omdat als het verschil in vertraging tussen de bits groter wordt dan het update-interval van de pointer, de aanname dat per keer maar één bit verandert aan de ontvangende kant niet meer klopt
Een Gray-codepointer gaat ervan uit dat, op welke flank de ontvanger ook kijkt, hooguit één bit aan het veranderen is. Zonder constraint op het pad kan de vertraging per bit na place-and-route sterk uiteenlopen. Is bijvoorbeeld de periode aan de verzendende kant 2 ns, en duurt het voor de bit die de eerste keer verandert 3 ns en voor de bit die de tweede keer verandert 1 ns om aan te komen, dan komen beide op tijdstip 3 ns aan en lijkt het alsof 2 bits tegelijk veranderen. Daarom wordt een constraint voor de maximale vertraging opgelegd om het verschil in vertraging binnen één periode van de verzendende kant te houden.