您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 自动打铃EDA设计报告
考试序号:##自动打铃系统设计说明书学生姓名:###学号:########专业班级:#######报告提交日期:2014.12.5湖南理工学院物电学院湖南理工学院-物电学院-自动打铃系统设计说明书3目录第一部分:设计题目及总体要求简介....................................41.设计题目:自动打铃系统设计。..................................42.设计要求简介:................................................4第二部分:设计方案说明..............................................4设计方案:......................................................4第三部分:各部分功能介绍及程序(部分)..............................61.系统框图...................................................62.选择的FPGA芯片及配置......................................63.各模块(元件)说明.........................................7▪各子模块说明................................................7▪顶层文件说明...............................................13▪端口说明...................................................14▪顶层文件引脚映射说明.......................................14第四部分:仿真结果(附图).........................................151.仿真结果图...................................................152.说明.........................................................16▪输入激励信号说明...........................................17▪输出结果说明...............................................17附录:源程序(附注释).............................................17湖南理工学院-物电学院-自动打铃系统设计说明书4第一部分:设计题目及总体要求简介1.设计题目:自动打铃系统设计。2.设计要求简介:①基本计时和显示功能(24小时制显示),包括:1.24小时制显示;2.动态扫描显示;3.显示格式:88-88-88;②能设置当前时间(含时、分);③能实现基本打铃功能,规定:06:00起床铃,打铃5s;clk:标准时钟信号;clk_1k:扫描时钟;mode:功能控制信号;为0:计时功能;为1:闹钟功能;为2:手动校时功能;turn:接按键,在手动校时功能时,选择是调整小时,还是分钟;change:接按键,手动调整时,每按一次,计数器加1;alert:输出到扬声器的信号,用于产生打铃声;第二部分:设计方案说明设计方案:自动打铃是一种现代提醒工具,有着广泛的应用。例如学校的上课铃声,每天在既定的时间响铃,这就是自动打铃系统的具体应用之一。打铃系统设置从早上的6点开始起床打铃,铃声持续响5秒。利用IF语句控制打铃的时间,在规定的时间内到打设既定的打铃间隔时间时给出一个5秒的高电平脉冲,让铃声连续响起。还需要一个校时功能。本次设计主要采用VerilogHDL硬件描述性语言、分模块法去设计。由于这湖南理工学院-物电学院-自动打铃系统设计说明书5次开发板提供的是50M晶振,所以首先要对时钟进行分频,当计时到2FA_F07F时完成1s分频,通过计时到60s产生分钟进位信号,再通过60分钟产生进位信号。最后通过6个寄存器对时分进行锁存最终输出到8个数码管上完成显示。当显示时钟和默认闹钟时钟相等时,驱动打铃模块。通过mode,turn,change查看闹钟,时钟显示,调整时钟。总体设计框图如下图所示。部分软件控制流程示意图如下:控制模块时钟模块闹钟模块打铃模块闹钟显示时钟显示分频模块显示模块晶振数码管扬声器校时模块按键开始mode校时功能闹铃功能计时功能调整小时调整小时调整分钟调整分钟返回计时返回计时turnLD_hour亮LD_min亮LD_alert亮change湖南理工学院-物电学院-自动打铃系统设计说明书6第三部分:各部分功能介绍及程序(部分)1.系统框图顶层电路主要由FPGA实现,输出信号接到八位数码管、LED指示灯及扬声器上,系统框图如图所示2.选择的FPGA芯片及配置▪EP1K10TC100-3本系统采用ACEX1K系列的EP1K10TC100-3,由于FPGA器件的规模可以做的非常大,其内部主要由大量纵横排列的逻辑块(LogicBlock,LB)构成,大量这样的逻辑块通过内部连线和开关就可以实现非常复杂的逻辑功能。由于FPGA是基于SRAM结构的,具有易失性,在此采用被动串行配置(PS)方式,由外部的计算机控制配置过程,使用USB-Blaster下载电缆下载程序。ACEX系列是当今AlteraCPLD中应用前景最好的器件系列之一[1,2]。该系列的FPGA由逻辑阵列块,LAB、嵌入式阵列块EAB、快速互联一计IO单元构成,每个逻辑阵列块包含8个逻辑单元LE(logicelement)和一个局部互联。每个逻辑单元则有一个4输入查找表(LUT)、一个可编程触发器、快速进位链、级连链组成,对个LAB和多个EAB则可通过快速通道互相连接。EAB是ACEX系列器件在结构设计上的一个重要的部件,他是输入端口和输出端口都带有的触发器的一种灵活的RAM快,其主要功能是实现一些规模不太大FIFO,ROM、RAM和双端口RAM等clkclk_1kmodechangealertLD_alertLD_hourLD_minture(hour、min、sec)outAltera顶层模块湖南理工学院-物电学院-自动打铃系统设计说明书7▪8段共阴极LED显示(seg3-seg10)▪扬声器▪开关及校时按钮3.各模块(元件)说明▪各子模块说明(1)校正模块:在实验中,产生基准信号,校正时间。always@(posedgeclk)beginclk_2hz=~clk_2hz;if(sound==3)beginsound=0;ear=1;end//ear用于产生或屏蔽声音信号elsebeginsound=sound+1;ear=0;endendalways@(posedgeclk_2hz)//用4hz的输入信号产生1hz的时基信号clk_1hz=~clk_1hz;(2)计时和闹铃模块下的调整模块:当mode信号为0时,在基准时钟信号clk下,系统按60进制加1计时;当mode信号为2时,若检测到turn信号的脉冲时,在校对小时和分钟之间作切换,当前的调整状态可通过LD_hour或LD_min指示灯查看,change信号每来一个脉冲,计数器加1,这样可以将系统当前的时间调到任意时刻。当mode信号为2,在检测到turn信号的脉冲时,闹铃定时在小时和分钟之间作切换,当前的调整状态可通过LD_hour或LD_min指示灯查看,change信号每来一个脉冲,计数器加1,这样可以给系统设置任意时刻的闹铃,设置完成之后LD_alert指示灯会常亮。always@(negedgeclk)//如果长按change信号,则生成信号用于连续快速加1if(count2)beginif(loop1==3)num1=0;elsebeginloop1=loop1+1;num1=0;end湖南理工学院-物电学院-自动打铃系统设计说明书8endelsebeginloop1=0;num1=0;endalways@(negedgeclk)//产生num2信号if(countb)beginif(loop2==3)num2=1;elsebeginloop2=loop2+1;num2=0;endendelsebeginloop2=0;num2=0;endalways@(negedgeclk)if(count1)beginif(loop3==3)num3=1;elsebeginloop3=loop3+1;num3=0;endendelsebeginloop3=0;num3=0;endalways@(negedgeclk)if(counta)beginif(loop4==3)num4=1;elsebeginloop4=loop4+1;num4=0;endendelsebeginloop4=0;num4=0;endassignct1=(num3&clk)|(!num3&m_clk);//ct1用于及计时、较时中的分钟计数assignct2=(num1&clk)|(!num1&count2);//ct2用于定时状态下调整分钟信号assigncta=(num4&clk)|(!num3&h_clk);//cta用于及计时、较时中的小时计数assignctb=(num2&clk)|(!num3&countb);//ctb用于定时状态下调整小时信号always@(posedgeclk_1hz)//秒计时和秒调整进程if(!(sec1^8'h59)|turn&(!m))beginsec1=0;if(!(turn&(!m)))minclk=1;end//按住turn秒信号清0elsebeginif(sec1[3:0]==4'b1001)beginsec1[3:0]=4'b0000;sec1[7:4]=sec1[7:4]+1;end湖南理工学院-物电学院-自动打铃系统设计说明书9elsesec1[3:0]=sec1[3:0]+1;minclk=0;endassignm_clk=minclk||count1;always@(posedgect1)//分计时和分调整进程beginif(min1==8'h59)beginmin1=0;hclk=1;endelsebeginif(min1[3:0]==9)beginmin1[3:0]=0;min1[7:4]=min1[7:4]+1;endelsemin1[3:0]=min1[3:0]+1;hclk=0;endendassignh_clk=hclk||counta;always@(posedgecta)//小时计时和小时调整进程if(hour1==8'h23)hour1=0;elseif(hour1[3:0]==9)beginhour1[7:4]=hour1[7:4]+1;hour1[3:0]=0;endelsehour1[3:0]=hour1[3:0]+1;always@(posedgect2)//闹钟定时功能中的分钟调整进程if(amin==8'h59)amin=0;elseif(amin[3:0]==9)beginamin[7:4]=amin[7:4]+1;amin[3:0]=0;endelseamin[3:0]=amin[3:0]+1;always@(posedgectb)//闹钟定时功能中的小时调整进程if(ahour==8'h23)ahour=0;elseif(ahour[3:0]==9)beginahour[7:4]=ahour[7:4]+1;ahour[3:0]=0;endelseahour[3:0]=ahour[3:0]+1;always//闹铃功
本文标题:自动打铃EDA设计报告
链接地址:https://www.777doc.com/doc-2051087 .html