【FPGA & Modsim】数字时钟

这篇具有很好参考价值的文章主要介绍了【FPGA & Modsim】数字时钟。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

实验题目:  数字时钟设计                                  

实验目的:  掌握数字时钟的工作原理;掌握使用数字逻辑设计集成开发环境分模块设计数字时钟的方法。                         

实验内容:

1、创建一个数字时钟工程,使用六位数码管实时显示时/分/秒。

3、时钟应具有稳定的计时功能,能够连续运行并准确显示时间。

实验步骤:

1、明确实验要求,确定系统功能,设计整体方案。

2、按照实现功能将数字时钟设计系统划分为时钟基准、显示驱动、按键控制等模块。

3、使用 Verilog HDL 编写各模块的逻辑代码。

4、在仿真环境中测试各模块的功能。

实验数据记录:

分模块写出编写的Verilog HDL源程序。

1、时钟顶层模块:

Module Clocktime(

    input  clk,   

    input rst_n,

    output [5:0] seconds,

    output  [5:0] minutes,

    output  [5:0] hours,

 output [7:0] seg,

    output [3:0] digit,

 output clk_base1

);

clk_base Uclk_base(

.clk(clk),

.rst_n(rst_n),

.clk_in(clk_base1)   //生成基准时钟

);

clock_generator Uclock_generator(     //根据基准时钟进行计数

.clk(clk_base1),

.rst_n(rst_n),

.seconds(seconds),

.minutes(minutes),

.hours(hours)

);

display_driver Udisplay_driver  (

.seconds(seconds),

.minutes(minutes),

.hours(hours),

.seg(seg),

.digit(digit)

);

endmodule

endmodule

2、显示驱动模块(Display Driver):

module display_driver (

    input wire [5:0] seconds,

    input wire [5:0] minutes,

    input wire [5:0] hours,

    output reg [7:0] seg,

    output reg [3:0] digit

);

always @(*) begin

    case ({hours, minutes, seconds})

        6'b000000: begin seg = 8'b11111100; digit = 4'b0000; end// 0

        6'b000001: begin seg = 8'b01100000; digit = 4'b0001; end// 1

        6'b000010: begin seg = 8'b11011011; digit = 4'b0010; end// 2

        6'b000011: begin seg = 8'b11110010; digit = 4'b0011; end// 3

        6'b000100: begin seg = 8'b01100111; digit = 4'b0100; end// 4

        6'b000101: begin seg = 8'b10110110; digit = 4'b0101; end// 5

        6'b000110: begin seg = 8'b10111111; digit = 4'b0110; end// 6

        6'b000111: begin seg = 8'b11100001; digit = 4'b0111; end// 7

        6'b001000: begin seg = 8'b11111111; digit = 4'b1000; end// 8

        6'b001001: begin seg = 8'b11110111; digit = 4'b1001; end// 9

        default: begin seg = 8'b00000000; digit = 4'b0000; end// Error

    endcase

end

Endmodule

3.时间基准模块

module clk_base

(

input clk,

input rst_n,

//分频后的时钟

output reg clk_in

//输出时钟

);

reg [25:0]ct ;

//时钟分频计数

//时钟分频,生成500KHz的测试时钟

always@(posedge clk or negedge rst_n) begin

if(rst_n== 1 'b0) begin

ct<= 0;

clk_in<= 0 ;

end

else begin

if(ct==26'd24999999) begin

ct<= 26'd0;

clk_in<=~clk_in;

 end

else

ct<=ct + 1'b1 ;

end

end

endmodule

4.时钟参考信号

module clock_generator (

    input wire clk,

    input wire rst_n,

    output reg [5:0] seconds,

    output reg [5:0] minutes,

    output reg [5:0] hours

);

always @(posedge clk or negedge rst_n) begin

    if (~rst_n) begin

        seconds <= 6'd0;

        minutes <= 6'd0;

        hours <= 6'd0;

    end else begin

        seconds <= seconds + 6'd1;

        if (seconds == 6'd60) begin // 一分钟的秒数

            seconds <= 6'd0;

            minutes <= minutes + 6'd1;

        end

        if (minutes == 6'd60) begin // 一小时的分钟数

            minutes <= 6'd0;

            hours <= hours + 6'd1;

        end

    end

end

Endmodule

  1. 测试文件

`timescale 1ns/ 1ps

module Clocktime_tb() ;

reg clk;

reg rst_n;

wire[7:0] seg;

wire[3:0] digit;

wire [5:0]  sec;

wire [5:0]  min;

wire [5:0]  hour;

wire clk_base1;

Clocktime u2(

.clk(clk),

.rst_n(rst_n),

.seg(seg),

.digit(digit),

.seconds(sec),

.minutes(min),

.hours(hour),

.clk_base1(clk_base1)

);

initial begin

clk=0 ;

rst_n=0 ;

#10 rst_n=1 ;

end

always #10 clk=~clk;

endmodule

仿真截图:

【FPGA & Modsim】数字时钟,FPGA学习记录,fpga开发

【FPGA & Modsim】数字时钟,FPGA学习记录,fpga开发

【FPGA & Modsim】数字时钟,FPGA学习记录,fpga开发

【FPGA & Modsim】数字时钟,FPGA学习记录,fpga开发文章来源地址https://www.toymoban.com/news/detail-801180.html

到了这里,关于【FPGA & Modsim】数字时钟的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • FPGA项目设计:数字时钟

    项目要求: 设计一个数字时钟,数码管前两位显示小时,数码管中间两位显示分钟,数码管后面两位显示秒。 项目设计: 系统框架图: 计数模块时序图: 代码实现: 计数模块: 数码管显示模块: 顶层文件:

    2024年02月14日
    浏览(48)
  • 基于FPGA的数字时钟系统设计

    在FPGA的学习中,数字时钟是一个比较基础的实验案例,通过该实验可以更好的锻炼初学者的框架设计能力以及逻辑思维能力,从而打好坚实的基本功,接下来就开始我们的学习吧! 1.数码管介绍 数码管通俗理解就是将8个LED(包含dp部分)灯拼接到一起组成的,分别标号为a~g。前

    2024年02月06日
    浏览(50)
  • 基于FPGA的数字时钟(使用vivado)

    使用两个四位数码管,可以实现时钟分钟秒钟显示,高两位设置不显示。 换了一个新开发板,nexys4ddr,资料不多,最多使用的就是一本英文Reference Manual。 其实是老师觉得我计数器还差点,得再练练。 Digilent NEXYS4DDR Vivado2018.3 60进制秒钟计数然后进1分钟 60进制分钟计数然后进

    2024年02月03日
    浏览(44)
  • FPGA数字时钟(可暂停调数,含代码)

    前段时间刚刚开始初步学习FPGA相关知识,在学习了一段时间后,利用前面所学知识,写了一个数字时钟,顺便在这里写下总结,方便理解。 (本人小白一名,有错欢迎指出,欢迎探讨) 我使用的FPGA芯片型号是Cyclone IV的EP4CE6F17C8,如有想测试实现效果的同学,可以把后面3-

    2024年02月02日
    浏览(44)
  • 【FPGA & Modsim】序列检测

    实验题目:    序列检测器设计                                   实验目的:    掌握应用数字逻辑设计集成开发环境进行序列检测器设计的方法;掌握时序逻辑电路设计的过程。                        实验内容: 1、设计一个序列检测器,用于

    2024年02月20日
    浏览(28)
  • 基于FPGA的多功能数字时钟设计报告

    作品基于intel Cyclone IV E EP4CE10F17C8 FPGA板卡,主要开发环境为Quartus Ⅱ,编程并实现了多功能温湿度电子钟。本作品在实现显示实时时间的基础上,设计并完成了设置闹钟、改变闹钟铃声、显示实时温度和实时湿度、基于以太网通信协议的实时视频传输等功能。在未设置闹钟时

    2024年02月05日
    浏览(51)
  • 基于FPGA的数字时钟设计与实现(含源码)

    随着数字电子技术的不断发展,基于FPGA(现场可编程门阵列)的数字时钟设计方案逐渐成为了一种流行的选择。本篇博客将详细介绍如何利用FPGA实现一个简单的数字时钟,涉及到分频器、数码管驱动、时分秒计数、三八译码器和扫描数码管等模块。 1. 系统设计概述 在本设计

    2024年02月05日
    浏览(52)
  • [FPGA 学习记录] 快速开发的法宝——IP核

    快速开发的法宝——IP核 在本小节当中,我们来学习一下 IP 核的相关知识。 IP 核在 FPGA 开发当中应用十分广泛,它被称为快速开发的法宝。在本小节当中,我们将和各位朋友一起来学习了解 IP 核的相关知识、理解掌握 IP 核的调用方法。 我们分为以下几个部分进行 IP 核的学

    2024年02月05日
    浏览(49)
  • FPGA实验报告 Verilog HDL:7人表决器 巴克码信号发生器 FPGA数字时钟

    写在前面:本文提供以下三个任务的思路讲解和代码实现, 如需参考引脚配置说明,可以点击下方链接跳转查看完整实验报告 ;本实验使用的是Altera公司的cycloneⅢ类型的芯片。 Verilog HDL实现:7人表决器 信号发生器 多功能数字时钟 实验目标:实现7人投票表决电路,支持人

    2024年02月05日
    浏览(49)
  • FPGA课程设计——数字电子时钟VERILOG(基于正点原子新起点开发板,支持8位或6位共阳极数码管显示时分秒毫秒,可校时,可设闹钟,闹钟开关,led指示)

    2019   级    电子科学与技术   专业FPGA课程设计 报   告 2022  年 5 月 20 日 多功能数字电子钟的设计 摘要 电子设计自动化(EDA)是一种实现电子系统或电子产品自动化设计的技术,使用EDA技术设计的结果既可以用FPGA / CPLD来实施验证,也可以直接做成专用集成电路(ASIC)。

    2024年02月03日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包