欢迎来到天天文库
浏览记录
ID:1356236
大小:366.50 KB
页数:12页
时间:2017-11-10
《fpga抢答器设计报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、Vb开办上海电力学院课程设计报告信息工程系抢答器设计报告一、设计目的:本课程的授课对象是电子科学与技术专业本科生,是电子类专业的一门重要的实践课程,是理论与实践相结合的重要环节。本课程有助于培养学生的数字电路设计方法、掌握模块划分、工程设计思想与电路调试能力,为以后从事各种电路设计、制作与调试工作打下坚实的基础二、实验器材和工具软件:PC机一台、QuartusII软件、DE2板。三、设计内容:-12-(1)抢答器可容纳四组12位选手,每组设置三个抢答按钮供选手使用。(2)电路具有第一抢答信号的鉴别和锁存功能。在主持人将系统复位并发出抢答指令后,蜂鸣器提示抢答开
2、始,时显示器显示初始时间并开始倒计时,若参赛选手按抢答按钮,则该组指示灯亮并用组别显示器显示选手的组别,同时蜂鸣器发出“嘀嘟”的双音频声。此时,电路具备自锁功能,使其它抢答按钮不起作用。(3)如果无人抢答,计时器倒计时到零,蜂鸣器有抢答失败提示,主持人可以按复位键,开始新一轮的抢答。(4)设置犯规功能。选手在主持人按开始键之前抢答,则认为犯规,犯规指示灯亮和显示出犯规组号,且蜂鸣器报警,主持人可以终止抢答执行相应惩罚。(5)抢答器设置抢答时间选择功能。为适应多种抢答需要,系统设有10秒、15秒、20秒和3O秒四种抢答时间选择功能。一、设计具体步骤:首先把系统划
3、分为组别判断电路模块groupslct,犯规判别与抢答信号判别电路模块fgqd,分频电路模块fpq1,倒计时控制电路模块djs,显示时间译码电路模块num_7seg模块,组别显示模块showgroup模块这六个模块,各模块设计完成后,用电路原理图方法将各模块连接构成系统。各模块功能及代码:1、组别判别模块(1)功能:可容纳四组12-12-位选手,每组设置三个抢答按钮供选手使用。若参赛选手按抢答按钮,则输出选手的组别。此时,电路具备自锁功能,使其它抢答按钮不起作用。(2)原理:在每次时钟(50MHz)上升沿时判断按键,将按下按键的组别赋给一内部信号“h”(没有按
4、键按下时h=“0000”),由于人的反应速度远远小于50MHz,所以可选出最先按下按键的那组。当复位键按下时(clr=‘1’)输出g=“0000”并且将另一内部信号rst置1。当复位后(rst=‘1’)有按键按下时将h的值给输出信号g,并且将标志信号rst清零。这样就实现最快按键组别的输出与组别锁存功能。(3)程序代码:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitygroupslctisport(clock,clr:instd_logic;a,b,c,d:
5、instd_logic_vector(2downto0);g:outstd_logic_vector(3downto0));endgroupslct;-12-architecturebehave_groupslctofgroupslctissignalh:std_logic_vector(3downto0);signalrst:std_logic;beginh<="0000"when(a="000"andb="000"andc="000"andd="000")else"0001"when(a/="000"andb="000"andc="000"andd="00
6、0")else"0010"when(a="000"andb/="000"andc="000"andd="000")else"0100"when(a="000"andb="000"andc/="000"andd="000")else"1000"when(a="000"andb="000"andc="000"andd/="000")else"0000";processbeginwaitonclockuntilrising_edge(clock);ifclr='1'thenrst<='1';g<="0000";endif;ifh/="0000"thenifrst='
7、1'theng<=h;rst<='0';endif;endif;endprocess;endbehave_groupslct;2、犯规判别与抢答信号判别模块(1)功能:若参赛选手在主持人按开始键之后按抢答按钮,则使该组指示灯亮并输出选手的组别,同时蜂鸣器发出响声。选手在主持人按开始键之前抢答,则认为犯规,犯规指示灯亮并输出犯规组号,且蜂鸣器报警。-12-(2)原理:c[3..0]接组别判别模块的g[3..0],即此时c为按键组别的信息。go接主持人的“开始”按键。由于无论是在正常情况还是犯规情况下按下按键,都必须显示按键的组别且蜂鸣器响,所以将c的值给hex以
8、输出按键组别,且在有按键按下(c/="
此文档下载收益归作者所有