基于FPGA的数字日历设计

最新更新时间:2014-12-22来源: 互联网关键字:FPGA  数字日历设计 手机看文章 扫描二维码
随时随地手机看文章

  基于FPGA 设计数字日历可以实现以软件方式设计硬件的目的,无需购买专用数字芯片,从而克服了传统利用多片数字集成电路设计数字日历存在焊接麻烦、调试繁琐、成本较高等问题。而且,基于FPGA 的数字日历与传统系统相比,在设计灵活、开发速度、降低成本、计时精度、功能实现上都得到大幅度提升,能够更好地满足人们日常生活的需要。

  本文介绍如何利用VHDL 硬件描述语言设计一个具有年、月、日、星期、时、分、秒计时显示功能,时间调整功能和整点报时功能的数字日历。在Quartus Ⅱ开发环境下,采用自顶向下的设计方法,建立各个基本模块,再构建成一个完整的基于FPGA 设计的数字日历的顶层模块,然后对其进行编译、仿真、引脚锁定,最终下载到可编程逻辑器件上进行结果验证。

  1 数字日历整体设计方案

  基于FPGA 的数字日历设计分为硬件设计和软件设计两大部分。其原理框图如图1所示。整个数字日历由六个部分组成:显示控制部分,时分秒部分,年月日部分,定时与整点报时部分,星期部分,调整控制部分。秒、分、时分别由两个60进制的计数器和一个24进制的计数器组成。当个计数器达到进位的条件时向下一计数器进位。同样日、月、年也是由不同的计数器组成,当达到所需进位的条件时向下一计数器进位,各计数器在进位的同时分别把各自的结果输出给显示部分进行实时显示。

  

 

  图1 数字日历原理框图

  2 数字日历的工作原理

  首先由外部振荡器产生稳定的高频脉冲信号,作为数字日历的时间基准,然后经过分频器输出标准秒脉冲,输入到FPGA的CLOCK端,实现计数。当秒计数器满60后向分计数器进位,分计数器满60后向小时计数器进位,小时计数器按照“24进1”规律计数。计满后各计数器清零,重新计数。日部分由于日有28天、29天、30天、31天4种情况,故日由年和月共同判断其天数,日计满后向月进位,月满后向年进位。计数器的输出分别经译码器送数码管显示。计时出现误差时,可以用校时电路校时、校分、校秒和校年、校月、校日。

  设计中用到了6 个按键K1,K2,K3,K4,ZHENG,NAO。其中K1用于切换显示,刚开始时显示日期,按两次K1显示星期+时间,再按两次K1显示定时时间,再按两次重新显示日期,以此循环。K2、K3和K4配合进行调节:开始正常显示不进行调节;当按两下K2 键切换到对分钟进行调节,此时每按两下K3 键分钟加1;再按两下K2 键切换到对小时进行调节,此时每按两下K3 键小时加1;依照分钟→小时→星期→天→月→年→定时→正常→分钟的次序循环调节,每按两下K2 键切换到调节相应显示,此时每按下K3键两次,对应显示加1;当切换到定时调节时,每按两下K3键,定时的分钟加1,此时按两下K4 键,切换到定时小时调节,每按两下K3 键,定时的小时加1。按键ZHENG和NAO为整点报时和定时闹钟的使能端(低电平有效)。

  3 软件设计

  软件设计分为秒分时、年月日、按键调整、控制显示、闹钟等几大模块。设计好各子模块,然后在原理图编辑窗口创建顶层原理图文件shuzirili.bdf,将各子模块按照逻辑关系连接起来得到数字日历电路核心部分的原理图。下面对各子模块设计及仿真进行介绍。

  3.1 时分秒模块

  分和秒都是60进制的计数器,小时则是24进制的计数器,先对各个子模块进行设计编译,验证无误后再将其组织到一起。外部时钟信号通过秒模块的clk 输入,产生的进位信号输送到分模块的clk,分模块产生的进位信号输送到小时模块的clk,构成时分秒模块。其结构图如图2所示。

  

 

  图2 时分秒原理图

  3.2 星期模块

  星期模块为七进制计数器。其计数时钟信号来自于调时电路产生的星期进位脉冲信号,计数至6 瞬间,计星期模块返回0 重新开始计数。

  3.3 年月日模块

  年月日模块有daycounter 模块、days-control 模块、monthcounter模块、yearcounter模块组成,具有大小月判断和闰年判断功能,其结构图如图3所示。

  

 

  图3 年月日连接框图

  下面以年月日模块为例,连接好之后进行编译并仿真,闰/平年的2月仿真结果如图4,图5所示,年进位如图6所示。

  

 

  图4 仿真结果(2008年2月)

  

 

  图5 仿真结果(2005年2月)

 

  图6 仿真结果(2004年12月)

  年月日模块计数设定为2000年~2999年,从图4中可以看出2008年2月,计数到29天;从图5得到2005年2 月计数到28天;从图6看出2004年12月计数到31天,设计正确。

  3.4 定时模块

  定时模块通过按键K4来切换调节定时的分钟和小时,调整功能由调时模块的按键K3来完成,每按两下K3对应的显示加1。

  3.5 调时模块

  调时模块设计思想是:通过把整个设计中的上一个模块(比如:分的上一个模块是秒;年的上一个模块是月,等等)的进位输出接到本模块的输入in,out接到下一个模块的时钟输入。正常状态下sout=fin,fout=hin,hout=din,dout=min,mout=yin ,win=hout;当每按下两次K2键,产生一个上升沿分别对fin,hin,win,din,min,yin,dingshi调节,调节信号由K3 给出。其中定义一个信号w,计数到7 返0,对应正常状态,fin,hin,win,din,min,yin,dingshi 7个状态。

  当K2 每来一个上升沿时,分别对分,时,星期,天,月,年以及定时调整,调整信号由K3 给出,经仿真调时模块结果与系统设计要求符合。

  3.6 控制模块

  控制模块通过K1按键进行切换显示调整,起初显示年月日,按下2次K1显示时间,再按下2次显示定时时间。

  若仿真参数设置数值为:2013 年05 月15 日,星期三,15:28(33 s),定时为07:19。仿真后结果如图7所示。

  从图7可以看出,通过K1 按键控制显示,开始显示年月日:20130515,当按下K1 两下,显示星期+时间:03152833;再按两下显示定时时间:00000719。仿真结果与预期设计一致,设计正确。

  

 

  图7 仿真结果

  3.7 闹钟模块

  闹钟模块设计为当定时时间到或者整点时闹铃响,分别有ZHENG,NAO 两个控制端子控制,低电平有效。经验证,定时和整点报时仿真结果均符合设计要求。

  3.8 顶层模块

  将各个子模块设计好之后,并创建各自文件的图元,以供原理图设计文件中调用。然后在原理图编辑窗口创建顶层原理图文件shuzirili.bdf,即将各图元的引线端子按照逻辑关系连接起来,得到如图8所示的完整原理图,也即顶层模块。

  对顶层文件分别进行时间、日期、闹铃功能的波形仿真,得到的仿真结果和预想设计一致,表明设计正确。

  

 

  图8 顶层原理图

  4 硬件验证

  在Quartus Ⅱ开发环境中完成上述软件设计及仿真后,最后还需将程序下载到FPGA器件中进行硬件测试,以进一步验证所设计程序是否正确。硬件验证时,还需对顶层文件进行管脚分配、并编译,然后将编译好的目标文件通过下载电缆下载到FPGA 开发板中进行验证和调试。

  采用GW48-SPOC/EDA 实验开发系统并设置在工作模式0来验证设计结果。下面仅给出部分验证结果。刚完成下载,数码管显示20000000,按两下K1切换到时间显示,才刚刚开始计数,同时扬声器发出“滴答滴答”的频率为1 Hz的响声(为整点报时)60 s,然后通过按键8(K1)、键7(K2)、键6(K3)、键5(K4)对各个功能进行验证。首先调整时间,按两下K2键切换到分的调整,此时每按两下K3 键,分钟加1,验证过程中看到加到59就变为00;再按两下K2键切换到小时的调整,此时每按两下K3键,分钟加1;用同样的方法调整星期,天,月,年以及定时的分钟和小时。

  调整日期为2013年7月31号,当再调整天时,就变为2013年7月1号,结果如图9所示。其他月份实验结果也符合生活规律,与设计要求一致。

  其他的测试结果,数码管能够正确显示计时时间,定时验证及时间调节、整点报时均能够正常工作,实验结果符合设计要求。

  

 

  图9 实际电路验证

  5 结语

  本文基于FPGA 环境设计了一个具有年、月、日、星期、时、分、秒计时显示功能,时间调整功能和整点报时功能的数字日历系统,并将之下载到FPGA 芯片EP1C3T144-3 上进行结果验证,实验验证表明:数码管能够正确显示计时时间,能够通过按键调整时间,能够设定时间并调整,整点报时能够正常工作,实验结果符合设计要求。由于设计中利用硬件描述语言和FPGA芯片相结合进行数字日历的研究,即利用EDA 技术在一定程度上实现了硬件设计软件化,使设计过程变得相对简单,易于修改。

  另外,随着电子技术的发展,数字日历的功能会更加多样化,诸如增加农历显示;加入温度采集系统,能够显示每时每刻的环境温度;加入节气、节日提醒及显示功能,提醒人们农耕及休息时间;还可以加入语音识别,方便人们不动手实现对数字日历的调节等等。相信功能日趋完善多样化的数字日历将能更好地满足人们的各种需要,为人类服务。

关键字:FPGA  数字日历设计 编辑:探路者 引用地址:基于FPGA的数字日历设计

上一篇:Linux嵌入式系统开发平台选型探讨
下一篇:基于FPGA的LCD大屏幕拼接系统的设计

推荐阅读最新更新时间:2023-10-12 22:50

基于FPGA的高速数据采集控制模块设计
摘要 以Spartan-3E系列FPGA为核心控制模块,结合AD10242模数转换芯片和MXP-123MD-F光收发模块,实现了高速数据采集和光纤传输 其中FPGA用于实现数据控制、双口RAM和8B/10B编解码等功能。该数据采集控制模块具有性能可靠、实时性强、集成度高、扩展灵活等特点,并且通过试验验证了其功能的正确性。 关键词 数据采集;FPGA;8B/10B编解码;光纤传输 在雷达、通信、气象、军事监控及环境监测等领域,现场信号具有重要的作用。这些信号的主要特点是:实时性强、数据速率高、数据量大、处理复杂。为能够完整、准确地捕获到各种信号并及时进行处理,需要临测系统能够具备任意长度连续采集和存储的功能,且具有较高的
[嵌入式]
基于<font color='red'>FPGA</font>的高速数据采集控制模块<font color='red'>设计</font>
基于FPGA的图像预处理系统
由于获取图像的工具或手段的影响,使获取图像无法完全体现原始图像的全部信息。因此,对图像进行预处理就显得非常重要。预处理的目的是改善图像数据,抑制不需要的变形或者增强某些对于后续处理来说比较重要的图像特征。 通常根据预处理目的的不同,把预处理技术归为图像增强技术和图像分割技术两类。图像对比度处理是空间域图像增强的一种方法。由于图像灰度范围狭窄会使图像的对比度不理想,可用对比度增强技术来调整图像灰度值的动态范围。 图像处理通常采用软件或者DSP(数字信号处理器)来实现。如果利用软件实现,运行时会耗费较多的PC资源,而且算法越复杂时耗费的资源就越多,对于需要高速处理的情况就不适用了;而如果采用DSP来实现,提高并行性的同时指令
[半导体设计/制造]
基于单片机与FPGA可调延时模块的设计
  系统结构框图如图1。其硬件结构比较简单,主要由单片机P89C51RD、RS-232/TTL接口电路MAX232和可编程逻辑器件FPGA三部分组成。单片机P89C51RD2是上位PC机和FPGA的连接纽带,它通过并口发送数据给FPGA,另一边通过RS-232/TTL接口芯片与PC机进行串行通讯;PC机主要功能是实现延时调整的可视化操作;FPGA是延时调整处理的硬件实现,单片机将PC送过来的延时调整参数输入FPGA,FPGA在单片机的控制下对信号进行延迟处理,最后送入相应传输通道。某些系统使用现场存在较强的电磁干扰,模块的设计考虑信号隔离问题,故对串行接口进行了电气隔离,强化了PC机和模块通讯的安全系数。   延时模
[单片机]
基于单片机与<font color='red'>FPGA</font>可调延时模块的<font color='red'>设计</font>
利用Xilinx FPGA和存储器接口生成器简化存储器接口
FPGA 设计人员在满足关键时序余量的同时力争实现更高性能,在这种情况下,存储器接口的设计是一个一向构成艰难而耗时的挑战。Xilinx FPGA 提供 I/O 模块和逻辑资源,从而使接口设计变得更简单、更可靠。尽管如此,I/O 模块以及额外的逻辑还是需要由设计人员在源 RTL 代码中配置、验证、执行,并正确连接到其余的 FPGA 上,经过仔细仿真,然后在硬件中验证,以确保存储器接口系统的可靠性。 本白皮书讨论各种存储器接口控制器设计所面临的挑战和 Xilinx 的解决方案,同时也说明如何使用 Xilinx软件工具和经过硬件验证的参考设计来为您自己的应用(从低成本的 DDR SDRAM 应用到像 667 Mb/sDDR
[嵌入式]
利用Xilinx <font color='red'>FPGA</font>和存储器接口生成器简化存储器接口
基于FPGA 的ARM 并行总线研究与仿真
  0 引言   在数字系统的设计中,FPGA+ARM 的系统架构得到了越来越广泛的应用,FPGA 主要实现高速数据的处理;ARM 主要实现系统的流程控制.人机交互.外部通信以及FPGA 控制等功能.I2C.SPI 等串行总线接口只能实现FPGA 和ARM 之间的低速通信 ;当传输的数据量较大.要求高速传输时,就需要用并行总线来进行两者之间的高速数据传输.   下面基于ARM 处理器LPC2478 以及FPGA 器件EP2C20Q240,以ARM 外部总线的读操作时序为例,研究两者之间高速传输的并行总线;其中,数据总线为32 位;并在FPGA 内部构造了1024x32bits 的SRAM 高速存储缓冲器,以便于ARM
[单片机]
基于<font color='red'>FPGA</font> 的ARM 并行总线研究与仿真
赛灵思ISE 11.1 量身打造四种工具流程
随着 Xilinx® ISE® 设计套件 11.1 的推出,赛灵思在优化设计方法、更好地满足不同技能客户的多样化需求, 以及帮助客户利用赛灵思 FPGA 目标设计平台进行创新设计方面迈出了一大步。赛灵思 ISE 设计套件 11.1同时推出四种全新的工具流程,专为逻辑设计人员、嵌入式开发人员、DSP算法开发人员以及系统集成人员量身定制,以满足他们的不同要求。此前,赛灵思的客户主要是逻辑设计人员,他们是精通硬件设计和硬件描述语言 (HDL) 的电气工程师。不过,在过去 8 年间,随着各代 Virtex® 和 Spartan® FPGA 产品的推出,逻辑单元以及 MPU 和 DSP 等嵌入式软硬件处理器呈指数级增长。在此情况下,赛
[嵌入式]
赛灵思ISE 11.1 量身打造四种工具流程
FPGA中嵌入式块RAM(BRAM)
    大多数FPGA都具有内嵌的块RAM,这大大拓展了FPGA的应用范围和灵活性。块RAM可被配置为单端口RAM、双端口RAM、内容地址存储器 (CAM)以及FIFO等常用存储结构。RAM、FIFO是比较普及的概念,在此就不冗述。CAM存储器在其内部的每个存储单元中都有一个比较逻辑,写入 CAM中的数据会和内部的每一个数据进行比较,并返回与端口数据相同的所有数据的地址,因而在路由的地址交换器中有广泛的应用。除了块RAM,还可以将 FPGA中的LUT灵活地配置成RAM、ROM和FIFO等结构。在实际应用中,芯片内部块RAM的数量也是选择芯片的一个重要因素。 单片块RAM的容量为18k比特,即位宽为18比特、深度为1024,
[嵌入式]
Mercuryr推出赛灵思FPGA适用的串行RapidIO IP内核
Mercury Computer已经加盟Xilinx联盟项目,为Xilinx Virtex和Spartan系列FPGA新推出Mercury串行RapidIO IP内核。Xilinx联盟项目具有最新的IP内核、EDA、DSP和嵌入式开发工具及设计业务、电路板级产品、集成电路和电子元件。成员公司提供优化的产品及业务,以提供更多适合使用Xilinx可编程逻辑器件的方案。 Serial RapidIO具有全功能IP内核,集成了逻辑层、传输层和物理层,支持I/O和信息传递。Mercury IP内核符合Serial RapidIO 1.2规范,适合用于嵌入式产品、通讯、无线、存储和国防市场。使用Xilinx Virtex FPGA的设计
[新品]
小广播
最新电源管理文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved