版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、EDA课程设计报告题目:电子抢答计分器学院:电子工程学院班级:021215姓名:董国庆学号:02121427西安电子科技大学2014年12月目 录一、设计背景 1二、设计目的 .1三、系统功能及要求 .1四、设计思路 .14.1自底向上 .24.2自顶向下 .2 4.3设计框图 .2五、各模块设计及分析 2 5.1抢答鉴别及锁存模块.2 5.2 计时模块 4 5.3 计分模块 55.4 译码模块 75.5 分频模块 85.6 报警模块 85.7 总体设计电路 9六、实验室加载调试 9 6.1 DEO实验板功能区分布.9 6.2 7段数码显示管 .9七、实验总结 .10参考文献 10一、设计背景
2、:随着电子技术和计算机技术的飞速发展,新的高度集成的电子设计方法不断推出,电子产品的性能越来越高,更新的速度也越来越快,与此同时,市场对电子产品的设计提出了更为严格的要求,从而促进了电子设计自动化(EDA)技术的迅速发展。使用EDA工具时,采用HDL进行设计输入要比原理图设计输入等方式更加灵活,有效和通用。采用EDA技术和HDL语言已成为现代数字系统设计的一种重要方法和必备的基础知识。如今,几乎所有的竞赛都要用到抢答器,以保证公平公正地比赛,以及主持人对比赛的控制。因此,抢答计分器已成为一件很实用的EDA设计产品。二、设计目的:1.掌握使用VHDL语言设计小型数字电路系统,能熟练进行设计输入、
3、编译、管脚分配、下载等过程,为以后进行工程实际问题的研究打下设计基础。2.掌握应用QUARTUS软件设计电路的流程;3.掌握电子抢答器的设计方法;4.在实验室加载到DEO开发板上进行调试,实际运行抢答器。三、系统功能及要求:1、设计一个可以容纳四组参赛队进行比赛的电子抢答器,当然人数增加时,输入接口可以扩展以容纳更多选手;2、具有第一抢答信号的鉴别和锁存功能。在主持人发出抢答指令后,若有参赛者按抢答器按钮,显示器显示出抢答者的组别。同时,电路处于自锁存状态,使其他组的抢答器按钮不起作用;3、具有计时功能。在初始状态时,主持人可以设置抢答时间的初始值。在主持人宣布抢答开始,并给出倒计时记数开始信
4、号以后,抢答者可以开始抢答。此时,显示器从初始值开始倒计时,计到0时停止计数,同时LED亮起超时警报信号,并反馈到锁存模块进行锁存,使得参赛者不能进行抢答。若参赛者在规定的时间内抢答,则计数模块自动终止计数。4、具有计分功能。每组抢答完毕后,由主持人进行打分,答对一次加1分。四、设计思路: 数字系统的设计通常有两种设计方法:一种是自底向上的设计方法;一种是自顶向下的设计方法。 自底向上(Bottom-up)的设计过程从最底层设计开始。设计系统硬件时,首先选择具体的元器件,用这些元器件通过逻辑电路设计,完成系统中各独立功能模块的设计,再把这些功能模块连接起来,总装成完整的硬件系统。 这种设计过程
5、在进行传统的手工电路设计时经常用到,优点是符合硬件设计工程师传统的设计习惯;缺点是在进行底层设计时,缺乏对整个电子系统总体性能的把握,在整个系统设计完成后,如果发现性能尚待改进,修改起来比较困难,因而设计周期长。随着集成电路规模的不断扩大,复杂度的不断提高,传统的电路原理图输入法已经无法满足设计的要求。EDA工具和HDL的产生使自顶向下(Topdown)的设计方法得以实现。随着集成电路规模的不断扩大,复杂度的不断提高,传统的电路原理图输入法已经无法满足设计的要求。EDA工具和HDL的产生使自顶向下(Topdown)的设计方法得以实现。因此,此处采用自顶向下的设计方法。 自顶向下(Topdown
6、)的设计方法是在顶层设计中,把整个系统看成是包含输入输出端口的单个模块,对系统级进行仿真、纠错,然后对顶层进行功能框图和结构的划分,即从整个系统的功能出发,按一定原则,将系统分成若干个子系统,再将每个子系统分成若干个功能模块,进而将每个模块分成若干个小的模块直至分成许多基本模块实现。这样将系统模块划分为各个子功能模块,并对其进行行为描述,在行为级进行验证。系统的输入信号有:各组的抢答按钮a0,a1,a2,a3 ,系统允许抢答信号ret,系统时钟信号CLK,计分复位端CLR,加分按钮端ADD;系统的输出信号有:四个组抢答时的计时数码显示控制信号,抢答成功组别显示的控制信号,各组计分动态显示的控制
7、信号,抢答时间结束时的报警控制信号。整个系统至少有六个主要模块:抢答鉴别模块;抢答计时模块;抢答计分模块;译码模块;报警模块;分频模块。设计框图:主持人控制开关优先编码电路锁存电路数码管显示报警电路控制电路译码电路计时器分频器译码电路加分与否计分器预置抢答按钮图一:抢答计分器设计框图五、各模块设计及分析:1、抢答鉴别及锁存模块library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity qiangda is port(ret,clk:in std_logic; a0,a1,a2,a3:in std
8、_logic; states:buffer std_logic_vector(3 downto 0); tmp:out std_logic);end qiangda;architecture behav of qiangda is signal st:std_logic_vector(3 downto 0); begin process(clk , ret,a0, a1,a2,a3) begin if ret='1' then tmp<='0' st<="0000" elsif clk'event and clk='
9、;1' then if (a0='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 (a1='1' or st(1)='1')and not( st(0)='1' or st(2)='1' or st(3)='1' ) then st(1)<='1' en
10、d if ; if (a2='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 (a3='1' or st(3)='1')and not( st(0)='1' or st(1)='1' or st(2)='1' ) then st(3)<='1'end if ;tm
11、p<=st(0) or st(1) or st(2) or st(3);end if ;end process;process(states(0),states(1),states(2),states(3)beginif (st="0000") then states<="0000" elsif (st<="0001") then states<="0001"elsif (st<="0010") then states<="0010" el
12、sif (st<="0100") then states<="0011"elsif (st<="1000") then states<="0100" end if; end process;end behav;鉴别锁存模块的关键是准确判断出主持人允许后(ret置0)的第一抢答者,并将其锁存,实现的方法可使用触发器或锁存器,在得到第一信号后将输入封锁,使其它组的抢答信号无效。形成第一抢答信号后,用编码、译码及数码显示电路显示第一抢答者的组号states。然后只要有人抢答,temp输出1,计时器
13、的使能端有效,开始倒计时。仿真图分析:抢答鉴别器时钟信号直接采用DEO开发板的50MHZ时钟,因此不用担心延时问题。第一阶段:当主持人下达命令开始抢答时(ret置0),首先a0按下抢答按钮,States显示1,并且锁存住一号选手。并且temp跳到高位1,计时器开始计时;第二阶段:在主持人下达第二道题开始命令之前。a2(选手3)就开始抢答,因此是无效的。等到主持人重置,temp回到0,等到有选手抢到时再次置1。 第二题显示States=2,即二号选手抢到。2、计时模块library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsig
14、ned.all;entity jishi isport(clk,ret,sin:in std_logic;time1,time2:buffer std_logic_vector(3 downto 0);warning:out std_logic);end jishi ;architecture behav of jishi issignal co:std_logic;beginprocess(clk,ret,sin,time1)beginif ret='1' thentime1<="0000"elsif clk'event and clk=
15、39;1' thenco<='0'if sin='1' then if time1="0000" thentime1<="1001"co<='1'else time1<=time1-1; end if; end if;end if;end process ;process(co,ret,sin,time2)beginif ret='1' thentime2<="0010"elsif co'event and co='1
16、' thenif sin='1' thenif time2="0000" then time2<="0010" else time2<=time2-1;end if;end if;end if; if(time1="0000" and time2="0000") thenwarning<='1'else warning<='0'end if;end process;end behav;其中计时模块的时钟信号是经过分频器分频得到。当抢答鉴
17、别模块temp输出高电平时,计时器开始倒计时,其中time1是个位,time2是十位。当抢答后规定时间还没给出答案时,警报就会响起。仿真图分析:当主持人允许抢答(ret=0),有人抢答到时(temp=sin=1)时,计时器开始倒计时。Clk为经分频器分频后的1HZ的频率,确保实际计时总时为20秒,time2为十位,time1为个位。当倒计时为0时,warning=1,警报响起。3、计分模块:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity jf is port(clr: in std_
18、logic; add: in std_logic; chose: in std_logic_vector(3 downto 0); aa,bb: out std_logic_vector(3 downto 0); cc,dd: out std_logic_vector(3 downto 0);end jf;architecture bev of jf isbegin p1: process(add,chose,clr) is variable a2:std_logic_vector(3 downto 0); variable b2:std_logic_vector(3 downto 0); v
19、ariable c2:std_logic_vector(3 downto 0); variable d2:std_logic_vector(3 downto 0); begin if(clr='1')then a2:="0000" b2:="0000" c2:="0000" d2:="0000" elsif(add'event and add='1')then if chose="0001"then if a2="1001"then a
20、2:="0000" else a2:=a2+'1' end if; elsif chose="0010" then if b2="1001" then b2:="0000" else b2:=b2+'1' end if; elsif chose="0011"then if c2="1001"then c2:="0000" else c2:=c2+'1' end if; elsif chose="01
21、00"then if d2="1001"then d2:="0000" else d2:=d2+'1' end if; end if; end if; aa<=a2; bb<=b2; cc<=c2; dd<=d2; end process;end bev;仿真图分析:当States也即chose选中4号选手时,add信号置1(即4号选手答对),dd(即四号选手的分数)加一,增加到了1分。后面分别是三号、一号选手抢答到题目,但主持人并加分,所以两个选手分数仍停留在0分(cc=aa=0)。当clr信号置1时,
22、即分数清零,可见四位选手的分数都变为0。4、译码模块library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity translate is port(din: in std_logic_vector(3 downto 0); dout: out std_logic_vector(6 downto 0);end translate;architecture behav of translate is begin process(din) begin case din is when "00
23、00"=>dout<="0000001" -0 when "0001"=>dout<="1001111" -1 when "0010"=>dout<="0010010" -2 when "0011"=>dout<="0000110" -3 when "0100"=>dout<="1001100" -4 when "0101"=&
24、gt;dout<="0100100" -5 when "0110"=>dout<="0100000" -6 when "0111"=>dout<="0001111" -7 when "1000"=>dout<="0000000" -8 when "1001"=>dout<="0000100" -9 when others=>dout<="00
25、00000" end case; end process;end behav;5、分频模块:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity devider is port ( clk :in std_logic; clk_out: out std_logic );end devider;architecture arc_devider of devider is signal count:std_logic_vector(25 downto 0);begin process begin wait until clk'event and clk='1' if (count<49999999) then count<=count+1; clk_out<='0' else count<=(others=>'0'); clk_out<='1' end if; end process;end architecture a
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 32452-2025航天术语空间环境
- GB/T 46306-2025消费者脆弱性设计与提供包容性服务的要求及指南
- 厂家电商合作合同范本
- 厂房买卖居间合同范本
- 版权转让协议及样本
- 共同投资居间合同范本
- 卖菜水果配送合同范本
- 协议合同模板制作模板
- 养殖蘑菇出售合同范本
- 厂房土地抵押合同范本
- 2025年山东省招聘社区工作者考前冲刺卷(附答案)
- 2024北森图形推理题
- (正式版)HGT 6313-2024 化工园区智慧化评价导则
- 麻精药品培训课件
- 土壤微量元素含量分级与评价
- GB/T 4688-2020纸、纸板和纸浆纤维组成的分析
- GB/T 19638.1-2014固定型阀控式铅酸蓄电池第1部分:技术条件
- 隧道工程施工技术及质量控制要点培训
- 社区营养学-第二章营养调查与监测课件
- 食品加工操作流程图
- 文书档案的收集与整理
评论
0/150
提交评论