Verilog 多位与一位 进行异或

遇到一个有意思的问题

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进行异或得到的结果到底是什么?
Verilog 多位与一位 进行异或我不信,就去试了试Verilog 多位与一位 进行异或
这似乎和上面的结论不同

查资料,新增了一个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

看来是进行了算数移位再进行异或
Verilog 多位与一位 进行异或

上一篇:Verilog设计技巧实例及实现


下一篇:【Verilog基础】Verilog中的逻辑值