Hardwarebeschreibungssprachen und Verifikation

Ändert man in einer Testbench die Eingänge der Schaltung zum selben Zeitpunkt wie die steigende Taktflanke mit blockierender Zuweisung, kann ein Problem auftreten. Welche Kombination aus Hauptgrund und Gegenmaßnahme ist korrekt?

  1. AWeil je nach Ausführungsreihenfolge entweder der Wert vor oder nach der Änderung übernommen wird (Race). Eingänge werden etwas gegen die Taktflanke versetzt oder per nichtblockierender Zuweisung geändert
  2. BWeil die Taktfrequenz automatisch sinkt. Der Takt wird schneller gemacht
  3. CWeil blockierende Zuweisungen in Testbenches nicht verwendbar sind. Alles wird mit assign-Anweisungen geschrieben
Antwort und Erläuterung anzeigen

Antwort: A. Weil je nach Ausführungsreihenfolge entweder der Wert vor oder nach der Änderung übernommen wird (Race). Eingänge werden etwas gegen die Taktflanke versetzt oder per nichtblockierender Zuweisung geändert

Treffen im selben Zeitpunkt die Änderung der Eingänge durch die Testbench und die Übernahme der Eingänge durch die Flipflops der Schaltung zusammen, kann je nachdem, welches der Simulator zuerst ausführt, der alte oder der neue Wert übernommen werden. Das ist ein Race in der Simulation, und das Ergebnis kann je nach Simulator abweichen. Vermieden wird es, indem man Eingänge an der fallenden Flanke ändert, leicht verzögert, nichtblockierende Zuweisungen oder in SystemVerilog Clocking-Blöcke verwendet.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Hardwarebeschreibungssprachen und Verifikation

  1. Welche Aussage zu selbstprüfenden Testbenches ist korrekt?
  2. Was ist der Zweck eines in C o. Ä. geschriebenen Referenzmodells (Golden Model) bei der Verifikation?
  3. Was ist der Hauptzweck, Simulationsergebnisse in eine Datei in einem Format wie VCD zu schreiben?
  4. Warum wird bei Tests mit Zufallseingaben der Seed (Startwert) des Zufallszahlengenerators aufgezeichnet?
  5. Welche Aussage zur Constrained-Random-Verifikation in SystemVerilog ist korrekt?

Vergleiche zu diesem Thema