EDA课程设计四路电子抢答器设计
基于FPGA四路电子抢答器设计
基于FPGA四路电子抢答器设计
摘要:介绍一种基于FPGA的抢答器设计,给出了顶层电路原理图和主模块的部分VHDL源程序。利用MAX+PLUSⅡ开发平台完成了编译、仿真,并下载到EPF10K10LC84-4器件中进行测试。该抢答器不仅能实现互锁、自锁和倒计时功能,而且能用声音、数码管准确提示抢答的优先结果和犯规情况,具有广泛的应用前景。
关键词:抢答器;FPGA;VHDL;仿真
EDA课程设计四路电子抢答器设计
Abstrsct :This paper introduces the design of answering racer based on FPGA.The toplayer schematic and parts of VHDL source
Program are presented.Its encoding and simulation are compeleted with MAX+PLUSⅡ.The program is tested by EPF10LC84-4.The function of interlock,self lock and invert counter is performed with sound and BCD-TO-SEVEN-SEGMENT showwing the priority and rule-broken.
Key worlds:answering racer;FPGA;VHDL;simulation
一、引言
现场可编程门阵列(简称FPGA)是20世纪80年代末出现的高密度可编程逻辑器件,采用基于静态随机存储器的FPGA是易失性的,每次重新加电,FPGA都要重新装入配置数据。
突出优点是可反复编程,系统上电时,给FPGA加载不同的配置数据,即可令其完成不同的硬件功能[1]。本文利用Max+plusⅡ软件作为开发工具,设计了一种基于FPGA的抢答器。该抢答器具有外围电路少,系统功能扩展性强,大
EDA课程设计四路电子抢答器设计
大缩短了产品的研发周期,提高了设计的可靠性和成功率。
VHDL语言是一种用于电路设计的高级语言。最初是由美国国防部开发出来供美军用来提高设计的可靠性和缩减开发周期的一种使用范围较小的设计语言 。VHDL翻译成中文就是超高速集成电路硬件描述语言,主要是应用在数字电路的设计中。目前,它在中国的应用多数是用在FPGA/CPLD/EPLD的设计中。当然在一些实力较为雄厚的单位,它也被用来设计ASIC。
VHDL主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式、描述风格以及语法是十分类似于一般的计算机高级语言。VHDL的程序结构特点是将一项工程设计,或称设计实体分成外部和内部,既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。
二、设计要求
抢答器主要由抢答模块、计时模块、选择模块,位循环模块和译码模块组成。在整个抢答器中主持人在抢答前设置好抢答时间,在复位开始按键按下后,抢答器开始倒计时,若在计时时间内无人抢答,则抢答器报警提示,若在计时过程中有人抢答,则数码管显示第一个抢答的人的编号,同时停止计时。抢答器共有3个输出显示,选手代号、计数器的个位和十位,他们输出全都为BCD码输出,这样便于和显示译码器连接。
(1) 抢答器可容纳四位选手使用。
(2)电路具有第一抢答信号的鉴别和清零功能。在主持人将系统复位并发出抢答指令后,抢答开始,若参赛选手按抢答按钮,则该组指示灯亮并用显示器显示选手的号码,此时,电路具备自锁功能,使其它抢答按钮不起作用。如果无人抢答,主持人可以按复位键,开始新一轮的抢答。
三、 设计方案
1、抢答锁存模块;
在这个模块中主要实现抢答过程中的抢答功能。在抢答开始后,当任意一路抢答器按下后,信号输入并进行锁存,这时其它抢答按键再按下也不起作用。此
EDA课程设计四路电子抢答器设计
模块有A、B、C、D四路抢答输入信号;复位信号R;输出报警信号BJ;数据输出信号Y。
2、抢答器计时模块:
在这个模块中主要实现抢答过程中的计时功能。在抢答开始主持人按下复位键后进行60秒的倒计时,并且在60秒倒计时后无人抢答显示超时并报警,若有选手抢答则计时停止,主持人也可以手动设置计时时间。此模块包含时钟信号CLK;系统复位信号R;修改时间使能信号EN;无人抢答警报信号BJ;有人抢答停止计时信号ST;时间设置输入十位和个位信号cg,cs;计时十位和个位输出信号SW,GW。
3、数据选择模块:
在这个模块中主要实现抢答过程中的数据循环显示功能,通过SEL信号的循环输入,从而控制数码管的循环显示,利用人眼的视觉停留使人感觉数码管是同时常亮的。此模块包含输入显示位控制信号SEL;数据输入信号H,G,S;数据输出信号Z 。
4、译码模块:
在这个模块中主要实现抢答过程中将BCD码转换成7段的功能。在本 次课设中主要用于对时间的个位、十位的数值进行相应的译码,使其在数码 管上能显示出正常数字。此模块包含输入信号SJ,输出信号Y。
5、位循环模块:
实现抢答过程中对数码管扫描显示位的控制。在本次课设中共利用了三个数码管,所以将SEL设置在000,001,010三个数之间循环,使得数 码管仅显示后三位。此模块包含CLK控制信号,复位控制信号R,输出信号SEL。
四、子模块设计与仿真
(一)抢答锁存模块
1、VHDL源程序
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
USE ieee.std_logic_arith.ALL;
USE ieee.std_logic_unsigned.ALL;
ENTITY QDMK IS
EDA课程设计四路电子抢答器设计
PORT(A,B,C,D:IN std_logic;
R:IN std_logic;
SIGNAL CLK:IN std_logic;
BJ:OUT std_logic;
Y:buffer std_logic_vector(6 DOWNTO 0));
END QDMK;
ARCHITECTURE behave OF QDMK IS
BEGIN
PROCESS(A,B,C,D,R,CLK)
BEGIN
IF R='1'THEN
Y<="0000000";
BJ<='0';
ELSIF CLK'event AND CLK='1'THEN
IF Y<="0000000" THEN
IF A='1' THEN
Y<="0110000";
ELSIF B='1' THEN
Y<="1101101";
ELSIF C='1' THEN
Y<="1111001";
ELSIF D='1' THEN
Y<="0110011";
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说高考高中基于FPGA四路电子抢答器设计在线全文阅读。
相关推荐: