(1)设计一个四人抢答器,主持人每次公布抢答题目后,按下抢答键,即可开始抢答,显示抢答成功者序号。
module qiangda(s1,s2,s3,s4,start,ledag,wei,light);
input s1,s2,s3,s4,start; //四位选手按键,主持人按键
output reg[3:0] light; //指示灯
output reg[7:0] wei;
output reg[6:0] ledag;
reg ena; //ena=1允许抢答
reg[3:0] d,s; //
always@(s1,s2,s3,s4,start)
begin
s<={s1,s2,s3,s4};
if(!start) ena<=1;
else if(s!=4'b1111) ena<=0;
end
always@(start,s1) //1号选手抢答
begin
if(!start) d[0]<=0;
else if(ena&&(!s1)) d[0]<=1;
end
always@(start,s2) //2号选手抢答
begin
if(!start) d[1]<=0;
else if(ena&&(!s2)) d[1]<=1;
end
always@(start,s3) //3号选手抢答
begin
if(!start) d[2]<=0;
else if(ena&&(!s3)) d[2]<=1;
end
always@(start,s4) //4号选手抢答
begin
if(!start) d[3]<=0;
else if(ena&&(!s4)) d[3]<=1;
end
always@(d)
case(d)
4'b0000:begin ledag<=7'b0000001;wei<=8'b00000000;light<=4'b1111;end
4'b0001:begin ledag<=7'b1001111;wei<=8'b00000001;light<=4'b1110;end
4'b0010:begin ledag<=7'b0010010;wei<=8'b00000010;light<=4'b1101;end
4'b0100:begin ledag<=7'b0000110;wei<=8'b00000100;light<=4'b1011;end
4'b1000:begin ledag<=7'b1001100;wei<=8'b00001000;light<=4'b0111;end
default:begin ledag<=7'b0000001; wei<=8'b00000000;light<=4'b1111;end
endcase
endmodule
抢答器的实验演示:

