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
- AEine sequentielle Schaltung, die in 8 Takten Bit für Bit zählt
- BEine kombinatorische Schaltung, in der die Schleife auf 8 Durchläufe entfaltet wird und Addierschaltungen hintereinander stehen
- 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.