奇数分频
奇数分频思路:(结合图示进行理解)
第一步:在时钟的上升沿和下降沿分别产生一个计数器。cnt_up 在时钟上升沿计数,cnt_down 在时钟下降沿计数(例:如果是 N 分频,就从0计数到 N-1)
第二步:根据这两个计数器产生两个控制信号 clk_up , clk_down。
注意:clk_up 和 clk_down 的高低电平的比例是有规律的。
如果是N分频,比例为 N/2 : N/2+1 或者 N/2+1 : N/2
如果是3分频,那么比例就是 1:2 或者 2:1。
如果是5分频,比例位2:3或者3:2
以此论推
第三步:求得分频时钟
如果高低电瓶比例为N/2 : N/2+1,则分频时钟 clk_div = clk_up || clk_down (如图 1 所示)
如果高低电瓶比例为 N/2+1:N/2 ,则分频时钟 clk_div = clk_up && clk_down(如图 2 所示)
以3分频为例
图 1:高低电瓶比例为 1:2,或操作
图 2:高低电瓶比例为 2:1,与操作
图1
图2
图2
这里我们只是学习时钟分频,但是在平时应用中最好是选择PLL来产生时钟,这是最稳定的。
如果对于无法使用PLL的器件来讲,最好用使能时钟来代替分频时钟,即将使能时钟作为数据输入端的选择信号。
最后需要强调,使用组合逻辑产生的时钟不可避免会有毛刺产生,因此一定不能将组合逻辑产生的时钟信号或异步复位信号用于设计中,
如果一定要用也必须进行同步处理。
2017年4月20日
对于奇数分频又有了新的感悟,上面我提到的方法中既用到了时钟的上升沿又用到了下降沿,这样在实际设计中是不可取的。
因为书中大部分都是这么写的,所以自己就想当然了,突然领悟到,自己在写分频的时候总是强迫占空比为1/2,如果奇数分频占空比为其他情况,就可以避免使用时钟下降沿了。
转载请注明出处: http://www.cnblogs.com/aslmer/p/5838395.html
aslmer come on !
打起精神,每天进步一点点,开开心心!