分享

分频器的设计

 共同成长888 2019-04-10

  2的n次方分频实现

如下电路可以实现对CLK的2分频。原理很简单,上电复位先给寄存器一个初始值,然后只有在CLK上升沿CLK_DIV2才会翻转一次。故CLK两个上升沿之后,CLK_DIV2才完成两次翻转。

要实现2的n次方分频可以通过复用n次这个电路。如下所示。

偶数倍分频

方式一:如下所示。通过移位寄存器实现分频。例如要实现2n倍分频,则需要用n个寄存器。

优点:不需要其它任何控制逻辑,只需要寄存器加一个反相器。

缺点:当分频倍数很大时,需要的寄存器也是倍增。当然你也可以采用复用的方式去减少所需寄存器数目,例如,36分频,可以做两个6分频器相连,则所需寄存器为6个,需要的寄存器数大大减少。

方式二:如下图所示,通过计数器来实现分频。比如,做一个2n分频器,则计数器计数从0到n-1,CLK_DIV就翻转一次。

代码如下(分频数为DIV_NUM=20):

仿真波形:

奇数倍分频

如上方式只能实现偶数倍分频,是因为寄存器都是源时钟CLK上升沿触发的,因此DIV_CLK只能在上升沿去发生跳转,这导致DIV_CLK必定只能是CLK的偶数倍分频关系(CLK跳转两次,DIV_CLK才可能跳转一次)。  

奇数倍分频的一种实现方式如下。一路计数器用CLK的非CLK_N控制,一路用CLK控制。最后将两路的输出分频波形相亦或,得到最后的分频输出。如果难以理解可以对着最后的波形去看。

Verilog实现如下(分频数为DIV_NUM=9):

仿真波形如下:

思考

大家以上面的为基础,思考一下占空比可调的分频时钟的实现。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多