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

下载本文档

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

文档简介

1、数字式竞赛抢答器设计要求1、设计一个可容纳4组参赛的数字式抢答器,每组设一个按钮,供抢答使 用。2、抢答器具有第一信号鉴别和锁存功能,使除第一抢答者外的按钮不起作用。3、设置一个主持人“复位”按钮。4、主持人复位后,开始抢答,第一信号鉴别锁存电路得到信号后,有指示灯显 示抢答组别,扬声器发出23秒的音响。5、设置一个计分电路,每组开始预置100分,由主持人记分,答对一次加10 分,答错一次减10分。1、总体方案设计原理及分析1.1、 方案原理按照设计要求,设计一个4组参赛的抢答器,所以这种抢答器要求有四路不同 组别的抢答输入信号,并能识别最先抢答的信号,直观地通过数码显示和蜂鸣报警 等方式提示

2、主持人并显示出组别;同时该系统还应有复位功能。主持人按下系统复 位键(rst,系统进入抢答状态,计分模块输出初始信号给数码显示模块并显示出初 始值。当某参赛组抢先将抢答键按下时,系统将其余三路抢答信号封锁,同时扬声 器发出2-3秒的声音提示,组别显示模块送出信号给数码显示模块,从而显示出该 抢答成功组台号,并一直保持到下一轮主持人将系统清零为止。主持人对抢答结果 进行确认,随后,计时模块送出倒计时计数允许信号,开始回答问题,计时显示 器则从初始值开始以计时,在规定的时间内根据答题的正误来确定加分或减分,并 通过数码显示模块将成绩显示出来。计时至0时,停止计时,扬声器发出超时报警 信号,以中止未

3、回答完问题。当主持人给出倒计时停止信号时,扬声器停止鸣叫。 若参赛者在规定时间内回答完为题,主持人可给出倒计时计数停止信号,以免扬声 器鸣叫。主持人按下复位键,即rst为高电平有效状态,清除前一次的抢答组别, 又可开始新的一轮的抢答。此抢答器的设计中采用自顶向下的设计思路,运用vhdl硬件描述语言对各 个 模块进行层次化、系统化的描述,并且先设计一个顶层文件,再把各个模块连接起 来。1.2、 方案设计框图_z_译码电路显示电路主电路扩展功能电路图1方案系统结构图1.3、 方案各路功能分析此方案是由主体电路和扩展电路两部分构成,整个系统包括这样几个主要模 块:抢答鉴别模块、抢答计时模块、抢答计分

4、模块、译码显示模块、报警模块。主体电路完成基本的抢答功能,接通电源时,主持人将开关置于“清除”位 置,抢答器处于禁止工作状态,编号显示器灭灯;抢答开始时,主持人将控制开关拨 到“开始”位置,扬声器给出声响提示,当选手按动抢答键时,能显示选手 的编号, 同时能封锁输入电路,禁止其他选手抢答。然后由译码显示电路显示编号,扬声器 发出短暂声响,提醒主持人注意。扩展电路完成各选手的得分显示以及报警功能。选手回答问题完毕,主持人 操作计分开关,计分电路采用十进制加/减计数器、数码管显示。本轮抢答完毕, 主持人操作控制开关,使系统回复到禁止工作状态,以便进行下一轮抢答。系统的输入信号有:各组的抢答按钮so

5、、si、s2、s3。系统清零信号clr系 统时钟信号clk复位信号rst加分按钮端add计时中止信号stop ;计时 十位和个 位信号tbta o ;系统的输出信号有:四个组抢答状态的显示ledx (x表示参赛者的 编号)四个组抢答时的计时数码显示控制信号若干抢答成功组别显示的控制信号若 干 各组计分动态显示的控制信号若干。2、主要模块设计2.1、 抢答鉴别模块在这个模块中主要实现抢答过程中的抢答鉴别功能。其电路框图如下。其中rst 为复位信号当该信号高电平有效时电路无论处于何种状态都恢复为初始状态,即所 有的输出信号都为0; en为抢答使能信号,该信号高电平有效;s。、si、s2、s3 为抢

6、答按钮,高电平时有效。当使能信号en为低电平时,如果有参赛者按下按 钮,则提前抢答报警信号false3.o的对应位输出高电平,以示警 告;当en为高 电平时,首先将提前抢答报警信号false3.q复位清0,然后根据选手按下抢答按 钮的先后顺序选择最先抢答的信号,其对应的抢答状态显示信号ledaled输出 高电平,抢答成功组别编号由信号states输出,并锁存抢答器此时的状态,直到清 0信号有效为止。在每一轮新的抢答之前,都要使用复位清零信号rst,清除上一轮 抢答对判断电路留下的使用痕迹,使电路恢复初始状态。qdjbrstenledaledbsoledcledds2false3.o state

7、s3.o inst图2抢答鉴别模块框图2.2、 计时模块在这个模块中主要实现抢答过程中的计时功能,在有组别抢答后开始倒计时,若在规定时间没人回答,则超时报警。其中有系统复位信号rst ;抢答使能信号s ;无人抢答警报信号warn ;计时中止信号stop ;计时十位和个位信号tb, ta。r elkwarnrstta3.ostb3.ostopinst图3计时模块框图2.3、 计分模块抢答计分电路的设计一般按照一定数制进行加减即可,但随着计数数目的增 加,要将计数数目分解成十进制并进行译码显示会变得较为复杂。为了避免该种情 况,通常是将一个大的进制数分解为数个十进制以内的进制数,并将计数器级连。但

8、随着数位的增加,电路的接口也会相应增加。因此,本设计采用if语句从低往高判断是否有进位,以采取相应的操作,既减少了接口,又简化了设计。其电路框图如下,该模块输入信号为加分选择信号add和组别选择信号chose3.0,其中,加分选择信号 add高电平有效,有效时对组别选择信号chose3,。选择的参赛组进行加分;组别选择输入信号chose3,即抢答鉴别模块的输出信号states3.o o输出信号分别对应四组竞赛者的得分。rst add1 chose3.oaa23 oi aa13.o aao3.o bb23.o bb1|3.d bbo13.occ23.ocd3.occo3.odd2|3. oi d

9、d13 .0 ddo3.d? inst图4计分模块框图2.4、 译码显示模块译码显示模块用于显示每组选手的分数,计时的时间等信息。显示电路的实质 就是一个简单的led共阴极显示模块的译码器。7段数码管led常用的一般8字型 为a,b,c,d,e,f,g,p,其中p为小数点,共阴led低电平有效。在这里我们不需要用到小数点位,因此用位宽为7的矢量表示7段数码管即 可。7段led共阴极显示模块的框图如图所示。其中,in430为输入信号,以4 位2进制数表示;out760为输出信号,将输入的二进制数译码显示为十 进制数 字的0-9。 ymxs v in43.r0out760 j inst图5译码显示

10、模块框图2.5、 报警模块在这个模块中主要实现抢答过程中的报警功能,当主持人按下控制键,有限 时 间内有人抢答,指示灯显示抢答组别,扬声器发出23秒的音响。即有效电平输入 信号i ;状态输出信号q。alarmclk q1inst图6报警模块框图2.6、 整体框图从上述设计方案中我们可以大致得到数字竞赛抢答器的系统框图,如下图所 示,其中抢答时钟信号ck2 ;系统复位信号rst ;抢答使能信号s;抢答状态显 示信号 states ;无人抢答警报信号warn ;计时中止信号stop ;计时十位和个位信号tb,qiangdaqielknclk2ks qjxit som1.0sias2b$3cstop

11、drste图7抢答器系统框图3、仿真结果3.1 、抢答鉴别模块仿真抢答鉴别模块的仿真波形图如图所示。当鉴别模块的清零复位信号网为高电平 时,无论四组参赛者谁按下抢答按钮,系统输出均为零,同时组别显示端输出信号 也显示为零;当清零信号rst为低电平时,so、si、s2、s3四组参赛者谁先按下抢答 按钮,其对应的显示灯ledx亮起, states3.o输出抢答成功的选手编号。图8抢答鉴别模块仿真波形图3.2 计时模块计时模块的仿真波形如图所示。实现了抢答过程中的计时功能,在有抢答开始后进行30秒的倒计时,并且在30秒倒计时后无人抢答显示超时并报警。master th bar 12 龙5 n* *i

12、pontef 1127 mln(efd: 455 ps slail :end.senevtluel9.ti)ps 320.0 ps 610.0 qs 9g9,0 ns 1 * i .28 惦 1.6 he 1.92 us 牛24 ue 2.铮 us 2.86 ms 3.! he ?52 us 3g4 us |9 hw:9僭mi ttiriiir i i i rriiinjnii-tii iri-ii_nn idltairstaekelopaiqua每e tbjli“v avaraal15图9计时模块仿真波形图3.3 计分模块仿真系统设计过程中,当计分复位端rst=1时,并且组别输入信号chos

13、e=0000,其 中的组别输入信号是抢答鉴别模块的输出信号,计分器复位,此时以上四组都不会产生加减分操作。然而当计分复位端 rst=0时,此时计分器可以计分。当 chos=000时,组别显示为a组,此时主持人利用计分器对a组进行加减分操作; 当chos=001时,组别显示为b组,此时主持人则利用计分器对b组进行加减分 操 作,以此类推。下图仿真为a组回答正确,加分。masterops *lhl portal:27 nsinterval17 m startend:v.)pt 80 9 nt 160cln3j)tisa2a.iis40xp 480 p m 加,。0 m叫0”dcx) ons潮 p

14、m sco 0 m0”j0血hrath。讪b keiaalb w田沁b kbhbob ka mlbkbhbfb k田曲bdcee11 celbdcm cdboce 血bdcb dcbcc-1,sc000lfmtitoodct:cocotcco:cmid /roool /flo00gr rfq0w二 r33f0000fiy犒0000 f3饴0001t估w t00皿f0001f3.4 译码模块仿真小0nn4=1hn4=0nn4=1hn4=on小 = = = -.iro.lro.lr1.lr1,lro.lr 当in4当in4当in4当in4当3当圆3当圆h1o当“0000”,0ut7 输出“0111

15、111”,“0001” ,out7 输出“0000110”,“0010”,0成7输出“1011011”,“0011”,0成7输出“1001111”,此时数码管显示0此时数码管显示1此时数码管显示2此时数码管显示3此时数码管显示4此时数码管显示5此时数码管显示6 此时数码管显示7此时数码管显示8 此时数码管显示9,。出7输出“1100110”, ,0比7输出“1101101”, ,out7 输出“1111101”, ,0而输出“0000111”, ,。比7 输出”1111111”, ,。比7输出“1101111”,ktaihseai:22.875ns,即 册 nt lrt”at &72 n: s

16、ia伽e 阳於oiia斗;b e(-那闵5:弘同仙绚九御邛55勒血则moo. t20.0, fficonjd ; ( w d0l0 w w o jdl01i ou。jdllljkffix 切 i1 就 dc00110 / 1011011 w 10011li 打山血 ii 血伽 ii 址山 i : i? noun w图11译码显示模块仿真波形图3.5 、报警模块仿真在这个模块中主要实现抢答过程中的报警功能,当主持人按下控制键,有限时间内如果人抢答或是计数到时蜂鸣器开始报警,有效电平输入信号i ;状态输出信 号q。仿真如下图。inle 胡,17.30 re statend:mstei tbiebf

17、ir 17,3?5nsops 蛆咋 320 omq.om 就监 56d.ok&40-1?q.o r.s sw-0 ib3bd.qk960.dns图12报警模块仿真波形图3.6 、整体仿真对电路整体进行仿真,得出如下仿真波形图12。图中,当复位信号rst为高电平时,系统所有信号都清零;当主持人按下开始键,抢答器开始工作。masts time bar.15.675 rwj pointer.975196 us inleivjl.975.54 us slst:end.valuft15.&ej ps 327.68 ue 655.36 us 9b3.04 us 1075 ns1 63b ns1.96& m

18、s 2.294 mseliir .i m i iil 1 1iiiii【ii iiidkcll江lrlll-t 一llllllll-lll356i ri i rn i ljilll7妙号k13 1( ja ifr i* lt*ir-lj lt_lj lj 八lyis比tla19njotit rstsoai11e2s34、原理连线图图13整体仿真波形图根据系统设计要求,将各模块连线得到如下系统框图。主持人按下使能端en抢答器开始工作。四位抢答者谁先按下抢答按钮,则抢答成功,对应的显示灯亮起,并通过显示电路模块显示参赛编号。抢答成功的选手进入答题阶段,如 果正 确回答问题,则加分信号add有效,给

19、相应的参赛组加分。如果复位信号rst有效,使 得抢答器在下一轮抢答前,其抢答成功的组别判断恢复为初始状态,开始新一轮抢答。迎、1dc口叶川,|一)血iso二hrffleniedaledbn|tnrsusileulicnn出川 恤m 5tt?sp 0 r07%二1r)s叩0| 阈口if加.fpwt 一加1()啊|炉wip.r心二 i蝠即,切 /0图14原理连线图5、致谢对于此次课程设计,首先我得诚挚的感谢我的指导老师,从设计、整改及论文的 定稿过程中,自始至终都倾注着老师的心血。老师以严谨的治学之道、宽厚 仁慈的胸 怀、积极乐观的生活态度,兢兢业业的工作作风为我树立了学习的典范,他们的教诲与 鞭

20、策将激励我在学习和生活的道路上励精图治,开拓创新。他们渊博的知识、开阔的视野和敏锐的思维给了我深深的启迪。我真诚地谢谢老师们的指导 和关怀。于个人,通过这次课程设计,我进一步加深了对电子设计自动化的了解。 并 进一步熟练了对quartusll软件的操作。eda这门课程也不像学习理论般那么空 洞,有 了更加贴切的了解及运用。做课程设计时,先查阅相关知识,把原理吃透,确定一个大 的设计方向,在按照这个方向分模块的把要实现的功能用流程图的形式展示。最后参照 每个模块把输入和输出引脚设定,运用我们所学的vhdl语言进行编程。总之,通过这次的设计,进一步了解了 eda技术,收获很大,对软件编 程、排错调

21、试、相关仪器设备的使用技能等方面得到较全面的锻炼和提高。6、详细仪器清单名称型号数量计算机联想1quartus ii开发软件9.01eda/sop实验开发系统gw48-pk21参考文献1孙俊逸eda技术课程设计.华中科技大学出版社.2008.2-122潘松.eda应用技术.北京理工大学出版社.2003网徐志军.eda技术与pld设计m.北京科学出版社.20024黄仁欣eda技术实用教程.清华大学出版社.20045崔建明.电工电子eda仿真技术.北京高等教育出版社,2004.20076曹昕燕、周风臣、聂春燕eda技术试验与课程设计.清华大学出版社7谢自美.电子线路设计实验测试.华中科技大学出版社

22、.1999网赵世强、许杰.电子电路eda技术.西安电子科技大学出版社.20019江国强eda技术习题与实验.电子工业出版社.201210高有堂.eda技术及应用实践.清华大学出版社.2006-08附录vhdl程序1)抢答鉴别模块library ieee;use ieee.std_logic_1164.all;entity qdjb isport(rst:in stdjogic;en:in std logic; s0,s1 ,s2,s3:in stdjogic; leda:out stdjogic; ledb:out stdjogic; ledc:out stdjogic; ledd:out s

23、tdjogic;false:out std_logic_vector(3 downto 0); states:out std_logic_vector(3 downto 0); end qdjb; architecture one of qdjb issignal tmp: std_logic_vector(3 downto 0); signal tag: stdjogic;begin tmp=s0&s1 &s2&s3;process(rst,en,s0,s1 ,s2,s3,tmp) beginif rst=1then states=0000;leda=,0,;ledb=,0,;ledcv=o

24、;ledd=,0; false=0000;tag=0;elsif en=0thenif s0=1thenfalse(3)=1;end if;if s1=1then false(2)=1,; end if;if s2=*1thenfalse(1)=*1;end if;if s3=1then false(0)=1,;end if;elsefalse=00001;if tag=0thenif tmp=u1000thenledav=t;ledb=0;ledc=0;ledd=0;states=1000;tag=11;elsif tmp=0100thenleda=0;ledbv=t;ledc=0;ledd

25、=0;states=0100;tag=v;elsif tmp=0010thenleda=0;ledb=0;ledcv=t;ledd=0;states=0010;tagv=t;elsif tmp=0001thenleda=,0;ledb=0;ledc=0;leddv=t;states=n0001;tag= v;end if;end if;end if;end process;end one;2)计时模块library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity js isport(clk,rst,

26、s,stop:in stdjogic; warn:out stdjogic;ta5tb:buffer std_logic_vector(3 downto 0); end js;architecture one of js is signal co:std_logic;begin p1 :process(clk,rst,s3stop,ta)beginif rst=o or stop=t then ta=0000;elsif clkevent and clk=1 then co=0;if s=*1 then if ta=oooo then ta=1001 ;co=1else ta=ta-1; en

27、d if; end if;end if;end process p1; p2:process(co,rst,s,stop,tb) beginif rst=o or stop=t then tbv=0010”;elsif coevent and co=t thenif s=1 thenif tb=oooo, then tb=0011else tb=tb-1;end if;end if;end if;end process p2;end one;3)计分模块library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.al

28、l;entity jf isport(rst: in stdjogic; add: in stdjogic;chose: in std_logic_vector(3 downto 0); aa2,aa1 ,aa0,bb2,bb1 ,bbo: out std_logic_vector(3downto 0);cc2,cc15cco,dd25dd15ddo: out std_logic_vector(3 downto 0); end entity jf;architecture art of jf is beginprocess(rst,add,chose) isvariable a2,a1:std

29、_logic_vector(3 downto 0);variable b2,b1:std_logic_vector(3 downto 0);variable c2,c1 :std_logic_vector(3 downto 0);variable d2,d1 :std_logic_vector(3 downto 0); beginif(rst=1)thena2:=0001h;a1:=m0000;b2:=0001h;b1:=n0000;c2:=0001”;c1:=0000”;d2:=n0001;d1:=m0000; elsif(addevent and add=1)then if chose=0001then if a1 =1001 hen a1 :=0000u; if a2=u1001 then a2:=0000; else a2:=a2+1end if; else a1 :=a1+1; end if;elsif chose=00

温馨提示

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

评论

0/150

提交评论