时钟分频电路,主要包括偶数分频 、奇数分频;
以偶数分频为例,假如要进行N分频,可用待分频时钟来触发计数器,当计数器从0计到N/2-1时,输出时钟进行翻转,并给计数器一个复位信号,使得下一个时钟从零开始计数,以此循环下去
上面的偶数分频方法,得到的时钟占空比为50%,但是存在如下问题:
* 需要先进行N/2-1运算
* 如果分频比可配(2、3、4、5、6…)时,该电路无法满足
为了避免以上两个问题,可以直接进行占空比非50%的分频(支持偶数分频、奇数分频):可用待分频时钟来触发计数器,当计数器记到N时,清零计数器;当计数器值等于N时,分频结果时钟拉高,其他情况拉低;
reg clk_src;
wire clk_dst;
reg [7:0] count;
always @(posedge clk_src or negedge rst_n)
begin
if(~rst_n)
begin
count <= 8'h0;
end else begin
count <= clk_dst ? 8'h0 : count + 1'b1;
end
end
assign clk_dst = (count == N-1) ? 1'b1 : 1'b0;
这样,可以避免N/2-1的运算,同时支持偶数、奇数分频比可配置
但是,在一些需要50%占空比的分频电路中,就不能使用上面的方法了
版权声明:本文为u010037269原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。