當執行下面的一段的SystemVerilog代碼(編譯和奎斯塔運行)SystemVerilog 0與'0'有什麼不同?
bit [7:0] test = 255;
$display("%b %b %b", test, test == 255, test == '1);
$display("%b %b %b", ~test, ~test == 0, ~test == '0);
$display("%b %b %b", 8'b00000000, 8'b00000000 == 0, 8'b00000000 == '0);
輸出是
11111111 1 1
00000000 0 1
00000000 1 1
我的問題是關於第2個輸出線的第二數目:如何是二進制00000000
與0不同?爲什麼它只是~test
的結果,而不是當它是一個文字?這是一個Questa錯誤還是該語言的屬性?
我在2個不同的模擬器上看到相同的結果。你也可以在edaplayground上試試它。 – toolic
FWIW,'〜test == 8'h00'爲我返回1。 – toolic