Hardwarebeschreibungssprachen und Verifikation

Welche Art von Reset und welches Verhalten hat die obige Beschreibung?

always @(posedge clk or negedge rst_n)
    if (!rst_n) q <= 0;
    else        q <= d;
  1. ASynchroner Reset: q wird nur 0, wenn rst_n 0 ist und der Takt steigt
  2. BAsynchroner Reset: Sobald rst_n 0 wird, wird q sofort 0, ohne den Takt abzuwarten
  3. Cq wird 0, wenn rst_n 1 wird
Antwort und Erläuterung anzeigen

Antwort: B. Asynchroner Reset: Sobald rst_n 0 wird, wird q sofort 0, ohne den Takt abzuwarten

Da „negedge rst_n“ in der Sensitivitätsliste steht, wird der Block auch im Moment des Wechsels von rst_n von 1 auf 0 ausgeführt, und q wird unabhängig vom Takt 0. Das ist ein asynchroner Reset. Das „_n“ im Namen kennzeichnet nach Konvention ein Signal mit negativer Logik, das bei 0 aktiv ist. Er hat den Vorteil, dass auch bei stehendem Takt zurückgesetzt werden kann, doch beim Zeitpunkt der Rücknahme des Resets ist Vorsicht geboten.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Hardwarebeschreibungssprachen und Verifikation

  1. Welche Aussage zum Unterschied zwischen synchronem und asynchronem Reset ist korrekt?
  2. Warum wird in einer Schaltung mit asynchronem Reset die Rücknahme des Resets (Wechsel von 0 auf 1) über zwei Flipflops mit dem Takt synchronisiert, bevor sie an die Schaltungsteile verteilt wird?
  3. Welcher grundlegende Aufbau eines in HDL geschriebenen Zustandsautomaten (State Machine) ist korrekt?
  4. Warum steht am Anfang des zweiten always-Blocks der obigen Zustandsautomatenbeschreibung „next = state;“?
  5. Welche Aussage zu Zustandsautomaten vom Mealy-Typ ist korrekt?

Vergleiche zu diesem Thema