我试图在 Verilog 中计算 4 位二进制数中 1 的数量,但我的输出是意外的。我尝试了几种方法;这是我认为应该有效的方法,但事实并非如此。
module ones(one,in);
input [3:0]in;
output [1:0]one;
assign one = 2'b00;
assign one = one+in[3]+in[2]+in[1]+in[0] ;
endmodule
首先,你不能给变量赋值两次。
其次,您的范围关闭,2 位只能从 0 到 3。您需要 3 位输出才能计数到 4。
这更像是你所需要的:
module ones(
output wire [2:0] one,
input wire [3:0] in
);
assign one = in[3]+in[2]+in[1]+in[0] ;
endmodule
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)