我想在8位输入中计算1的数量,并输出其中有多少个.我发现这种方式非常粗糙和冗余.我想知道是否有任何简单而好的方法可以找到它们.我的代码看起来像:
module 8to4bit(in,out);
input [7:0]in;
output [3:0]out;
assign out=(input == 1 || input == 2 || input == 4 || input == 8 || input == 16 || input == 32 || input == 64 || input == 128)?1:
(input == 3 || input == 5 || input == 6 || input == 9 || input == 10 || input == 12 || input == 24 || input == 128)?2:0;
Run Code Online (Sandbox Code Playgroud)
... 8位输入中的所有1都相同.
找到它们有简单的方法吗?
问候
怎么样
always @* begin
out = 0;
for(i=0;i<8;i=i+1) begin
out = out + input[i];
end
end
Run Code Online (Sandbox Code Playgroud)
应该只合成8个加法器,每个位一个.