VHDL语言智能抢答器实验设计_第1页
VHDL语言智能抢答器实验设计_第2页
VHDL语言智能抢答器实验设计_第3页
VHDL语言智能抢答器实验设计_第4页
VHDL语言智能抢答器实验设计_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

1、河南农业大学课程设计报告 设计题目:智能抢答器的VHDL语言实验报告学 院: 理 学 院 专 业: 电子信息科学与技术 学 号: 班 级: 07级电科(2)班 姓 名: 王 晓 南 电子邮件: 日 期: 2011年01月 08 日 成 绩: 指导教师: 河 南 农 业 大 学理 学 院课 程 设 计 任 务 书学生姓名 王 晓 南 指导教师 贾 树 恒 林 爱 英 学生学号 专业 电子信息科学与技术 题目 智能抢答器VHDL语言实验报告 任务与要求设计要求:1.抢答器同时供4名选手或4个代表队比赛,分别用4个按钮S0 S3表示。2.设置一个系统清除和抢答控制开关S,该开关由主持人

2、控制。3抢答器具有锁存与显示功能。即选手按动按钮,锁存相应的编号,并在LED数码管上显示,同时扬声器发出报警声响提示。选手抢答实行优先锁存,优先抢答选手的编号一直保持到主持人将系统清除为止。4. 抢答器具有定时抢答功能,且一次抢答的时间由主持人设定(如30秒)。当主持人启动“开始”键后,定时器进行减计时,同时扬声器发出短暂的声响,声响持续的时间0.5秒左右。5. 如果定时时间已到,无人抢答,本次抢答无效,系统报警并禁止抢答,定时显示器上显示00。技术要点:1、实现封锁功能; 3、总程序的编译、仿真、打包并下载到实验箱。工作内容及安排工作内容:1、编程、仿真、打包、编辑总程序,编译。2、下载到实

3、验箱,验证结果。进度安排:前两次实验上机调试程序;接下来级次实验下载验证,做硬件实验;最后课设验收并总结报告。课程设计成果 1与设计内容对应的软件程序 2课程设计报告书3成果使用说明书 4设计工作量要求开始日期 2010年12月12 日 完成日期 2011年01月08 日 课程设计所在单位 理 学 院 电 子 科 学 系 智能抢答器VHDL语言实验报告一实验目的在MAX+plusII软件平台上,熟练运用VHDL语言。完成智能抢答器设计的软件编程、编译、综合、仿真。使用EDA实验箱,实现智能抢答器的硬件功能。通过实验练习理论与实际的结合,提高变通和动手能力。二设计要求在抢答比赛中,为了公平起见一

4、般要求系统具备以下功能:1) 设计制作一个可容纳四组参赛者的数字智力抢答器,每组设置一个抢答按钮供抢答者使用。2) 第一抢答信号的鉴别和锁存功能。3) 设置计时功能。4) 设置记分功能。5) 数码显示功能。三、实验原理和硬件要求模块分析:根据抢答器的功能要求,可以得出下图所示的模块结构图。其中,抢答模块(QDJB)为整个程序的核心,它实现了系统的抢答器线路测试功能. 第一抢答信号的鉴别和锁存功能等其它功能;计分模块(JFQ)实现计分功能;计时模块(JSQ)则具有倒计时及计时完毕功能;显示模块(YMQ)具有数码显示分数功能。 图2.1.0 抢答器系统结构 一个显示分数原理分析:将电路分为三个主要

5、模块:抢答鉴别模块QDJB;计时模块JSQ;记分模块JFQ。可用静态显示,使用4个数码管,两个显示计时,一个显示组别,四、方案设计与论证设计分析与设计思路:1) 抢答器同时供4名选手或4个代表队比赛,抢答按钮分别用A B C D 表示,A B C D为高电平则表示相应的按钮被按下。2) 系统清零信号CLR,系统时钟信号CLK,记分复位端RST,加分按钮端ADD,计时预置控制端LDN,计时使能端EN,计时预置数据调整按钮TA; TB。3) 系统的输出信号有:四组抢答成功与否的指示灯控制信号输出口 LEDA;LEDB;LEDC;LEDD,四个组抢答时的计时数码显示控制信号,抢答成功组别显示的控制信

6、号若干,各组记分动态显示的控制信号若干。4) 本系统应具有的功能有:第一抢答信号的鉴别和锁存功能,抢答计时功能,各组得分的累加和动态显示功能,抢答犯规记录功能。五、各个模块的程序实现与仿真分析1、抢答鉴别模块QDJB各组的抢答输入信号A B C D的排列组合在理论上应该有16种可能情况,但实际上由于芯片的反应速度快到一定的程度时,两组以上同时抢答成功的可能性很小,所以设计时可只考虑A B C D分别抢答成功的四种情况。其VHDL源程序如下:LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY QDJB IS PORT(CLR: IN STD_LOG

7、IC; A, B, C, D: IN STD_LOGIC;-4个组 A1,B1,C1,D1: OUT STD_LOGIC; STATES: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); END ENTITY QDJB; ARCHITECTURE ART OF QDJB ISsignal a_1,b_1,c_1,d_1: STD_LOGIC; BEGIN PROCESS(CLR,A,B,C,D) IS BEGINIF CLR=1 THEN STATES=0000;a_1=0;b_1=0;c_1=0;d_1=0;-清零ELSIF a_1=1 or b_1=1 or c_1=1

8、 or d_1=1 then null;-锁存,当有一组选中时其他组再抢答没作用ELSIF a=1 then a_1=1;STATES =0001;ELSIF b=1 then b_1=1;STATES =0010;ELSIF c=1 then c_1=1;STATES =0011;ELSIF d=1 then d_1=1;STATES =0100;END IF;a1=a_1;b1=b_1;c1=c_1;d1=d_1; END PROCESS; END ARCHITECTURE ART;图2.2.0 抢答鉴别模块(QDJB)仿真波形 图2.2.1 抢答鉴别模块(QDJB)框图2、计时模块JSQ

9、本系统的计时器电路既有计时初始值的预置功能,又有减计数功能。其中,初始值的预置功能是将两位数分解成两个数分别进行预置。其VHDL源程序如下: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_vector(3 DOWNTO 0); QA:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); -ge wei QB:OUT STD_LOGIC_VECT

10、OR(3 DOWNTO 0); -shi weiEND ENTITY JSQ; ARCHITECTURE ART OF JSQ IS BEGIN 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; -清零,倒计时60秒 ELSIF CLKEVENT AND CLK=1 THEN IF LDN=1 THEN TMPA:=tA; TMPB:=tB; -置数控

11、制,如果不想要60可以从TA,TB输入倒计时秒数 ELSIF EN=1 THEN-计时开始 IF TMPA=0000 THEN-遇到9则自动变为0,否则减一 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;图2.3.1 计时模块(JSQ)仿真波形框图图2.3.0 计时模块(JSQ)仿真波形3、记分模块JFQ 抢答计分电

12、路的设计一般按一定数制进行加减即可,但随着计数数目的增加,要将计数数目分解成十进制并进行译码显示会变得较为复杂。为了避免该种情况,通常是将一个大的进制分解为数个十进只以内的进制数,并将计数器级联。但随着数位的增加,电路的接口也会相应增加。因此,本设计采用IF语句从低往高判断是否有进位,以采取响应的操作,既减少了接口,又简化了设计。其VHDL源程序如下:LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY JFQ IS PORT(RST: IN STD_LOGIC; ADD: IN S

13、TD_LOGIC; CHOS: IN STD_LOGIC_VECTOR(3 DOWNTO 0); OUT1: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); END ENTITY JFQ ; ARCHITECTURE ART OF JFQ IS BEGIN PROCESS(RST,ADD,CHOS) IS VARIABLE POINTS_A0: STD_LOGIC_VECTOR(3 DOWNTO 0); VARIABLE POINTS_B0: STD_LOGIC_VECTOR(3 DOWNTO 0); VARIABLE POINTS_C0: STD_LOGIC_VECTOR

14、(3 DOWNTO 0); VARIABLE POINTS_D0: STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN IF (ADDEVENT AND ADD=1) THEN IF RST=1 THEN POINTS_A0:=0000; POINTS_B0:=0000; POINTS_C0:=0000; POINTS_D0:=0000; ELSIF CHOS=0001 THEN IF POINTS_A0=1001 THEN POINTS_A0:=0000; ELSE POINTS_A0:=POINTS_A0+1; END IF; ELSIF CHOS=0010 THEN

15、IF POINTS_B0=1001 THEN POINTS_B0:=0000; ELSE POINTS_B0:=POINTS_B0+1; END IF; ELSIF CHOS=0011 THEN IF POINTS_C0=1001 THEN POINTS_C0:=0000; ELSE POINTS_C0:=POINTS_C0+1; END IF; ELSIF CHOS=0100 THEN IF POINTS_D0=1001 THEN POINTS_D0:=0000; ELSE POINTS_D0:=POINTS_D0+1; END IF; END IF; END IF; IF chos=000

16、1 then out1=POINTS_a0;ELSIF chos=0010 then out1=POINTS_b0;ELSIF chos=0011 then out1=POINTS_c0;ELSIF chos=0100 then out1=POINTS_D0;ELSIF chos=0000 then out1DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7=; END CASE; END PROCESS; END ARCHITECTURE ART; 图2.5.0 译码器显示模块(YMQ)仿真波形图2.5.1译码器显示模块(YMQ)框

17、图六、抢答器的动态实现的程序和仿真1、记时功能LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY jfq ISPORT(rst: IN STD_LOGIC;add:IN STD_LOGIC;chos:IN STD_LOGIC_VECTOR (3 DOWNTO 0);PP2,PP1,PP0:OUT STD_LOGIC_VECTOR (3 DOWNTO 0);END ENTITY jfq;ARCHITECTURE art OF jfq ISSIGNAL aa2,aa1,aa0,bb2,bb1

18、,bb0: STD_LOGIC_VECTOR (3 DOWNTO 0);SIGNAL cc2,cc1,cc0,dd2,dd1,dd0: STD_LOGIC_VECTOR (3 DOWNTO 0);BEGIN PROCESS(rst,add,chos) ISVARIABLE points_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 DO

19、WNTO 0);VARIABLE points_d2,points_d1: STD_LOGIC_VECTOR (3 DOWNTO 0);BEGINIF(ADDEVENT AND ADD=1) THENIF RST=1THENPOINTS_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=0001THENIF POINTS_A1=1001THENPOINTS_A1:=0000;IF P

20、OINTS_A2=1001THENPOINTS_A2:=0000;ELSEPOINTS_A2:=POINTS_A2+1;END IF;ELSEPOINTS_A1:=POINTS_A1+1;AA2=points_A2;AA1= points_A1;AA0=0000;PP2=AA2;PP1=AA1;PP0=AA0;END IF;ELSIF CHOS=0010THENIF POINTS_B1=1001THENPOINTS_B1:=0000;IF POINTS_B2=1001THENPOINTS_B2:=0000;ELSEPOINTS_B2:=POINTS_B2+1;END IF;ELSEPOINTS

21、_B1:=POINTS_B1+1;BB2= points_B2;BB1= points_B1;BB0=0000;PP2=BB2;PP1=BB1;PP0=BB0;END IF;ELSIF CHOS=0100THENIF POINTS_C1=1001THENPOINTS_C1:=0000;IF POINTS_C2=1001THENPOINTS_C2:=0000;ELSEPOINTS_C2:=POINTS_C2+1;CC2= points_C2;CC1= points_C1;CC0=0000;PP2=CC2;PP1=CC1;PP0=CC0;END IF;ELSEPOINTS_C1:=POINTS_C

22、1+1;END IF; ELSIF chos=1000 THENIF points_D1=1001 THENPoints_D1:=0000; IF points_D2=1001 THENPoints_D2:=0000;ELSEPoints_D2:=points_D2+1; END IF; ELSEPoints_D1:=points_D1+1;DD2= points_D2;DD1= points_D1;DD0=0000; PP2=DD2;PP1=DD1;PP0=DD0;END IF;END IF;END IF;END PROCESS;END ARCHITECTURE art; 图3.1 记分模块

23、(jfq)仿真波形2、 记分功能LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY jsq ISPORT(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 ISSignal da: STD_LOGIC_VECTOR

24、 (3 DOWNTO 0);Signal db: STD_LOGIC_VECTOR (3 DOWNTO 0);BEGINPROCESS (ta,tb,clr) ISBEGIN IF clr=1 THEN Da=0000;db=0000;ELSEIF ta=1 THEN da=da+1;END IF;IF tb=1 THENdb=db+1;END IF;END IF;END PROCESS;PROCESS (clk) ISvariable tmpa: STD_LOGIC_VECTOR (3 DOWNTO 0);variable tmpb: STD_LOGIC_VECTOR (3 DOWNTO 0);BEGINIF clr=1 THEN tmpa:=0000;tmpa:=0110; ELSIF clkevent and clk=1 THENIF ldn=1 THEN tmpa:=da;tmpb:=db;ELSIF en=1 THENIF tmpa=0000 THENtmpa:=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 ARC

温馨提示

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

评论

0/150

提交评论