扫一扫,分享给好友
准备基于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
【有奖提问】关于盘古1K2K开发板你有什么想知道的?一起来留言获取答案吧!
盘古22K开发板
盘古200 pro开发板
盘古50 pro开发板
盘古50K开发板
盘古100 pro开发板
FPGA在图像处理领域的优势有哪些?
紫光同创——PLL IP 的使用(Logos2)
谈一谈FPGA设计中的功率计算
硬件工程师的开发心得
电子发烧友网
电子发烧友论坛