📄 clkpro.v
字号:
/* 时钟分频子模块,用于将20MHz时钟分频为6MHz和4Hz。 */
module clkpro(clk,clk_6M,clk_4);
input clk; //系统时钟,f= 20MHz
output clk_6M,clk_4; //输出时钟
parameter
clk6M_cnt_M=2,
clk4_cnt_M=5000000-1 //分频系数=20M/4=5000000
;
reg clk_6M,clk_4;
reg [2:0] clk6M_cnt; //0-12,counter for fas_set
reg [22:0] clk4_cnt; //2^23=8388608,故计数器位数为23。0-49,cnt for hlf_sec
//(1)对20MHz的时钟clk 3分频,得到clk_6M的f = 6.67MHz,即T=1/6.67MHz = 151ns
always@(posedge clk )
if(clk6M_cnt>=clk6M_cnt_M)
begin
clk6M_cnt<=0;
clk_6M<=1; // 在分频计数器计到最大值时输出时钟为“1”,产生一时钟个脉冲
end
else
begin
clk6M_cnt<=clk6M_cnt+1;
clk_6M<=0;
end
//(2)将20MHz的时钟clk 分频为4Hz的输出时钟clk_4
always@(posedge clk )
if(clk4_cnt>=clk4_cnt_M)
begin
clk4_cnt<=0;
clk_4<=1;
end
else
begin
clk4_cnt<=clk4_cnt+1;
clk_4<=0;
end
endmodule
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -