没有合适的资源?快使用搜索试试~ 我知道了~
FPGA数字钟.pdf
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 48 浏览量
2023-05-19
13:16:21
上传
评论
收藏 873KB PDF 举报
温馨提示
试读
29页
FPGA数字钟.pdf
资源推荐
资源详情
资源评论
.
数字钟设计
一、实验目的:
通过设计实例,深入理解自顶向下设计方法,系统设计规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 实验平台搭建模拟测试平台测试,测试验证数字钟实
现设计目标。
三、系统设计关键技术
word 版
.
1、按键消抖
按键按下
前沿抖动
闭合稳定
图 3-1
后沿抖动
由图 3-l 可见,在按键闭合和断开时产生了多个边沿,而在实际中每按一次
键,我们只需要一组稳定的上升或下降边沿,所以对于电路中的按键信号,如果
我们不滤除抖动的话,还是简单的读取信号的边沿,会引起一次按键被误读屡次,
这样就会引起电路的误动作。为了保证按一次键电路只有一次正确的响应,即在
键闭合稳定时读取键的状态,就要求电路中必须采取滤除抖动的措施。
原理:在设计中用时钟信号〔key_clk〕进展采样,对于按键输入信号,当
两次采样信号一样时,这是判定已经稳定的按下或放开了按键,D 触发器相应的
被置成 0 态或 1 态。如两次采样结果不一样,那么触发器维持原输出信号不变,
由于直接由触发器输出的信号时间宽度可能过长,所以在触发器后再接一级同步
化电路,保证每次输出的信号只占有一个时钟周期的宽度。应用这种方法去滤除
抖动,关键是确定采样时钟的频率,保证两次采样的时间间隔能够大于按键的抖
动时间,且小于正常按键时的按键稳定闭合时间。
2、采用 BCD 码的计数模式
时、分、秒的计数都采用BCD 码计数,如果采用二进制计数,分的最大计数
值为 59,只需要 6 位就可以,因为时的计数值要通过两个数码管显示,所以计
数值需要经过两级译码才能驱动数码管使其正常显示,必须先把计数值译码成上
下四位的 BCD 码,然后再分别把高、低四位 BCD 码译码成数码管的显示编码。如
果直接采用 BCD 码计数,只需要一次译码就可以正常显示计数值,故采用 BCD
码计数更方便,简化电路。
3、数码管的动态显示
数码管的动态扫描,就是轮流向各位数码管送出字形码和相应的位选,利用
word 版
.
发光管的余辉和人眼视觉暂留作用,使人的感觉好似各位数码管同时在显示。数
码管的轮流扫描频率不能太小,否那么数码管不能同时显示,一般扫描频率在
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:调时按键;
word 版
.
输出信号:
d_col[7:0]:八位 LED 动态选择;
d_out[7:0]:LED 显示数据;
scan_clk
h_data[7:0]
reset
Freq_div
s_clk
Clock_cnt
clk
d_col[7:0]
m_data[7:0]
s_data[7:0]
Display
d_out[7:0]
key_clk
m_sets_set
h_set
up
set
Key_ctl
up_en
set_en
Clock_ctl
图 4-1 系统框图
Freq_div
Type
clk INPUT
rst_n INPUT
scan_clk OUTPUT
s_clk OUTPUT
key_clk OUTPUT
inst1
<<s_set>>
<<clk>>
<<scan_clk>>
<<s_clk>>
<<key _clk>>
<<s_clk>>
<<rst_n>>
<<up_en>>
<<h_set>>
<<m_set>>
Clock_cnt
I/O...
clk
h_set
m_set
s_set
up_en
rst_n
s_clk
h_data[7..0]
m_data[7..0]
inst3
I/O
clk
INPUT
VCC
rst_n
INPUT
VCC
Type...
INPUT
INPUT
INPUT
INPUT
INPUT
INPUT
INPUT
OUTPUT
OUTPUT
<<h_data[7..0]>>
<<m_data[7..0]>>
<<s_data[7..0]>>
<<clk>>
<<rst_n>>
<<key _clk>>
Key_ctl Clock_ctl
set
INPUT
VCC
I/O
clk
set
up
key_clk
rst_n
up_en
set_en
Type
INPUT
INPUT
INPUT
INPUT
INPUT
OUTPUT
OUTPUT
<<clk>>
<<set_en>>
<<rst_n>>
<<up_en>>
<<set_en>>
I/O
clk
rst_n
set_en
h_set
m_set
s_set
Type
INPUT
INPUT
INPUT
OUTPUT
OUTPUT
OUTPUT
<<h_set>>
<<m_set>>
<<s_set>>
up
INPUT
VCC
inst
inst2
Display
<<clk>>
<<rst_n>>
<<h_data[7..0]>>
<<m_data[7..0]>>
<<s_data[7..0]>>
<<scan_clk>>
I/O Type
clk INPUT
scan_clk INPUT
rst_n INPUT
h_data[7..0]INPUT
m_data[7..0]INPUT
s_data[7..0]INPUT
d_ctl[7..0] OUTPUT
d_out[7..0]OUTPUT
OUTPUT
d_out[7..0]
OUTPUT
d_ctl[7..0]
inst4
图 4-2 顶层模块设计
4、每个模块详细功能说明,信号定义及时序定义
〔1〕Freq_div 模块:将 40M Hz 的系统时钟进展分频产生三种时钟使能信
word 版
.
号:scan_clk(1khz)、key_clk(100hz)、s_clk(1hz)。
输入信号:
clk:系统时钟
输出信号:
scan_clk:数码管扫描频率
s_clk:1s 时钟信号
〔2〕Key_ctl 模块:完成对按键的同步、去抖功能,输出稳定的按键信号
set_en、up_en。
输入信号:
clk:系统时钟 rst_n:复位信号
up:计数值加按键
key_clk:按键采样频率
rst_n:复位信号
set:模式设置按键
输出信号:
Set_en:模式设置使能信号 up_en:按键加使能信号
〔3〕Clock_ctl 模块:通过 set_en 信号对“正常显示〞、“时设置〞、“分
设置〞、“秒设置〞模式的循环控制,并产生设置信号 h_set〔时〕、m_set〔分〕、
s_set〔秒〕供 Clock_cnt 使用。
输入信号:
Clk:系统时钟; reset:复位信号;
set_en:工作模式选择信号;
输出信号:
H_set:时设置使能信号; M_set:分设置使能信号,
S_set:秒设置使能信号;状态机信号:
Normal:正常显示状态; Hour_set:时设置状态;
Minute_set:分设置状态;Second_set:秒设置状态。
〔4〕Clock_cnt 模块:完成数字钟的正常显示和数字钟的时、分、秒的校时,
在校时模式下,通过 ctl 信号控制 LED 的闪烁,也就是间隔 1s 输出时间数据。
输入信号:
Clk:系统时钟 reset:复位信号;
up_en:校时信号 s_clk:1 秒脉冲信号;
word 版
剩余28页未读,继续阅读
资源评论
hhappy0123456789
- 粉丝: 62
- 资源: 5万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- MATLAB(GUI)的音频处理系统
- 基于 STM32 的微型调度器
- 基于STM32微控制器的PWM电机速度控制
- 基于Springboot+Vue的图书馆管理系统源码+数据库(高分毕设)
- Lesson 1.机器学习基本概念与建模流程(1).ipynb
- 一个基于 React、Dva、DataV、ECharts 框架的大数据可视化平台 支持数据动态刷新渲染、屏幕适配
- 基于Springboot+Vue的房屋租赁管理系统源码+数据库(高分毕设)
- WordPress响应式简约博客主题Alt-Blog主题
- 基于Springboot+Vue的房屋租赁管理系统源码+数据库+PPT介绍(高分毕业设计)
- 46核心知识点四十六: H(z)零极点与系统因果稳定性(8772342).vip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功