基于FPGA的数字抢答器的设计

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录

摘要 (2)

一、系统设计要求 (2)

二、系统设计方案 (2)

三、主要VHDL源程序与系统模块 (3)

1. 抢答鉴别电路QDJB的VHDL源程序和模块 (3)

2. 计分器电路JFQ的VHDL源程序 (4)

3. 计时器电路JSQ的VHDL源程序 (7)

4. 译码器电路YMQ的VHDL源程序 (8)

5.智力抢答器在CYCLONE中所用的框图 (9)

四、系统仿真 (9)

五、设计技巧分析 (11)

六、系统扩展思路 (12)

七、设计心得 (12)

EDA技术作为现代电子设计最新技术的结晶,其广阔的应用前景和深远的影响已毋庸置疑,它在信息工程类专业中的基础地位和核心作用也逐渐被人们所认识。许多高等学校开设了相应的课程,并为学生提供了课程设计、综合实践、电子设计竞赛、毕业设计、科学研究和产品开发等EDA技术的综合应用实践环节。相关的工程技术人员也特别重视学习EDA技术,并渴望提高其工程应用能力。

对于迅猛发展的EDA技术的综合应用,从EDA技术的综合应用系统的深度来分,可分为3个层次:①功能电路模块的设计;②算法实现电路模块的设计;

③片上系统/嵌入式系统/现代DSP系统的设计。

从EDA技术的综合应用系统的最终主要硬件构成来分,已出现6种形式:

① CPLD/FPGA系统;② "CPLD/FPGA+MCU"系统;③ "CPLD/FPGA+专用DSP 处理器"系统;④基于FPGA实现的现代DSP系统;⑤基于FPGA实现的SOC片上系统;⑥基于FPGA实现的嵌入式系统。

从EDA技术的综合应用系统的完善层次来分,可分为3个层次:①"EDA综合系统"主体电路的设计、仿真及硬件验证;②"EDA综合系统"主体电路的设计、仿真、硬件验证+系统外围电路PCB的设计与制作;③"EDA综合系统"主体电路的设计、仿真、硬件验证+系统整体电路PCB的设计与制作及系统的组装、调试。

一、系统设计要求

在许多比赛活动中,为了准确、公正、直观地判断出第一抢答者,通常设置一台抢答器,通过数显、灯光及音响等各种手段批示出第一抢答者。同时,还可以设置计分、犯规及奖惩记录等各种功能。本设计的具体要求是:

1.设计制作一个可容纳四组参赛者的数字智力抢答器,每组设置一个抢答按钮供抢答者使用。

2.电路具有第一抢答信号的鉴别和锁存功能。在主持人交系统复位并发出抢答指令后,若抢答开关,则该组指示灯亮并用组别显示电路显示抢答者的组别,同时扬声器发出“嘀嘟”的双音音响,且持续2~3秒。此时,电路应具备自锁功能,使别组的抢答开关不起作用。

3.设置计分电路。每组在开始时预置成100分,抢答后由诗人计分,答对一次加10分,否则减10分。

4.设置犯规电路。对提前抢答和超时抢答的组别鸣喇叭示警,并由组别显示电路显示出犯规组别。

二、系统设计方案

根据系统设计要求可知,系统的输入信号有:各组的抢答按钮A、B、C、D,系统清零信号CLR,系统时钟信号CLK,计分复位端RST,加分按钮端ADD,计时预置控制端LDN,计时使能端EN,计时预置数据调整按钮TA、TB;系统的输出信号有:四个组抢答成功与否的指示灯控制信号输出口LEDA、LESB、LEDC、LEDD,四个组抢答时的计时数码显示控制信号若干,抢答成功组别显示的控制信号若干,各组计分动态显示的控制信号若干。本系统应具有的功能有:第一抢答信号的鉴别和锁存功能;抢答计时功能;各组得分的累加和动态显示功能;抢答犯规记录

根据以上的分析,我们可将整个系统分为三个主要模块:抢鉴别模块QDJB;抢答计时模块JSQ;抢答计分模块JFQ;对于需显示的信息,需增加或外接译码器,进行显示译码。考虑到FPGA、CPLD的可用接口及一般EDA实验开发系统的输出显示资源的限制,这里我们将组别显示和计时显示的译码器内设,而将各组的计分显示的译码器外接。整个系统的组成框图如图1所示:

图 1 智力抢答器的组成框图

系统的工作原理如下:当主持人按下使能端EN时,抢答器开始工作,A、B、C、D四个抢答者谁最先抢答成功则此选手的台号灯(LEDA—LEDD)将点亮,并且主持人前的组别显示数码将显示出抢答成功者的台号;接下来主持人提问,若回答正确,主持人按加分按钮ADD,抢答计分模块JFQ将给对应的组加分,并将该组的总分显示在对应的选手计分数码管JF2_A~JF0_A、JF2_B~JF0_B、JF2_C~JF0_C、JF2_D~JF0_D、上。在此过程中,主持人可以采用计时手段(JSQ),打开计时器使计时预置控制端LDN有效,输入限制的时间,使计时使能端EN有效,开始计时。完成第一轮抢答后,主持人清零,接着重新开始,步骤如上。

三、主要VHDL源程序与系统模块

1. 抢答鉴别电路QDJB的VHDL源程序和模块

--QDJB.VHD

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

ENTITY QDJB IS

PORT(CLR: IN STD_LOGIC;

A, B, C, D: IN STD_LOGIC;

A1,B1,C1,D1: OUT STD_LOGIC;

STATES: OUT STD_LOGIC_VECTOR(3 DOWNTO 0)); END ENTITY QDJB;

ARCHITECTURE ART OF QDJB IS

CONSTANT W1: STD_LOGIC_VECTOR: ="0001";

CONSTANT W2: STD_LOGIC_VECTOR: ="0010";

CONSTANT W3: STD_LOGIC_VECTOR: ="0100";

CONSTANT W4: STD_LOGIC_VECTOR: ="1000";

BEGIN

PROCESS(CLR,A,B,C,D) IS

BEGIN

IF CLR='1' THEN STATES<="0000";

ELSIF (A='1'AND B='0'AND C='0'AND D='0') THEN

A1<='1'; B1<='0'; C1<='0'; D1<='0'; STATES<=W1; ELSIF (A='0'AND B='1'AND C='0'AND D='0') THEN

A1<='0'; B1<='1'; C1<='0'; D1<='0'; STATES<=W2; ELSIF (A='0'AND B='0'AND C='1'AND D='0') THEN

A1<='1'; B1<='0'; C1<='1'; D1<='0'; STATES<=W3; ELSIF (A='0'AND B='0'AND C='0'AND D='1') THEN

A1<='0'; B1<='0'; C1<='0'; D1<='1'; STATES<=W4; END IF;

END PROCESS;

END ARCHITECTURE ART;

图 2 抢答鉴别电路的模块

2. 计分器电路JFQ的VHDL源程序

--JFQ.VHD

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

相关文档
最新文档