没有合适的资源?快使用搜索试试~ 我知道了~
首页基于FPGA的电子钟设计(VHDL语言
基于FPGA的电子钟设计(VHDL语言
5星 · 超过95%的资源 需积分: 9 50 下载量 121 浏览量
更新于2023-03-03
评论 2
收藏 52KB DOC 举报
近年来,随着数字集成电路技术的发展,用以前传统的方法进行芯片或系统设计已不能满足要求, 迫切需要提高设计效率。能大大降低设计难度的VHDL设计方法正在被越来越广泛的采用。VHDL 即超高速集成电路硬件描述语言,诞生于1982 年。1987年底, VHDL被IEEE和美国国防部确认为标准硬件描述语言。此后VHDL 在电子设计领域得到了广泛的接受,并逐步取代了原有的非标准的硬件描述语言。1993年IEEE对VHDL 进行了修订,从更高的抽象层次和系统描述能力上扩展VHDL 的内容,公布了新版本的VHDL,即IEEE标准的1076--1993 版本。现在, VHDL作为IEEE的工业标准硬件描述语言,已成为通用硬件描述语言。
资源详情
资源评论
资源推荐
引言:近年来,随着数字集成电路技术的发展,用以前传统的方法进行芯片或系统设计
已不能满足要求, 迫切需要提高设计效率。能大大降低设计难度的 VHDL 设计方法正在被越来
越广泛的采用。VHDL 即超高速集成电路硬件描述语言,诞生于 1982 年。1987 年底, VHDL 被
IEEE 和美国国防部确认为标准硬件描述语言。此后 VHDL 在电子设计领域得到了广泛的接受,
并逐步取代了原有的非标准的硬件描述语言。1993 年 IEEE 对 VHDL 进行了修订,从更高的抽
象层次和系统描述能力上扩展 VHDL 的内容,公布了新版本的 VHDL,即 IEEE 标准的 1076--
1993 版本。现在, VHDL 作为 IEEE 的工业标准硬件描述语言,已成为通用硬件描述语言。
关键字:电子钟、FPGA、VHDL 语言
前言:现在电子钟产品可谓百家争鸣,市场上到处可见一些功能齐全的设备,可能基于单
片机的比较多,用 FPGA 设计电子钟可能比较少。因为两个都可以实现同样的功能,而 FPGA
芯片的价格远比单片机高。出于利润,当然会选择开发成本少的产品。本次设计的目的是为了
检验所学的知识(VHDL 语言)同时结合实践巩固知识,由于初涉该领域,相关的知识可能不
够全面,实践的经验不够,所以本设计旨在能够实现该功能并达到一定的精度,对于各模块设
计的优化和性能等方面没有多加考虑。为提高精度,所以本设计采用 12MHZ 的 CLK 信号,这
样产生的误差也较小。
一、设计目的
1、掌握各类计数器及将它们相连的方法;
2、掌握多个数码管动态显示的原理和方法
3、掌握 FPGA 技术层次化设计
4、进一步了解 VHDL 硬件描述语言的设计思想
5、了解有关数字系统的设计
二、设计原理:
数字钟电路的基本结构由两个 60 进制计数器和一个 24 进制计数器组成,分别对秒、分、
小时进行计时,当计时到 23 时 59 分 59 秒时,再来一个计数脉冲,则计数器清零,重新开始
计时。秒计数器的计数时钟 CLK 为 1Hz 的标准信号,可以由晶振产生的 24 MHz 信号通过分
频得到。当数字钟处于计时状态时,秒计数器的进位输出信号作为分钟计数器的计数信号,分
钟计数器的进位输出信号又作为小时计数器的计数信号时、分、秒的计时结果通过 6 个数码管
来动态显示。数字钟除了能够正常计时外,还应能够对时间进行调整。因此,通过模式选择信
号 MOD1、MOD2 控制数字钟的工作状态,即控制数字钟,使其分别工作于正常计时,调整分、
时和设定分、时 5 个状态。当数字钟处于计时状态时,3 个计数器允许计数,且秒、分、时计
数器的计数时钟信号分别为 CLK,秒的进位, 分的进位;当数字钟处于调整时间状态时,被调的
分或时会一秒一秒地增加;当数字钟处于定时状态时,可以设定小时和分;当计时到所设定的
时刻时,speak 将会被赋予 1KHz 的脉冲信号用于驱动扬声器,持续 1 分钟。
三、电子钟相关功能描述如下:
(1) 计时功能:这是本计时器设计的基本功能,可进行时、分、秒计时,并显示。
(2) 闹钟功能:如果当前时间与设置的闹钟时间相同,则扬声器发出一段音乐,并维持一
分钟。
(3) 调时调分调闹钟功能:当需要校时或者要重新设置闹钟的时间时,可通过实验箱上的
按键控制。
四、实现涉及的几个重要模块如下:
(1)分频器将较高速的外部时钟频率分频成每分钟一次的时钟频率,以便进行时钟计数。
(2) 计数器实际上是一个异步复位、异步置数的累加器,通常情况下进行时钟累加计数,
必要时可置入新的时钟值,然后从该值开始新的计数。
(3 寄存器用于保存用户设置的闹钟时间,是一个异步复位寄存器。
(4) 显示器根据需要显示当前时间、用户设置的闹钟时间或用户通过键盘输入的新的时间 ,
同时判断当前时间是否已到了闹钟时间,实际上是一个多路选择器加比较器。
(5) 控制器是设计的核心部分,按设计要求产生相应的控制逻辑,以控制其他各部分的工
作。
(6)乐曲演奏电路,实现闹钟的功能,那时间就发出一段叫“梁祝”的乐音。
实验代码:
1)主程序模块:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity szz is
port(clk:in std_logic;
md1:in std_logic;
md2:in std_logic_vector(1 downto 0);
speak:out std_logic;
h1,h2,m1,m2,s1,s2:out std_logic_vector(3 downto 0));
end szz;
architecture one of szz is
signal hou1:std_logic_vector(3 downto 0);
signal hou2:std_logic_vector(3 downto 0);
signal min1:std_logic_vector(3 downto 0);
signal min2:std_logic_vector(3 downto 0);
signal seth1:std_logic_vector(3 downto 0);
signal seth2:std_logic_vector(3 downto 0);
signal setm1:std_logic_vector(3 downto 0);
signal setm2:std_logic_vector(3 downto 0);
signal sec1:std_logic_vector(3 downto 0);
signal sec2:std_logic_vector(3 downto 0);
begin
-----------------------------------------------小时十位
h110:process(clk,hou2,min1,min2,sec1,sec2,md1,md2)
begin
if clk'event and clk='1' then
if (hou1="0010" and hou2="0011")and(min1="0101" and min2="1001")
and (sec1="0101" and sec2="1001") then
hou1<="0000";
elsif hou1="0010"and hou2="0011"and md1='0'
and md2="01" then--当时间为 23 点且处于校时状态时
hou1<="0000";
elsif (hou2="1001"and(min1="0101" and min2="1001")
and (sec1="0101" and sec2="1001"))or (hou2="1001"and md1='0' and md2="01")
then
hou1<=hou1+1;
end if;
end if;
end process h110;
-----------------------------------------------小时个位
剩余10页未读,继续阅读
zmw_28
- 粉丝: 1
- 资源: 40
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
- SPC统计方法基础知识.pptx
- MW全能培训汽轮机调节保安系统PPT教学课件.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论4