您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 基于EDA自动打铃系统设计(课后作业)
考试序号:**自动打铃系统设计说明书学生姓名:***学号:*******1610专业班级:电子13-1BF报告提交日期:2015.11.18理工学院物电学院自动打铃系统设计第一章设计题目及总体要求简介...............................................................3第二章设计方案说明.................................................................................3第三章各部分功能介绍及程序.................................................................43.1系统框图...................................................................................................43.2选择的FPGA芯片及配置.......................................................................43.3各模块(元件)说明...............................................................................43.3.1计时器模块及手动校时模块...............................................................43.3.2闹钟模块...............................................................................................63.3.3显示模块...............................................................................................63.3.4顶层设计及原理图...............................................................................7附录:.............................................................................................................8第一章设计题目及总体要求简介随着EDA技术的发展和应用领域的扩大与深入,EDA技术在电子信息、通信、自动控制及计算机应用领域的重要性日益突出。EDA技术就是以计算机为工具,设计者在EDA软件平台上,对以硬件语言HDL为系统逻辑描述手段完成的设计文件,然后由是计算机自动地完成逻辑编辑、化简、分割、综合、优化、布局、布线、和仿真直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。本设计是基于VHDL语言的自动打铃系统。在论文中,介绍了基于CHDL语言自动打铃系统的思路,整个系统需包含计时模块、校时模块、打铃模块。在QuartusII开发环境中编译和仿真所设计的程序,并逐一调试验证程序的运行状况。仿真和验证的结果证明,该设计方法切实可行,该打铃系统可以实现调时定时打铃功能,具有一定的实际应用性本设计是基于VHDL的自动打铃系统,而自动打铃就像是现在的闹钟一样,起到提醒作用,6点起床闹铃,闹铃延迟时间5秒,本设计还是一个实时时钟,通过功能选择键选择计时功能、闹钟功能、手动校时功能。第二章设计方案说明自动打铃是一种现代提醒工具,有着广泛的应用,本设计具体实现如下:(1)计时功能,24小时制显示、动态扫描显示、显示格式88-88-88;(2)闹钟功能,6点闹钟,打铃5S;(3)手动校时功能;可设置分、时;为了高效率验证设计的结果另外增加了一个手动校时模块,用两个按键(选择调分或调时,计数器增加)。在整个设计中,首先先做一个顶层模块,以top命名,然后再将各个模块在顶层模块中做好再生成各模块元器件,最后在top模块中将各个元件按功能要求连接好后进行编译,看是否通过,设置引脚后对顶层文件编译,在进行波形仿真,如果时序仿真与功能仿真的波形都正确,最后在实验箱上验证铃声是否能响起。第三章各部分功能介绍及程序3.1系统框图开始计时模块闹铃模块手动校时模块是否闹钟?YN图3.1自动打铃系统框图3.2选择的FPGA芯片及配置本设计选择ACEX1K系列EP1K100QC208-3芯片。3.3各模块(元件)说明3.3.1计时器模块及手动校时模块计数器模块包括秒计数器模块、分计数器模块、时计数器模块以及功能按键的设计。给定固定频率的时钟信号,输入计数60秒的计数器模块,等到计数器到60秒的瞬间,进位至60分的分计数器模块加1后,秒计数器模块同时清零从新计时,时计时模块与秒、分计时模块类似,当来自分计时模块的进位达到24瞬间,时计数器模块清零,再从零进行计时。这样秒、分、时计时模块依次进行计时完成24进制的计时功能。本设计将计时模块集成与一体,还添加了手动校时模块,通过编译后生成计时模块的元器件如图3.1。clrclkk1turnchangeSL[3..0]SH[3..0]ML[3..0]MH[3..0]HL[3..0]HH[3..0]conter_timeinst6图3.1计时、校时模块的元器件通过对该模块的仿真,得到如图3.2的秒计时仿真图,图3.3的分计时仿真图,图3.4的时计时仿真图。图3.2秒计时仿真图图3.3分计时仿真图图3.4时计时仿真图校时模块的仿真图如图3.5所示。图3.5校时按键功能仿真模块说明:K1按键是功能选择按键,若没按下,则默认为普通计时模式,若按下一次,则为闹钟模式,若按下两次,则为手动校时模块。按键turn则为,在模式2下的分校时、时校时选择按键,而m则是哪种校时选择的状态显示变量,按键change则为校时增加按键。由仿真波形可以看出:在模式2中,当turn按下时m的值反转,校时由分校时变为时校时。3.3.2闹钟模块闹钟模块利用IF语句实现时间控制,在预设的铃声响起时间给alert一段连续的5S高电平。通过对代码的编译后生成的的闹钟模块的元器件如图3.6所示:ml[3..0]mh[3..0]hl[3..0]hh[3..0]clkalertclockinst2图3.6闹钟模块元器件仿真图如图3.7所示:图3.7闹钟模块仿真图仿真说明:有仿真图可得,闹钟时间为06:00,当到6:00时,给alert一个高电平。3.3.3显示模块本设计用6位数码管显示,同过位选信号outb经过3-8译码后选择1位数码管,段选信号outa将要显示数据传给数码管,完成显示功能。对代码编译、生成元器件如图3.8所示,仿真图如图3.9所示:clrclksl[3..0]sh[3..0]ml[3..0]mh[3..0]hh[3..0]hl[3..0]outa[7..0]outb[2..0]showinst5图3.8显示模块元器件图3.9显示模块仿真图3.3.4顶层设计及原理图顶层模块说明:顶层设计即把电路的各个模块放在一个顶层模块中,建立一个TOP顶层文件,在这个模块中分别完成每个模块的编译,统一设定结束时间我1MS。在完成单个模块编译前先把这个模块置顶,成为活的窗口,否则就找不到对应的模块,就会出错。但要注意的是,整个模块名一定为TOP,而且每个模块的名称一定要用英文,在一个单独的模块编译通过时要生成元器件,以便在之后的顶层文件画电路图时用到该元器件。等各个模块都编译完成后,进行模块连接,将每个模块按照其所要求的实现的功能进行连接起来,然后进行引脚设定,设定后的顶层模块电路图如3.10所示:VCCchangeINPUTVCCturnINPUTVCCk1INPUTVCCclkINPUTVCCclrINPUTbitOUTPUTdateOUTPUTclrclksl[3..0]sh[3..0]ml[3..0]mh[3..0]hh[3..0]hl[3..0]outa[7..0]outb[2..0]showinst5ml[3..0]mh[3..0]hl[3..0]hh[3..0]clkalertclockinst1alertOUTPUTclrclkk1turnchangeSL[3..0]SH[3..0]ML[3..0]MH[3..0]HL[3..0]HH[3..0]conter_timeinst4图3.10顶层模块的电路图顶层设计波形仿真:先给一个CLK脉冲,若不按K1,则为默认的24小时计时器,按下K1的次数不同即选择不同的功能,1次为闹铃功能,2次为手动校时功能。本设计中,闹铃功能,闹铃时间为6:00。附录:源程序:moduleconter_time(SL,SH,ML,MH,HL,HH,clr,clk,k1,turn,change);output[3:0]SL,SH,ML,MH,HL,HH;inputclr,clk,k1,turn,change;reg[3:0]SL=0;reg[3:0]SH=0;reg[3:0]ML=0;reg[3:0]MH=0;reg[3:0]HL=0;reg[3:0]HH=0;regm=1'b0;reg[1:0]mode=2'd0;always@(posedgeclk)beginif(k1==1)beginif(mode==2)mode=0;elsemode=mode+1;endendalways@(posedgeclk)beginif(turn==1)beginm=!m;endendalways@(posedgeclk)beginif(clr==1)//1系统复位beginSL=0;SH=0;ML=0;MH=0;HL=0;HH=0;endelsebeginif(SL==9)beginSL=0;if(SH==5)beginSH=0;if(ML==9)beginML=0;if(MH==5)beginMH=0;if(HL==((HH==2)?3:9))beginHL=0;if(HH==2)beginHH=0;endelseHH=HH+1;endelsebeginHL=HL+1;endendelseMH=MH+1;endelsebeginML=ML+1;if(change==1)if(mode==2)begincase(m)1'd0:ML=ML+1;1'd1:HL=HL+1;endcaseendendendelseSH=SH+1;endelseSL=SL+1;endendendmodule/*******************显示*********************/moduleshow(clr,clk,outa,outb,sl,sh,ml,mh,hh,hl);input[3:0]ml;input[3:0]mh;input[3:0]hl;input[3:0]hh;input[3:0]sl;input[3:0]sh;inputclk;inputclr;output[7:0]outa;output[2:0]outb;reg[3:0]mseg;reg[2:0]st;reg[2:0]outb;reg[7:0]outa;always@(posedgeclkorposedgeclr)beginif(clr==1)st=3'b0;elsest=st+1;endalways@(st)begincase(st)3'b000:beginmseg=sl;outb=3'b000;end3'b001:beginmseg=sh;outb=3'b001;end3'b010:beginmseg=ml;outb=3'b010;end3'b011:beginmseg=mh;outb=3'b011;en
本文标题:基于EDA自动打铃系统设计(课后作业)
链接地址:https://www.777doc.com/doc-2533785 .html