为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

数字电子技术课程设计报告--基于_FPGA的四位智能抢答器

2017-11-26 13页 doc 86KB 89阅读

用户头像

is_477730

暂无简介

举报
数字电子技术课程设计报告--基于_FPGA的四位智能抢答器数字电子技术课程设计报告--基于_FPGA的四位智能抢答器 基于 FPGA的四位智能抢答器 专业:xxx 班级:xxx 姓名:xxx 学号:xxx 一、设计任务及要求 基于EDA/SOPC系统开发平台,运用Quartus?可编程逻辑器件开发软件,设计一个4位智能抢答器。要求如下: 1、 可以同时供4名选手抢答,其编号分别为1、2、3、4,各用 抢答按键S1、S2、S3、S4,按键编号与选手编号对应。主持人设 置有一个开始按键S5,一个清零按键S6,用于控制抢答的开始和 系统的清零; 2、 抢答器具有定时抢答的...
数字电子技术课程设计报告--基于_FPGA的四位智能抢答器
数字电子技术课程--基于_FPGA的四位智能抢答器 基于 FPGA的四位智能抢答器 专业:xxx 班级:xxx 姓名:xxx 学号:xxx 一、设计任务及要求 基于EDA/SOPC系统开发平台,运用Quartus?可编程逻辑器件开发软件,设计一个4位智能抢答器。要求如下: 1、 可以同时供4名选手抢答,其编号分别为1、2、3、4,各用 抢答按键S1、S2、S3、S4,按键编号与选手编号对应。主持人设 置有一个开始按键S5,一个清零按键S6,用于控制抢答的开始和 系统的清零; 2、 抢答器具有定时抢答的功能,一次抢答的时间为10秒。当主 持人启动“开始”按键后,用4 位LED 数码管左边两位显示10s 的 倒计时; 3、 抢答器具有数据锁存和显示的功能,抢答开始后,如果有选手 按动按键,其编号立即锁存并显示在数码管上(显示在右边的两 个数码管上),同时封锁输入电路,禁止其他选手抢答;优先选手 的编号一直保持到主持人将系统清零为止; 4、 参赛选手在设定的时间内进行抢答,抢答有效,定时器停止工 作,显示器上显示抢答时刻的时间(左边两个数码管上)和参赛 选手的编号(显示在右边的两个数码管上),并保持到主持人将系 统清零为止;如果定时抢答的时间已到而没有选手抢答,本次抢 答无效,封锁输入电路,禁止抢答,定时器显示“00”并闪烁, 闪烁频率为0.5H;一直保持到主持人将系统清零为止; Z 5、 在主持人未按下开始按键时,如果有人抢答则犯规,在显示器 上右边两位闪烁犯规选手的编号,闪烁频率为0.5H;一直保持到Z 主持人将系统清零为止; 6、 说明:系统上电和按下清零按键后显示“0000”,设计中的时 钟脉冲频率为1000赫兹; 7、 附加:加入按键软件消抖功能及加减分数显示计分功能;能够 设置不同的抢答时间,以便应用于不同的抢答系统。 二、设计原理及 本次设计主要采用verilog HDL 语言,总体编程思路采用模块化设计方式,主要分为3个模块,一个主控制及按扭输入模块,一个LED计时提示模块,一个抢答组号显示模块,分别对这3个子模块进行独立编程设计,并生成元件,并在顶层使用原理图的方式将3个模块连接起来完成整个设计。锁定管脚并编译通过,下载到试验箱进 行测试。 总设计框图: LED1 LED2 LED3 LED4 抢答组号显示模块 LED计时提示模块 块 8421码 8421码 (译码器) 主控制及按钮输入模块 CLK 开始 清零 选手1 选手2 选手3 选手4 解析:在上图框架中LED计时提示模块、抢答组号显示模块都为译码器,主控制及按钮输入模块实现具体功能。主控制及按钮输入模块主要功能为计时、显示、闪烁、分频。其先将需要输出的内容以8421BCD码的形式输入给下一级,再通过LED计时提示模块和抢答组号显示模块的程序将8421BCD码译为对应的数据显示,最后和对应的共阳极数码显示管的管脚相连,显示最后的数据。 三、电路源文件 1、主控制与按钮输入模块 module zhukongzhi(clk,clear,start,p1,p2,p3,p4,answer1,answer2,q1,q2); input clk,clear,start,p1,p2,p3,p4; output[3:0] q1,q2 output [3:0] answer1,answer2; wire[3:0] qq1, qq2; wire co; reg [3:0] answer1, answer2;reg st;reg cr;reg en;reg kp;reg [10:0] tm;reg temp;reg temp2;reg [3:0] temp3;reg [3:0]q1;reg [3:0]q2;reg flag;reg flag1;reg flag2; initial begin flag2=1;st=1;cr=1;flag1=1;tm=0;temp=0;flag=0;kp=0; answer1=4'b0000;answer2=4'b0000; end always@(negedge start or negedge clear) begin if(!start) begin st=0;cr=1;end else if(!clear) begin st=1;cr=0;end end jishi2 cou(clk,cr,st,qq1,qq2,co,kp); always @(posedge clk ) begin begin if(st==1'b1) begin flag=1; begin if(!clear) flag1=1; end begin begin if((p1==1'b0)&flag1) begin flag1=0;temp3=4'b0001; end else if((p2==1'b0)&flag1) begin flag1=0;temp3=4'b0010; end else if((p3==1'b0)&flag1) begin flag1=0;temp3=4'b0011; end else if((p4==1'b0)&flag1) begin flag1=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 else if((tm>=0)&(tm<1000)&(!temp)) begin tm=tm+1; nswer1=4'b1010;answer2=4'b1010; end else if((tm==1000)) begin tm=0;temp=~temp; end end if(flag1) begin answer1=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 begin if(p1&p2&p3&p4&flag) begin answer1=4'b1010;answer2=4'b1010; end else if((p1==1'b0)&flag) begin //禁止其他选手抢答 flag=1'b0;answer1=4'b0001;answer2=4'b0000;flag2=0;kp=0; end else if((p2==1'b0)&flag) begin flag=1'b0;answer1=4'b0010; answer2=4'b0000;flag2=0;kp=0; end else if((p3==1'b0)&flag) begin flag=1'b0;answer1=4'b0011; answer2=4'b0000;flag2=0;kp=0; end else if((p4==1'b0)&flag) begin flag=1'b0; answer1=4'b0100; answer2=4'b0000;flag2=0;kp=0; end end end end begin if(co&(!st)) begin if((tm>=0)&(tm<1000)&(temp)) begin tm=tm+1;q1=0;q2=0; end else if((tm>=0)&(tm<1000)&(!temp)) begin tm=tm+1;q1=4'b1010;q2=4'b1010; end else if((tm==1000)) begin tm=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计时提示模块: module shijian(in,led1,led2); input [3:0]in; output led1,led2; reg [7:0]led1,led2; always@(in) begin case(in) 4'b0000:begin led1=8'b00000011;led2=8'b00000011; end 4'b0001:begin led1=8'b10011111;led2=8'b00000011; end 4'b0010:begin led1=8'b00100101;led2=8'b00000011; end 4'b0011:begin led1=8'b00001101;led2=8'b00000011; end 4'b0100:begin led1=8'b10011001;led2=8'b00000011; end 4'b0101:begin led1=8'b01001001;led2=8'b00000011; end 4'b0110:begin led1=8'b11000001;led2=8'b00000011; end 4'b0111:begin led1=8'b00011111;led2=8'b00000011; end 4'b1000:begin led1=8'b00000001;led2=8'b00000011; end 4'b1001:begin led1=8'b00011001;led2=8'b00000011; end 4'b1010:begin led1=8'b00000011;led2=8'b10011111; end 4'b1111:begin led1=8'b11111111;led2=8'b11111111; end endcase end endmodule 3、抢答组号显示模块: module xianshi(decodeout,indec); output[7:0] decodeout; input[3:0] indec; reg[7:0] decodeout; always @(indec) begin case(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 模块连接图: 管教分配:1、设计中应用的管脚 信号 管脚 说明 信号 管脚 说明 时钟脉冲 按键S4 选手4 CLK L2 B16 按键S1 选手1 按键S5 开始按键 F8 F12 按键S2 选手2 按键S6 清零按键 A14 B17 按键S3 选手3 以下两行附加设计用到 F10 按键S7 加分按键 0-1开关K1 F15 E15 抢答时间选 择开关 按键S8 减分按键 0-1开关K2 B18 B14 2、四个数码管的管脚分配如下:(ABCDEFG为七段LED,H为小数点,共阳极连接。 四、与讨论 通过这为期四天的数字电路模拟训练,我获益匪浅: 1、 通过这次课程设计,我学会了并且可以比较熟练的使用QuartusII可编程逻辑器件开发软件。 2、我对“基于FPGA的4位智能抢答器”的运行原理有了更加深入的认识,可以自行设计这种抢答器,为我以后的实验设计积累了宝贵的经验。 3、我对Verilog HDL有了深入的认识。同时也对EDA/SOPC产生了更加浓厚的兴趣。通过本学期对《数字电子技术基础》第六章的学习,以及这几天为了完成课程设计的任务而查阅的视频、文字资料,我已经可以比较熟练的运用Verilog HDL语言进行简单程序的编写。掌握了这一门技术将对我以后的发展有很大的帮助。 4、通过这四天的实践,我的分析能力大大的提升,动手操作能力也有所提高,即使天气炎热,我也平心静气的做程序,搞测试,我知道了,无论做什么事,都要相信自己,戒骄戒躁,不会的东西就学会自己查资料,自学,实在不懂得再向老师同学请教,心态是最重要的。虽然到最后由于时间原因没有测试完,但是经历是最后重要的,这些经历将为我以后 带来莫大的好处。 但是,我这几天以来也存在很多不足,首先,一开始有点知难而退的心里,其次,有不少的地方还没完全弄明白,尤其是那个LED即时显示模块还没有完全搞懂,设计任务与要求中的第7条附加条件,即“加入按键软件消抖功能及加减分数显示计分功能;能够设置不同的抢答时间,以便应用于不同的抢答系统”这个功能不知道怎么实现。另外,对于在控制端口在满足上升沿计数达到1000时在“0”和“1”之间进行变换这个程序请教过同学,但是也是还没有完全搞懂。“分频”这一块还需之后自己在攻克。 这个课程设计在7月10号上午考完试已完成,从设计到测试和检测过程,无不凝聚着老师们的心血和汗水。在我实习期间,老师为我提供了种种专业知识上的指导,同学们为我提供宝贵的建议,老师们严谨求实的态度和同学们真诚的热情使我深受感动,没有这样的帮助和关怀和熏陶,我不会这么顺利的完成实训任务。 最后,我向老师跟同学们发出真诚的感谢,老师您辛苦了,谢谢您陪伴我们这五天,您的敬业是我们实习成功的最大动力。
/
本文档为【数字电子技术课程设计报告--基于_FPGA的四位智能抢答器】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索