EDA课程设计-数字式竞赛抢答器_第1页
EDA课程设计-数字式竞赛抢答器_第2页
EDA课程设计-数字式竞赛抢答器_第3页
EDA课程设计-数字式竞赛抢答器_第4页
EDA课程设计-数字式竞赛抢答器_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

1、精选优质文档-倾情为你奉上EDA技术课程设计报告二0一一年 06 月 30 日专心-专注-专业目 录1课程设计目的12课程设计题目描述和要求 13课程设计报告内容 24总结145参考资料141. 课程设计目的1、通过课程设计使学生能熟练掌握一种EDA软件(MAX+plus2)的使用方法,能熟练进行设计输入、编译、管脚分配、下载等过程,为以后进行工程实际问题的研究打下设计基础。2、通过课程设计使学生能利用EDA软件(MAX+plus2)进行至少一个电子技术综合问题的设计,设计输入可采用图形输入法或VHDL硬件描述语言输入法。3、通过课程设计使学生初步具有分析、寻找和排除电子电路中常见故障的能力。

2、4、通过课程设计使学生能独立写出严谨的、有理论根据的、实事求是的、文理通顺的字迹端正的课程设计报告。2.课程设计题目描述和要求抢答器接通电源后,主持人将开关置于“清除”位置,抢答器处于禁止工作状态,编号显示器灭灯。抢答开始时,主持人将控制开关拨到“开始”位置,扬声器给出声响提示,抢答器处于工作状态,这时,抢答器完成以下工作:(1)优先编码器电路立即分辨出抢答者编号,并由锁存器进行锁存,然后由译码显示电路显示编号;(2)扬声器发出短暂声响,提醒主持人注意;(3)控制电路要对输入编码电路进行封锁,避免其他选手再次进行抢答;(4)当选手将问题回答完毕,主持人操作计分开关,计分电路采用十进制加/减计数

3、器、数码管显示。本轮抢答完毕,主持人操作控制开关,使系统回复到禁止工作状态,以便进行下一轮抢答。设计框图显示电路译码电路锁存器优先编码电路抢答按钮报警电路控制电路主持人控制开关主电路显示电路译码电路计分电路预制 扩展功能电路 加分 减分 图1 抢答器总体框图由主体电路和扩展电路两部分构成,主体电路完成基本的抢答功能,即开始抢答后,当选手按动抢答键时,能显示选手的编号,同时能封锁输入电路,禁止其他选手抢答。扩展电路完成各选手的得分显示功能。3、课程设计报告内容3.1总体设计电路3.2模块设计和相应模块程序(一)抢答鉴别模块 1、VHDL源程序library ieee;-抢答鉴别模块use iee

4、e.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity qdjb is port(rst,clk2:in std_logic; s0,s1,s2,s3:in std_logic; states:buffer std_logic_vector(3 downto 0);tmp:out std_logic);end qdjb;architecture one of qdjb issignal st:std_logic_vector(3 downto 0);beginp1:process(s0,rst,s1,s2,s3,clk2) beg

5、in if rst='0' then tmp<='0'st<="0000" elsif clk2'event and clk2='1' then if (s0='1' or st(0)='1')and not( st(1)='1' or st(2)='1' or st(3)='1' ) then st(0)<='1' end if ; if (s1='1' or st(1)='1&#

6、39;)and not( st(0)='1' or st(2)='1' or st(3)='1' ) then st(1)<='1' end if ; if (s2='1' or st(2)='1')and not( st(0)='1' or st(1)='1' or st(3)='1' ) then st(2)<='1' end if ; if (s3='1' or st(3)='1')an

7、d not( st(0)='1' or st(1)='1' or st(2)='1' ) then st(3)<='1' end if ;tmp<=s0 or s1 or s2 or s3;end if ;end process p1;p2:process(states(0),states(1),states(2),states(3) begin if (st="0000") then states<="0000" elsif (st<="0001"

8、;) then states<="0001"elsif (st<="0010") then states<="0010" elsif (st<="0100") then states<="0011"elsif (st<="1000") then states<="0100" end if; end process p2;end one;抢答鉴别模块图抢答鉴别模块用来准确直观地判断A、B、C、D、E、F六组抢答者谁最

9、先按下按钮,并为显示端送出信号,通过数显和蜂鸣等途径使观众能够清楚地知道是哪一组抢答成功,是整个系统的核心部分。同时组别显示端为下一模块输入信号,以方便主持人为该组抢答成功者进行加减分的操作。(二)计时模块 1、VHDL源程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity js is port(clk,rst,s,stop:in std_logic; warn:out std_logic; ta,tb:buffer std_logic_vector(3 downto 0);end j

10、s;architecture one of js issignal co:std_logic;beginp1:process(clk,rst,s,stop,ta) begin if rst='0' or stop='1' then ta<="0000" elsif clk'event and clk='1' then co<='0' if s='1' then if ta="0000" then ta<="1001"co<=

11、'1' else ta<=ta-1; end if; end if; end if;end process p1;p2:process(co,rst,s,stop,tb) begin if rst='0' or stop='1' then tb<="0010" elsif co'event and co='1' then if s='1' then if tb="0000" then tb<="0011" else tb<=

12、tb-1; end if; end if; end if;end process p2;end one;计时模块图在这个模块中主要实现抢答过程中的计时功能,在有抢答开始后进行30秒的倒计时,并且在30秒倒计时后无人抢答显示超时并报警。其中有抢答时钟信号clk2;系统复位信号rst;抢答使能信号s;抢答状态显示信号states;无人抢答警报信号warn;计时中止信号stop;计时十位和个位信号tb,ta。(三)数据选择模块1、VHDL源程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ie

13、ee.std_logic_arith.all;entity sjxz is port (a,b,c: in std_logic_vector(3 downto 0);clk2,rst: in std_logic; s: out std_logic_vector(1 downto 0); y: out std_logic_vector(3 downto 0) ); end sjxz;architecture body_chooser of sjxz is signal count: std_logic_vector (1 downto 0); begin s<=count; process

14、(clk2,rst) begin if(rst='0')then count<="00" elsif(clk2'event and clk2='1')then if(count>="10")then count<="00" else count<=count+1; end if;end if;case count is when "00"=>y<=a; when "01"=>y<=b; when "

15、10"=>y<=c; when others=>null; end case; end PROCESS; end body_chooser;数据选择模块图在这个模块中主要实现抢答过程中的数据输入功能,输入信号a3.0、b3.0、c3.0;计数输出信号s;数据输出信号y;计数脉冲clk2,实现a、b、c按脉冲轮流选通,在数码管上显示。(四)译码模块1、VHDL源程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY YMQ IS PORT(AIN4: IN ST

16、D_LOGIC_VECTOR(3 DOWNTO 0); DOUT7: OUT STD_LOGIC_VECTOR(6 DOWNTO 0);END YMQ;ARCHITECTURE ART OF YMQ ISBEGIN PROCESS(AIN4) BEGIN CASE AIN4 IS WHEN "0000"=>DOUT7<="" -0 WHEN "0001"=>DOUT7<="" -1 WHEN "0010"=>DOUT7<="" -2 WHE

17、N "0011"=>DOUT7<="" -3 WHEN "0100"=>DOUT7<="" -4 WHEN "0101"=>DOUT7<="" -5 WHEN "0110"=>DOUT7<="" -6 WHEN "0111"=>DOUT7<="" -7 WHEN "1000"=>DOUT7<="&

18、quot; -8 WHEN "1001"=>DOUT7<="" -9 WHEN OTHERS=>DOUT7<="" END CASE; END PROCESS;END ARCHITECTURE ART;译码模块图在这个模块中主要实现抢答过程中将BCD码转换成7段的功能。3、4仿真及仿真结果分析抢答鉴别计时模块译码3.5实验调试结果l 抢答鉴别模块仿真分析: 当鉴别模块的清零信号CLR为高电平时,无论A、B、C、D四组参赛者谁按下抢答按钮,系统输出均为零,同时组别显示端G输出信号也显示为零;当清零信号CLR为低电

19、平时,A、B、C、D四组参赛者谁先按下抢答按钮,组别显示端就显示该组别的号码。假如C组按下抢答按钮时,组别输出为0010,同时C组的显示灯被点亮。仿真图上显示的为A先抢答,因为在0-1.28微秒之间A、C虽然都按抢答键,但CLR为有效状态,所以在此时间段内的抢答无效。l 计分模块仿真分析:首先应该清楚,在计分器电路的设计中,按十进制进行加减分操作的,当出现时钟信号上升沿CLK就可以完成对参赛者加减分操作。智能抢答器记分模块的仿真时以加分操作为例。由仿真图3-10可知以下情况:(1)系统设计过程中,当计分复位端RST=1时,并且组别输入信号CHOS=0000,其中的组别输入信号是抢答鉴别模块的输

20、出信号,计分器复位,此时以上四组都不会产生加减分操作。(2)然而当计分复位端RST=0时,此时计分器可以计分。当CHOS=0001时,组别显示为A组,此时主持人利用计分器对A组进行加减分操作;当CHOS=0010时,组别显示为B组,此时主持人则利用计分器对B组进行加减分操作;当CHOS=0100时,组别显示为C组,此时系统对C组进行加减分操作;当CHOS=1000时,组别显示为D组,此时对D组进行加减分操作。由仿真图可知,当主持人按下系统复位键RST键时,使分数复位,每位设置的初始分数为100分。当CHOS=1000时,即D抢答成功时,加分键ADD输入四个脉冲,DD1加到4,说明加分成功,成绩

21、变为140分。其他抢答者抢答成功后的加分操作与此相同。减分的仿真与此类似,因为是以加法实现,本质与加分相同,当计分复位端RST=0时,可以计分。由仿真图可知,初始成绩均为100分。当CHOS=1000时,即D抢答成功时,减分键SUB输入四个脉冲,DD1加到4,说明减分成功,成绩变为60分。其他抢答者抢答成功后的减分操作与此相同。l 译码器模块仿真分析: 当AIN4= "0000" , DOUT7输出"",此时数码管显示0; 当AIN4= "0001" , DOUT7输出"",此时数码管显示1; 当AIN4= "0010" , DOUT7输出"",此时数码管显示2; 当AIN4= "0011" , DOUT7输出"",此时数码管显示3; 当AIN4= "0100" , DOUT7输出"",此时数码管显示4; 当AIN4= "0101" , DOUT7输出"",此时数码管显示5; 当AIN4= "0110" , DOUT7输出

温馨提示

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

评论

0/150

提交评论