直接看代码
`timescale 1ns / 1ps
//
// Module Name: DivClk
// Description: 通过对输入时钟进行分频,产生所需频率的时钟信号
//
// Dependencies: 此模块被顶层模块调用
//
//
module divclk(
input Clk_50MHz, //该输入端口为50MHz时钟信号,来自主调模块
output reg Clk_1KHz, //该输出端口为1KHz分频信号,提供给其他模块使用
);
reg [31:0] count1=0; //定义一个32位寄存器变量,用于存放计数值
always @ (posedge Clk_50MHz) //在50MHz时钟上升沿时刻执行下列代码
begin
if(count1==25000) //计数值达到2.5万时使输出信号Clk_1KHz反转,即可得到1KHz输出信号
begin
Clk_1KHz = ~Clk_1KHz; //输出反转
count1 = 0; //计数归0,重新计数
end
else
count1 = count1+1; //计数值加1
end