用for语句描述的7人投票表决器,若超过4人(含4人)投票赞成,则表决通过
RTL代码
module vote7(pass,vote);
output pass;
input vote;
wire[6:0] vote;
reg pass;
integer i;
reg[2:0] sum;
always@(vote) begin
sum=0;
for (i=0;i<=6;i=i+1)
begin
if (vote[i])
begin
sum=sum+1;
end
if (sum[2])
begin
pass=1;
end
else
begin
pass=0;
end
end
end
endmodule
TB代码
module vote7_tb();
wire pass;
reg[6:0] vote;
initial begin
repeat(5) begin
vote={$random}%128;
$display("vote=%b",vote);
#5
if (pass)
begin
$display("++++pass++++");
end
else
begin
$diplay("+++++nopass++++++");
end
end
end
vote7 v7(.pass(pass),.vote(vote));
endmodule