课程设计报告专业班级课程 FPGA/CPLD原理及应用题目四路电子抢答器设计学号姓名同组人成绩2013年5月一、设计目的1.进一步掌握QUARTUSⅡ软件的使用方法;2.会使用VHDL语言设计小型数字电路系统;3.掌握应用QUARTUSⅡ软件设计电路的流程;4.掌握电子抢答器的设计方法。
二、设计要求1.系统总体设计(1)设计一个可以容纳四组参赛队进行比赛的电子抢答器。
(2)具有第一抢答信号的鉴别和锁存功能。
在主持人发出抢答指令后,若有参赛者按抢答器按钮,则该组指示灯亮,显示器显示出抢答者的组别。
同时,电路处于自锁存状态,使其他组的抢答器按钮不起作用。
(3)具有计时功能。
在初始状态时,主持人可以设置答题时间的初始值。
在主持人对抢答组别进行确认,并给出倒计时记数开始信号以后,抢答者开始回答问题。
此时,显示器从初始值开始倒计时,计到0时停止计数,同时扬声器发出超时警报信号。
若参赛者在规定的时间内回答完问题,主持人可以给出计时停止信号,以免扬声器鸣叫。
(4)具有计分功能。
在初始状态时,主持人可以给每组设置初始分值。
每组抢答完毕后,由主持人打分,答对一次加1分,答错一次减1分。
(5)设置一个系统清除开关,该开关由主持人控制。
(6)具有犯规设置电路。
超时抢答者,给予鸣喇叭警示,并显示规范组别。
2.设计方案系统的输入信号有:各组的抢答按钮A、B、C、D,系统允许抢答信号STA,系统清零信号RST,计分时钟信号CLK,加分按钮端ADD、en,减分端SUB、sta,计时使能端en时钟信号clk,复位rst;系统的输出信号有:四个组抢答成功与否的指示灯控制信号输出口可用a1、b1、c1、d1表示,四个组抢答时的计时数码显示控制信号,抢答成功组别显示的控制信号,各组计分显示的控制信号。
整个系统至少有三个主要模块:抢答鉴别模块;抢答计时模块;抢答计分模块,其他功能模块(输出显示模块)。
3.如图为流程图:开始→抢答→抢答鉴别→回答→加减分数→显示↑↑倒计时倒计时犯规抢答或抢答后答题时间超时鸣喇叭警告。
4. 抢答器的顶层原理图设计:三、详细设计(一)抢答鉴别及锁存模块抢答队伍共分为四组A,B,C,D。
当主持人按下STA键后,对应的start 指示灯亮,四组队伍才可以按抢答键抢答,即抢答信号A,B,C,D输入电路中后,通过判断是哪个信号最先为‘1’得出抢答成功的组别1,2,3或4组,将组别号输出到相应端A1,B1,C1,D1,并将组别序号换算为四位二进制信号输出到STATES[3..0]端锁存,等待输出到计分和显示单元。
同时RING端在有成功抢答的情况下发出警报。
其模块如下:抢答鉴别模块1抢答鉴别及锁存源程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity qdjb isport(STA,RST:in std_logic;A,B,C,D:in std_logic;A1,B1,C1,D1,START:out std_logic;STATES:out std_logic_vector(3 downto 0));end qdjb;architecture one of qdjb issignal sinor,ringf,tmp,two:std_logic;beginsinor<=(A XOR B) XOR (C XOR D);two<=A and B;process(A,B,C,D,RST,tmp)beginif RST='1' thentmp<='1';A1<='0'; B1<='0'; C1<='0';D1<='0';START<='0';STATES<="0000";elsif tmp='1' thenif STA='1' thenSTART<='1';if (A='1'AND B='0'AND C='0'AND D='0' ) thenA1<='1'; B1<='0'; C1<='0'; D1<='0'; STATES<="0001";tmp<='0';ELSIF (A='0'AND B='1'AND C='0'AND D='0') THENA1<='0'; B1<='1'; C1<='0';D1<='0';STATES<="0010";tmp<='0';ELSIF (A='0'AND B='0'AND C='1'AND D='0') THENA1<='0'; B1<='0'; C1<='1'; D1<='0'; STATES<="0011";tmp<='0';ELSIF (A='0'AND B='0'AND C='0'AND D='1') THENA1<='0'; B1<='0'; C1<='0'; D1<='1';STATES<="0100";tmp<='0';else tmp<='1';STATES<="0000";end if ;ELSE START<='0';END IF;end if;end process;end one;(二)计分模块在计分器电路的设计中,按照一般的设计原则,按一定数进制进行加减即可,但是随着计数数目的增加,但由于实验板上数码管数目的限制在,每组都猜用十进制数计分,这种电路连线简单方便。
clr为复位端,将计分起始分数设为3。
CHOS[3..0]端功能是锁存已抢答成功的组别序号,当接加分按钮ADD后,将给CHOS[3..0]所存的组别加分。
每按一次加1分,每组的分数将在对应的数码管上显示。
计分模块1、计分模块源程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY jf ISPORT(chos : in STD_LOGIC_VECTOR (3 downto 0);CLK: IN STD_LOGIC;en : IN STD_LOGIC;sta : IN STD_LOGIC;ADD: IN STD_LOGIC;SUB: IN STD_LOGIC;A: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);B: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);C: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);D: OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END jf;ARCHITECTURE ART OF jf ISSIGNAL AA: STD_LOGIC_VECTOR(3 DOWNTO 0);--SIGNALSIGNAL BB: STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL CC: STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL DD: STD_LOGIC_VECTOR(3 DOWNTO 0);signal q0:std_logic;signal n:integer range 0 to 3;signal i:std_logic;BEGINPOR1:PROCESS(ADD,SUB)BEGINi <= add or sub;if clk'event and clk='1'thenif i='0' then q0<='0';n<=0;elsif n<=3 and i='1' thenq0<=not q0;n<=n+1;else q0<='0';end if;end if;IF(q0'EVENT AND q0='1') THENIF( ADD='1' AND SUB='1') THENAA<="0101"; BB<="0101"; CC<="0101"; DD<="0101";--赋初值均为5ELSIF(ADD='1' AND SUB='0') THENif en='1' thenIF(chos="1000") THENAA<=AA+"0001"; BB<=BB; CC<=CC; DD<=DD;ELSIF(chos="0100") THENAA<=AA; BB<=BB+"0001"; CC<=CC; DD<=DD;ELSIF(chos="0010") THENAA<=AA; BB<=BB; CC<=CC+"0001"; DD<=DD;ELSIF(chos="0001") THENAA<=AA; BB<=BB; CC<=CC; DD<=DD+"0001";ELSEAA<=AA; BB<=BB; CC<=CC; DD<=DD;END IF;end if; --加分程序elsIF(SUB='1' AND ADD='0') THENif sta='1' thenIF(chos="1000") THENAA<=AA-"0001"; BB<=BB; CC<=CC; DD<=DD;ELSIF(chos="0100") THENAA<=AA; BB<=BB-"0001"; CC<=CC; DD<=DD;ELSIF(chos="0010") THENAA<=AA; BB<=BB; CC<=CC-"0001"; DD<=DD;ELSIF(chos="0001") THENAA<=AA; BB<=BB; CC<=CC; DD<=DD-"0001";ELSEAA<=AA; BB<=BB; CC<=CC; DD<=DD;END IF;end if;ELSEAA<=AA; BB<=BB; CC<=CC; DD<=DD;END IF;ELSEAA<=AA; BB<=BB; CC<=CC; DD<=DD;END IF;A<=AA; B<=BB; C<=CC; D<=DD;END PROCESS;END ARCHITECTURE ART;(三)计时模块本系统中的计时器电路既有计时初始值的预置功能,又有减计数功能,功能比较齐全。