基于FPGA的电子时钟设计

本文介绍了使用Verilog在QuartusII平台上设计的可编程电子时钟,具备分钟级精度和复位/使能功能。通过mode0和mode6两种数码管显示方式,作者详细描述了function的编写、if判断语句的使用以及仿真和实际测试结果。
摘要由CSDN通过智能技术生成

        基于Quartus II开发平台,采用verilog硬件描述语言设计一款电子时钟,该时钟可实现一分钟的计时,精确到秒级,并由实验箱中的数码管显示对应的分、秒等信息,要求有复位及使能功能。

        1.方案设计

                通过数码管显示时间,对于所使用的开发板,我初步构思了两种方式。

                一是通过 mode 0,利用译码器来实现数码管的显示;

                二是通过 mode 6,使用7位数码管的断码表来实现数码管显示。

         2.代码编写

        为了优化代码结构,我构建了一个function,使用 case 语句来实现数据显示的选择。其优点是可以通过更改 case 内的赋值条件,便于实现mode 0和mode 6的切换。

        主要内容:function的编写

                由于之前做过7位数码管显示的实验,所以初次使用的是7位数码管显示。

        

        在always块内使用的是常见的if判断语句进行条件判断(包括使能和复位,以及时间的条件),在这里不进行过多描述,相关内容请查看工程文件。

        为避免代码出现逻辑错误,我在代码编写完成,编译无误后,进行了仿真分析,然后依据开发板的引脚描述图进行引脚的配置,最终将程序下载到开发板上。

        3.实验结果:

        1.仿真分析

        可以看到,当EA=0时,时间不在变化,保持原有状态;当EA=1时,时间在原有状态下继续计时,其中num1表示秒的个位,num2表示秒的十位,num3表示分的个位。当RST=0时,不进行复位;当RST=1时,进行复位。

                符合实验目的和实验要求。

        2.上板效果
      Mode 6 模式下的效果:

                首先根据引脚对照表进行引脚配置,clk选取的是clk0,使用的是1Mhz

                                根据引脚对照表,在配置好引脚后,将程序进行烧录

Mode 6 下的展示图片

        Mode 0 模式下的效果:

        要改成Mode 0 ,首先将function进行修改,然后将用于数码管显示的输出改为4位二进制。(因为mode 0 使用了译码器,只需要4位便可以显示0-9)

        然后再次根据引脚对照表进行引脚配置,clk依旧选取的是clk0,使用的是1Mhz

然后发现效果和预期并不理想,显示数据不是从0-9;观察分析后发现,

是IO口配置有误,高位应该配置低位的引脚,更改后达成效果。

Mode 0下的展示图片

  • 12
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值