资源描述:
《%b5%da3%d5%c2 %d6%c7%c1%a6%c7%c0%b4%f0%c6%f7%b5%c4%c9%e8%bc%c6%d3%eb%b7%d6%ce%f6》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、第3章智力抢答器的设计与分析3.1系统设计要求3.2系统设计方案3.3主要VHDL源程序3.4系统仿真/硬件验证3.5设计技巧分析3.6系统扩展思路3.1系统设计要求在许多比赛活动中,为了准确、公正、直观地判断出第一抢答者,通常设置一台抢答器,通过数显、灯光及音响等多种手段指示出第一抢答者。同时,还可以设置计分、犯规及奖惩计录等多种功能。本设计的具体要求是:(1)设计制作一个可容纳四组参赛者的数字智力抢答器,每组设置一个抢答按钮供抢答者使用。(2)电路具有第一抢答信号的鉴别和锁存功能。(3)设置计分电路。(4)设置犯规电路。3.2系统设计方案根据系统设计要求可知,系
2、统的输入信号有:各组的抢答按钮A、B、C、D,系统清零信号CLR,系统时钟信号CLK,计分复位端RST,加分按钮端ADD,计时预置控制端LDN,计时使能端EN,计时预置数据调整按钮TA、TB;系统的输出信号有:四个组抢答成功与否的指示灯控制信号输出口LEDA、LEDB、LEDC、LEDD,四个组抢答时的计时数码显示控制信号若干,抢答成功组别显示的控制信号若干,各组计分动态显示的控制信号若干。根据以上的分析,我们可将整个系统分为三个主要模块:抢答鉴别模块QDJB;抢答计时模块JSQ;抢答计分模块JFQ。对于需显示的信息,需增加或外接译码器,进行显示译码。考虑到FPGA
3、/CPLD的可用接口及一般EDA实验开发系统提供的输出显示资源的限制,这里我们将组别显示和计时显示的译码器内设,而将各组的计分显示的译码器外接。整个系统的组成框图如图3.1所示。图3.1智力抢答器的组成框图3.3主要VHDL源程序3.3.1抢答鉴别电路QDJB的VHDL源程序--QDJB.VHDLIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYQDJBISPORT(CLR:INSTD_LOGIC;A,B,C,D:INSTD_LOGIC;A1,B1,C1,D1:OUTSTD_LOGIC;STATES:OUTSTD_LOGIC_V
4、ECTOR(3DOWNTO0));ENDENTITYQDJB;ARCHITECTUREARTOFQDJBISCONSTANTW1:STD_LOGIC_VECTOR:="0001";CONSTANTW2:STD_LOGIC_VECTOR:="0010";CONSTANTW3:STD_LOGIC_VECTOR:="0100";CONSTANTW4:STD_LOGIC_VECTOR:="1000";BEGINPROCESS(CLR,A,B,C,D)ISBEGINIFCLR='1'THENSTATES<="0000";ELSIF(A='1'ANDB='0'ANDC='0'A
5、NDD='0')THENA1<='1';B1<='0';C1<='0';D1<='0';STATES<=W1;ELSIF(A='0'ANDB='1'ANDC='0'ANDD='0')THENA1<='0';B1<='1';C1<='0';D1<='0';STATES<=W2;ELSIF(A='0'ANDB='0'ANDC='1'ANDD='0')THENA1<='1';B1<='0';C1<='1';D1<='0';STATES<=W3;ELSIF(A='0'ANDB='0'ANDC='0'ANDD='1')THENA1<='0';B1<='0';C1<='0';D
6、1<='1';STATES<=W4;ENDIF;ENDPROCESS;ENDARCHITECTUREART;3.3.2计分器电路JFQ的VHDL源程序--JFQ.VHDLIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYJFQISPORT(RST:INSTD_LOGIC;ADD:INSTD_LOGIC;CHOS:INSTD_LOGIC_VECTOR(3DOWNTO0);AA2,AA1,AA0,BB2,BB1,BB0:OUTSTD_LOGIC_VECTOR(3DOWNT
7、O0);CC2,CC1,CC0,DD2,DD1,DD0:OUTSTD_LOGIC_VECTOR(3DOWNTO0));ENDENTITYJFQ;ARCHITECTUREARTOFJFQISBEGINPROCESS(RST,ADD,CHOS)ISVARIABLEPOINTS_A2,POINTS_A1:STD_LOGIC_VECTOR(3DOWNTO0);VARIABLEPOINTS_B2,POINTS_B1:STD_LOGIC_VECTOR(3DOWNTO0);VARIABLEPOINTS_C2,POINTS_C1:STD_LOGIC_VECTOR(3DOWNTO