当前位置:   article > 正文

Verilog实现时钟分频_verilog计数器分频27mhz

verilog计数器分频27mhz

把图补上来

普通奇数分频

当不要求分频50%占空比时,对输入时钟clk上升沿计数,可以设置两个计数的翻转点,一个是(N-1)/2,一个是(N-1),计数到(N-1)时同时将计数器清零。

module clk_div(
input clk,rst_n,
output reg clk_o
);

reg [1:0] cnt;
always@(posedge clk or negedge rst_n) begin
	if(!rst_n) cnt<=0;
	else if(cnt==2) cnt<=0;
	else cnt <= cnt +1'b1;
end

always@(posedge clk or negedge rst_n) begin
	if(!rst_n)
	clk_o <= 0;
	else if(cnt==1) clk_o <= 1;
	else if(cnt==2) clk_o <=0;
end
endmodule
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

在这里插入图片描述
注意:
一开始陷入了误区,试图另外用一个边沿检测模块对时钟的边沿进行检测,忘了posedge clk直接就能检测然后计数。。。

50%占空比奇数分频

当要求占空比为50%时,对输入时钟clk的上升沿和下降沿以同样的规律分别计数,根据两个计数器得到两个错位输出的时钟,将两个时钟做“或”运算,可以达到50%占空比。

/********************************************
          计数器实现 7 分频
*********************************************/
module Odd_Divider(
         input clk,
         input rst_n,
         output clk_divider
);
 
reg [2:0] count_p;    //上升沿计数
reg [2:0] count_n;    //下降沿计数
reg clk_p;                   //上升沿分频
reg clk_n;                   //下降沿分频
 
//上升沿计数
always @ ( posedge clk or negedge rst_n )
begin
         if(!rst_n ) count_p<= 3'b0;
         else if( count_p == 3'd6 )
                  count_p<= 3'b0;
         else  count_p<= count_p + 1'b1;
end
 
//上升沿分频
always @ ( posedge clk or negedge rst_n )
begin
         if(!rst_n ) 
                   clk_p<= 1'b0;
         else if(count_p == 3'd3 || count_p == 3'd6 ) 
                   clk_p<= ~clk_p;
end
 
//下降沿计数
always @ ( negedge clk or negedge rst_n )
begin
         if(!rst_n )  count_n<= 3'b0;
         else if( count_n == 3'd6 )
                   count_n<= 3'b0;
         else  count_n<= count_n + 1'b1;
end
 
//下降沿分频
always @ ( negedge clk or negedge rst_n )
begin
         if(!rst_n ) 
                 clk_n<= 1'b0;
         else  if(count_n == 3'd3 || count_n == 3'd6 ) 
                 clk_n<= ~clk_n;
end
 
assign clk_divider = clk_p | clk_n;
endmodule
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52

在这里插入图片描述

小数分频 未完
https://mp.weixin.qq.com/s/X7r8WrQ3e9yECF4ocD3baA

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/387471
推荐阅读
相关标签
  

闽ICP备14008679号