基于EDA自动打铃系统设计(课后作业)_第1页
基于EDA自动打铃系统设计(课后作业)_第2页
基于EDA自动打铃系统设计(课后作业)_第3页
基于EDA自动打铃系统设计(课后作业)_第4页
基于EDA自动打铃系统设计(课后作业)_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

1、考试序号:*自动打铃系统设计说明书 学 生 姓 名:* 学 号:*1610 专 业 班 级:电子13-1BF 报告提交日期:2015.11.18 理 工 学 院 物 电 学 院 自动打铃系统设计第一章 设计题目及总体要求简介2第二章 设计方案说明3第三章 各部分功能介绍及程序43.1系统框图43.2选择的FPGA芯片及配置43.3各模块(元件)说明43.3.1 计时器模块及手动校时模块43.3.2 闹钟模块53.3.3 显示模块63.3.4 顶层设计及原理图7附录:8 第一章 设计题目及总体要求简介随着EDA技术的发展和应用领域的扩大与深入,EDA技术在电子信息、通信、自动控制及计算机应用领域

2、的重要性日益突出。EDA技术就是以计算机为工具,设计者在EDA软件平台上,对以硬件语言HDL为系统逻辑描述手段完成的设计文件,然后由是计算机自动地完成逻辑编辑、化简、分割、综合、优化、布局、布线、和仿真直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。本设计是基于VHDL语言的自动打铃系统。在论文中,介绍了基于CHDL语言自动打铃系统的思路,整个系统需包含计时模块、校时模块、打铃模块。在Quartus II开发环境中编译和仿真所设计的程序,并逐一调试验证程序的运行状况。仿真和验证的结果证明,该设计方法切实可行,该打铃系统可以实现调时定时打铃功能,具有一定的实际应用性本设计是基于VHDL

3、的自动打铃系统,而自动打铃就像是现在的闹钟一样,起到提醒作用,6点起床闹铃,闹铃延迟时间5秒,本设计还是一个实时时钟,通过功能选择键选择计时功能、闹钟功能、手动校时功能。第二章 设计方案说明自动打铃是一种现代提醒工具,有着广泛的应用,本设计具体实现如下:(1)计时功能,24小时制显示、动态扫描显示、显示格式88-88-88;(2)闹钟功能,6点闹钟,打铃5S;(3)手动校时功能;可设置分、时;为了高效率验证设计的结果另外增加了一个手动校时模块,用两个按键(选择调分或调时,计数器增加)。在整个设计中,首先先做一个顶层模块,以top命名,然后再将各个模块在顶层模块中做好再生成各模块元器件,最后在t

4、op模块中将各个元件按功能要求连接好后进行编译,看是否通过,设置引脚后对顶层文件编译,在进行波形仿真,如果时序仿真与功能仿真的波形都正确,最后在实验箱上验证铃声是否能响起。第三章 各部分功能介绍及程序3.1系统框图图3.1 自动打铃系统框图3.2选择的FPGA芯片及配置本设计选择ACEX1K系列EP1K100QC208-3芯片。3.3各模块(元件)说明3.3.1 计时器模块及手动校时模块计数器模块包括秒计数器模块、分计数器模块、时计数器模块以及功能按键的设计。给定固定频率的时钟信号,输入计数60秒的计数器模块,等到计数器到60秒的瞬间,进位至60分的分计数器模块加1后,秒计数器模块同时清零从新

5、计时,时计时模块与秒、分计时模块类似,当来自分计时模块的进位达到24瞬间,时计数器模块清零,再从零进行计时。这样秒、分、时计时模块依次进行计时完成24进制的计时功能。本设计将计时模块集成与一体,还添加了手动校时模块,通过编译后生成计时模块的元器件如图3.1。图3.1 计时、校时模块的元器件通过对该模块的仿真,得到如图3.2的秒计时仿真图,图3.3的分计时仿真图,图3.4的时计时仿真图。图3.2 秒计时仿真图图3.3 分计时仿真图图3.4 时计时仿真图校时模块的仿真图如图3.5所示。图3.5 校时按键功能仿真模块说明:K1按键是功能选择按键,若没按下,则默认为普通计时模式,若按下一次,则为闹钟模

6、式,若按下两次,则为手动校时模块。按键turn则为,在模式2下的分校时、时校时选择按键,而m则是哪种校时选择的状态显示变量,按键change则为校时增加按键。由仿真波形可以看出:在模式2中,当turn按下时m的值反转,校时由分校时变为时校时。3.3.2 闹钟模块闹钟模块利用IF语句实现时间控制,在预设的铃声响起时间给alert一段连续的5S高电平。通过对代码的编译后生成的的闹钟模块的元器件如图3.6所示:图3.6 闹钟模块元器件仿真图如图3.7所示:图3.7 闹钟模块仿真图仿真说明:有仿真图可得,闹钟时间为06:00,当到6:00时,给alert一个高电平。3.3.3 显示模块本设计用6位数码

7、管显示,同过位选信号outb经过3-8译码后选择1位数码管,段选信号outa将要显示数据传给数码管,完成显示功能。对代码编译、生成元器件如图3.8所示,仿真图如图3.9所示:图3.8 显示模块元器件图3.9 显示模块仿真图3.3.4 顶层设计及原理图顶层模块说明:顶层设计即把电路的各个模块放在一个顶层模块中,建立一个TOP顶层文件,在这个模块中分别完成每个模块的编译,统一设定结束时间我1MS。在完成单个模块编译前先把这个模块置顶,成为活的窗口,否则就找不到对应的模块,就会出错。但要注意的是,整个模块名一定为TOP,而且每个模块的名称一定要用英文,在一个单独的模块编译通过时要生成元器件,以便在之

8、后的顶层文件画电路图时用到该元器件。等各个模块都编译完成后,进行模块连接,将每个模块按照其所要求的实现的功能进行连接起来,然后进行引脚设定,设定后的顶层模块电路图如3.10所示:图3.10 顶层模块的电路图顶层设计波形仿真:先给一个CLK脉冲,若不按K1,则为默认的24小时计时器,按下K1的次数不同即选择不同的功能,1次为闹铃功能,2次为手动校时功能。本设计中,闹铃功能,闹铃时间为6:00。附录:源程序:module conter_time(SL,SH,ML,MH,HL,HH,clr,clk,k1,turn,change); output 3:0 SL,SH,ML,MH,HL,HH;input

9、 clr,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:0HL=0;reg 3:0 HH=0;reg m=1b0;reg 1:0 mode=2d0; always (posedge clk) beginif(k1=1)beginif(mode=2)mode=0;elsemode=mode+1;endendalways (posedge clk) beginif(turn=1)beginm=!m;endendalways (posedge clk) begin if(clr=1) / 1系

10、统复位 begin SL=0; SH=0; ML=0; MH=0; HL=0; HH=0; endelse beginif(SL=9) begin SL=0; if(SH=5)begin SH=0; if(ML=9) begin ML=0; if(MH=5) begin MH=0;if(HL=(HH=2)?3:9) begin HL=0; if(HH=2) begin HH=0; end else HH=HH+1; end else begin HL=HL+1;endend else MH=MH+1; end else begin ML=ML+1;if(change=1 )if( mode=2

11、)begincase(m)1d0:ML=ML+1;1d1:HL=HL+1;endcase endend endelse SH=SH+1; end else SL=SL+1; end endendmodule /*显示*/ module show(clr,clk,outa, outb,sl,sh,ml,mh,hh,hl);input3:0 ml;input3:0 mh;input3:0 hl;input3:0 hh;input3:0 sl;input3:0 sh;input clk;input clr;output7:0 outa;output2:0 outb;reg3:0 mseg;reg2:

12、0 st;reg2:0 outb;reg7:0 outa;always(posedge clk or posedge clr)begin if(clr=1) st=3b0; else st=st+1;endalways(st)begin case (st) 3b000:begin mseg=sl; outb=3b000; end 3b001:begin mseg=sh; outb=3b001; end 3b010:begin mseg=ml; outb=3b010; end 3b011:begin mseg=mh; outb=3b011; end3b100:begin mseg=hl; out

13、b=3b100; end 3b101:begin mseg=hh; outb=3b101; end default:begin mseg=0; end endcaseendalways(mseg) /数码管显示begin case(mseg) 4b0001: outa=8b; 4b0010: outa=8b; 4b0011: outa=8b; 4b0100: outa=8b; 4b0101: outa=8b; 4b0110: outa=8b; 4b0111: outa=8b; 4b1000: outa=8b; 4b1001: outa=8b; 4b0000: outa=8b; default: outa=8b; endcaseendendmodule/*闹铃*/module clock(ml, mh, hl,

温馨提示

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

评论

0/150

提交评论