当前位置:文档之家› 根据FPGA的自动打铃系统的设计与实现

根据FPGA的自动打铃系统的设计与实现

.- 自动打铃系统设计说明书 学 生 姓 名: 罗 衡 学 号:14092500060 专 业 班 级:电子09-2BF 报告提交日期:2011-11-28

湖 南 理 工 学 院 物 电 学 院 .- 目 录 一、题目及要求简介···············································1

1.设计题目···················································· 1 2.总体要求简介················································ 1 二、设计方案说明················································· 1

三、各部分功能介绍及程序······································· 2

1.系统框图···················································· 2 2.选择的FPGA芯片及配置······································· 2 3.各模块(元件)说明·········································· 2 四、仿真结果····················································· 4

1.计时进位···················································· 4 2.手动校时···················································· 5 3.六点整闹铃·················································· 5 五、说明·························································· 5

1.输入激励信号说明············································ 5 2.输出结果说明················································ 6 六、源程序························································ 6

1.顶层模块···················································· 6 2.模式控制子模块·············································· 7 3.计时及调整子模块············································ 8 4.闹铃及调整子模块············································10 5.显示子模块··················································11 七、参考文献·····················································14 .- 一、设计题目及要求简介 1.设计题目 基于FPGA的自动打铃系统的设计与实现 2.总体要求简介 (1)基本计时和显示功能 ① 24小时制显示 ② 动态扫描显示 ③ 显示格式:88-88-88 (2)能设置当前时间(含时、分) (3)能实现基本打铃功能,上午06:00起床铃,打铃5秒 二、设计方案说明 本系统采用自顶向下的模块化设计方法,将数字闹钟按照功能实现分为模式控制模块、计时及调整模块、闹铃及调整模块、显示模块。系统调整部分软件控制流程示意图如图2-1所示。

图2-1 ↓

↓ ↓

↓ ↓

↓ ↓

开始 mode 计时功能 turn change

闹铃功能 调整小时 调整分钟 返回计时 LD_hour亮 LD_min亮 校时功能 调整小时 调整分钟 返回计时 LD_alert亮

→ → →

↔ ↔ → 切换 切换 ←

0 1 2 .- 三、各部分功能介绍及程序 1.系统框图 顶层电路主要由FPGA实现,输出信号接到八位数码管、LED指示灯及扬声器上,系统框图如图3-1所示。

图3-1 2.选择的FPGA芯片及配置 本系统选择ACEX1K系列的EP1K10TC100-3芯片,由于FPGA器件是基于SRAM结构的,具有易失性,在此采用被动串行配置(PS)方式,由外部的计算机控制配置过程,使用USB-Blaster下载电缆下载程序。 3.各模块(元件)说明 3.1 顶层文件端口说明 module alarmclock(clk,clk_1k,mode,change,turn,sel,decodeout,alert, LD_alert,LD_hour,LD_min); input clk,clk_1k,mode,change,turn; output alert,LD_alert,LD_hour,LD_min;

clk clk_1k mode turn change

八位数码管显示模块

Alert LD_alert LD_hour LD_min sel decodeout

顶 层 模 块

Altera ▶

▶ ▶

▃ .- output[2:0] sel; output[7:0] decodeout; reg[7:0] hour,min,sec,hour1,min1,sec1,ahour,amin; reg[1:0] m,fm,num1,num2,num3,num4; reg[1:0] loop1,loop2,loop3,loop4,sound; reg LD_alert,LD_hour,LD_min; reg clk_1HZ,clk_2HZ,minclk,hclk; reg alert1,ear; reg count1,count2,counta,countb; wire ct1,ct2,cta,ctb,m_clk,h_clk; reg [2:0] sel; reg [7:0] decodeout; 3.2 顶层文件引脚映射说明 输入引脚5个,输出引脚15个,映射关系如图3-2所示。

图3-2 .- 3.23各子模块说明 ①模式控制子模块 此模块通过mode信号0、1、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指示灯会常亮(注:此模块程序中已经加入了六点整闹铃控制语句)。 ④显示子模块 此模块用于将实时时间(包括调整过程中时钟的状态)输出到八位数码管中,通过sel信号位选的控制动态扫描显示当前时钟。 四、仿真结果 1.计时进位(以23:59:59为例) 当秒计时满59时,向分钟进位并重新开始计时;当分钟计时满59时,向小时进位并重新开始计时;当小时计时满23时,清零并重新开始计时,23:59:59时刻后从00:00:00重新开始计时,仿真波形如图4-1所示。

图4-1 .- 2.手动校时(以06:05为例) 给mode输入2个连续的高脉冲使系统进入校时模式,再给change输入6个连续高脉冲使小时调到六点,此过程中LD_hour指示灯亮,再给turn一个高脉冲切换到调分钟状态,再给change输入5个连续高脉冲使小时调到五分钟,此过程中LD_min指示灯亮,再给mode一个高脉冲回到计时模式,此后系统从06:05分开始计时,仿真波形如图4-2所示。

图4-2 3.六点整闹铃 闹铃指示灯LD_alert常亮表明已经设置闹铃,06:00开始闹铃5秒,仿真波形如图4-3所示。

图4-3 五、说明 1.输入激励信号说明 clk:标准时钟信号; clk_1k:数码管扫描时钟; mode:功能模式控制信号,为0:计时功能; 为1:闹铃功能; 为2:校时功能;

相关主题