智能抢答器vhdl设计

上传人:xins****2008 文档编号:114830811 上传时间:2019-11-12 格式:DOC 页数:33 大小:872KB
返回 下载 相关 举报
智能抢答器vhdl设计_第1页
第1页 / 共33页
智能抢答器vhdl设计_第2页
第2页 / 共33页
智能抢答器vhdl设计_第3页
第3页 / 共33页
智能抢答器vhdl设计_第4页
第4页 / 共33页
智能抢答器vhdl设计_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《智能抢答器vhdl设计》由会员分享,可在线阅读,更多相关《智能抢答器vhdl设计(33页珍藏版)》请在金锄头文库上搜索。

1、 电子科技大学光电信息学院课程设计论文 课程名称 现代电子技术综合实验 题目名称 基于VHDL语言的FPGA智能抢答器设计论文 学 号 姓 名 指导老师 陈学英 起止时间 11月11日-11月22日 2013年 11月 21日摘要 智力抢答器作为一种快速准确判断选手抢答先后的比赛工具,现如今经常出现各类智力抢答,竞猜类比赛中。本文利用FPGA开发平台为基础,以VHDL语言进行编程,在ISE软件上进行开发,实现电视中比赛选手抢答器的各项功能。其中,第二章简单介绍FPGA开发平台的特点、VHDL语言的特点,以及大体的开发流程。第三章主要介绍了开发软件ISE和仿真软件ModelSim的使用。第四章主

2、要介绍智力抢答器的具体设计过程、原理设计、模块化设计。第五章主要对各个模块进行仿真测试,以及对最后的整个系统进行仿真测试。最后第六章,在基于整个系统仿真无误的前提下进行硬件编程下载,在实验硬件平台上测试设计结果和智力抢答器的实用性。并对这次试验进行总结。目录一、实验目的二、实验任务与要求三、实验原理、设计思路与方案四、单元模块设计与仿真模块功能、模块符号及端口说明、模块程序、仿真程序、仿真波形五、系统模块设计 顶层模块设计、系统管脚适配表、编程文件、下载成功标志、硬件调试说明六、结论 1、 实验目的 在许多比赛活动中,为了准确、公正、直观地判断出第一抢答者,通常设置一台抢答器。通过抢答器的数显

3、,灯光和音响等手段指示出第一抢答者。同时还可以设置定时、记分犯规及奖惩等多种功能。本设计采用手动抢答的方式,有人抢答后,系统自动封锁其他人的抢答按钮,使其不能再抢答,从而实现抢答功能。2、 实验任务与要求1.基本要求(1)、编号16号的选手在规定的时间内按键抢答(2)、抢中编号锁定显示,其他无效(3)、主持按键控制清零和开始(4)、具有报警提示功能,分别提示抢答开始,有人抢答,定时时间到2.参数要求(1)、显示组数:6组(2)、报警延时:300ms(3)、抢答时间:20s3、 实验原理、设计思路与方案 抢答信号输入系统后,系统必须对最先抢到的选手进行编码,而后锁存这个编码,并将这个编码显示输出

4、,所以需要用到编码器、锁存器和译码显示电路。而选手抢答的有效时间为20s,而且系统在有人抢中,主持人按下开关以及20s计时到但无人抢答时这三种情况下要发出警报,且警报时间延迟300ms后自动停止,故需定时电路来确定这些时限,报警电路产生时延,并用时序控制电路来协调各个部分的工作,计时时间也要显示出来。 当主持人按键为启动开始状态时,警报器发出警报,抢答编码电路进入工作状态,选手可以进行抢答。同时抢答定时电路开始从20s递减,显示器显示递减,显示器显示递减的时间,当时间未减少到0s时,有选手抢答,报警电路发出警报,显示器显示选手编号,并锁存该选手的号码直到主持人清零为止,此时抢答器的时间不再递减

5、;当时间减到0s时,无选手抢答,报警电路发出警报,提示选手不能再抢答,显示器显示抢答时间0s不动,选手号码为无效号码或者F。当主持人按下清零信号,系统显示为初始状态。四、单元模块设计与仿真1.单元电路的划分 根据抢答器所需要实现的功能,将整体电路划分为:编码锁存电路(BMSC)、抢答定时电路(DSQ)、报警器电路(BJQ)、扫描显示电路(SCAN)、译码电路(YMQ)和按键消抖(XD)六个单元电路。2.1编码锁存电路(BMSC):(1) 该电路主要实现的功能是:当主持人启动开始键,系统进入工作状态,同时48MHz时钟上升沿持续扫描6个选手的按键端口。当倒计时未到0,有选手抢答时,则对该选手的按

6、键进行编码,并锁存该选手编码并将其输出,同时其他选手的按键抢答无效。若无选手抢答,则持续扫描,直至下一轮抢答开始。本电路共有6个端口。4个输入端口:系统时钟、开始按键信号、定时时间到信号、选手抢答按键信号。2个输出端口:选手按键编码信号、有选手抢中信号。(2) 模块程序:library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;- Uncomment the following library declaration if instantiating

7、- any Xilinx primitives in this code.-library UNISIM;-use UNISIM.VComponents.all;entity BMSC is Port ( CLK : in STD_LOGIC; START : in STD_LOGIC; SJD : in STD_LOGIC; XS : in STD_LOGIC_VECTOR (5 downto 0); S : out STD_LOGIC_VECTOR (3 downto 0); QZ : out STD_LOGIC );end BMSC;architecture Behavioral of

8、BMSC isSIGNAL Q_Z:STD_LOGIC;SIGNAL EN:STD_LOGIC:=0;SIGNAL Q:STD_LOGIC_VECTOR(3 DOWNTO 0):=0000;BEGINSTATE:PROCESS(START) BEGIN IF START EVENT AND START =0 THEN EN Q = 0001; Q_Z Q = 0010; Q_Z Q = 0011; Q_Z Q = 0100; Q_Z Q = 0101; Q_Z Q = 0110; Q_Z Q =0000; END CASE; END IF ; ELSE Q =0000; Q_Z =1; END

9、 IF ; END IF ; END PROCESS; S = Q; QZ = Q_Z;end Behavioral;(3) 仿真程序及波形:- Company: - Engineer:- Create Date: 10:39:42 11/14/2013- Design Name: BMSC- Module Name: E:/2010054020020/mentalgrab0020/TEST_BMSC.vhd- Project Name: mentalgrab0020- Target Device: - Tool versions: - Description: - - VHDL Test B

10、ench Created by ISE for module: BMSC- Dependencies:- - Revision:- Revision 0.01 - File Created- Additional Comments:- Notes: - This testbench has been automatically generated using types std_logic and- std_logic_vector for the ports of the unit under test. Xilinx recommends - that these types always

11、 be used for the top-level I/O of a design in order - to guarantee that the testbench will bind correctly to the post-implementation - simulation model.-LIBRARY ieee;USE ieee.std_logic_1164.ALL;USE ieee.std_logic_unsigned.all;USE ieee.numeric_std.ALL;ENTITY TEST_BMSC_vhd ISEND TEST_BMSC_vhd;ARCHITECTURE behavior OF TEST_BMSC_vhd IS - Component Declaration for the Unit Under Test (UUT)COMPONENT BMSCPORT(CLK : IN std_logic;START : IN std_logic;SJD : IN std_logic;XS : IN std_logic_vector(5 downto 0); S : OUT std_logic_vector(3 downto 0);QZ : OUT std_logic);E

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号