Niektóre typy danych w Verilog, takie jak reg
, są 4-stanowe. Oznacza to, że każdy bit może być jedną z 4 wartości: 0,1, x, z.
z operatorem „przypadek” równość, ===
, x są porównywane, a wynik jest 1.
Z ==
, wynik porównania nie jest równa 0, jak podano; raczej wynik jest x, zgodnie z IEEE Std (1800-2009), rozdział 11.4.5 "operatorów równości" (! == i =)
Dla logicznego równości i logicznych operatorów nierówności jeśli, z powodu nieznanych lub wysokiej impedancji bitów w operandach, relacja jest niejednoznaczna, wówczas wynikiem będzie 1-bitowa nieznana wartość (x).
Wynik 'dataoutput == 8'bx' nie jest tak naprawdę 0, jest X. Jednak zarówno 0, jak i X są wartościami fałszywymi, co oznacza, że ciało' if' nie zostanie wykonane. – Andy
'a == b' to 'a equals b'. '===' jest 'a really equals b'. Ok, to trochę niepoważne, ale tak je zapamiętuje. Jest też "==?" (może równe), które używa 'x' jako symbolu wieloznacznego. –