其他分享
首页 > 其他分享> > Verilog 多位与一位 进行异或

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进行异或得到的结果到底是什么?
在这里插入图片描述我不信,就去试了试在这里插入图片描述
这似乎和上面的结论不同

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

看来是进行了算数移位再进行异或
在这里插入图片描述

标签:多位,31,module,异或,Verilog,input,output,assign
来源: https://blog.csdn.net/Harry_CHL/article/details/120472874