完整版基于EDA四位智能竞赛抢答器.docx
- 文档编号:3125426
- 上传时间:2022-11-17
- 格式:DOCX
- 页数:12
- 大小:68.44KB
完整版基于EDA四位智能竞赛抢答器.docx
《完整版基于EDA四位智能竞赛抢答器.docx》由会员分享,可在线阅读,更多相关《完整版基于EDA四位智能竞赛抢答器.docx(12页珍藏版)》请在冰豆网上搜索。
完整版基于EDA四位智能竞赛抢答器
四位智能竞赛抢答器
第一章系统设计
第一节课题目标
《硬件描述语言》是一门技术性、应用性很强的学科,实验课教学是它的一个极为重要的环节。
不论理论学习还是实际应用,都离不开实验课教学。
如果不在切实认真地抓好学生的实践技能的锻炼上下功夫,单凭课堂理论课学习,势必出现理论与实践脱节的局面。
《HDL项目设计》的目的就是让我们在理论学习的基础上,通过完成一个涉及时序逻辑、组合逻辑、声光输出的,具有实用性、趣味性的小系统设计,使我们不但能够将课堂上学到的理论知识与实际应用结合起来,而且能够对分析、解决实际的数字电路问题进一步加深认识,为今后能够独立进行某些数字应用系统的开发设计工作打下一定的基础。
通过这次设计实验,首先,使我们更加深入的巩固了书本上的知识,在掌握理论基本知识的基础上,学会了对常用软件的使用。
其次,通过这次设计实验,使我们了解并熟悉了程序的设计方法和步骤,而且在与同学讨论的同时也提高了团结合作的能力。
然后,学会用仿真实验来验证方案的正确性,培养我们综合运用知识和独立开展实验创新的能力。
最后,规范化训练我们撰写技术研究报告,提高书面表达能力。
第二节设计要求
本设计是一个功能较为简单的四路抢答器,基本要求有以下几点:
(1)实现一四人抢答器,有人抢答成功后,其他人再抢答无效;
(2)主持人通过按键清除抢答信息,并开始30秒的答题倒计时,当倒计时结束时,通过蜂鸣器响来提示回答问题时间到,此时可以开始新一轮的抢答。
第三节设计方案
设计是以VerilogHDL语言为基础设计的电子抢答器,在设计过程中先将系统模块化,然后逐步实现,根据设计功能要求,该设计主要包括按键抢答输入,数码管显示,报警电路及FPGA系统。
抢答器结构原理图如图1:
K1
K2
K3
K4
二进制转换
数码管片选信号
倒计时模块
数码管译码电路
蜂鸣器
同步信号
数码管
显示模块
锁存电路
按键1
按键2
图1抢答器结构原理图
第二章系统分析与实现
第一节系统分析
该系统可实现要求中的最基本功能,除此之外还可以实现抢答时间限制的功能,其中,抢答成功者组号由静态显示的方法使用,使四个数码管同时显示其组号,同时,该抢答者对应的led灯亮。
若还有其他抢答者在其后按下按键,抢答无效,只取第一个抢答者信息。
第二节程序及程序功能介绍
一、端口定义部分
modulemain(reset,clock,din1,din2,din3,din4,judge,beep,wei,duan,beep,wei1,duan1);
inputreset,clock;
inputdin1,din2,din3,din4,judge;
output[3:
0]wei;
output[7:
0]duan;
outputbeep;
output[3:
0]wei1;
output[7:
0]duan1;
wireclk1k;
wireclk1hz;
fenpinuut1(reset,clock,clk1k,clk1hz);
qiangdeuut2(clock,din1,din2,din3,din4,judge,clk1hz,wei,duan);
daojishiuut3(reset,clk1k,clk1hz,beep,wei1,duan1);
Endmodule
二、抢答部分
本段程序实现基本的抢答功能,block为锁存信号,当有一组按下抢答按钮后,系统锁存,其他组别抢答无效;同时通过f1向蜂鸣器发出信号,蜂鸣器1s表示抢答成功;于此同时信号out输送给led灯,抢答成功者对应led灯亮;seg_figure4为静态显示抢答成功的组号,预置数为”_”;一组抢答成功后若其他组再抢答,数码管熄灭示警。
moduleqiangde(clock,din1,din2,din3,din4,judge,clk1_hz,wei,duan);
inputclock,judge;
inputdin1,din2,din3,din4;
inputclk1_hz;
output[3:
0]wei;
output[7:
0]duan;
reg[3:
0]wei;
reg[7:
0]duan;
regblock;
always@(posedgeclock)
begin
if(!
judge)
begin
block=0;
wei=4'b1111;
duan=8'hff;
end
else
begin
if(!
din1)
begin
if(!
block)
begin
wei<=4'b1101;
duan<=8'hf9;
block=1;
end
end
elseif(!
din2)
begin
if(!
block)
begin
wei<=4'b1101;
duan<=8'ha4;
block=1;
end
end
elseif(!
din3)
begin
if(!
block)
begin
wei<=4'b1101;
duan<=8'hb0;
block=1;
end
end
elseif(!
din4)
begin
if(!
block)
begin
wei<=4'b1101;
duan<=8'h99;
block=1;
end
end
end
end
endmodule
3、分频
modulefenpin(reset,clock,clk1k,clk1hz);
inputreset,clock;
outputclk1k,clk1hz;
regclk1k;
regclk1hz;
reg[24:
0]count1;
reg[14:
0]count2;
always@(posedgeclockorposedgereset)
begin
if(reset)
count1<=0;
elseif(count1==25'd25000000)
begin
clk1hz<=~clk1hz;
count1<=0;
end
else
count1<=count1+1;
end
always@(posedgeclockorposedgereset)
begin
if(reset)
count2<=0;
elseif(count2==15'd25000)
begin
clk1k<=~clk1k;
count2<=0;
end
else
count2<=count2+1;
end
endmodule
四、抢答时限30s,倒计时到,蜂鸣器响
该部分功能:
当抢答倒计时30s结束时,若没有任何一组抢答成功,则向蜂鸣器发出信号,蜂鸣器响作为警报,提示此次抢答结束且该题作废。
moduledaojishi(reset,clk1_k,clk1_hz,beep,wei1,duan1);
inputreset,clk1_k,clk1_hz;
output[3:
0]wei1;
outputbeep;
output[7:
0]duan1;
reg[5:
0]shi,ge;
reg[5:
0]data;
reg[4:
0]count;
reg[3:
0]wei1;
reg[7:
0]duan1;
regbeep;
regstate;
always@(posedgeclk1_hzorposedgereset)
begin
if(reset)
count<=0;
elseif(count>=5'd30)
count<=count;
else
count<=count+1;
end
always@(count)
begin
if(count>=5'b10101)//21~30
begin
shi<=5'b00000;
ge<=5'b11110-count;
end
elseif(count>=5'b01011)//11~20
begin
shi<=5'b00001;
ge<=5'b10100-count;
end
elseif(count>=5'b00001)//1~10
begin
shi<=5'b00010;
ge<=5'b01010-count;
end
else//0
begin
shi<=5'b00011;
ge<=5'b00000;
end
if(shi==0&&ge==0)
begin
beep<=0;
end
elsebeep<=1;
end
always@(posedgeclk1_k)
begin
if(reset)
wei1<=4'b0000;
elseif(state==1'b1)
state<=1'b0;
else
state<=state+1'b1;
case(state)
1'b0:
beginwei1<=4'b0111;data<=ge;end
1'b1:
beginwei1<=4'b1011;data<=shi;end
default:
wei1<=4'b0000;
endcase
end
always@(data)
begin
case(data)
6'b000000:
duan1=8'b1100_0000;
6'b000001:
duan1=8'b1111_1001;
6'b000010:
duan1=8'b1010_0100;
6'b000011:
duan1=8'b1011_0000;
6'b000100:
duan1=8'b1001_1001;
6'b000101:
duan1=8'b1001_0010;
6'b000110:
duan1=8'b1000_0010;
6'b000111:
duan1=8'b1111_1000;
6'b001000:
duan1=8'b1000_0000;
6'b001001:
duan1=8'b1001_0000;
default:
duan1=8'b1111_1111;
endcase
end
endmodule
第三章编译调试
第一节QuartusII的使用
(1)双击QuartusII软件快捷图标进入QuartusII集成开发环境,新建工程项目文件traffic.pof,并在该项目下新建Verilog源程序文件traffic.v,输入上面的程序代码并保存。
(2)然后为该工程项目选择一个目标器件并对相应的管脚进行锁定。
(3)对该工程文件进行编译处理,若在编译过程中发现错误,找出并更正错误直至成功为止。
(4)将CCITCPLD/FGPAJTAG下载电缆的两端分别接到PC机和CCITCPLD/FGPA实验仪上,再打开工作电源,执行下载命令把程序下载到CCITCPLD/FGPA实验仪的EPM1270T144C
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 完整版 基于 EDA 智能 竞赛 抢答