Timing-Analyse und CDC

Da ein asynchroner FIFO den Zeiger der Gegenseite synchronisiert verwendet, ist der sichtbare Zeigerwert 2–3 Zyklen veraltet. Welche Auswirkung hat diese Verzögerung auf die Erkennung von full/empty?

  1. ANur die Aufhebung von full bzw. empty verzögert sich; Überlauf oder Lesen aus einem leeren FIFO treten nicht auf
  2. BDa sich die full-Erkennung verzögert, kann zu viel geschrieben werden, sodass Daten überlaufen
  3. CDa sich die empty-Erkennung verzögert, kann aus einem leeren FIFO gelesen werden
Antwort und Erläuterung anzeigen

Antwort: A. Nur die Aufhebung von full bzw. empty verzögert sich; Überlauf oder Lesen aus einem leeren FIFO treten nicht auf

Der von der Schreibseite gesehene Lesezeiger ist veraltet; es scheint, als sei das Lesen weniger weit fortgeschritten als tatsächlich, und der FIFO wird als voller beurteilt, als er ist. full wird also stets angezeigt, wenn er wirklich voll ist; nur die Aufhebung nach dem Freiwerden von Platz verzögert sich etwas. Für empty auf der Leseseite gilt dasselbe: Neu geschriebene Daten werden nur verzögert sichtbar. Beides wirkt zur sicheren (pessimistischen) Seite, daher werden keine Daten verfälscht; um die Leistung zu halten, wird für diese Verzögerung jedoch Reserve in der Tiefe vorgesehen.

Aufbau eines asynchronen FIFO Schreibseite (wclk) Leseseite (rclk) Dual-Port-RAM Zugriff mit 2 Takten Schreibdaten Schreibzeiger Gray-Codierung Lesedaten Lesezeiger Gray-Codierung 2-FF-Sync empty-Prüfung 2-FF-Sync full-Prüfung Gray-Code-Zeiger Gray-Code: pro Schritt ändert sich nur 1 Bit
Aufbau eines asynchronen FIFO · Im Diagrammverzeichnis ansehen
Dieses Thema üben Zur Themenseite

Weitere Fragen zu Timing-Analyse und CDC

  1. Bei einem asynchronen FIFO mit 100 MHz auf der Schreibseite und 80 MHz auf der Leseseite schreibt die Schreibseite einen Burst von 100 Wörtern mit 1 Wort pro Zyklus, und die Leseseite liest 1 Wort pro Zyklus. Zwischen den Bursts gibt es ausreichende Pausen. Welche Tiefe ist mindestens erforderlich, um einen Überlauf zu vermeiden (Verzögerung durch Synchronisierung vernachlässigt)?
  2. Die Schreibseite schreibt mit 200 MHz einen Burst von 120 Wörtern mit 1 Wort pro Zyklus. Die Leseseite liest mit einem 150-MHz-Takt in nur 2 von 3 Zyklen je 1 Wort. Welche Tiefe ist mindestens erforderlich, um einen Überlauf zu vermeiden (Verzögerung durch Synchronisierung vernachlässigt)?
  3. Die Schreibseite arbeitet mit 250 MHz, die Leseseite mit 200 MHz, beide übertragen 1 Wort pro Zyklus. Welche Tiefe ist für einen FIFO, der einen Burst von 64 Wörtern aufnimmt, rechnerisch mindestens erforderlich (Verzögerung durch Synchronisierung vernachlässigt, Bruchteile werden aufgerundet)?
  4. Welcher Aufbau einer Reset-Synchronisierungsschaltung, die aus einem active-low externen Reset einen internen Reset erzeugt, der „asynchron aktiviert und synchron deaktiviert“ wird, ist richtig?
  5. Zwei Steuersignale aus derselben Sendedomäne werden jeweils mit einem eigenen 2-stufigen Synchronisierer empfangen und auf der Empfangsseite per AND verknüpft verwendet. Welches Problem dieses Entwurfs ist richtig?