EDA-数字跑表课程设计-.docx
EASTCHINAINSTITUTEOFTECHNO1.OGYEDA课程设计报告数字跑表学院:机械与电子工程学院专业:电子科学与技术学号:1020630208姓名:熊设计目的:(1)学会利用QUartUSH发热宏单元和所学的数字电路学问,搭建困潍点的数字电路或系统.(2)学会运用EDA的程序语古FPCA/CP1.D设计数字跑表,设计主要包括功能分析、方案设计和电路测试几个步骤.二:设计内容:1,设计一个数字跑表,具有如下功能。1)复位和海停,秒表计时等功能。(2)览表计时长度可达1小时,计时精度为0Ol杪。3通过6位数码管分别显示跑走的分、秒利百分秒.限制端取伯功能复位clr)1异步清零O计数计数/传停键(pause)1号停O计数2 .方案论证:数字也表设三个酚入端,分别为时钟输入(C1.K),S1.(C1.R),启动、暂柠按犍(PUSE).笈位信号商电平有效,可对胞表异步清零:当启动、为件键为低电平常跑衣起先计时,为高电平常暂停,变低后在原来的数值基础上接着计数,数字跑衣的结构示意图如K:C1.KC1.RPAUSE=!百分秒=秒=!分图2-1跑表示懑图数字跑表3 .模块电路设计:数字跑表事实上为计数器,数据选择器,七段数码管译码潺等模块构成,核心铁块应为计数零.其次为暂停限制和清零限制.计时电路计时电跖又分为百分秒计时电路、秒计时电路和分计时电路三个模块,百分杪计时电路是一个100进制的计数器,以100HZ输入信号作为计数时钟,其进位信号作为秒计数电路的计数时钟,当秒计数器计满时,产生的进位估号又作为分计数电路的计数时钟.电路的侨停和笈位信号用于限制计时的起先、停止和清零。计数器稳块:数字跑表的计时器功能是,当PAUSE为低电平常起先计数,百分秒低位自加一,加到九时归零,百分秒高位自加一,加到九时归零,且向秒位发出一个高电平,杪低位自加-,加到九时归零,秒高位自加一,加到五时白加,且向分位发出一个高电平,分低位I5I加一,加到六时系统清等.数据选择器:数据选择模块:定义三位二进制数SS作为选择较眄管的变用,SS自加一,当SS人于7时归零,当SS为5、,1、3、2、I时分别将msl,msh,si,sh,ml,mh的值赋给COder,当SS为6、7时赋值为零,匕段数码管显示译码器七段数码管译码器模块:依据数字的显示形态编制其(ft衣,当上一模块coder为0、9时,分别给SCK赋以一加八位二进制数,使数码管显示相应的数字。表1七段数码管显示译码器真值表:CaSeMJg0100ooOoIlllll2Ol(M)100301100004110015Oo100lO6(XMXX)IO711HOOO8000000()9OOloOoo4.数字跑表的流程图:数字跑表主要由计时器,七段数码管译码器纲成,流程框图如图所示。C1.KAl百分秒pause-计数器'*dr1.I:数码管谛秒计数器,码器分计数器二一!彳31程”流程图表2限制信号的作用复位CIr异步亚位信号,高电平有效pause同步哲停估号,低电平有效计数.sei共阴数码管的位选信号SCg其阴数码管的段选信号三:设计总体框图三:硬件电路设计与程序设计设计思路今需设计一个计时范困为0.01秒1小时的数字秒表,首先须要获得个比较就确的计时基准信号,这中,是周期为1/1OoS的计时脉冲,可以把SOMHZ的信号经过100分频的分频湍三次分频得到,其中分频潺经过两次分版得到的信号还可作为数码管扫描电路的时钟.其次,还需对每一计数器设跣清零信号轮入和对六个计数器设置时钟使能信号,即计时允许信号,以便作为秒衣的计时起、件限制功健,为了便利限制全部H做模块清零和使能功能设计了一个限制模块,呆终把全部计数器的输出数据通过数码管扫描电路模块和七段译码U示模块作为输出,接到试验箱上的8字数码显示电路上就可显示结果了.因此数字秒表可由三个分频器、四个十进制计数器。八00秒、10秒、I杪、I分)、两个六进制计数器(10秒、IO分)、一个限制器、一个数据选择器以及七段详码显示器组成,如总体框图所示,依据设计思路,本次设计就采纳模块化设计,共分为分本器模块(fenpin>,限制模块(kongzhi).十进制计数模块(cntl).六进制计数模块(Cm6)、数码管扫描模块(XUanZc)、七段详码显示模块(tcd7s)六个模块以及图形式顶层文件.下面我们分别对每个模块的功能进行描述、程序进行设计以及各个模块功能的仿1、分舞模块依据设计须要,首先须要获得一个比较精确的计时基准信号,这1II是周期为1/100S的计时脓冲.我Q可以把50MHZ的信号经过100分频的分频器三次分明行到此基准信号,所以须要谀计一个100分频的分频器.此外,经过两次分频的信号(IOKHz)还可以同时作为数码皆扫描电跖的时钟,其模块图如下图所示:Clk为时怦怆入信号,ncwclk为100分版的帖出信号。FENPIN一CUKXSWC1.Xl>2、限制模块为了便利限制全部计数模块清零和使能功能须要设计一个限制模块,所以该模块的功能就足限制什么时候发出置零信号和使能信号来限制计数工作.其模块图如下图所示:KONGZHIX-Icukcucl×>R"TSJ-XClk为起先/哲仲功能按钮(下降沿有效,初次按下它时ClC(限制计数器清零)为低电平,cn(使计数器计数为高电平;再次按下它时,de保持为低电平,en跳变为低电平.如此重复循环.RCSCt为清冬按钮(下降沿有效卜无论何时按下它时,Clc跳变为高电平.Cn变为低电平,以达到使计数器清零的目的.3,十进制计数镇块此模块的功能就是完成I进制的计数功能,同时输出进位信号.其模块图如下图所示:CNTieX-C1.Konouc3.oT>-HSTCOUT<>1:NQk为时钟信号输入端,咫为计数器清零然(高电平有效),en为计数器使能端(海电平有效”daoui为数据输出端,BUt为进位信号输出端。4、六进制计致税央此模块的功能就是完成六进制的计数功能,同时输出进位估号,>CNTGCUKOROUTC3.OlRWTCOUT其端口功能同卜进制计数模块,在次不再重复诉说。5,敷码管扫据模块该模块的功能是选择各个计数端口来的数据,当相应的数据到来时,数据选齐器选择数据后输出给七段谛码器,同时输出位选信号,再接入到试脸箱上的8字数码显示电路上就可显示了.其模块图如下图所示:XUaZZE-mECXt3.,。】R""ttECSf3.OJDHOUTK3.。1Kcca.oX9ECSK3.OJX-MINUTSAC3.OJ>三MINUTESC3.OJClk为时钟信号输入端,Mlmiwe2是各个计数端口来的数据的输入端,deou(为数据选择零选择数据后输出端,Sd为位选信号输出端,6、七段译码J1.示模块该模块的功能就是把输入的四位:iS制数据转换为七段数码管的显示莱码,再输入到七段数码管中显示出数据,其模块图如下图所示:DECU7SA为效据输入端1cd7s为数据输出湘C五:程序设计如下:EP2C35F672C6信号定义如下:Clk5ta:Clr:以下引脚修定基于DE2-35芯片为pause:dotout:入50*时钟信号;舁步复位信号IB停信号I小敷点,ledl,IedO:百分秒的高位和低位:led3,led2.秒值号的高位和低位;Ied5,分信号的高位和低位/odulepaobiao(elk,pause,clr,IedO,ledl,led2,led3,led4,led5,dotut):ParaaeterWIDTH=7;/inputclk60a;inputelk:inputpause;inputclr;outputdotout;outputfIDTH-1:0led5;outputfID11i-l:0led4;outputfIDTH-1:0led3;outputfIDTH-I:0ld2;OUtputDriDTH-I:0Iedl:outputTIDTH-I:0IedO;wireis>top;wirezero;vltch*(8)Svitchstop(clk50a,pause,lastop);svitch*(8)Svitchzero(CIkSOBtclr,zero);/reg18:0CounteJloohZ;regclklOO:/assignclkl00counter_100hz18;assigndotout=bl;*alvays(poedeCIkSOB)beginIf(Iisstop)beginif(counter.lOOhz-19,bl111_0100_0010_0100_000)counter_100hx<-0;elsecounter_100hx<=counter_100hz+l;endndalways()beginif(Iisstop)clklOO<=clk;endreg3:0fs;regfscarryO;re3:0f81:regfsc&rryl:reg3:080:reg8carry0;reg3:0si;regSCarryI;reg3:0ainu;regaiucarry;reg3:0Binul;al*ays<(posedgeclklOOorpoedgezero)beginif(zero)beginfs(K=0;fscarryO<=O;endelseif(clkl00=l)beginif(fs三=9)beginfs(X=O;fscay<=l;endelsebeginfs<=fs*l;fscarryO<三O;endendendalways(poedgefscarryorposedgeZero)beginif(Zero)beginfsl<三O;fScarryK=Ojendelseif(fcarry=l)beginif(fsl=9)beginfsl<"0jf8carryl<三ljendelsebeginfsl<三fsl÷l;fcarryl<=Ojefxiendradalvays(posedgefscarrylorPoSedgezero)beginif(zero)beginsO<三O;SCanTo<三0;endelseif(fsca11yl=l)beginif(=9)beginsO<三O;scarry<三l;endelsebegins<=s*l;SCarryO<=0;endendendalwayst(posedgescarryorposedgezero)beginif(zero)beginSK=OjscarryK=Ojendelseif(scarry三l)beginif(l=5)beginsl<=O;8carryl<三l;endelsebeginsl<三81*l;scarryl<三0;endendendalways*(posedgeSearrylorposedgezero)beginif(zero)beginainuO<=O;BiucarryO<=O;endelseif(Scarryl=I)beginif(Blu(h"9)beginainuO<=O;BiucarryO<sl:endelsebeginainu<sinu*l;BiucarryO<=O;endendendal*ays(posedgeBiucarryOorposedgezero)beginif(zero)beginBinuKaOiendelseif(BiucaiTyO=I)beginif(b1du15)BinuK=O;elseainul<Rdnul÷l;endendledIedfsO(fs.ld):ledIedfsl(fsl,ledl):ledIedsO(s.Ied2);ledIedal(si.Id3);ledIedaiuO(b111u0,led4);ledIedhiul(ainul,led5):end>odule*【例11数字胸表(7段数网管译码J1.示模块)led.V:7(led)释网Jl示模块detain:4位,10进制效入ldout.7位,数码管的7段*/oduleled(detain,Iedout);ParaaeterINfIDTH=4;Paraaetr0UTHDTH=7;inputINHDTH-I:0detain;outputOUTfIDTH-IzOIedout;regOI11TIDTH-1:0dataout:assignledout=dataout;alwaysbeginCAse(datain)0:dataout<>7,bi0000:1:dataout<=7,bllll001;2:dataout<=b0100100;3:datut<=7,bl10000;4:datout<-7,b0011001:5:dataout<=7,b0010010;6:dataout<=b0000010;7 :dataout<=bllllOOO;8 :daUout<-7"bOOOOOOO;9 :daUout<=7,b0010000;default:dauout<=tblOOOOOO;endcaseendendtoodule/(«U数字电表(按升关消科电路)CTitCh-Y.对按开关的濡揖电路,采纳一个算率较低的时仲,对入遂行采样,消遇抖动*/odule8vitch(clk,keyin.keyout);ParaBeterCO(JNmDTH=8;inputelk,keyin;outputregkeyut;regOOUNHIDTH-1:0counter;wireclk_us;频率较低的时钟aasigoclk_use"CoUnterCOUXf1111H-l;alvayf(posedgeelk)countr<=counter+bl;al*ays(posedgeClkjlSO)keyout<>lceyin;en<odule六:编译仿真及硬件测试1、译仿真当完成了以上秒表系统各个帙块的VW)I.设计,就可以运用QUartUSH对本设计进行编译和仿真,首先运用文本编辑潞输入本设计的全部模块的源程序,先对各个模块进行编译和仿口,当全部模块全部津洋通过和仿*功能正确后,就可以利用图形编辑工具完成顶层设计,其设计图如顶层设计图所示.然后再对图形端辑器编辑出的顶层设计图进行全程塌译.通过之后就可以进行系统的整体仿真了.其中各个模块的仿真已在模块设计中完成,在此从略.下面只说明系统的整体仿直。2.层设计图I在仿真中,Clk取IOns的信号,合理选取Starl和reset信号,就可以进行系统的整体仿真了.3.仿真后得到如下仿真波形图:0123456701234367.6911111111m水£1M痴Id痴sdcMlJimfuuiwinnjuiwinruuiwuuvuiwumfuuuvir-1.1.1.1.1.1.1.1.1.1.1.1.U1.1.JI_II_II_II_II_II_II_1.J1.l1.JIJ1.J1.l1.rIHtiVieiiViMjt*MeM<。相,巾Iiei。r“lr>»<UUU1.JUUU"i!I1X9XSXVXX2XtXOOtSO8O(rOSK:Ifl:SO-(s:a(9-I001111iIogv*八。i(Oo。o0og(tR-K-ogogO-(SIgOOOOOOIg(9O(0O8UoeoeZ(O8O8X8O-(s-【9ooooooa三EJVtSSz”“Aontoonon(Itz-n9Aog(fli凶/SnInn(0(I1Zon1.noa(C13E)on(0)0>-1on:所W0>-o*-O<Ja*(O-(tt-(2I,(-X4JV3Xs<NSSz、,npVlu22155M3p,ePB26,“I3甲MIBBBoo100COOOXHill3818工OIlOOeO乂8118】工8J81OXOoCOO10乂IUlCOt¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢0WwowWottSt妫然#t徼期CX80WWin11n11n11n11n11n11n11一一-r1.i-J1.FnnEEnr-1.nUrFnnnpT1.JUUUwifJUU1.J1.r1.nJuU1.nJu1.J1.nJ1.JUu1.JUUunJUJl11_n_1111111111_n_n_T1.1.1.n_11n_n_J1.n-,JUl_J1.n-_n_n_n_n_11111111七.试验心得及体会从试脸中,我对整个流程有了初步了解:对试脸进行了深化学习,让我驾取硬件描述语SVeriloKHD1.语言的语言规则,数据类型,语句结构和模块设ih接着是最关键的端程,次要依据任务书分析须要的模块,编程并仿典,两天的课程设计已经耕束,虽然时间很短,但我不仅学到了很多关于EDA的学问,相识到了EDA的强大功能,史曳要的是刷加了我的实践动手实力,使我深刻地相识到仅仪学习课本上的学问是远远不垓的,必须要多多动手,多多实践,才能人正理解并驾取所学的学问.达到学以致用的目的,为以后的工作枳累了珍贵的阅历,同时我也深深地感受到淮谨的看法对于科学探讨的重要性。由于在设计的过程中,一点点的失误都UJ能造成整个系统的擂痪,所以好一个细微环节都要仔细思索,仔细操作,不能有丝百分的大意,这使我相识到要想做一个科研工作者是多么的不易!自己身上的缺点还有很多,要靠以后剧苦的努力来克服!这次的EDA课程设计给了我一次特别充要也特别难得的实践机会,使我可以将平常课本上学习的理论学问应用干实际操作.设计的过程是特别艰苦的,由于从未接触过类似的领域,所以刚起先的时候一片茫然,不知道该干叫什么。随着探讨的渐渐深化,自2慢慢的摸出头绪,驾蚁了一些规律和方法,设计的成果也逐步成型,最终依据要求完成了设计.在实际操作的过程中,遇到了很多的用难,但最终在老师的耐性指导和同学的热忱幕助下,按时完成了任务.在此时老师和同学们表示诚心的感谢!最终也谢老师给叮我这次珍贵的实践机会!