数字电子技术课程设计报告基于FPGA的四位智能抢答器.docx
- 文档编号:2788357
- 上传时间:2022-11-15
- 格式:DOCX
- 页数:10
- 大小:90.51KB
数字电子技术课程设计报告基于FPGA的四位智能抢答器.docx
《数字电子技术课程设计报告基于FPGA的四位智能抢答器.docx》由会员分享,可在线阅读,更多相关《数字电子技术课程设计报告基于FPGA的四位智能抢答器.docx(10页珍藏版)》请在冰豆网上搜索。
数字电子技术课程设计报告基于FPGA的四位智能抢答器
数字电子技术课程设计报告--基于FPGA的四位智能抢答器
专业:
XXX
班级:
XXX
姓名:
XXX
、设计任务及要求
基于EDA/SOP(系统开发平台,运用QuartusH可编程逻辑器件
开发软件,设计一个4位智能抢答器。
要求如下:
1、可以同时供4名选手抢答,其编号分别为1、2、3、4,各用抢答按键S1、S2、S3、S4,按键编号与选手编号对应。
主持人设置有一个开始按键S5,—个清零按键S6,用于控制抢答的开始和系统的清零;
2、抢答器具有定时抢答的功能,一次抢答的时间为10秒。
当主持人启动“开始”按键后,用4位LED数码管左边两位显示10s的倒计时;
3、抢答器具有数据锁存和显示的功能,抢答开始后,如果有选手按动按键,其编号立即锁存并显示在数码管上(显示在右边的两个数码管上),同时封锁输入电路,禁止其他选手抢答;优先选手的编号一直保持到主持人将系统清零为止;
4、参赛选手在设定的时间内进行抢答,抢答有效,定时器停止工作,显示器上显示抢答时刻的时间(左边两个数码管上)和参赛选手的编号(显示在右边的两个数码管上),并保持到主持人将系统清零为止;如果定时抢答的时间已到而没有选手抢答,本次抢答无效,封锁输入电路,禁止抢答,定时器显示“00”并闪烁,闪烁频率为0.5Hz;—直保持到主持人将系统清零为止;
5、在主持人未按下开始按键时,如果有人抢答则犯规,在显示器上右边两位闪烁犯规选手的编号,闪烁频率为0.5Hz;—直保持到
主持人将系统清零为止;
6、说明:
系统上电和按下清零按键后显示“0000”,设计中的时
钟脉冲频率为1000赫兹;
7、附加:
加入按键软件消抖功能及加减分数显示计分功能;能够
设置不同的抢答时间,以便应用于不同的抢答系统。
二、设计原理及方案
本次设计主要采用verilogHDL语言,总体编程思路采用模块化设计方式,主要分为3个模块,一个主控制及按扭输入模块,一个LED计时提示模块,一个抢答组号显示模块,分别对这3个子模块进行独立编程设计,并生成元件,并在顶层使用原理图的方式将3个模块连接起来完成整个设计。
锁定管脚并编译通过,下载到试验箱进行测试。
总设计框图:
不个术水木不
解析:
在上图框架中LED计时提示模块、抢答组号显示模块都为译码器,主控制及按钮输入模块实现具体功能。
主控制及按钮输入模块主要功能为计时、显示、闪烁、分频。
其先将需要输出的内容以8421BCD码的形式输入给下一级,再通过LED计时提示模块和抢答组号显示模块的程序将8421BCE码译为对应的数据显示,最后和对应的共阳极数码显示管的管脚相连,显示最后的数据。
1、主控制与按钮输入模块
modulezhukongzhi(clk,clear,start,p1,p2,p3,p4,answer1,answer2,q1,q2);inputclk,clear,start,p1,p2,p3,p4;
output[3:
0]q1,q2
output[3:
0]answer1,answer2;
wire[3:
0]qq1,qq2;
wireco;
reg[3:
0]answer1,answer2;regst;regcr;regen;regkp;reg[10:
0]tm;regtemp;regtemp2;reg[3:
0]temp3;reg[3:
0]q1;reg[3:
0]q2;regflag;regflag1;regflag2;
initial
beginflag2=1;st=1;cr=1;flag1=1;tm=0;temp=0;flag=0;kp=0;answer1=4'b0000;answer2=4'b0000;
end
always@(negedgestartornegedgeclear)
begin
if(!
start)beginst=0;cr=1;end
elseif(!
clear)beginst=1;cr=0;end
end
jishi2cou(clk,cr,st,qq1,qq2,co,kp);
always@(posedgeclk)
begin
begin
if(st==1'b1)
begin
flag=1;
begin
if(!
clear)
flag1=1;
end
begin
begin
if((p1==1'b0)&flag1)
beginflag1=0;temp3=4'b0001;end
elseif((p2==1'b0)&flag1)beginflag1=0;temp3=4'b0010;end
elseif((p3==1'b0)&flag1)beginflag1=0;temp3=4'b0011;end
elseif((p4==1'b0)&flag1)beginflag1=0;temp3=4'b0100;end
end
if(flag1==0)
begin
if((tm>=0)&(tm<1000)&(temp))begin
tm=tm+1;answer1=temp3;answer2=0;end
elseif((tm>=0)&(tm<1000)&(!
temp))begin
tm=tm+1;nswer1=4'b1010;answer2=4'b1010;end
elseif((tm==1000))begintm=0;temp=~temp;end
endif(flag1)beginanswer1=4'd0000;answer2=4'd0000;
end
end
end
end
begin
if((!
start)&(flag2))
kp=1;
end
begin
if(!
clear)
flag2=1;
end
begin
if(st==1'b0)
begin
if(p1&p2&p3&p4&flag)
begin
answer1=4'b1010;answer2=4'b1010;
end
elseif((p1==1'b0)&flag)
begin
//禁止其他选手抢答
flag=1'b0;answer1=4'b0001;answer2=4'b0000;flag2=0;kp=0
end
elseif((p2==1'b0)&flag)
begin
flag=1'b0;answer1=4'b0010;answer2=4'b0000;flag2=0;kp=0;
end
elseif((p3==1'b0)&flag)
begin
flag=1'b0;answer1=4'b0011;answer2=4'b0000;flag2=0;kp=0;
end
elseif((p4==1'b0)&flag)
begin
flag=1'b0;answer1=4'b0100;answer2=4'b0000;flag2=0;kp=0;
end
end
end
endbegin
if(co&(!
st))
begin
if((tm>=0)&(tm<1000)&(temp))
begin
tm=tm+1;q1=0;q2=0;
end
elseif((tm>=0)&(tm<1000)&(!
temp))
begin
tm=tm+1;q1=4'b1010;q2=4'b1010;end
elseif((tm==1000))
begintm=0;temp=~temp;
end
answer1=4'b1010;answer2=4'b1010;
end
end
begin
if(!
co)
begin
q1<=qq1;q2<=qq2;
end
end
if(!
cr)
begin
flag=1'b1;kp=1;
end
end
Endmodule
2、LED计时提示模块:
moduleshijian(in,led1,led2);
input[3:
0]in;
outputled1,led2;
reg[7:
0]led1,led2;always@(in)begincase(in)
4'b0000:
beginled1=8'b00000011;led2=8'b00000011;end4'b0001:
beginled1=8'b10011111;led2=8'b00000011;end4'b0010:
beginled1=8'b00100101;led2=8'b00000011;end4'b0011:
beginled1=8'b00001101;led2=8'b00000011;end4'b0100:
beginled1=8'b10011001;led2=8'b00000011;end4'b0101:
beginled1=8'b01001001;led2=8'b00000011;end4'b0110:
beginled1=8'b11000001;led2=8'b00000011;end4'b0111:
beginled1=8'b00011111;led2=8'b00000011;end4'b1000:
beginled1=8'b00000001;led2=8'b00000011;end4'b1001:
beginled1=8'b00011001;led2=8'b00000011;end4'b1010:
beginled1=8'b00000011;led2=8'b10011111;end4'b1111:
beginled1=8'b11111111;led2=8'b11111111;endendcaseendendmodule
3、抢答组号显示模块:
modulexianshi(decodeout,indec);output[7:
0]decodeout;input[3:
0]indec;
reg[7:
0]decodeout;
always@(indec)
begincase(indec)4'b0000:
decodeout=8'b00000011;4'b0001:
decodeout=8'b10011111;4'b0010:
decodeout=8'b00100101;4'b0011:
decodeout=8'b00001101;4'b0100:
decodeout=8'b10011001;4'b0101:
decodeout=8'b01001001;4'b0110:
decodeout=8'b01000001;4'b0111:
decodeout=8'b00011111;4'b1000:
decodeout=8'b00000001;4'b1001:
decodeout=8'b00001001;
4'b1010:
decodeout=8'b11111111;default:
decodeout=8'b11111111;
endcase
end
Endmodule
5T
u
曲
.D]1
ckar
irsieriu.0]1
Liat
r
祁.町<
r^"r>ini
FJ
BJ1
口
u
1
L
hdiipi.l[
■:
tudte/iiFjO]1
二
n
•—
-
nrhi口
_
胡烬S\1
严-
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字 电子技术 课程设计 报告 基于 FPGA 智能 抢答