西安交通大学《数字逻辑电路》课内实验报告_第1页
西安交通大学《数字逻辑电路》课内实验报告_第2页
西安交通大学《数字逻辑电路》课内实验报告_第3页
西安交通大学《数字逻辑电路》课内实验报告_第4页
西安交通大学《数字逻辑电路》课内实验报告_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

1、西安交通大学电子技术实验报告智力抢答器的设计班级:姓名: 学号: 日期:2015年6月30日联系电话:一、实验目的电子技术专题实验是对数字逻辑电路课程内容的全面、系统的总结、巩固和提高的一项课程实践活动。通过智力抢答器的设计与分析实验,加强与巩固学对数字逻辑电路设计的基本方法和技巧的掌握,同时熟悉Quartus软件及实验室多功能学习机硬件平台,并掌握数字逻辑电路测试的基本方法,训练学生的动手能力和思维方法。通过本实验,一方面提高学生运用数字逻辑电路解决实际问题的能力,另一方面使学生更深入的理解所学知识,将理论与实际问题相结合,为以后的计算机硬件课程的学习奠定良好的基础。二、系统设计概要1、项目

2、名称 智力抢答器的设计2、系统设计要求在许多比赛活动中,为了准确、公正、直观地判断出第一抢答者,通常设置一台抢答器,通过数显、灯光及音响等多种手段指示出第一抢答者。同时,还可以设置计分、犯规及奖惩计录等多种功能。本设计的具体要求是:(1) 设计制作一个可容纳四组参赛者的数字智力抢答器,每组设置一个抢答按钮供抢答者使用。(2) 电路具有第一抢答信号的鉴别和锁存功能。 (3) 设置计分电路。 (4) 设置犯规电路。 三、系统设计方案1、总体概述根据系统设计要求可知,系统的输入信号有:各组的抢答按钮A、B、C、D,系统清零信号CLR,系统时钟信号CLK,计分复位端RST,加分按钮端ADD,计时预置控

3、制端LDN,计时使能端EN,计时预置数据调整按钮TA、TB;系统的输出信号有:四个组抢答成功与否的指示灯控制信号输出口LEDA、LEDB、LEDC、LEDD,四个组抢答时的计时数码显示控制信号若干,抢答成功组别显示的控制信号若干,各组计分动态显示的控制信号若干。 根据以上的分析,我们可将整个系统分为三个主要模块:抢答鉴别模块QDJB;抢答计时模块JSQ;抢答计分模块JFQ。对于需显示的信息,需增加或外接译码器YMQ,进行显示译码。考虑到FPGA/CPLD的可用接口及一般EDA实验开发系统提供的输出显示资源的限制,这里我们将组别显示和计时显示的译码器内设,而将各组的计分显示的译码器外接。2、系统

4、模块图显示号码编码器电路封锁选手抢答警报 显示时间计时电路控制电路主持人计分器3、系统总体电路图三、系统单元模块电路设计及工作原理1、抢答鉴别模块(1)VHDL源程序LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; 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 QD

5、JB 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 BEGINIF CLR='1' THEN A1<='0' B1<='0' C1<

6、;='0' D1<='0' ELSIF (A='1')AND (B='0'AND C='0'AND D='0') OR(B='1'OR C='1'OR D='1') THEN A1<='1' B1<='0' C1<='0' D1<='0'STATES<=W1; ELSIF (A='0'AND B='1'AND C='

7、;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<='0' B1<='0' C1<='1' D1<='0' STATES<=W3; ELSIF (A=

8、'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; (2)电路模块(3)原理说明在抢答鉴别电路设计中,A、B、C、D四组抢答,理论上应该有16种可能情况,但实际上由于芯片反应速度快到一定程度时,两组以上同时抢答成功的可能性非常小,因此我们可设计成

9、只有四种情况,这大大简化了电路的设计复杂性。RST为复位端,将输出信号复位或停止警报声。CLK1端为警报时钟信号;待测信号,即抢答信号A,B,C,D输入电路中后,通过判断是哪个信号最先为1得出抢答成功的组别1,2,3或4组,将组别号输出到相应端A1,B1,C1,D1,并将组别序号换算为四位二进制信号输出到STATES3.0端锁存,等待输出到计分和显示单元。同时RING端在有成功抢答的情况下发出警报。2、计分模块(1)VHDL源程序LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY

10、JFQ IS PORT(RST1: 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); CC2,CC1,CC0,DD2,DD1,DD0: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); END ENTITY JFQ ; ARCHITECTURE ART OF JFQ IS BEGIN PROCESS(RST1,ADD,CHOS) IS VARIABLE POINTS_

11、A2,POINTS_A1: STD_LOGIC_VECTOR(3 DOWNTO 0); VARIABLE POINTS_B2,POINTS_B1: STD_LOGIC_VECTOR(3 DOWNTO 0); VARIABLE POINTS_C2,POINTS_C1: STD_LOGIC_VECTOR(3 DOWNTO 0); VARIABLE POINTS_D2,POINTS_D1: STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN IF (ADD'EVENT AND ADD='1') THEN IF RST1='1' THEN P

12、OINTS_A2:="0001" POINTS_A1:="0000" POINTS_B2:="0001" POINTS_B1:="0000" POINTS_C2:="0001" POINTS_C1:="0000" POINTS_D2:="0001" POINTS_D1:="0000" ELSIF CHOS="0001" THEN IF POINTS_A1="1001" THEN POINTS_A1

13、:="0000" IF POINTS_A2="1001" THEN POINTS_A2:="0000" ELSE POINTS_A2:=POINTS_A2+'1' END IF; ELSE POINTS_A1:=POINTS_A1+'1' END IF; ELSIF CHOS="0010" THEN IF POINTS_B1="1001" THEN POINTS_B1:="0000" IF POINTS_B2="1001"

14、THEN POINTS_B2:="0000" ELSE POINTS_B2:=POINTS_B2+'1' END IF; ELSE POINTS_B1:=POINTS_B1+'1' END IF; ELSIF CHOS="0011" THEN IF POINTS_C1="1001" THEN POINTS_C1:="0000" IF POINTS_C2="1001" THEN POINTS_C2:="0000" ELSE POINTS_C2:=

15、POINTS_C2+'1' END IF; ELSE POINTS_C1:=POINTS_C1+'1' END IF; ELSIF CHOS="0100" THEN IF POINTS_D1="1001" THEN POINTS_D1:="0000" IF POINTS_D2="1001" THEN POINTS_D2:="0000" ELSE POINTS_D2:=POINTS_D2+'1' END IF; ELSE POINTS_D1:=POI

16、NTS_D1+'1' END IF; END IF; END IF; AA2<=POINTS_A2; AA1<=POINTS_A1; AA0<="0000" BB2<=POINTS_B2; BB1<=POINTS_B1; BB0<="0000" CC2<=POINTS_C2; CC1<=POINTS_C1; CC0<="0000" DD2<=POINTS_D2; DD1<=POINTS_D1; DD0<="0000" END P

17、ROCESS; END ARCHITECTURE ART;(2)电路模块(3)原理说明在计分器电路的设计中,按照一般的设计原则,按一定数进制进行加减即可,但是随着计数数目的增加,要将计数数目分解成十进制并进行译码显示分变得越来越麻烦。由于设计要求加减分均为10的倍数故而可以将个位一直设为0,这样既减少了接口,又大大地简化了设计。图中,RST端为复位端,将计分起始分数设为100。CHOS3.0端功能是锁存已抢答成功的组别序号,当接加分按钮ADD后,将给CHOS3.0所存的组别加分。每按一次加10分,并分为个、十、百位从高位到低位进行显示。3、计时模块(1)VHDL源程序LIBRARY IEEE;

18、 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_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

19、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='1' THEN DA<=DA+1 ; END IF; IF TB='1' THEN DB<=DB+1; END IF; END IF; END PROCESS; PROCESS(CLK) IS VARIABLE TMPA: STD_LOGIC_VECT

20、OR(3 DOWNTO 0); VARIABLE TMPB: STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN IF CLR='1' THEN TMPA:="0000" TMPB:="0110" ELSIF (CLK'EVENT AND CLK='1') THEN IF LDN='1' THEN TMPA:=DA; TMPB:=DB; ELSIF EN='1' THEN IF TMPA="0000" THEN TMPA:="1001

21、" 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;(2)电路模块(3)原理说明本系统中的计时器电路既有计时初始值的预置功能,又有减计数功能,功能比较齐全。其中初始值的预置功能是将时间的两位数(单位为秒)分解成两个数分别进行预置,默认时间为60秒倒计时。TA、TB端分别预

22、置两位数值,再经过LDN端确认所置时间,EN端为高电平后开始计时。每个数的预置则采用高电平计数的方式进行,CLK接时钟信号。4、译码器模块(1)VHDL源程序LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY YMQ IS PORT(AIN4: IN STD_LOGIC_VECTOR(3 DOWNTO 0); DOUT7: OUT STD_LOGIC_VECTOR(6 DOWNTO 0); END YMQ; ARCHITECTURE ART OF YMQ ISBEGIN PROCE

23、SS(AIN4) BEGIN CASE AIN4 IS WHEN "0000"=>DOUT7<="0111111" -0 WHEN "0001"=>DOUT7<="0000110" -1 WHEN "0010"=>DOUT7<="1011011" -2 WHEN "0011"=>DOUT7<="1001111" -3 WHEN "0100"=>DOUT7<=

24、"1100110" -4 WHEN "0101"=>DOUT7<="1101101" -5 WHEN "0110"=>DOUT7<="1111101" -6WHEN "0111"=>DOUT7<="0000111" -7 WHEN "1000"=>DOUT7<="1111111" -8 WHEN "1001"=>DOUT7<="

25、1101111" -9 WHEN OTHERS=>DOUT7<="0000000" END CASE; END PROCESS; END ARCHITECTURE ART;(2)电路模块(3)原理说明本译码器用于将抢答鉴别模块抢答成功的组别和计时器的时间进行显示,AIN43.0端输入需显示的二进制数组,DOUT76.0端输出显示在数码管,显示显示范围为09。四、测试结果1、抢答鉴别模块仿真波形2、计时器模块仿真波形3、计分器模块仿真波形4、译码器模块仿真波形5、系统总体仿真波形五、实验结果分析通过电路的仿真图形及EDA的操作,可以发现该电路实现的结果:

26、在抢答鉴别模块中,可容纳四组参赛者进行抢答,每组设置一个抢答按钮供抢答者使用,而且电路具有第一抢答信号的鉴别和锁存功能。在主持人交系统复位并发出抢答指令后,如果有一组先按下抢答开关,则该组指示灯亮并用组别显示电路显示抢答者的组别,同时扬声器发出警报,同时其他参赛组不可以再抢答。电路具有计分功能,使每组在开始时的分数预置成100分,抢答后由主持人计分,答对一次加10分。电路有计时功能,选手需在规定时间内抢答和答题。如果有犯规行为,系统也会发出警报。五、实验中的问题及解决 此次试验遇到的最大的问题便是抢答鉴别模块的设计,之前的设计结果是抢答的那组参赛人员必须在按键之后一直按住,才能保证后面的选手不能继续抢答,而且之前的设计还没有声音警报。后来在老师的指导下,又开始对它修改,只是我个人不太喜欢连电路,所以就一直在研究怎么改程序。但是实验之前,我有没有学

温馨提示

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

评论

0/150

提交评论