1、 1 学 生 课 程学 生 课 程 设 计设 计 报 告报 告 课程名称课程名称: EDAEDA 数字抢答器数字抢答器 2 目目 录录 一、课程设计目的一、课程设计目的3 3 二、课程设计题目描述和要求二、课程设计题目描述和要求.3.3 三、课程设计报告内容三、课程设计报告内容.4.4 四、结论四、结论.21.21 五、结束语五、结束语.22.22 六、参考书目六、参考书目2222 3 一、课程设计目的一、课程设计目的. . 设计一个可容纳4组参赛的数字式抢答器。 通过此次设计熟练掌握VHDL 语言,并掌握设计所用的软件。 二、课程设计题目描述和要求二、课程设计题目描述和要求 在许多比赛活动中
2、,为了准确、公正、直观地判断出第一抢答者通常设 置一台抢答器,通过数显、灯光及音响等多种手段指示出第一抢答者。同时, 还可以设置计分、犯规及奖惩计录等多种功能。本设计的具体要求是: (1) 设计制作一个可容纳四组参赛者的数字智力抢答器,每组设置一个 抢答按钮供抢答者使用。 (2) 电路具有第一抢答信号的鉴别和锁存功能。 (3) 系统具有计分电路。 (4) 系统具有犯规电路。 系统设计方案:系统的输入信号有:各组的抢答按钮 A、B、C、D,系 统清零信号 CLR,系统时钟信号 CLK,计分复位端 RST,加分按钮端 ADD, 计时预置控制端 LDN, 计时使能端 EN, 计时预置数据调整按钮可以
3、用如 TA、 TB 表示;系统的输出信号有:四个组抢答成功与否的指示灯控制信号输出 口可用如 LEDA、LEDB、LEDC、LEDD 表示,四个组抢答时的计时数码显 示控制信号若干,抢答成功组别显示的控制信号若干,各组计分动态显示的 控制信号若干。整个系统至少有三个主要模块:抢答鉴别模块;抢答计时模 块;抢答计分模块,其他功能模块(犯规警告模块,输出显示模块) 。 4 三、课程设计报告内容三、课程设计报告内容 按照要求,我们可以将整个系统分为四个主要模块:抢答鉴别模块;抢 答计时模块;抢答计分模块;译码显示模块。对于需显示的信息,需要增加 或外接译码器,进行显示译码。考虑到实验开发平台提供的输
4、出显示资源的 限制,我们将组别显示和计时显示的译码器内设,而将各组的计分显示的译 码器外接。整个系统的大致组成框图如图 2.1 所示。 图 2.1 L E D A L E D B L E D C L E D D 5 3.13.1 抢答鉴别模块抢答鉴别模块 3.1.1 抢答鉴别模块的功能 抢答队伍共分为四组 A,B,C,D。当主持人按下 START 键后,四组队伍才 可以按抢答键抢答。抢答成功后表示该组的指示灯见亮起,但在主持人未按 下 START 键之前,所有的抢答键按下均是无效的。当任意一个组抢答成功 后,其余的组按抢答键无效。抢答键为 A,B,C,D 四个键。 3.1.2 抢答鉴别模块的源
5、程序 library ieee; use ieee.std_logic_1164.all; entity jb is port(sta:in std_logic; rst: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); start: out std_logic); end entity jb; architecture art of jb is constant w1: std_logic_vector:=“0001“; consta
6、nt w2: std_logic_vector:=“0010“; constant w3: std_logic_vector:=“0100“; constant w4: std_logic_vector:=“1000“; signal sinor: std_logic; signal nsinor: std_logic; signal s_start: std_logic; begin sinor=a or b or c or d; 6 nsinor=not(a or b or c or d); start=s_start; process(sta,nsinor) is begin if (sta=1) then s_start=1; elsif(nsinorevent and nsinor=1)then s_start=0; end if; end process; process(rst,sta,sinor,nsinor) is begin if(rst=1 or sta=1 or nsino