Hardwarebeschreibungssprachen und Verifikation
Welche Aussage zum Unterschied zwischen den Gleichheitsoperatoren „==“ und „===“ in Verilog ist korrekt?
- 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
- B== und === verhalten sich völlig gleich
- 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.