Timing-Analyse und CDC

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)?

  1. A30 Wörter
  2. B60 Wörter
  3. C40 Wörter
Antwort und Erläuterung anzeigen

Antwort: B. 60 Wörter

Das Schreiben von 120 Wörtern dauert 120 × 5 ns = 600 ns. Die effektive Rate der Leseseite beträgt 150 MHz × 2/3 = 100 Millionen Wörter pro Sekunde, in 600 ns können also 60 Wörter gelesen werden. Die maximal im FIFO angesammelte Menge beträgt daher 120 − 60 = 60 Wörter. 30 Wörter ist der Wert, bei dem angenommen wurde, die Leseseite könne in jedem Zyklus lesen, und mit 150 MHz gerechnet wurde (90 Wörter in 600 ns), 40 Wörter einfach ein Drittel des Bursts. Wichtig ist, nicht die Taktfrequenzen, sondern die effektiven Raten einschließlich der Pausen zu vergleichen.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Timing-Analyse und CDC

  1. 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)?
  2. 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?
  3. 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?
  4. Was ist der richtige Grund dafür, dass trotz STA und RTL-Simulation eine Prüfung mit einem CDC-Verifikationstool erforderlich ist?
  5. Warum kann es problematisch sein, den Pfad, über den die Gray-codierten Zeiger eines asynchronen FIFO in die Gegendomäne übertragen werden, nur weil er asynchron ist, ohne Constraint (als False Path) zu belassen?