实验二 四人抢答器 一、实验目的 1、熟悉四人抢答器的工作原理; 2、掌握EDA开发的基本流程。 二、硬件需求 EDA/SOPC实验箱一台。 三、实验原理 抢答器在各类竞赛性质的场合得到了广泛的应用,它的出现,消除了原来由于人眼的误差而未能正确判断最先抢答的人的情况。 抢答器的原理比较简单,首先必须设置一个抢答允许标志位,目的就是为了允许或者禁止抢答者按按钮;如果抢答允许位有效,那么第一个抢答者按下的按钮就将抢答允许位清除,同时记录按钮的序号,也就是对应的按按钮的人,这样做的目的是为了禁止后面再有人按下按钮的情况。总的说来,抢答器的实现就是在抢答允许位有效后,第一个按下按钮的人将其清除以禁止再有按钮按下,同时记录清除抢答允许位的按钮的序号并显示出来,这就是抢答器的实现原理。 四、实验内容 本实验的任务是设计一个四人抢答器,用按键模块的F5作抢答允许按钮,用F1~F4来表示1号~4号抢答者,同时用LED模块的led1~led4分别表示抢答者对应的位子。具体要求为:按下F5一次,允许一次抢答,这时F1~F4中第一个按下的按键将抢答允许位清除,同时将对应的LED点亮,用来表示对应的按键抢答成功。F1、F2、F3、F4、F5按下时为高电平,平时为低电平,led1~led4均为低电平输出时点。- module responder_module
- (
- LED, F
- );
- input [4:0] F;
- output [3:0] LED;
-
- reg [3:0] LED;
- reg flag;
- always@(F)
- begin
- if(!F[4])
- begin
- LED<=4'b1111;
- flag<=1'b1;
- end
- else if(flag)
- case({F[0],F[1],F[2],F[3]})
- 4'b0000: LED<=4'b1111;
- 4'b1000: begin LED<=4'b1110;flag<=1'b0; end
- 4'b0100: begin LED<=4'b1101;flag<=1'b0; end
- 4'b0010: begin LED<=4'b1011;flag<=1'b0; end
- 4'b0001: begin LED<=4'b0111;flag<=1'b0; end
- default: LED<=4'b1111;
- endcase
- end
- endmodule
复制代码 仿真图:
|