任意小数分频(占空比非50%)

任意小数分频(占空比非50%)
假设分频为int+fenzi/fenmu
1、对输入时钟取反clkn。clk与clkn做时钟无glitch切换,将电路进行修改,a)打拍寄存器减一拍,并且使用负沿,有利于gating时钟.b)时钟gating使用与非。
2、将输出的两个时钟做与非处理。可以实现当sel切换时,可以减少插入半个周期的延时。
3、对于int为偶数时,比如4;cnt_max=int/2-1,cnt_max为1,实际从0加到1,记两个周期;flag为1时,控制sel切换,增加半个周期。flag为0时,sel不切换;
对于int为奇数时,比如5;cnt_max=flag ? int/2(2) : int2/2-1(1);flag为1时,sel不切换;flag为0时,sel进行切换,一直增加半个周期,相当于一直是2.5分频。小结一下int为奇数时,可以看为一直作2.5分频;当小数累加大于1后,补偿半个周期,即为3分频。
当计数器等于cnt_max时,clko输出翻转。
当计数器等于cnt_max时,将分子累加自己,当大于等于分母时,减去分母;当大于等于分母后,flag=1;检测到flag 1,控制sel信号变化,实现周期补偿。
4、注意更新需要当一个周期完整后,再进行配置的改变。

你可能感兴趣的:(digital_ic)