知识产权20100320_2010316101807_第1页
知识产权20100320_2010316101807_第2页
知识产权20100320_2010316101807_第3页
知识产权20100320_2010316101807_第4页
知识产权20100320_2010316101807_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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.1 智力抢答器的组成框图(实验电路),增加输入模块,增加输出选择模块,减少输入为2组,3.3 主要VHDL源程序,3.3.1 抢答输入选择模块的VHDL源程序 -inuptsel.VHD LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY inuptsel IS PORT(clk: IN STD_LOGIC; sel: IN STD

4、_LOGIC; clr,A,B: OUT STD_LOGIC; LDN,EN,TA,TB: OUT STD_LOGIC; RST,ADD: OUT STD_LOGIC; clk_halfHz: OUT STD_LOGIC; selO: OUT STD_LOGIC; KEY1,KEY2,KEY3,KEY4: IN STD_LOGIC; KEY5,KEY6: IN STD_LOGIC); END ENTITY inuptsel;,ARCHITECTURE ART OF inuptsel IS SIGNAL TEMP1,TEMP2,TEMP3:STD_LOGIC; BEGIN clk_halfHz=

5、clk; PROCESS(sel) BEGIN IF sel=0 THEN clr=KEY1;A=KEY2;B=KEY3; RST=KEY4;ADD=KEY5;TEMP3=KEY6; selO=0; ELSE LDN=KEY1;EN=KEY2;TA=KEY3; TB=KEY4;TEMP1=KEY5;TEMP2=KEY6; selO=1; END IF; END PROCESS; END ARCHITECTURE ART;,3.3.1 抢答鉴别电路QDJB的VHDL源程序 -QDJB.VHD USE IEEE.STD_LOGIC_1164.ALL; ENTITY QDJB IS PORT(CLR

6、:IN STD_LOGIC; A,B:IN 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;,signal nor4:STD_LOGIC; signal or4:STD_LOGIC; signal register1:STD_LOGIC_VECTOR(3 DOWNTO 0

7、); signal STATES1:STD_LOGIC_VECTOR(3 DOWNTO 0); signal clk:STD_LOGIC; BEGIN PROCESS(A,B) BEGIN IF A=1 THEN STATES1=W1;-优先编码器 ELSIF B=1 THEN STATES1=W2; else STATES1=0000; END IF; end process;,or4=STATES1(3) or STATES1(2) or STATES1(1) or STATES1(0); nor4=not(register1(0) or register1(1) or register1

8、(2) or register1(3); clk=or4 and nor4; PROCESS(clk,clr) begin IF CLR=1 THEN register1=0000; elsif clkevent and clk=1 then register1=STATES1; end if; end process; STATES=register1; END ART;,3.3.1 抢答鉴别电路QDJB的VHDL源程序,3.3.2 计分器电路JFQ的VHDL源程序 -JFQ.VHD LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.ST

9、D_LOGIC_UNSIGNED.ALL; 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); END ENTITY JFQ ;,ARCHITECTURE ART OF JFQ IS BEGIN PROCESS(RST,ADD,CHOS) IS VARIABLE POINTS_A2,POINTS_A1:STD_LOGIC_VECTOR(3 DOWN

10、TO 0); VARIABLE POINTS_B2,POINTS_B1:STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN IF (ADDEVENT AND ADD=1) THEN IF RST=1 THEN POINTS_A2:=0001; POINTS_A1:=0000; -将显示分置为100(最低位始终为0) POINTS_B2:=0001; POINTS_B1:=0000; ELSIF CHOS=0001 THEN IF POINTS_A1=1001 THEN POINTS_A1:=0000; IF POINTS_A2=1001 THEN POINTS_A2:=00

11、00;,第一组,ELSE POINTS_A2:=POINTS_A2+1; END IF; ELSE POINTS_A1:=POINTS_A1+1; END IF;,百位加1,十位加1,ELSIF CHOS=0010 THEN IF POINTS_B1=1001 THEN POINTS_B1:=0000; IF POINTS_B2=1001 THEN POINTS_B2:=0000; ELSE POINTS_B2:=POINTS_B2+1; END IF; ELSE POINTS_B1:=POINTS_B1+1; END IF; END IF;,第二组,END IF; AA2=POINTS_A2

12、; AA1=POINTS_A1; AA0=0000; BB2=POINTS_B2; BB1=POINTS_B1; BB0=0000; END PROCESS; END ARCHITECTURE ART;,百位,十位,个位,3.3.3 计时器电路JSQ的VHDL源程序 -JSQ.VHD LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY JSQ IS PORT(CLR,LDN,EN,CLK: IN STD_LOGIC; TA,TB: IN STD_LOGIC; QA: OUT STD

13、_LOGIC_VECTOR(3 DOWNTO 0); QB: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); END ENTITY JSQ;,ARCHITECTURE ART OF JSQ IS SIGNAL DA: STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL DB: STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN PROCESS(TA,TB,CLR) IS BEGIN IF CLR=1 THEN DA=0000; DB=0000; ELSE,IF TA=1AND TAEVENT THEN DA=DA+1 ; END I

14、F; IF TB=1AND TBEVENT THEN DB=DB+1; END IF; END IF; END PROCESS; PROCESS(CLK) IS VARIABLE TMPA: STD_LOGIC_VECTOR(3 DOWNTO 0); VARIABLE TMPB: STD_LOGIC_VECTOR(3 DOWNTO 0);,BEGIN IF CLR=1 THEN TMPA:=0000; TMPB:=0110; ELSIF CLKEVENT AND CLK=1 THEN IF LDN=1 THEN TMPA:=DA; TMPB:=DB; ELSIF EN=1 THEN IF TM

15、PA=0000 THEN TMPA:=1001; IF TMPB=0000 THEN TMPB:=0110; ELSE TMPB:=TMPB-1;,END IF; ELSE TMPA:=TMPA-1; END IF; END IF; END IF; QA=TMPA; QB=TMPB; END PROCESS; END ARCHITECTURE ART;,3.3.4 输出选择电路的VHDL源程序 -outsel.VHD LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY outsel IS PORT(sel: IN STD_LOGIC; state

16、s,QA,QB: in STD_LOGIC_VECTOR(3 DOWNTO 0); AA2,AA1,AA0: in STD_LOGIC_VECTOR(3 DOWNTO 0); BB2,BB1,BB0: in STD_LOGIC_VECTOR(3 DOWNTO 0); LED1,LED2,LED3: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); LED4,LED5,LED6: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); END ENTITY outsel;,ARCHITECTURE ART OF outsel IS BEGIN PROCESS(sel

17、) BEGIN IF sel=0 THEN LED1=AA0;LED2=AA1;LED3=AA2; LED4=BB0;LED5=BB1;LED6=BB2; ELSE LED1=QA;LED2=QB;LED3=0000; LED4=0000;LED5=0000;LED6=states; END IF; END PROCESS; END ARCHITECTURE ART;,显示抢答组号,2位计时显示,A组分数显示,B组分数显示,3.4 系统仿真/硬件验证,3.4.1 系统的有关仿真 系统仿真后的结果分别如图3.2、图3.3、图3.4、图3.5所示。,图3.2 抢答鉴别电路QDJB仿真图,图3.3 计分器电路JFQ仿真图,图3.4 计时器电路JSQ仿真图,图3.5 译码器电路YMQ仿真图,3.4.2 系统的硬件验证 请读者根据自己所拥有的实验设备自行完成。,3.5 设计技巧分析,(1) 在抢答鉴别电路的设计中,A、B、C、D四组抢答,理论上应该有16种可能情况,但实际上由于芯片的反应速度快到一定程度时,两组以上同时抢答成功的可能性非常小,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论