欢迎来到天天文库
浏览记录
ID:61414566
大小:101.00 KB
页数:7页
时间:2021-01-27
《基于FPGA设计的多路抢答器.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、16位抢答器摘要:在ISE软件平台的基础上,基于VHDL语言,采用FPGA技术设计了一款16路抢答器。通过对系统进行编译、仿真,并进行测试。结果表明:本设计能实现正确显示最先抢答的选手号码,并对答题时间进行10s的限时抢答以及复位重新抢答功能。关键词:多路抢答器;FPGA;VHDL。一、设计要求:1.设计一个具有16位输入的抢答器;2.用数码管显示输出。二、设计分析:抢答器是各类竞赛中的必备设备,以客观的电子电路进行状态判断,避免竞赛的不公平。现行的抢答器实现方案主要有两种:一种是小规模数字逻辑芯片和触发器,另外一种用单片机。小规模数字逻辑电路设计思路简单,但电路实现起来比较复杂;单片机
2、实现相对灵活,但随着抢答组数的增加存在I/O口不足的问题。本设计采用FPGA现场可编程技术,避免了硬件电路的焊接与调试,同时由于FPGA的I/O端口丰富,可以在设计的基础上略加修改实现具有多组输入的抢答器,增强了系统的灵活性。三、设计原理:1、最多可容纳16名选手或者16个代表队参赛,编号为1~16,各用一个抢答器按钮,编号与参赛者的号码一一对应,此外还有一个按钮给主持人,用来清零,主持人清零后才可进行下一次抢答。2、抢答器具有数据锁存功能,并将所存的数据用LED数码管显示出来。在主持人将抢答器清零后,若有参赛者抢答按钮,数码管立即显示出最先动作的选手编号,抢答器对参赛选手动作的先后有很
3、强的分辨能力,即使他们动作的先后只相差几毫秒,抢答器也能分辨出来。数码管不显示后动作选手的编号,只显示先动作选手的编号,并保持到主持人清零为止。3、在各抢答按钮为常态时,主持人可用清零按钮将数码管变为零状态,直至有人使用抢答按钮为止。抢答时间设为10s,在10s后若没有参赛者按抢答按钮,抢答按钮无效,并保持到主持人清零为止。四、设计步骤1、启动ISE集成开发环境,新建一个工程;2、为工程添加设计源文件;3、对源文件进行语法检查,并改正错误之处;4、对设计进行时序仿真,分析设计的正确性;5、锁定引脚,完成设计实现过程,并在试验箱上连线,利用iMPACT进行程序下载;在试验箱上验证抢答器的功
4、能,观察并记录结果。五、设计代码libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;useieee.std_logic_arith.all;entityanswerisport(KEY_IN:instd_logic_vector(16downto1);CLEAR,SCANCLK,CLK1S:instd_logic;LED_OUT:outstd_logic_vector(6downto0);SCAN_OUT:outstd_logic_vector(1downto0);SOUND_OUT:outstd_l
5、ogic);endanswer;architecturertlofanswerissignalKEY_CODE:integerrange0to16;signalKEY_CODE_REG:integerrange0to16;signalKEY_EN:std_logic;signalNUM1:integerrange0to9;signalNUM2:integerrange0to9;signalKEY_EN1,KEY_EN2:std_logic;signalKEY_IN1,KEY_IN2,KEY_INS:std_logic_vector(16downto1);signalHEX:integer
6、range0to9;signalTIME_CNT:std_logic_vector(3downto0);beginprocess(KEY_EN,KEY_IN,SCANCLK,CLEAR)beginifCLEAR='0'thenKEY_CODE_REG<=0;elsifSCANCLK'eventandSCANCLK='1'thenifKEY_CODE_REG=0thenKEY_CODE_REG<=KEY_CODE;endif;endif;endprocess;process(SCANCLK,CLEAR,KEY_IN)beginifSCANCLK'eventandSCANCLK='1'the
7、nKEY_IN2<=KEY_IN1;KEY_IN1<=KEY_IN;endif;endprocess;KEY_INS<=notKEY_IN2orKEY_IN1;KEY_CODE<=0whenKEY_EN='0'else1whenKEY_INS(1)='0'else2whenKEY_INS(2)='0'else3whenKEY_INS(3)='0'else4whenKEY_INS(4)='0'else5whenKEY_INS(5)='
此文档下载收益归作者所有