FPGA数字钟

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数字钟设计

一、实验目的:

通过设计实例,深入理解自顶向下设计方法,系统设计规X、系统设计、模块设计和系统仿真与实现各阶段的设计内容,初步掌握规X的数字系统设计方法并实践。

二、实验要求:

1、系统概述:设计一个用 LED 7段显示器显示的24小时制数字钟。

2、系统目标:

〔1〕用8个LED 显示时间,如9点25分10秒显示为,09-25-10。

〔2〕设置2个按键,按键SET用于工作模式选择,按键UP用于设置数值。〔可选〕

〔3〕按SET键循环设置工作模式为:正常显示->时设置->分设置->秒设置。在设置工作模式时,被设置相应数字按1秒速率闪烁,其它数字不变。

〔4〕在设置工作模式时,按UP键一次,被设置相应数字增加1,加到最大值后再加返回0,如小时加到23后再加就返回0,分和秒加到59后再加返回0 。

3、系统设计依据:

外部输入时钟为40MHZ,通过分频产生秒脉冲信号,用模60计数器对其计数产生分脉冲信号,对分脉冲用模60计数器对其计数产生时脉冲信号,再用模24计数器对时脉冲计数,即可实现一天24小时的时间信号,通过7段LED数码管显示出来那么为根本数字钟,校时电路通过两个外部异步按键对“时〞、“分〞、“秒〞显示数字进展校对调整。

4、系统实现要求:

要求用Mars-EP1C3-EDA实验平台。芯片与封装选择:本设计用EP1C3T FPGA实现,144脚封装,输入输出为LVTTL电平。

5、系统验证及测试要求:

用Mars-EP1C3-EDA实验平台搭建模拟测试平台测试,测试验证数字钟实现设计目标。

三、系统设计关键技术

1、按键消抖

闭合稳定

前沿抖动后沿抖动

图3-1

由图3-l可见,在按键闭合和断开时产生了多个边沿,而在实际中每按一次键,我们只需要一组稳定的上升或下降边沿,所以对于电路中的按键信号,如果我们不滤除抖动的话,还是简单的读取信号的边沿,会引起一次按键被误读屡次,这样就会引起电路的误动作。为了保证按一次键电路只有一次正确的响应,即在键闭合稳定时读取键的状态,就要求电路中必须采取滤除抖动的措施。

原理:在设计中用时钟信号〔key_clk〕进展采样,对于按键输入信号,当两次采样信号一样时,这是判定已经稳定的按下或放开了按键,D触发器相应的被置成0态或1态。如两次采样结果不一样,那么触发器维持原输出信号不变,由于直接由触发器输出的信号时间宽度可能过长,所以在触发器后再接一级同步化电路,保证每次输出的信号只占有一个时钟周期的宽度。应用这种方法去滤除抖动,关键是确定采样时钟的频率,保证两次采样的时间间隔能够大于按键的抖动时间,且小于正常按键时的按键稳定闭合时间。

2、采用BCD码的计数模式

时、分、秒的计数都采用BCD码计数,如果采用二进制计数,分的最大计数值为59,只需要6位就可以,因为时的计数值要通过两个数码管显示,所以计数值需要经过两级译码才能驱动数码管使其正常显示,必须先把计数值译码成上下四位的BCD码,然后再分别把高、低四位BCD码译码成数码管的显示编码。如果直接采用BCD码计数,只需要一次译码就可以正常显示计数值,故采用BCD 码计数更方便,简化电路。

3、数码管的动态显示

数码管的动态扫描,就是轮流向各位数码管送出字形码和相应的位选,利用

发光管的余辉和人眼视觉暂留作用,使人的感觉好似各位数码管同时在显示。数码管的轮流扫描频率不能太小,否那么数码管不能同时显示,一般扫描频率在500Hz到1Khz即可。本设计中的数码管位选信号为低电平有效,数码管的段为低显,复位后把位选信号d_col赋值为8’b1111_1110,然后以1Khz的扫描频率使其循环左移,并送出相应位的字形码,即可实现数码管的动态显示。

四、系统详细设计方案:

1、系统设计分析:

数字钟是一个将“ 时〞,“分〞,“秒〞显示于人的视觉器官的计时装置。它的计时周期为24小时,显示满刻度为23时59分59秒,另外应有校时功能。秒信号产生器是整个系统的时基信号,它直接决定计时系统的精度,通过将外部输入时钟为40MHZ分频实现。将标准秒信号送入“秒计数器〞,“秒计数器〞采用60进制计数器,每累计60秒发生一个“分脉冲〞信号,该信号将作为“分计数器〞的时钟脉冲。“分计数器〞也采用60进制计数器,每累计60分钟,发出一个“时脉冲〞信号,该信号将被送到“时计数器〞。“时计数器〞采用24进制计时器,可实现对一天24小时的累计。

将“时〞、“分〞、“秒〞计数器的输出值经七段显示译码器译码,通过八位LED七段显示器显示出来,显示格式为“时—分—秒〞。

通过Set和Up按键对“时〞、“分〞、“秒〞显示数字进展校对调整,Set 键循环控制工作模式,即“正常显示〞、“时设置〞、“分设置〞、“秒设置〞的循环控制,在设置工作模式时,被设置相应数字按1秒速率闪烁,其它数字不变。Up键实现调整状态时相应时间的快速加“1〞以实现时间校准。

2、系统时钟和复位规划:

本设计采用一个全局时钟clk和复位reset。

3、顶层模块划分及模块功能说明

系统分为5个模块,Freq_div模块,Clock_cnt模块,Clock_ctl模块,Key_ctl模块和Display模块。系统框图如图4-1所示,图4-2是顶层模块设计。

输入信号:

clk:系统时钟; reset:系统复位;

set:工作模式选择按键; up:调时按键;

输出信号:

d_col[7:0]:八位LED 动态选择; d_out[7:0]:LED 显示数据;

图4-1 系统框图

图4-2 顶层模块设计

4、每个模块详细功能说明,信号定义及时序定义

〔1〕Freq_div 模块:将40M Hz 的系统时钟进展分频产生三种时钟使能信

相关文档
最新文档