这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » FPGA » 关于奇数分频器

共9条 1/1 1 跳转至

关于奇数分频器

工程师
2022-09-12 21:40:32     打赏

因为偶数分频器过于简单,所以我们从奇数分频器开始说起8

01 奇数分频器      

假设我们要实现一个2N+1分频的分频器,就需要高电平占N+0.5个周期,低电平占N+0.5个周期,这样进行处理的最小时间段就变成了0.5个周期,就不能通过clk的计数直接实现了。

然而,时钟信号的上升沿和下降沿之间正好相差0.5个周期,利用这个就可以实现奇数分频啦

第一步:分别使用原时钟上升沿和下降沿产生两个计数器(基于上升沿计数的cnt1和基于下降沿计数的cnt2),计数器在计数到2N时,计数器归零重新从零开始计数,依次循环

第二步:cnt1计数到0和N时,clk1翻转,从而得到占空比为N:2N+1的clk1;

第三步:cnt2计数到0和N时,clk2翻转,从而得到占空比为N:2N+1的clk2;

第四步:clk1和clk2时钟进行或操作后,即可得到输出时钟clk_out;

 

下面为3分频的实现

620d1d42-21ad-11ed-ba43-dac502259ad0.jpg

6221b96e-21ad-11ed-ba43-dac502259ad0.png

 

 

 

module DIVCLK(

input wire clk,

input wire rst_n,

output wire clk_out

);

 

reg clk1;

reg clk2;

reg [1:0] cnt1;

reg [1:0] cnt2;

 

always @(posedge clk or negedge rst_n) begin

if (!rst_n) begin

cnt1 <= 2'd0;

clk1 <= 1'b0;

end

else if (cnt1==2'd2) begin

cnt1 <= 2'd0;

end

else if ((cnt1==2'd0)||(cnt1==2'd1))begin

clk1 <= ~clk1;

cnt1=cnt1+2'd1;

end

else

  cnt1=cnt1+2'd1;

end

 

always @(negedge clk or negedge rst_n) begin

if (!rst_n) begin

cnt2 <= 2'd0;

clk2 <= 1'b0;

end

else if (cnt2==2'd2) begin

cnt2 <= 2'd0;

end

else if ((cnt2==2'd0)||(cnt2==2'd1))begin

clk2 <= ~clk2;

cnt2=cnt2+2'd1;

    end

    else

       cnt2=cnt2+2'd1;

end

 

assign clk_out=clk1|clk2;

 

endmodule


 

 

 

6221b96e-21ad-11ed-ba43-dac502259ad0.png

 

02 任意小数分频      

在实际设计中,可能会需要小数分频的办法的到时钟,如在38.88M的SDH同步系统中,对应STM-1的开销的提取,需要2.048M的时钟,无法通过整数分频得到,只能用小数分频。

小数分频原理如下:设输入时钟频率f0,输出频率为fx,则

624a467c-21ad-11ed-ba43-dac502259ad0.jpg

即m为整数部分,n为小数部分。为了实现K分频,可以对f0进行a次m分频和b次m+1分频,则有

625f7402-21ad-11ed-ba43-dac502259ad0.png

整理后得

6274816c-21ad-11ed-ba43-dac502259ad0.jpg

由38.88M得到2.048M的时钟,带入上式可得到m=18,a=1,b=63,即对38.88M进行1次18分频和63次19分频后间插就得到2.048MHz啦

62834dd2-21ad-11ed-ba43-dac502259ad0.jpg

 




高工
2022-09-12 22:04:15     打赏
2楼

感谢分享


专家
2022-09-12 22:10:52     打赏
3楼

感谢分享


专家
2022-09-13 00:08:51     打赏
4楼

感谢分享


高工
2022-09-13 00:30:27     打赏
5楼

感谢分享


专家
2022-09-13 08:29:25     打赏
6楼

感谢分享


高工
2022-09-13 08:42:03     打赏
7楼
感谢楼主的分享,很实用

院士
2022-09-13 08:55:50     打赏
8楼

谢谢分享


专家
2022-09-13 09:23:30     打赏
9楼

谢谢


共9条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]