SystemVerilog具有不定大小的单位值文字,例如'0
和'1
。
根据IEEE Std 1800,在5.7.1整数文字常量中,
我看到“未定大小的单位值...将被视为无符号。”
但是,在本节的示例5中,我还看到:
logic [15:0] a, b, c, d;
a = '0; // sets all 16 bits to 0
b = '1; // sets all 16 bits to 1
...
是不是意味着'1
被视为已签名?
实际上,我通过Quartus Prime和ModelSim-Altera的'1
和1'b1
得到了以下结果。
logic [3:0] a, b;
assign a = '1; // => yields 4'b1111
assign b = 1'b1; // => yields 4'b0001
我认为'1
和1'b1
本身都是未签名的。为什么我会看到这种差异?