《EDA课程设计—抢答器.docx》由会员分享,可在线阅读,更多相关《EDA课程设计—抢答器.docx(14页珍藏版)》请在课桌文档上搜索。
1、内容摘要抢答器是为智力竞赛参赛者答题时进行抢答而设计的一种优先判决器电路,竞赛者可以分为若干组,抢答时各组对主持人提出的问题要在最短的时间内做出推断,并按下抢答按键回答问题。当第一个人按下按键后,则在显示器上显示该组的号码,对应的灯亮,同时电路将其他各组按键封锁,使其不起作用。若抢答时间内无人抢答,则报警灯亮。回答完问题后,由主持人将全部按键曳原,重新起先下一轮抢答。因此要完成抢答器的逻辑功能,该电路应包括抢答器鉴别模块、抢答器计数模块、报警模块、译码模块、分频模块。关键词:抢答鉴别封锁计数报警AbstractRcsponderistheanswerforthequizparlicipants
2、toanswerinthedcsi11whenaprioritydecisioncircuit,andtheracecanbedividedintoseveralgroups,ansrerineachgrouponthehostissuesraisedintheshortestpossibleti三etomakejudgments,andpresstheanswerinanswerkey.Afterpressingthebuttonwhenthefirstperson,thenthedisplayshowsthenuberofthegroup,thecorresponding1ights.wh
3、iIeothergroupswi11bekeycircuitblock,itdoesnotwork.Iftheanswerintime,noansrerin,thealamlights.Answeringquestions,al1thekeysFromthehosttorestoreandre-startthenextroundoftheResponder.Sotocompletetheansweringdevicelogicfunctions,thecircuitshouldincludeRcsponderidentificationnodule.Respondercountingmodul
4、e,aIannmodule,decodingnodule,frequencymodule.KEY:ResponderIdentificationBlockadeCountAlarm一、设计要求1 .抢答器同时供1名选手或4个代表队竞赛,分别用1个按钮SO-S3表示。2 .设置一个系统清除和抢答限制开关rst,该开关由主持人限制。3 .抢答据具有锁存与显示功能.即选手按动按钮.锁存相应的编号,并在1.ED和数码管上显示,同时提示灯亮.选手抢答实行优先领存,优先抢答选手的编号始终保持到主持人将系统清除为止。4 .抢答器具有定时抢答功能,且一次抢答的时间由主持人设定(如20秒)5 .假如定时时间已到
5、,无人抢答,本次抢答无效系统报瞽并禁止抢答定时显示器上显示20.二、方案设计与论证1、概述将该任务分成五个模块诳行设计,分别为;抢答器鉴别模块、抢答器计时模块、报警模块、分频模块、谛码模块。2、抢答器签别模块:在这个模块中主要实现抢答过程中的抢答功能,并能对超前抢答进行警告,还能记录无论是正常抢答还是期前抢答者的台号并且能实现当有TR批答按键按卜时,该路抢答信号招其余的抢答信号封锁的功能.其中有四个抢答信号st)、si.S2、s3:抢答状态显示信号States:抢答与警Hi时钟信号clk2:系统Sl位伯号rst:警报佶号wamio3、抢答器计数模块:在这个模块中主要实现抢答过程中的计时功能.在
6、有抢答起先后进行20秒的倒计时,并且在20秒倒计时后无人抢答显示超时并报警。其中有抢答时钟信号CIkh系统双位信号N;抢答使能信号Slart:无人抢答警报信号Warn:计时中止信号slop:计时十位和个位信号bUU4、报警模块:在这个模块中主要实现抢答过程中的报警功能,当主持人按下限制键,有限时间内人抢答或是计数到时缘吗涔起先报背,计数停止信号SI叩:状态输出信号aim:计数脓冲elk.5、洋码模块:在这个模块中主要实现抢答过程中将BCD码转换成7段的功能。6、分版模块:在这个模块中主要实现抢答过程中所衢的时钟信号.7、顶层文件:在这个模块中是为前五个模块的综合编写的顶层文件,三、单元电路设计
7、(一)抢答鉴别模块1.VIID1.源程序libraryieee;useie.stdlogicunsigned.all;entityxanshouisport(rst,clk2:instdlogic:s,sl.s2,s3:instd_logic;$tates:buffcrstdlogic-veclr(3downto0);1ight:bufferstdlogicvector(3downto0):warn:outstdlogic);endxuanshou:architectureoneofxuanshouissignalst:stdlogicvector(3dvnto0);beginpl:proce
8、ss(S0,mslfs2,s3,c1k2)beginifrst=,O*thenwarm=*0jst=0000;elsifclk2,eventandclk2=*theniforst(3)thenendif;if(7=1orthenendif;if(s2=torthenendif;if(s3=Torthenendif;VIanI二St(O)orsi(D=*)andt(Sl(Q)=1si1.i;st(2)三*)andnot(st(O)=*st(2)=t;st(3)三*)andnot(st(O)1st(3),orororst(3)=st(3)=T)st(2)三,l,)endif:endprocessp
9、l;p2:process(states(O)1States(I)lstates(2)lstates(3),light)beginif(st=*0000*)thenstates=*0000*;elsif(st=*000p)thenstates=*01*;elsif(s=*0010*)thenSlaleS=0010”;elsif(st三*0100*)thenstates三*0011*;elsif(st=1000*)thenstates=0100:endif;light=st:endprocessp2;endone;2 .抢答鉴别仿典图A*arMPtortr6495HMt|搐M5a%3 .抢答签别元
10、件图(二)计数模块1.VIiD1.海程序libraryieee;useicec.std_Iogic_llfrl.al1;useieee.stdlogicunsigned.all;entityJSisport(clkl,rst,start,stop:instdlogic;ta,tbJbufferstd.logicvector(3downto0);endJS:architectureoneofJSissignalco:std_logic:beginpl:process(clklrststart,stop,ta)beginifrst=*0*orstep=】thenta=*0000*;elsifclk
11、eventindclkl,thenco=O;ifstart=*VthenifIa=QQOOthen;elseta=ta-l;endif;endif;endif;endprocesspl;p2:process(co,rst.start,stop,tb)beginifrst=*0*orstop=*1thentb=*0010*;lSifco*eventandco=*thenifstart=theniftb=*0000*thentb*0011*;elsetb=tb-l;endif:endif;endif;endprocessp2;endone;2,计数仿真图械/ne%123m*Pwlr.Bl1diTi
12、lu123S91is655isTmnJWlnr二WmmrJw1.j三11三mrwj11rmjwrm2*3StetQtQ0IiJXIOJXBI(H3.计数元件图(三)报警模块1 .YHD1.源程序libraryicee;useieee.stdlogic1161.all;entityshengyinisport(rst:instd.logic:warn:instd.logic;elk:instd.logic:ta,tb:inintegerrangeOto9:stop:instd.logic:alm:outSu1.IOgiC);end;architecturebhvofshengyinisbegin
13、process(wiirn,la,tb,stop,elk)beginifrst=*O*thenaln=O:elsifstop=*thenaln-,0,;elsifta=Oandtb=Othenal=clk;elsifwarnthenaln=clk;elseal三=,O*:endif:endprocess;end:2 .报警仿真图QHjrtsrlneBsrfijrtec*2InIktsvdUSniEndA曼TduH9=1毋力I号”2号B3对SSJdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdout=-llllll:ENDCASE:ENDPROCESS;ENDr
14、ll:2 .译码元件图N4PU(五)分频模块(用500HZ的时钟和IHZ的计数时钟)1.DivlOO1ibraryieee;useieee.std_logicIlfr1.all;entitydivl00isrt(elk:instdlogic;ClklOOroutstd_logic):enddivlOO:architectureartofdivlOOissignalnun:integerrange0to99;signaltenp:std_logic;beginprocess(elk)beginifclk,eventandclk三,thenifnun99thennm=0;tewpnotte11p;
15、elsenum=numl;Cndif;clklOO=tenp:endif;endprocess;endart;仿真叫DiV100元件图:,.2.DIV50M:这是一个50M分频,将50MHZ的信号分为将Z。1.IBRARYIEEE;CSEIEEE.STD1.OGIC1164.A1.1.:USEIEEE.Sn1.1.OGK1.ARnH.A1.1.;ISEIEEE.STD.1.OGICASSIGNED.A1.1.;ENTITYfenpinISPORT(elk:INSTDjoGIC:clk50:OrrSTD.1.OGIC):ENDfenpin:ArciiitectirertioffenpinisSI
16、GNA1.count:STD1.oGICJECTOR(25DOUVO0):BEGINPROCESS(Clk)BEGINIF(clk,eventANDclk=)THENCount=,0000000000000000000(000000;E1.SECount=count+l;ENDIF;ENDIF;EMDPKOCIiSS;PROCHSS(Clk)BEGINIF(clkeventANDclk三,1)THENclk50=,;E1.SEclk50=,0;ENDIF:ENDIF;ENDPROCESS;END:fenpin元件图(六)顶层文件1.仿真图:2.QDQ1主电路图连线四锁定引脚及下载1 .选择锁定
17、引脚,再重新编译一次。在编程窗的Mode中选择ACtiVeSerialPrOgramming编程模式,打开编程文件,选中QDQpof,并选中打钩前3个编程项目,在ED2板上选择PROG模式,然后下载。2 .锁定引脚:时钟信号elkN2发光二极管1.EDRO-1.EDR3(AE23.AF23.AB21.AC22)数码管num-num6(AB12.AC12.AD11.AE11.V14.V13)ta-ta6(AB23.V22.AC25.AC26.AB26.AB25.Y24)tb-tb60开关rstAF14SW0-SW3(N25.N26.P25.AE14)SOUNDAA14STARTAD13STOPAC13