首页 > 代码库 > 奇数分频

奇数分频

 


奇数分频思路:(结合图示进行理解)

第一步:在时钟的上升沿和下降沿分别产生一个计数器。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 


 代码提示:clk_up 与 clk_down用组合逻辑,或者用 assign

以图2举例

例:assign clk_up   = (cnt_up==0 || cnt_up ==1) ? 1‘b1 : 1‘b0 ;      

     assign clk_down= (cnt_down==0 || cnt_down ==1) ? 1‘b1:1‘b0 ;

     assign clk_div3 = clk_down && clk_up ;


 

转载请注明出处: http://www.cnblogs.com/aslmer/p/5838395.html

 

                                                                                                                             aslmer  come on !

                                                                                                              打起精神,每天进步一点点,开开心心!

奇数分频