0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

FPGA数字钟方案设计

lPCU_elecfans 来源:YXQ 2019-07-24 09:06 次阅读

采用FPGA进行的数字电路设计具有更大的灵活性和通用性,已成为目前数字电路设计的主流方法之一。本文给出一种基于FPGA的数字钟设计方案。该方案采用VHDL设计底层模块,采用电路原理图设计顶层系统。整个系统在QuartusⅡ开发平台上完成设计、编译和仿真,并在FPGA硬件实验箱上进行测试。测试结果表明该设计方案切实可行。

EDA(Electronic Design AutomaTI on)又名电子设计自动化,其基本特征是:以超大规模可编程逻辑器件,如FPGA,为设计载体,以硬件描述语言,如VHDL,为系统逻辑描述的主要表达方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,完成电子系统的设计。

使用EDA进行电子系统设计具有以下特点:

1) 用软件方式设计硬件;

2) 用软件方式设计的系统到硬件系统的转换是由有关开发软件自动完成的;

3) 设计过程中可用有关软件进行各种仿真;

4) 系统可现场编程,在线升级;

5) 整个系统可集成在一个芯片上,体积小、功耗低、可靠性高;

6) 设计的移植性好、效率高;

7)适合分工设计、团队协作。因此,EDA技术是现代电子设计的发展趋势。

1、数字钟的设计方案

本文以FPGA平台为基础,采用VHDL语言在QuartusⅡ开发环境下设计开发多功能数字钟,具有计时、校时、蜂鸣闹铃的功能,具体功能为:

1) 能够对秒、分、小时进行正常计时,每日按24小时计时制,能用八个七段数码管进行友好界面的显示;

2) 具有复位功能,可以对当前时间进行清零;

3) 能够对电子时钟进行时分秒设置,方便在时钟跑错时进行校正;

4) 能够设定电子闹钟,在指定的时间驱动蜂鸣器等外设工作,引起使用者注意;

5) 电子钟具有溢出警报功能,当小时数超过24时,用一个LED小灯进行溢出警报说明,然后从00—00—00开始从新计时,此功能可以使电子钟很方便的扩展为万年历。

我们采用自顶向下的层次化设计方法进行设计,其输入为状态选择信号(使用一个2位二进制表示选择,00正常运行或显示闹铃信息,01设置秒,10设置分,11设置时)、复位信号、闹铃开关(配合状态选择信号进行闹铃的设置)、1 Hz的计时时钟信号和1 kHz的扫描时钟信号;输出为时、分、秒数字显示(这里使用了8个共阴极的七段数码管作为显示输出)、闹钟蜂鸣、溢出信号。系统由状态选择模块、时、分、秒计时校时模块、显示与闹铃模块组成。数字钟的系统框图图如图1所示。

2、核心模块设计

2.1 状态选择模块设计

该模块主要功能其实是对输入端的汇总,然后根据设置方法对不同的模块进行使能和参数传递,输出不同的信令signaling控制到各个模块,使每个模块工作在一个有序的状态。状态选择模块的电路描述如图2所示,具体说明如下:当输入一个脉冲到复位键reset时,数字钟启动并对时间清零。

闹铃键clock=0时,模块根据状态选择键IS_SET输出不同秒、分、时信令到秒、分、时计时校时模块,控制这些模块的运行状态。此时,当IS_SET=00时为正常计时状态,秒、分、时的输出信令均为80;IS_SET=01时为秒校时状态,输出秒信令S_signaling为时间输入TI me(显然该输出小于60),而输出分信令M_signaling和时信令H_signaling均为100,表示暂停分、时计时;

IS_SET=10和11时则分别为分和时的校时状态。闹铃键clock=1时,当IS_SET=10和11时分别设置闹铃的分、时为时间输入TI me并将设置的闹铃时间输出到“显示与闹铃模块”中保存;当IS_SET=00时,输出out_clock=1,控制显示与闹铃模块显示设置的闹铃时间。注意,当闹铃键clock=1时,计时正常运行,不论IS_SET如何设置,秒、分、时的输出信令均为80。

2.2 计时校时模块设计

该模块用于时、分、秒的计时校时,根据状态选择模块传输过来的信令signaling分别进行计时和校时。时、分、秒计时校时模块是一样的,只是分秒的进位为60,而小时的进位为24。

我们在实体声明中的使用generic变量定义一个numn,该值设置进制为60或24,通过修改numn值就完成分、秒计时模块到小时计时模块的转换。模块的输入为扫描时钟、计时时钟和信令signaling,输出为输出时间高位TI me_h和输出时间低位time_l,以及进位clk_jin。

计时校时模块的电路描述如图3所示,具体说明如下:每当扫描时钟上升沿时,启动进程,并根据信令signaling执行不同操作.

1)当signaling

2)当signaling=80时,模块正常计时,通过判断计时时钟信号是否为上升沿进行计数自加操作,秒计时校时模块的计时时钟为1Hz的方波信号,分和小时计时校时模块的计时时钟为前一个模块进位过来的clk_jin信号;

3)当signaling=100时,为暂停状态,此时其他计时校时模块正在校时,本模块计时暂停。为了便于显示,本模块将时间count分位为时间高位time_h和时间低位time_l,并输出到显示与闹铃模块。

2.3 显示、闹铃模块设计

本模块是数字钟系统中的输出模块,用于输出LED数字显示和闹铃,其输入为扫描时钟,从计时校时模块输出的秒低位、秒高位、分低位、分高位、时低位、时高位信号和状态选择模块输出的闹铃显示Nao_En闹铃时间Nan_In。

如果Nao_En=0则正常显示时间,当Nao_En=1时,在LED数码管上显示闹钟时间。当当前时间与保存的闹铃时间Nan_In相同时,蜂鸣器鸣响1 min。这里我们使用了八个共阴极的七段数码管显示时间,当选位信号sel=“01111111”时,第一个数码管显示数字,其他七位不显示。

我们通过动态扫描,轮流显示秒低位sec_ge、秒高位sec_shi、分低位min_ge、分高位min_shi、时低位hour_ge、时高位hour_shi共6路信号,当扫描时钟sanc_clk频率高于28 Hz时,由于人眼的视觉残留效果,使得这6路信号看上去是同时显示在6个七段数码管上。显示、闹铃模块电路描述如图4所示。

总结

在QuartusⅡ软件开发平台上,采用“自顶向下设计,自底向上实现”的方法完成了数字钟的设计与实现。

其基本过程如下:

1) 完成数字钟的总体设计;

2) 完成各个底层模块的设计和波形仿真:底层模块采用VHDL语言编写,在编译和仿真成功后,对其进行封装;

3) 完成数字钟的顶层电路设计:根据数字钟的系统框图(图1)在QuartusⅡ中采用电路原理图方式,调用封装好的底层模块,完成顶层电路图的设计;

4) 对顶层电路进行编译和仿真,结果表明仿真波形符合设计要求;

5)进行引脚分配,再编译后,将下载文件下载到FPGA开发板中进行验证和调试。测试结果表明数码管能正确的显示计时时间,能通过按键调整时间,能实现整点报时,完全符合设计要求。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA设计
    +关注

    关注

    9

    文章

    425

    浏览量

    26260
  • 数字电路
    +关注

    关注

    192

    文章

    1379

    浏览量

    79715

原文标题:如何做FPGA数字钟方案?从封装、原理图到调试,教你一套全流程设计方法!

文章出处:【微信号:elecfans,微信公众号:电子发烧友网】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    基于FPGA vivado 17.2 的数字钟设计

    基于FPGA vivado 17.2 的数字钟设计
    的头像 发表于 06-08 09:41 1w次阅读
    基于<b class='flag-5'>FPGA</b> vivado 17.2 的<b class='flag-5'>数字钟</b>设计

    基于FPGA数字钟设计

    基于FPGA数字钟设计
    发表于 03-16 10:07

    基于FPGA显示数字钟

    用Verilog HDL语言实现,通过VGA在LCD显示针式数字钟,像windows右下角 日期和时间 属性那个钟那样。我想问的是如何从RAM里读取各个图片然后显示出来,或通过改变图片属性来达到每秒刷新一下各针的位置
    发表于 09-25 09:31

    基于FPGA的LCD12864显示的数字钟

    求一个基于FPGA的LCD12864显示的数字钟 VHDL或verilog都行
    发表于 08-22 14:50

    基于FPGA vivado 17.2 的数字钟设计

    基于FPGA vivado 17.2 的数字钟设计目的:熟悉vivado 的开发流程以及设计方法附件:
    发表于 12-13 10:16

    【Runber FPGA开发板】配套视频教程——数字钟实验

    和分钟,K2用于时钟的“+”,K3用于时钟的“-”,校准相应的刻度,该数码管闪烁。。通过数字钟实验帮助初学者快速掌握FPGA的计数计时、数据秒/分钟/小时的多级计数,以及数字钟时间校准功能的实现。 本
    发表于 04-13 14:25

    数字钟的设计任务及功能要求

    数字钟一、数字钟的设计任务及功能要求l 基本功能1.准确计时,并显示时,分,秒;2.小时的计时为二十四进制,分和秒为六十进制;3.可以对时间进行校正;l 扩展功能1.时间到达整点进行蜂鸣报时1分钟;2.实现任意时间的定时,进行闹铃一分钟;二、
    发表于 07-29 07:16

    基于FPGA设计实现一个多功能数字钟相关资料分享

    1、基于FPGA设计实现一个多功能数字钟FPGA中设计实现一个多功能数字钟,具备以下功能:准确计时。能显示时、分、秒,小时的计时为24进制,分和秒的计时为60进制。校时功能。时、分可
    发表于 07-08 17:26

    数字钟原理框图

    数字钟原理框图 数字钟系统构成1、数字钟的构成
    发表于 07-05 12:10 9479次阅读
    <b class='flag-5'>数字钟</b>原理框图

    数字钟设计方案

    数字钟与机械钟相比具有更高的准确性和直观性,具有更长的使用寿命,已得到广泛的使用。数字钟的设计方法有许多种,例如可用中小规模集成电路组成电子钟.
    发表于 12-21 09:25 826次下载
    <b class='flag-5'>数字钟</b>设计<b class='flag-5'>方案</b>

    基于FPGA和Quartus II的多功能数字钟设计与实现

    本文以FPGA平台为基础,在QuartusⅡ开发环境下设计开发多功能数字钟数字钟实现计时\校时\整点报时\世界时钟功能.
    发表于 12-18 11:51 3.3w次阅读

    华清远见FPGA代码-基于NIOSII处理器的数字钟设计

    华清远见FPGA代码-基于NIOSII处理器的数字钟设计
    发表于 10-27 18:07 14次下载

    基于fpga数字钟设计的两款方案(含程序)

    FPGA平台为基础,采用VHDL语言在QuartusⅡ开发环境下设计开发多功能数字钟,具有计时、校时、蜂鸣闹铃的功能.
    发表于 11-07 12:01 3w次阅读
    基于<b class='flag-5'>fpga</b>的<b class='flag-5'>数字钟</b>设计的两款<b class='flag-5'>方案</b>(含程序)

    fpga数字钟介绍_fpga数字钟设计

    数字钟实际上是一个对标准频率(1HZ)进行计数的计数电路。由于计数的起始时间不可能与标准时间(如北京时间)一致,故需要在电路上加一个校时电路,同时标准的1HZ时间信号必须做到准确稳定,通常使用石英晶体振荡器电路构成数字钟
    发表于 01-15 15:37 1w次阅读
    <b class='flag-5'>fpga</b><b class='flag-5'>数字钟</b>介绍_<b class='flag-5'>fpga</b><b class='flag-5'>数字钟</b>设计

    FPGA多功能数字钟系统原理

    FPGA(可编程逻辑门阵列)是一种集成电路芯片,具有可编程的数字逻辑功能。多功能数字钟系统利用FPGA技术实现了时钟的显示、计时、报时等功能。本文将详细介绍
    的头像 发表于 01-02 16:50 306次阅读