因为我们无法得到0.几个时钟周期,所以其实小数分频其实是由整数分频结合得到的。
假设输出clk_out
是输入clk_in
的N分频。首先要将分频系数N化为分数形式,比如4.75→
3.4,6.3
,以6.3分频为例,这意味着每经过63个时钟周期,就要输出10个新时钟周期以实现时钟分频。
然后采用若干种(一般是两种)整数分频在63个原周期clk_in
内产生10个新时钟周期clk_out
。整数分频的分频系数有很多种选择,但要尽可能接近,提高clk_out
的均匀度。一般推荐在小数分频系数N的附近选取,这里我们选取6<N<7这两个系数,也就是说所产生的新的10个时钟周期中有若干个6分频和若干个7分频,所以说最后所生成的6.3小数分频电路其实是由6分频和7分频两种整数分频结合均匀所得到的。
我们假设所产生的这10个时钟周期中有x个6分频,y个7分频,由此可以得到以下方程组:
①x+y=10
②6x+7y=63
解得到x=7,y=3;
也就是说6.3小数分频是由在63个源时钟周期中产生7个6分频和3个7分频得到的。至于这些分频如何排列组合就无所谓了。