扫一扫,分享给好友
准备基于FPGA使用verilog HDL设计一个数字时钟,时间24小时、60分钟、60秒钟的计数;首先默认我们的板载有源晶振为50MHz的时钟,然后我们先设计一个秒钟的计数模块:
module sec_clock( input wire clk, input wire rst_n, output wire sec_full_flag, output reg [5:0] sec_data ); parameter SEC_1S_MAX = 26'd50_000_000; reg [25:0] count; //板载时钟转化为sec计数标志 always @(posedge clk or negedge rst_n) if( rst_n == 1'b0 ) count <= 26'b0; else if( count == SEC_1S_MAX - 1'b1 ) count <= 26'b0; else count <= count + 1'b1; //sec计数器 always @(posedge clk or negedge rst_n) if( rst_n == 1'b0 ) sec_data <= 6'b0; else if( (sec_data == 6'd59) && (count == SEC_1S_MAX - 1'b1) ) sec_data <= 6'b0; else if( count == SEC_1S_MAX - 1'b1 ) sec_data <= sec_data + 1'b1; else sec_data <= sec_data; //满60S对应的min进位标志 assign sec_full_flag = ( (sec_data == 6'd59) && (count == SEC_1S_MAX - 1'b1) ) ? 1'b1 : 1'b0; endmodule
发布
数字时钟设计FPGAfpga
【紫光同创盘古PGX-MINI-4K教程】——(盘古PGX-MINI-4K开发板/PGC4KD-6ILPG144第五章)序列检测器实验例程
【紫光同创盘古PGX-Nano教程】——(盘古PGX-Nano开发板/PG2L50H_MBG324第六章)串口收发实验例程
【紫光同创盘古PGX-Nano教程】——(盘古PGX-Nano开发板/PG2L50H_MBG324第五章)数码管动态显示实验例程
【紫光同创盘古PGX-Nano教程】——(盘古PGX-Nano开发板/PG2L50H_MBG324第四章)静态数码管显示实验例程
【紫光同创盘古PGX-Lite 7K教程】——(盘古PGX-Lite 7K开发板/PGC7KD-6IMBG256第五章)序列检测器实验例程
基于树莓派5的RTL仿真体验
FPGA基础知识学习
关于FPGA IP核
【紫光同创盘古PGX-Nano教程】——(盘古PGX-Nano开发板/PG2L50H_MBG324第三章)键控流水灯实验例程
盘古PGX-Mini 4K开发板一览
电子发烧友网
电子发烧友论坛