文档介绍:第3章智力抢答器的设计与分析
系统设计要求
系统设计方案
主要VHDL源程序
系统仿真/硬件验证
设计技巧分析
系统扩展思路
系统设计要求
在许多比赛活动中,为了准确、公正、直观地判断出第一抢答者,通常设置一台抢答器,通过数显、灯光及音响等多种手段指示出第一抢答者。同时,还可以设置计分、犯规及奖惩计录等多种功能。本设计的具体要求是:
(1) 设计制作一个可容纳四组参赛者的数字智力抢答器,每组设置一个抢答按钮供抢答者使用。
(2) 电路具有第一抢答信号的鉴别和锁存功能。
(3) 设置计分电路。
(4) 设置犯规电路。
系统设计方案
根据系统设计要求可知,系统的输入信号有:各组的抢答按钮A、B、C、D,系统清零信号CLR,系统时钟信号CLK,计分复位端RST,加分按钮端ADD,计时预置控制端LDN,计时使能端EN,计时预置数据调整按钮TA、TB;系统的输出信号有:四个组抢答成功与否的指示灯控制信号输出口LEDA、LEDB、LEDC、LEDD,四个组抢答时的计时数码显示控制信号若干,抢答成功组别显示的控制信号若干,各组计分动态显示的控制信号若干。
根据以上的分析,我们可将整个系统分为三个主要模块:抢答鉴别模块QDJB;抢答计时模块JSQ;抢答计分模块JFQ。对于需显示的信息,需增加或外接译码器,进行显示译码。考虑到FPGA/CPLD的可用接口及一般EDA实验开发系统提供的输出显示资源的限制,这里我们将组别显示和计时显示的译码器内设,而将各组的计分显示的译码器外接。。
智力抢答器的组成框图
主要VHDL源程序
抢答鉴别电路QDJB的VHDL源程序
--
LIBRARY IEEE;
USE ;
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;
计分器电路JFQ的VHDL源程序
--
LIBRARY IEEE;
USE ;
USE ;
ENTITY JFQ IS
PORT(RST: IN STD_LOGIC;
ADD: IN STD_LOGIC;
CHOS: IN STD_LOGIC_VECTOR(3 DOWNTO 0);
AA2,AA1,AA0,BB2,BB1,BB0: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);