Was passiert, wenn 1 Bit, das sich im Gray-Code-Zähler ändert, in Metastabilität geht? Warum ist es kein Problem im asynchronen FIFO?Verwenden wir Gray Counter, um Metastabilität in Asynch FIFO zu vermeiden?
Antwort
Vielleicht möchten Sie sich Cliff Cummings berühmtes Papier über Asynchronous FIFO Design ansehen.
Ich denke, asynchrone FIFO intern verwendet tatsächlich Gray-Code-Zähler, um den Schreib-/Leseadresszeiger über die zwei Taktdomänen zu übergeben.
Sie werden ein Metastabilitätsproblem haben, wenn mehr als 1 Bit in einer Taktdomäne umgeschaltet wird, aber nicht alle Bits von der anderen Taktdomäne erfasst werden. Ein 1 Bit kann in einem Gray-Code-Zähler umschalten und der Wert bleibt erhalten. Es spielt keine Rolle, wenn der 2. Takt das getoggte Bit vom 1. Takt abtastet, es kann ein Zyklus zu spät sein, aber das spielt keine Rolle.
Also, wenn RD-Zeiger um 1 Taktzyklus spät ist, würde es keine Pseudo-Voll-Bedingung erstellen? – Rottenengg
- 1. Warum sollten wir vermeiden, Rettung in seiner Modifikatorform zu verwenden?
- 2. Verwenden von snprintf, um Pufferüberlauf zu vermeiden
- 3. Wann können wir vermeiden, einen Konstruktor zu verwenden, um den Zustand zu initialisieren?
- 4. OpenCV Farbbild zu Gray Problem
- 5. Counter vermeiden Wiederholung mit Multithread-Anfragen
- 6. Welche Technologie zu verwenden, um zu viele VMs zu vermeiden
- 7. Algorithmus RGB zu Gray Lagging
- 8. Wie asynch CSS zu überschreiben?
- 9. Html Vorlagen geladen asynch (JQuery/JavaScript asynch)
- 10. Räder in gitlab-ci verwenden, um lange Kompilationen zu vermeiden
- 11. Timeout verwenden, um Deadlock in Java-Multithreading zu vermeiden
- 12. Verwenden Sie schwache Referenzen, um Speicherverluste zu vermeiden ..?
- 13. Gray-Code in .NET
- 14. Verwenden von Vorlagen, um ähnliche Funktionen zu vermeiden
- 15. Gray-Code-Inkrementierung
- 16. Was verwenden wir, um Externals in webpack2 zu definieren?
- 17. Asynch GUI Updates in Smalltalk
- 18. Verwenden einer Transaktion, um ein Rennen zu vermeiden
- 19. Vermeiden Sie "Update" zu verwenden?
- 20. finden wir weitere Elemente Trog Fifo in c
- 21. Warum können wir die Prozess-ID nicht verwenden, um den Port zu verwenden, den wir binden?
- 22. Gray out Protokollierungscode mit ReSharper
- 23. Verwenden Sie $ compileProvider, um unsichere Links zu vermeiden
- 24. Verwenden von AngularJS "copy()", um Referenzprobleme zu vermeiden
- 25. Verwenden von extract() mit Flag EXTR_SKIP, um Sicherheitsprobleme zu vermeiden
- 26. R: Verwenden von Mapply, um Schleife zu vermeiden
- 27. Verwenden einer Textdatei, um den Status in Python zu speichern, um beim Schließen zu vermeiden
- 28. wie movntdqa verwenden, um Cache-Verschmutzung zu vermeiden?
- 29. Verwenden von rails3-jquery-autocomplete, um doppelte Einträge zu vermeiden?
- 30. Warum verwenden wir abroll segue, wenn wir Segmente verwenden können, um zu einem View-Controller zurückzukehren?
[Elektronik SE] (https://electronics.stackexchange.com/) wäre ein besserer Ort für diese Frage. – ahmedus