Hardwarebeschreibungssprachen und Verifikation

Welche Aussage zum Unterschied zwischen den Gleichheitsoperatoren „==“ und „===“ in Verilog ist korrekt?

  1. A== liefert X, wenn X oder Z enthalten ist, während === auch X und Z als je einen Wert strikt vergleicht und das Ergebnis stets 0 oder 1 ist
  2. B== und === verhalten sich völlig gleich
  3. C=== ist ein Operator, der drei Werte gleichzeitig vergleicht
Antwort und Erläuterung anzeigen

Antwort: A. == liefert X, wenn X oder Z enthalten ist, während === auch X und Z als je einen Wert strikt vergleicht und das Ergebnis stets 0 oder 1 ist

== ist ein Operator, der wie ein Komparator einer Schaltung arbeitet; enthält einer der Werte X- oder Z-Bits, ist auch das Ergebnis X (unbestimmt). === heißt Case-Gleichheit und vergleicht buchstäblich X als X und Z als Z, sodass er in der Testbench dazu dienen kann zu prüfen, ob „der Ausgang nicht X ist“. Da reale Schaltungen X und Z nicht unterscheiden können, ist === nicht synthetisierbar und ein Operator nur für Testbenches.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Hardwarebeschreibungssprachen und Verifikation

  1. Welche Aussage zum wesentlichen Unterschied zwischen einer in einer HDL wie Verilog geschriebenen Beschreibung und einem Softwareprogramm, etwa in C, ist korrekt?
  2. Was ist der Zweck von module in Verilog?
  3. Welche Aussage zum Unterschied zwischen den Typen wire und reg in Verilog ist korrekt?
  4. Welche Schaltung stellt die obige assign-Anweisung in Verilog dar?
  5. Welche Schaltung erzeugt die obige Verilog-Beschreibung bei der Logiksynthese?

Vergleiche zu diesem Thema