Hardwarebeschreibungssprachen und Verifikation

In der obigen Beschreibung wird in der Verilog-Simulation für y der Wert b gewählt, wenn sel X (unbestimmt) ist. Warum ist diese Eigenschaft bei der Verifikation ein Problem?

always @(*)
    if (sel) y = a;
    else     y = b;
  1. AWeil y stets X wird und die Simulation anhält
  2. BWeil bei sel gleich X auch im realen Chip stets b gewählt wird
  3. CWeil X als „falsch“ behandelt wird und der feste Wert b herauskommt, sodass der Fehler eines unbestimmten sel in der Simulation unsichtbar wird
Antwort und Erläuterung anzeigen

Antwort: C. Weil X als „falsch“ behandelt wird und der feste Wert b herauskommt, sodass der Fehler eines unbestimmten sel in der Simulation unsichtbar wird

Eine if-Anweisung in Verilog behandelt eine Bedingung X als falsch und führt den else-Zweig aus. Dadurch ergibt sich für y der feste Wert b, und der Fehler, dass sel unbestimmt ist, wird in der Simulation verdeckt. In der realen Schaltung ist sel entweder 0 oder 1, und auch a kann gewählt werden. Das heißt X-Optimismus; Gegenmaßnahmen sind eine Schreibweise, die X weitergibt, oder Assertions, die X erkennen.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Hardwarebeschreibungssprachen und Verifikation

  1. Was gilt allgemein für die Beschreibung von Tri-State-Ausgängen mit Z (hochohmig) in HDL?
  2. Welche Aussage zur bei der HDL-Verifikation verwendeten Testbench ist korrekt?
  3. Welche Periode hat der Takt, der durch die obige Beschreibung der Testbench erzeugt wird (Zeiteinheit 1 ns)?
  4. Ä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?
  5. Welche Aussage zu selbstprüfenden Testbenches ist korrekt?

Vergleiche zu diesem Thema