《(完整版)基于EDA四位智能竞赛抢答器.pdf》由会员分享,可在线阅读,更多相关《(完整版)基于EDA四位智能竞赛抢答器.pdf(16页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 四位智能竞赛抢答器 第一章 系统设计 第一节 课题目标 硬件描述语言是一门技术性、应用性很强的学科,实验课教学是它的一个极为重要的环节。不论理论学习还是实际应用,都离不开实验课教学。如果不在切实认真地抓好学生的实践技能的锻炼上下功夫,单凭课堂理论课学习,势必出现理论与实践脱节的局面。HDL项目设计的目的就是让我们在理论学习的基础上,通过完成一个涉及时序逻辑、组合逻辑、声光输出的,具有实用性、趣味性的小系统设计,使我们不但能够将课堂上学到的理论知识与实际应用结合起来,而且能够对分析、解决实际的数字电路问题进一步加深认识,为今后能够独立进行某些数字应用系统的开发设计工作打下一定的基础。通过这次设
2、计实验,首先,使我们更加深入的巩固了书本上的知识,在掌握理论基本知识的基础上,学会了对常用软件的使用。其次,通过这次设计实验,使我们了解并熟悉了程序的设计方法和步骤,而且在与同学讨论的同时也提高了团结合作的能力。然后,学会用仿真实验来验证方案的正确性,培养我们综合运用知识和独立开展实验创新的能力。最后,规范化训练我们撰写技术研究报告,提高书面表达能力。-1 第二节 设计要求 本设计是一个功能较为简单的四路抢答器,基本要求有以下几点:(1)实现一四人抢答器,有人抢答成功后,其他人再抢答无效;(2)主持人通过按键清除抢答信息,并开始 30 秒的答题倒计时,当倒计时结束时,通过蜂鸣器响来提示回答问题
3、时间到,此时可以开始新一轮的抢答。第三节 设计方案 设计是以 Verilog HDL 语言为基础设计的电子抢答器,在设计过程中先将系统模块化,然后逐步实现,根据设计功能要求,该设计主要包括按键抢答输入,数码管显示,报警电路及 FPGA 系统。抢答器结构原理图如图 1:-2 图 1 抢答器结构原理图 第二章 系统分析与实现 第一节 系统分析 该系统可实现要求中的最基本功能,除此之外还可以实现抢答时间限制的功能,其中,抢答成功者组号由静态显示的方法使用,使四个数码管同时显示其组号,同时,该抢答者对应的 led 灯亮。若还有其他抢答者在其后按下按键,抢答无效,只取第一个抢答者信息。第二节 程序及程序
4、功能介绍 一、端口定义部分 K1 K2 K3 K4 二进制转换 数 码 管 片选信号 倒计时模块 数 码 管译 码 电路 蜂鸣器 同步信号 数码管 显示模块 锁 存 电路 按键 1 按键 2 -3 module main(reset,clock,din1,din2,din3,din4,judge,beep,wei,duan,beep,wei1,duan1);input reset,clock;input din1,din2,din3,din4,judge;output3:0 wei;output7:0 duan;output beep;output3:0 wei1;output7:0 duan
5、1;wire clk1k;wire clk1hz;fenpin uut1(reset,clock,clk1k,clk1hz);qiangde uut2(clock,din1,din2,din3,din4,judge,clk1hz,wei,duan);daojishi uut3(reset,clk1k,clk1hz,beep,wei1,duan1);Endmodule 二、抢答部分 本段程序实现基本的抢答功能,block 为锁存信号,当有一组按-4 下抢答按钮后,系统锁存,其他组别抢答无效;同时通过 f1 向蜂鸣器发出信号,蜂鸣器 1s 表示抢答成功;于此同时信号 out 输送给 led灯,抢答
6、成功者对应 led 灯亮;seg_figure4 为静态显示抢答成功的组号,预置数为”_”;一组抢答成功后若其他组再抢答,数码管熄灭示警。module qiangde(clock,din1,din2,din3,din4,judge,clk1_hz,wei,duan);input clock,judge;input din1,din2,din3,din4;input clk1_hz;output3:0 wei;output7:0 duan;reg3:0 wei;reg7:0 duan;reg block;always(posedge clock)begin if(!judge)begin blo
7、ck=0;wei=4b1111;duan=8hff;end -5 else begin if(!din1)begin if(!block)begin wei=4b1101;duan=8hf9;block=1;end end else if(!din2)begin if(!block)begin wei=4b1101;duan=8ha4;block=1;end end else if(!din3)-6 begin if(!block)begin wei=4b1101;duan=8hb0;block=1;end end else if(!din4)begin if(!block)begin wei
8、=4b1101;duan=8h99;block=1;end end end end endmodule -7 三、分频 module fenpin(reset,clock,clk1k,clk1hz);input reset,clock;output clk1k,clk1hz;reg clk1k;reg clk1hz;reg24:0 count1;reg14:0 count2;always(posedge clock or posedge reset)begin if(reset)count1=0;else if(count1=25d25000000)begin clk1hz=clk1hz;co
9、unt1=0;end else -8 count1=count1+1;end always(posedge clock or posedge reset)begin if(reset)count2=0;else if(count2=15d25000)begin clk1k=clk1k;count2=0;end else count2=count2+1;end endmodule 四、抢答时限 30s,倒计时到,蜂鸣器响 该部分功能:当抢答倒计时 30s 结束时,若没有任何一组抢答成功,则向蜂鸣器发出信号,蜂鸣器响作为警报,提示此次抢答结束且该题作废。module daojishi(reset,
10、clk1_k,clk1_hz,beep,wei1,duan1);input reset,clk1_k,clk1_hz;output 3:0 wei1;-9 output beep;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;reg beep;reg state;always(posedge clk1_hz or posedge reset)begin if(reset)count=5d30)count=count;else count=5b10101)/2130 be
11、gin -10 shi=5b00000;ge=5b01011)/1120 begin shi=5b00001;ge=5b00001)/110 begin shi=5b00010;ge=5b01010-count;end else /0 begin shi=5b00011;ge=5b00000;end if(shi=0&ge=0)begin beep=0;end -11 else beep=1;end always(posedge clk1_k)begin if(reset)wei1=4b0000;else if(state=1b1)state=1b0;else state=state+1b1;
12、case(state)1b0:begin wei1=4b0111;data=ge;end 1b1:begin wei1=4b1011;data=shi;end default:wei1=4b0000;endcase end always(data)begin case(data)6b000000:duan1=8b1100_0000;6b000001:duan1=8b1111_1001;6b000010:duan1=8b1010_0100;-12 6b000011:duan1=8b1011_0000;6b000100:duan1=8b1001_1001;6b000101:duan1=8b1001
13、_0010;6b000110:duan1=8b1000_0010;6b000111:duan1=8b1111_1000;6b001000:duan1=8b1000_0000;6b001001:duan1=8b1001_0000;default:duan1=8b1111_1111;endcase end endmodule 第三章 编译调试 第一节 Quartus II 的使用(1)双击 Quartus II 软件快捷图标进入 Quartus II 集成开发环境,新建工程项目文件 traffic.pof,并在该项目下新建 Verilog 源程序文件traffic.v,输入上面的程序代码并保存。(
14、2)然后为该工程项目选择一个目标器件并对相应的管脚进行锁定。(3)对该工程文件进行编译处理,若在编译过程中发现错误,找出并更正错误直至成功为止。(4)将 CCIT CPLD/FGPA JTAG 下载电缆的两端分别接到 PC 机和 CCIT CPLD/FGPA 实验仪上,再打开工作电源,执行下载命令把-13 程序下载到 CCIT CPLD/FGPA 实验仪的 EPM1270T144C5N 器件中,通过 K1K4 抢答按键按下后,由裁判员根答题情况,通过控制按键操作,这样就可以看到数码管上的组别和 LED 四盏小灯的变化。第四章 心得体会 这次项目设计选择了抢答器,刚开始与同学讨论,分为几个部分,
15、然后每一部分分开编写,最后汇总于一个模块当中,不会太难。但是接下来程序编写过程中由于需要定义多个变量,弄的混乱不堪。而后先将所有用到的变量及其代表的含义先写下来,编写程序过程中一一对照才清楚了很多。由于理论学习与实际运用存在太大的差别,在设计过程中错误不断,只能一点一点的进行修改。即使最后完整的实现了四人抢答器的基本功能,却没能完全实现预期的效果,这是我们设计的不完善的地方,直到最后也没有找出解决的方案,这是比较遗憾的地方。通过一个星期的讨论、实践,加深了对 EDA 的了解,更加熟练的掌握了 Quartus的使用,并产生了浓厚的兴趣。特别是编译过程中,当错误一个个减少时,特别的兴奋。通过这次项
16、目设计,更加理解了理论与实际相结合的重要性。只有理论知识是还远远不够,只有把所学的理论知识与具体问题结合起来,才能真正的应用,不断提高自己动手能力、思考的能力和团队合作能力。在设计中遇到问题是在所难免的,但这是我们所必须面对的,有问题才能去解决问题,解决问题才能提高。从中学会的不止是怎样解-14 决实际问题,更多的是遇到问题时该怎么思考。总的来说,对这次设计抢答器还是比较满意的,即使没有完全实现预期效果,有些许遗憾,但至少是自己的成果。一周的时间,积累了经验,增强了实验素养,受益匪浅。附 录 1、本实验引脚分配 端口 引脚 端口 引脚 端口 引脚 dataout0 PIN_158 seg_fi
17、gure40 PIN_176 ledcom0 PIN_163 dataout1 PIN_144 seg_figure41 PIN_174 ledcom1 PIN_164 dataout2 PIN_162 seg_figure42 PIN_180 ledcom2 PIN_165 dataout3 PIN_160 seg_figure43 PIN_178 ledcom3 PIN_166 dataout4 PIN_159 seg_figure44 PIN_177 out0 PIN_2 dataout5 PIN_156 seg_figure45 PIN_175 out1 PIN_1 dataout6 PIN_143 seg_figure46 PIN_173 out2 PIN_61 dataout7 PIN_161 seg_figure47 PIN_179 out3 PIN_62 ledcom10 PIN_170 key0 PIN_64 comclk1 PIN_167 ledcom11 PIN_169 key1 PIN_65 start PIN_75 ledcom12 PIN_168 key2 PIN_66 f PIN_117 ledcom13 PIN_167 key3 PIN_67 clk PIN_28 clear PIN_74 2、结果显示 -15 倒计时开始 1 号选手抢答成功
限制150内