Hardwarebeschreibungssprachen und Verifikation

Welche Schaltung entsteht bei der Logiksynthese der obigen Beschreibung, die die Einsen in 8-Bit-d zählt?

always @(*) begin
    count = 0;
    for (i = 0; i < 8; i = i + 1)
        count = count + d[i];
end
  1. AEine sequentielle Schaltung, die in 8 Takten Bit für Bit zählt
  2. BEine kombinatorische Schaltung, in der die Schleife auf 8 Durchläufe entfaltet wird und Addierschaltungen hintereinander stehen
  3. CDie for-Schleife ist nicht synthetisierbar und führt zu einem Fehler
Antwort und Erläuterung anzeigen

Antwort: B. Eine kombinatorische Schaltung, in der die Schleife auf 8 Durchläufe entfaltet wird und Addierschaltungen hintereinander stehen

Eine for-Schleife in HDL verwendet nicht wie in Software dieselbe Schaltung wiederholt, sondern wird bei der Logiksynthese in so viele Schaltungen entfaltet, wie Durchläufe vorhanden sind. In diesem Beispiel entsteht eine kombinatorische Schaltung mit 8 hintereinander angeordneten Addierern, die alles innerhalb eines Takts berechnet. Bei vielen Durchläufen werden Schaltung und Verzögerung groß, was zu beachten ist. Soll mit wenig Schaltung über längere Zeit gerechnet werden, wird ein taktgesteuerter Zustandsautomat geschrieben.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Hardwarebeschreibungssprachen und Verifikation

  1. Welche Art von Reset und welches Verhalten hat die obige Beschreibung?
  2. Welche Aussage zum Unterschied zwischen synchronem und asynchronem Reset ist korrekt?
  3. 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?
  4. Welcher grundlegende Aufbau eines in HDL geschriebenen Zustandsautomaten (State Machine) ist korrekt?
  5. Warum steht am Anfang des zweiten always-Blocks der obigen Zustandsautomatenbeschreibung „next = state;“?

Vergleiche zu diesem Thema