遇到一个有意思的问题
module t(
input [31:0]a,
input b,
output [31:0]c,
output [31:0]d
);
assign c = a^b;
assign d = b?~a:a;
endmodule
a与b进行异或得到的结果到底是什么?
我不信,就去试了试
这似乎和上面的结论不同
查资料,新增了一个e端口
module t(
input [31:0]a,
input b,
output [31:0]c,
output [31:0]d,
output [31:0]e
);
assign c = a^b;
assign d = b?~a:a;
assign e = {32{b}}^a;
endmodule
看来是进行了算数移位再进行异或