请问哪位高手会verilog-HDL编程EDA设计:五人竞赛抢答器,急急急!!用ma...
发布网友
发布时间:2024-05-15 15:02
我来回答
共3个回答
热心网友
时间:2024-05-15 15:50
module lx0825(a,b,c,d,e,res,clk,clk1,q1,q2,q3,q4,q5,row,ra,Q1,beep);
input a,b,c,d,e;
input res,clk,clk1;
output[7:0]row,ra;
output[3:0]Q1;
output q1,q2,q3,q4,q5,beep;
reg q1,q2,q3,q4,q5,beep;
reg[7:0]row,ra;
reg[3:0]Q1;
reg[2:0]Y;
always @(res or q1 or q2 or q3 or q4 or q5)
begin
if(!res)
begin q1<=0;q2<=0;q3<=0;q4<=0;q5<=0;
end
else
begin
if(q1||q2||q3||q4||q5)
begin q1<=q1;q2<=q2;q3<=q3;q4<=q4;q5<=q5;
end
else
begin
if(a)
begin q1<=1;
end
else if(b)
begin q2<=1;
end
else if(c)
begin q3<=1;
end
else if(d)
begin q4<=1;
end
else if(e)
begin q5<=1;
end
end
end
end
always@( posedge clk)
begin
if(Q1<4'b1000)
Q1<=Q1+1;
else
Q1<=4'b0000;
if(q1)
begin
case(Q1)
0: begin row<=8'b01111111;ra<=8'b00011000;end
1: begin row<=8'b10111111;ra<=8'b00011000;end
2: begin row<=8'b11011111;ra<=8'b00011000;end
3: begin row<=8'b11101111;ra<=8'b00011000;end
4: begin row<=8'b11110111;ra<=8'b00011000;end
5: begin row<=8'b11111011;ra<=8'b00011000;end
6: begin row<=8'b11111101;ra<=8'b00011000;end
7: begin row<=8'b11111110;ra<=8'b00011000;end
endcase
end
else if(q2)
begin
case(Q1)
0: begin row<=8'b01111111;ra<=8'b11111111;end
1: begin row<=8'b10111111;ra<=8'b11111111;end
2: begin row<=8'b11011111;ra<=8'b00000011;end
3: begin row<=8'b11101111;ra<=8'b11111111;end
4: begin row<=8'b11110111;ra<=8'b11111111;end
5: begin row<=8'b11111011;ra<=8'b11000000;end
6: begin row<=8'b11111101;ra<=8'b11111111;end
7: begin row<=8'b11111110;ra<=8'b11111111;end
endcase
end
else if(q3)
begin
case(Q1)
0: begin row<=8'b01111111;ra<=8'b11111111;end
1: begin row<=8'b10111111;ra<=8'b11111111;end
2: begin row<=8'b11011111;ra<=8'b00000011;end
3: begin row<=8'b11101111;ra<=8'b11111111;end
4: begin row<=8'b11110111;ra<=8'b11111111;end
5: begin row<=8'b11111011;ra<=8'b00000011;end
6: begin row<=8'b11111101;ra<=8'b11111111;end
7: begin row<=8'b11111110;ra<=8'b11111111;end
endcase
end
else if(q4)
begin
case(Q1)
0: begin row<=8'b01111111;ra<=8'b11000011;end
1: begin row<=8'b10111111;ra<=8'b11000011;end
2: begin row<=8'b11011111;ra<=8'b11000011;end
3: begin row<=8'b11101111;ra<=8'b11111111;end
4: begin row<=8'b11110111;ra<=8'b11111111;end
5: begin row<=8'b11111011;ra<=8'b00000011;end
6: begin row<=8'b11111101;ra<=8'b00000011;end
7: begin row<=8'b11111110;ra<=8'b00000011;end
endcase
end
else if(q5)
begin
case(Q1)
0: begin row<=8'b01111111;ra<=8'b11111111;end
1: begin row<=8'b10111111;ra<=8'b11111111;end
2: begin row<=8'b11011111;ra<=8'b11000000;end
3: begin row<=8'b11101111;ra<=8'b11111111;end
4: begin row<=8'b11110111;ra<=8'b11111111;end
5: begin row<=8'b11111011;ra<=8'b00000011;end
6: begin row<=8'b11111101;ra<=8'b11111111;end
7: begin row<=8'b11111110;ra<=8'b11111111;end
endcase
end
else
begin
case(Q1)
0: begin row<=8'b01111111;ra<=8'b00000000;end
1: begin row<=8'b10111111;ra<=8'b00000000;end
2: begin row<=8'b11011111;ra<=8'b00000000;end
3: begin row<=8'b11101111;ra<=8'b00000000;end
4: begin row<=8'b11110111;ra<=8'b00000000;end
5: begin row<=8'b11111011;ra<=8'b00000000;end
6: begin row<=8'b11111101;ra<=8'b00000000;end
7: begin row<=8'b11111110;ra<=8'b00000000;end
endcase
end
end
always@(posedge clk1 )
begin
if(res&&(a||b||c||d||e))
begin
if(Y<2) beep='b1;
else beep='b0;
Y=Y+1;end
if(!(res&&(a||b||c||d||e)))beep='b0;
end
endmodule
热心网友
时间:2024-05-15 15:52
额 你这个太高端了。真的不会
不好意思~
热心网友
时间:2024-05-15 15:52
设计参数: 五人参赛,每人一个按钮。
主持人一个按钮,按下开始,具有复位功能。
先抢中者对应的指示灯亮。
显示抢中者序号。
有人抢答时,蜂鸣2s。
设计要求:用拨码开关设定主持人及参赛者按钮。
用红色信号指示灯组L1-L5表示对应参赛者指示灯。
用点阵显示抢中者序号。