verilog的for语句7人表决器改成11人的怎么改?

2025-05-09 06:31:54
推荐回答(3个)
回答1:

对这种编程语言不懂
凡是和7有关,全改成和11有关的,就差不多了
也就是说所有的6先全改在10再说
半数选票没看懂,好象是自动设置的

回答2:

module voter7(pass,vote);
input [10:0]vote;
output reg pass;
reg [3:0]sum;
integer i;
always @(vote)
begin
sum=0;
for(i=0;i<=10;i=i+1) //for语句
if(vote[i])
sum=sum+1;
if(sum[2]&&sum[1])//if(sum == 4'd6)
pass=1; //超过6人赞成,则通过
else
pass=0;
end
endmodule

回答3:

module voter11(pass, vote);
output pass;
input [10:0] vote;
reg [3:0] sum;
assign pass=(sum>=6)?1:0;
always @(vote)
begin
sum<=vote[10]+vote[9]+vote[8]+vote[7]+vote[6]+vote[5]+vote[4]+vote[3]+vote[2]+vote[1]+vote[0];
end
endmodule