Timing-Analyse und CDC

Welche Bedingung zur Erkennung von „voll“ (full) auf der Schreibseite ist bei einem asynchronen FIFO mit 16 Wörtern Tiefe und 5-Bit-Gray-Code-Zeigern richtig?

  1. ADie oberen 2 Bit von Schreibzeiger und synchronisiertem Lesezeiger sind jeweils invertiert, und die unteren 3 Bit stimmen überein
  2. BAlle 5 Bit von Schreibzeiger und synchronisiertem Lesezeiger stimmen überein
  3. CNur das höchstwertige Bit von Schreibzeiger und synchronisiertem Lesezeiger ist invertiert, und alle unteren 4 Bit stimmen überein
Antwort und Erläuterung anzeigen

Antwort: A. Die oberen 2 Bit von Schreibzeiger und synchronisiertem Lesezeiger sind jeweils invertiert, und die unteren 3 Bit stimmen überein

Binär ist der FIFO voll, wenn der Schreibzeiger genau 16 vor dem Lesezeiger liegt; dann unterscheidet sich nur das höchstwertige Bit. In Gray-Code übertragen wird das höchstwertige Bit direkt invertiert, das zweite Bit, das durch XOR mit dem höchstwertigen Bit entsteht, wird ebenfalls invertiert, und die unteren 3 Bit sind gleich. Ist der Lesezeiger beispielsweise 00000, ist der Schreibzeiger bei vollem FIFO 11000. „Nur das höchstwertige Bit invertiert“ ist die Bedingung für den binären Fall, und die Übereinstimmung aller 5 Bit ist die Bedingung für leer (empty).

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Timing-Analyse und CDC

  1. 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?
  2. 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)?
  3. 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)?
  4. 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)?
  5. 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?