




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、河南农业大学课程设计报告 设计题目:智能抢答器的VHDL语言实验报告学 院: 理 学 院 专 业: 电子信息科学与技术 学 号: 0708101037 班 级: 07级电科(2)班 姓 名: 王 晓 南 电子邮件: 847267233 日 期: 2011年01月 08 日 成 绩: 指导教师: 0 / 20河 南 农 业 大 学理 学 院课 程 设 计 任 务 书学生姓名 王 晓 南 指导教师 贾 树 恒 林 爱 英 学生学号 0708101037 专业 电子信息科学与技术 题目 智能抢答器VHDL语言实验报告 任务与要求设计要求:1.抢答器同时供4名选手或4个代表队比赛,分别用4个按钮S0
2、S3表示。2.设置一个系统清除和抢答控制开关S,该开关由主持人控制。3抢答器具有锁存与显示功能。即选手按动按钮,锁存相应的编号,并在LED数码管上显示,同时扬声器发出报警声响提示。选手抢答实行优先锁存,优先抢答选手的编号一直保持到主持人将系统清除为止。4. 抢答器具有定时抢答功能,且一次抢答的时间由主持人设定(如30秒)。当主持人启动“开始”键后,定时器进行减计时,同时扬声器发出短暂的声响,声响持续的时间0.5秒左右。5. 如果定时时间已到,无人抢答,本次抢答无效,系统报警并禁止抢答,定时显示器上显示00。技术要点:1、实现封锁功能; 3、总程序的编译、仿真、打包并下载到实验箱。工作内容及安排
3、工作内容:1、编程、仿真、打包、编辑总程序,编译。2、下载到实验箱,验证结果。进度安排:前两次实验上机调试程序;接下来级次实验下载验证,做硬件实验;最后课设验收并总结报告。课程设计成果 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
5、.0 抢答器系统结构 一个显示分数原理分析:将电路分为三个主要模块:抢答鉴别模块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; ENTI
7、TY QDJB IS PORT(CLR: IN STD_LOGIC; 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; AR
8、CHITECTURE 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
9、9; 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<
10、='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本系统的计时器电路既有计时初始值的预置功能,又有减计数功能。其中,初始值的预置功能是将两位数分解成两个数分别进行预置。其VHDL源程序如下:LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; U
11、SE 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_VEC
12、TOR(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:="01
13、10" -清零,倒计时60秒 ELSIF CLK'EVENT AND CLK='1' THEN IF LDN='1' THEN TMPA:=tA; TMPB:=tB; -置数控制,如果不想要60可以从TA,TB输入倒计时秒数 ELSIF EN='1' THEN-计时开始
14、 IF TMPA="0000" THEN-遇到9则自动变为0,否则减一 TMPA:="1001" IF TMPB="0000" THEN TMPB:="0110"
15、; ELSE TMPB:=TMPB-1; END IF; ELSE TMPA:=TMPA-1; END IF; E
16、ND IF; END IF; QA<=TMPA; QB<=TMPB; END PROCESS; END ARCHITECTURE ART;图2.3.1 计时模块(JSQ)仿真波形框图图2.3.0 计时模块(JSQ)仿真波形3、记分模块JFQ 抢答计分电路的设计一般按一定数制进行加减即可,但随着计数数目的增加,要将计数数目分解成十进制并进行译码显示会变得较为复杂。为了避免该种情况,通常是将一个大的进制分解为数个十进只以内的进制数,并将计数器级联。但随着数位的增加,电路的接口也会相应增加。因此,本
17、设计采用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 STD_LOGIC; CHOS: IN STD_LOGIC_VECTOR(3 DOWNT
18、O 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);
19、 VARIABLE POINTS_C0: STD_LOGIC_VECTOR(3 DOWNTO 0); VARIABLE POINTS_D0: STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN IF (ADD'EVENT AND ADD='1') THEN IF RST='1' THEN
20、0; POINTS_A0:="0000" POINTS_B0:="0000" POINTS_C0:="0000" POINTS_D0:="0000"
21、160; ELSIF CHOS="0001" THEN IF POINTS_A0="1001" THEN POINTS_A0:="0000"
22、 ELSE POINTS_A0:=POINTS_A0+1; END IF; ELSIF CHOS="0010" THEN
23、; IF POINTS_B0="1001" THEN POINTS_B0:="0000" ELSE P
24、OINTS_B0:=POINTS_B0+1; END IF; ELSIF CHOS="0011" THEN IF POINTS_C0="1001" THEN &
25、#160; POINTS_C0:="0000" ELSE POINTS_C0:=POINTS_C0+1; END IF;
26、; ELSIF CHOS="0100" THEN IF POINTS_D0="1001" THEN POINTS_D0:="0000"
27、0; ELSE POINTS_D0:=POINTS_D0+1; END IF; END IF; END IF; IF chos="0001"
28、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 out1<="0000"END IF;END PROCESS; END ARCHITECTURE ART; 图2.4.0 记分模块(JFQ)仿真波形
29、图2.4.1 记分模块(JFQ)仿真波形模块框图4 、译码器显示模块YMQ译码器的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
30、 OF YMQ ISBEGIN PROCESS(AIN4) BEGIN CASE AIN4 IS WHEN "0000"=>DOUT7<="1111110" -0 WHEN "0001"=>DOUT7<="0110000" -1
31、WHEN "0010"=>DOUT7<="1101101" -2 WHEN "0011"=>DOUT7<="1111001" -3 WHEN "0100"=>DOUT7<="0110011" -4 WHEN "0101"=>DOUT7&l
32、t;="1011011" -5 WHEN "0110"=>DOUT7<="1011111" -6 WHEN "0111"=>DOUT7<="1110000" -7 WHEN "1000"=>DOUT7<="1111111"
33、0;-8 WHEN "1001"=>DOUT7<="1111011" -9 WHEN OTHERS=>DOUT7<="0000000" END CASE; END PROCESS; END ARCHITECTURE ART; 图2.5.0 译码器显示模块(YMQ)仿真波形图2.5.1译码器显示模块(YMQ)框图六、抢答器的动态实现的程序和仿真1、记时功能LIBRAR
34、Y 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,bb0: STD_LOGIC_VECTOR (3 DOW
35、NTO 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 DOWNTO 0);VARIABLE points_d2,po
36、ints_d1: STD_LOGIC_VECTOR (3 DOWNTO 0);BEGINIF(ADD'EVENT AND ADD='1') THENIF RST='1'THENPOINTS_A2:="0001"POINTS_A1:="0000"POINTS_B2:="0001"POINTS_B1:="0000"POINTS_C2:="0001"POINTS_C1:="0000"POINTS_D2:="0001"POI
37、NTS_D1:="0000"ELSIF CHOS="0001"THENIF POINTS_A1="1001"THENPOINTS_A1:="0000"IF POINTS_A2="1001"THENPOINTS_A2:="0000"ELSEPOINTS_A2:=POINTS_A2+'1'END IF;ELSEPOINTS_A1:=POINTS_A1+'1'AA2<=points_A2;AA1<= points_A1;AA0<=&
38、quot;0000"PP2<=AA2;PP1<=AA1;PP0<=AA0;END IF;ELSIF CHOS="0010"THENIF POINTS_B1="1001"THENPOINTS_B1:="0000"IF POINTS_B2="1001"THENPOINTS_B2:="0000"ELSEPOINTS_B2:=POINTS_B2+'1'END IF;ELSEPOINTS_B1:=POINTS_B1+'1'BB2<= poi
39、nts_B2;BB1<= points_B1;BB0<="0000"PP2<=BB2;PP1<=BB1;PP0<=BB0;END IF;ELSIF CHOS="0100"THENIF POINTS_C1="1001"THENPOINTS_C1:="0000"IF POINTS_C2="1001"THENPOINTS_C2:="0000"ELSEPOINTS_C2:=POINTS_C2+'1'CC2<= points_C2;C
40、C1<= points_C1;CC0<="0000"PP2<=CC2;PP1<=CC1;PP0<=CC0;END IF;ELSEPOINTS_C1:=POINTS_C1+'1'END IF; ELSIF chos="1000" THENIF points_D1="1001" THENPoints_D1:="0000" IF points_D2="1001" THENPoints_D2:="0000"ELSEPoints_D2:=p
41、oints_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 记分模块(jfq)仿真波形2、 记分功能LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LO
42、GIC_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 (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' THEN db<=db+'1'END IF; END IF;END PROCESS;PROCESS (clk) ISvariable tmp
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 民航安检理论试题及答案
- 自媒体合作合同协议书
- 承包协议书 合同范本
- 2025上海市汽车租赁合同范本
- 2025合同能源管理公司
- 2025科研、研发人员聘用劳动合同协议范本样本模板
- 2025仓库土地租赁合同
- 与个人解除合同协议书
- 2025年上海房屋租赁合同范本参考
- 皮试相关试题及答案
- 青少年无人机课程:第一课-马上起飞
- 反射疗法师理论考试复习题及答案
- 2024年江苏省南京市玄武区中考英语二模试卷
- 2023版中职教材-心理健康与职业生涯-第11课-主动学习-高效学习-课件
- 2024年重庆市高考思想政治试卷真题(含答案解析)
- 2024春期国开电大本科《外国文学》在线形考(形考任务一至四)试题及答案
- 阳光雨棚制作安装合同范本
- 广东省汕头市澄海区2023-2024学年七年级下学期期末数学试题(解析版)
- 福建小凤鲜禽业有限公司100万羽蛋鸡养殖基地项目环境影响报告书
- CJT 489-2016 塑料化粪池 标准
- 2024中考语文语言运用考点备考试题精练 (含答案)
评论
0/150
提交评论