求助一道verilog语言数据检测的问题?

来源:百度知道 编辑:UC知道 时间:2024/06/06 18:59:01
要求8位二进制输入,检测输入的数中有几个‘1’,将‘1’的个数输出。
请各位大虾帮帮忙,谢谢!!

其实很简单,只要把这8位一加等于几就是输出结果,这样来说只是一个加法器而已....
module add8(
datain,
dataout
) ;

input [7:0] datain ;
output[3:0] dataout;

wire [1:0] add1_01;
wire [1:0] add1_23;
wire [1:0] add1_45;
wire [1:0] add1_67;

assign add1_01 = datain[0] + datain[1];
assign add1_23 = datain[2] + datain[3];
assign add1_45 = datain[4] + datain[5];
assign add1_67 = datain[6] + datain[7];

wire [2:0] add2_01;
wire [2:0] add2_23;

assign add2_01 = add1_01 + add1_23 ;
assign add2_23 = add1_45 + add1_67 ;

assign dataout = add2_01 + add2_23;

endmodule

以上是用的3列2入1出的加法器实现,第一列4个,第二列2个,第三列1个..这样设计延时比较大.建议楼主如果是时序电路就采用时序的
如果采用一个8入1出的加法器也可以...

用c#做可以吗